Sw>qUXe2`cV}Ks{)9qpvAM*(ynW^D>N_=B<2H=yq12mvO#3Ugt2p&EtJBs8
zZP(e4bM$n+;8Nsj<*s+X=P}6ho2TSi>3Peuujg}*V)rDsldhdz?mKY~N_&G%g7%Om
zL>;BnGhL|-@<&0<^)p_mv8ldTF}5tI#JQ+x!InHW_eu7nEOX}S%x0PHnSC?wXZFmp
z%oekQa`)ynDxiv#CC$o~S7cW$uW>P6G=~dD={h-#`J?D=aoy5ZJKg4t-4Tb?PMus*
zTqE4)ctm=-dcE>;^mg!0^IGMV>uKw$^+t^%bs*dFZ)duz;6)is(o|^9&Ug>fx
zy~{V3*cbiEf1j(%9-n2(h)J(Wo1EsIW}P-B&6xH*JvF0F)~D<(xjXaU6%HzKD$lLF
zuiI^iGJg=R$`Mo>c8Y4brI+@)%`p4hjt`uNxOQK|Bk(a&a9rt|K$Ii_iZ`y^~jIvszexj^oE|Ipy;Tjf8%uZ{VRxqjJ4
zGu<;@rR_@nkTNr6V@gWO@YH~`u=Lp(`pl~A26?Lr%tbd!Z&rM%RvEgPcMGrObc#@@
zEtDEr``tFu;ir@AQseg7W4o8ur-yGxKZXA>|78Cg{v-WA`~pe-
zbenTGM(M&UnX>#MU4EO~H(9$fHmChenULH*X=Gx4LTp0a#LtNzlKfM?rT$F!&w8A5
zGXGtXQ`w5j@4C*$GH!`vBG<4wRitKz^%A=tj;zZew`U#~yr%m&U>vgo)PdsyX9ac&
z%nE28(9%D_w}DSzulgRTu8p0iIZU?gs--M%E5n%c1S?K7f6zCpzEM7`B($(y-l}Xl
z<5t?^6x-zF#FB*G3DyZM6J8|jO}v%VFvTftK*p!68M#Xf;)*Af7gVj*w=lbi6~q%}
zvC3An&-$BPsbiwc4)-cgS0BN5i~sY0n}IWe{siR(T?ldu>Jr#EAj7YV?-gy-YET{zANsiXJ}2f-5qDSOm=VU_0;F5
z-?o72Kso3^aJP^-Ax%SW2d4$y2<#eg-|v&p60a0@rK`#*&aS8R2Fnl1V!A~B%il9z
z(LJmvF6mz==T>L=W^7IEoV+`+NkW_W4RL+r_QrLHZ<8=1kxVwEOid5Y>Xo|AB-WHM?k{fa&q$W5QWAG1X
z=x5<`&{Kq*RywS=HCnY*k5$a2mP+fmlZL0pMwtxdl&iQ?dqRxTn=mxtz2q@mIp)
zgk=dO2`>_<gid~hvr%CJ9e<7GA9;uf1rI!LX#
zafXxCa`}pqx`p<6{jxJNzNHybwk01+B9mSurX>ECv?4hvWl!403~ly<-0KCI#be7g
z)q1^T&Jz!lW7w`14XxhVSU7|`Pj(CS{LlM|lEV07Ky8pf>kp{q6j0
ze4ctXb6@H*-_hRgkXB>4NO_6ACqL!0j7~K}D({s>76s?G%-N9HEWLB;x8zGnzY`}X
zE=V*d#w67w&rKbd9+l~tQftp~Oa{D#T32tvZyZIdQ
zJ037C=xOl25IMxP&exDuA>qM9Q15_&ehxmnJx{w$a?Y`@YZI<%qH<#L%_zG~_yD
zZ_5~;b|z(D@{%O0Bsytn(zxU&DXY`=XPC3@<$ft>RgzSGraH=SkV6j(RinsL-_>@u
zyX2VU^2$BZ>!{CiKZ}6yK&zn9L2ZM+1X6*I{7Zaacz5<(={5?p9b(f|h=_O$W;W@i9TBlA<@=oX+m-d(W`}>dE-;}>LaryBr
zlJZk((r0B4&0kksP(DlNWcn!_A_pjP)T6AQ+7~(BcMtF$?bj{vRd942m%0t={i&B$
zuY0|ob>r&%42}pK>gVA-+kLQewcS|lRg2F|wp`BH8TwV7F7+zR&e3EZPu-AI8Xq6q
z>u=bfM={wk(SK_GK8Pa|vy%PNzho8UO)R#rNYTA9MT;k?Ey`&cPurc2_g$}hw)34A
z&@1?9og;O1^-!9UH@L)lsa33&jpP3z2te?wUOg7oBNhgiov9dkZyQf^{iA^
zFe9gB#`F|zVvD${Kiy*5{eJ(e=+}+k_J2HLqvDSyg{HO2x|}ztcu>Xhni6w6`5^P#
zqD-4@f8Is*;C!M2(t|IArqtWl;BnachL0K!XxKXJO#T1rz7E+I7~^}z)6=!D!$50C
z^;O1F-eeYa$I2%aZOX05xS3Lx@G#c*kHhb)KXZP>{uudl^{s6xoP!|Qv5O=#%fD7ew8hU3ES)L&Bfcu3p8
znZ9j2zqv3DMcUIAU76p~e6xE^ad}RWU*7%9=v0>^CVs`=lQ9c^m;I7|efmxODgJvt
z{$kREw1HWd^5zv&6}xJlnJc7b%p8ju+8n#5&Ntj=dB^x=1lA3y6MCxdih6JBU8wh^
zu77BFNNixK-(&B5_ZQA>?eAzGS=?f-$uV4#p0Auy8d6v{_g3beG}{zS(&>c#@e%PS
z;&&y`Ny?NpX`?dFqkvtDW6!uh=022T&4P`@01+rTG*
znSmPv?*{7HT>br`WR0Ap7d{6(VN>{eFcw)g#pp?kW>h!?$
zKWP@}x6|`7c4pno@y<6C)-OF&5v(gVByrEBgVcD1kNU9{VOwFp%_+v^ky~ev5uSus
zGcVb5y5|g!N;iAge5ZvDuWi3;k6E@+eP-H{&%{VhVJy&5RTIlqrOM*bg?wMT^jyi#l7x~arOV4c
zl#i}#RXx7uvcbiCmhU8$6WeGLJ45wOovn${F1E?AEwy`U-`-)NLsy5p_DcKjw$p8X
zYrkrqsaL7$E1uD<$){4JP-TubZr7jERadR8>{!vhd{0@cvVgLwWmI`axv64EmAU$H
z%>zTc$%h{+9+9ibHq3CvWK|1wwq>MMl=g^q51Sh{**5QN=Gc6-uF_^$9n=I`?y&f*
zF*XY0KI~a-#&x}`0Pt2uUsIX2{%zkEDDefqe6h{)#8e#q-k+xUZAh1J5Ts4E)D?8GYIC9D_r
zV=S0QSowH?3W6`B7r6oZ)eMxMV%6pjR{nITN}Gq3<8D~RTZNh#vk;EjPzwEODbir{
z%``y2AdL>(XmpRO(V@}|oepYLfV@Plst5TRdwnEhJ+Tti5FJsYdJJ^}4yZ$FFTO@y
z$7kWJxK4b9b%oy2D%6-gMm^YAtZ-gHWyKWK6Kz8e-XQc4%tSRnPwa1$kGh8=SlhE9
zVzCms5?xoZ$m;(w!zpw<6fJj=aL0_&;IQZl863ddzr88LHk!P
z&%EJAldEGmNf3T{Fs
zYMm$YZBTLOiuE^&cf$(kY*e%*@=Z{EUnY!&R8K~4?+olBu#Bi8rlS6*9lBWFqtl~4
z>dd-AI^1YIbq95V6m=WDe?_R+Fr%Kw8*(xp>#N_fW6T7=c8
zWXwbrNF;h!E@E^XR*!tq5!e*#f=yAo;EsOQJbeBJ>)ZQL?=lTtN!`G~a8x36$Ljq=
zbT03eZq|0Iv_eJOcJu(|p^v%^I#t)8Q}$nPTm|ZUYS6`5i4OTh;vKplkKns;*zwF2
z`!@Z=tZqlwQe*Tj=b@+c5S}s+)e_$5l`Y14*8jSLE{IoAo%0(1SBQ>~rZK2G{)v_9
z9_Uhumwi#Weh1HKjK08|sOHe1bEFfh?gn8ugsxO;NIZub+lMuIcT{K`M+Jx*r2YiD
zlk1>5BLUqu7a{+}3Z1-jQ8$oEQs{~7gYJ+;STo;>YL4C1M$|J*0X1G!32NLnLe}lc
zSaf!EK&|o<)Hbz6T~i+Fl{aGcx}fr<4m#i(LDmL+
zftZm*(giXTg?*T!EU^jJTL=JkjQ7KK)i&GvoPu;
zWuiLM{m=^{&~=y(bP`sE$1*oiU)h#XFp+c<^oe-TE73o)2sIq@FxEbxb`Q8P0o7cO
zFpG1sJA*g+-E6SWlbhTStCDr`*>GIRgKnOsSl|AO+O?jjTRVZelP{?4ilIJZ#rrX8x-Ou{V-+f%o1^;rGpdbx
zW1o@VpkxrFKOcQ1dr?t10J;{4szQ~_ptsr=7Hu$|cpW{g4yc8lj?S!4sQ#;ijhpj|=YC9n$@8zmGBKs_caxH#byQC4r6=sOxh;1)%lYUA
z`ha~9zDjARiu$*APB^M4cfvxIg04R3O8kVXkLIZFI)MJZ&*)MrfL+aioW!Dz?GgGI
zSEG-yD=eHI-Mwc~y)_g&>@b+EZ|FI^hCMR&WABJPkoiNXti6FfBw|osOP~g?7izLk
z;x{^Ucr}5yn2K7xo!D967WzoPK%(D5bC07wd;oettYHImP2Dg{4soxK!&n+$le7Ja+1s0nL~zUbqac@=t6)}ptP!+r}}(bd&fY>Zy1Mq+pD
z(sUS>y8zu!Jzy<3=5EDY7d4;pR+g0AF#sE`Sldc%tz
zLDk|<^s&0YCZOK12X?dEjw%-|I!~Iz6JG(h3Lztfq!oJoTu`SLNHs-$wI5Z5
zIlcl8&OtxC3oM}y+-`twaBCtCmZ^o@0KT{s^Ew3fqb1Nl82V^GqUThA#g)Vo(GFEL
z>(PT51AXoYTYm*zZ6hH8Pf_bQ234u=(b3iwcIpvyn@441Iw%hX?JwY|HlVU`GCG@Y
zqb9N?y7A7S+n&eH2?t=4s!^ji1AVNK=)(Srj?Y)9P+W&v%g5L`pj0H`XEvbb?Faf>
z+rXoxKu-H%IH`109G!7vwBz54v66ptAA`_&pWYvlqMok5Qe5-W0$#&w%Y{
zhW*zT!*0lu9(u4A-O(+jCg|`mi%Rsz4THV32ldC`@k%8%tjl;*b+WbI>^1flyp9e`
zH^_f;)G%!U#s6V0hoKWQ4(DFj%`X6w-2l>ChCZX?@Ng~Q|5+e_`=~t}jvBXt=t!6+
zx0EYkjqOkkJ0HDe!Fb9vRHy!eZApN(RKb6K!VXIedd$Po3FcP2(@ZmX%h1{#I6IsLa`G}3+yKs4||sii?{(@7OS8ITT!F@x>gU*;V!ATpAvOSEwR(eY4qo9hNS9X
zwFvSrI)%z$Q~q^Z=c2~Q9kur&sv`fwN}q>+?g1|*VlR&m(CB`U4K3_b0c`mxc*!l8
zp;PEQx&XgY1ZfP$etRuYuYVdnL5E>WOmY*{jJ8Jy@OktDYEkEzfQq;=K#6m)*Wq~B
zq8##-gZV!SOL(W&PA-6)u17c5VCdaa
z_<&8dyZNkxWxk3h??m0&6O8v7?8P(m=RQFV`h2|pS)^mNW4n+2ds4B7RuS~31-jdt
zp^xGeEX}`NAkL$P(p_0w0U9=o`;z2
z1sF|zc)_2Tjdjq`!O$BmdbVv*ziNa2W()K#_(GG1q388BcE@S}zHbFC=jEoT<-L!c
z8tq{74x;{9fqu{-uu8j7Z+exwiJHta@EyZ|FWt~lo(ZbL%a>Y@vndG
z9W2o(AR<=!4ZS&z*JV^N9l?$`ztJfk1iU@1wn|xq_G|?G_K=>X*qcE>r^-}VgBVn?
z>S47AXlD=jl-BTuHQ0423v#_3p0_*p%SeUPEQT*}gN2Mmcljc@4Rq-L+PeSPtg15(
z;BVInoxmtK5R4*9hHD(DRM3eiKU$$BSe8-@)|L#`$qKctU}tP9bA$v?+RTuyiilW|
z%z;cRKMHgm4yr;6)Uvc2{x%e>Lu&^PVO_h=xteT$m^b%*U*6t(&OOibeZJ3gZqE4<
z-**Zh?^H4UL4CYY1+~pu+YhLqo$mbshAOs(eHH9~*%ww2=V0a?FxO#^%rGl5Z;beA
zHvdnLyFJoz=%k$3B64b3IFomRPHv()?KK$Ki|vZ6iqEz>d4^mtR(&=qik+!4*uBuO
znpG<(G&HCvkJ6+XqP7}C*(x17|BRMcvHIhe*2=E6mcIlS~=)2jqb6P2H8n1
zbjZhN-ETiDl)JqD7?UJ>pRCddD#KG$l%v_?GnLM#*!Hkk+9keT6kS#PS&I47Sz#J(
zyx;zrMKaNR_L|S%5Ba4qQgf-sL7~Slu;(Cpb=TN2I3ACtc%Q@ikHY>kn7ZF*x%y_6
zn97k&a_yYVgO=%hGs+nIVS<0qpK0gUJ&sy-S;5y&$sE7YQ#lTJj%HN#H##|gG2$i)
zT|pK3hkCn{isw8kU60FB$0%pKsRH@P4C-IBx_U(WDR^shd~EkhgZ*38YU9Q3aFT0(
z_@FT_;iuAw%}ep_O4!@VpLLk~B+Ffbg3%B>%}nDyV_c*f
zU17`*%a)Z`_z?&!fW`%Ke<~%vbe6eZ6>tqdeq}H9-&yXA&%f&V4W4Z9*}@8)*sI+x
zgA3T>tiN|bLmy0hmyHKQ+LtP=DVxf#{iNL?f!N;Zhm^RPEejHL6=!)&t2O3^=2lG^P(
z=*2Zfyu915Pr}GNJx^wzes+evEry=AyS-Rmnn;}`(Mrk=dm!F66FK9F!24#(J!--c
zqBR9t*Yn;XI&~Lm0ViuG2jYIG-51Om59{d|Wq@P89rUWhbd~yBN`E%b-Hi~zy)56#
z5Bs(AqNrRgT9?5<4xU)ZmTRE#d9l2eJ@>K7hh9NHvs?ZeA~r`tQc(IHL;q(2Tm@FJ
z0L#4cKhE2&j(XbFRa!2`1O@8xbhSdJ9&$1K1X@s8@>~JL6=0qx_-rdqe8o}E79qxB
zycW;zSL-3@ZO>3G{6vPEOigKuolDbwzrmd5Yo_R9`%^Rtj^lXQyB4qFxVvbM5P{KCaC+dw%+(eoBoIBnF$*V+ot~{M4e_rdUL>!fd4@KoCqVppCmO
z?90qX?ugXI16!^)!YwN9IJ`0Xs5B%+4lpo@_31>f!vi$OEHME1Vhk;{|!$c;0-?!-^?dHgXkRTi;CjU2HJ
z-cCSaCp0C>al^GY)ca7elYrm8a=u*$A^`@Om3B
zj)$O9);+0`3-!$fl}k|C+aof&)bF|GD8H2(*2ZRM%*~!EBV}aHn3FLrD?7pW#fu6T
z7A^fnEF(25ZJ>Xr+%$gTxSLYOrQGVgnVDJP|B0AeTw0XBJbCWI2TBSHiWbKT@^2nJ
qJG7H_bG(mOY+82eoJ^nJa&mTBR;s@YaQv_7?4RB>-VguZ|9=5QXY|wn
literal 0
HcmV?d00001
diff --git a/lib/components/matrix.dart b/lib/components/matrix.dart
index 93bc680..510f666 100644
--- a/lib/components/matrix.dart
+++ b/lib/components/matrix.dart
@@ -9,7 +9,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:localstorage/localstorage.dart';
import 'package:url_launcher/url_launcher.dart';
-
+import 'package:universal_html/prefer_universal/html.dart' as html;
import '../l10n/l10n.dart';
import '../utils/beautify_string_extension.dart';
import '../utils/famedlysdk_store.dart';
@@ -101,6 +101,7 @@ class MatrixState extends State {
StreamSubscription onRoomKeyRequestSub;
StreamSubscription onKeyVerificationRequestSub;
StreamSubscription onJitsiCallSub;
+ StreamSubscription onNotification;
void onJitsiCall(EventUpdate eventUpdate) {
final event = Event.fromJson(
@@ -157,6 +158,28 @@ class MatrixState extends State {
return;
}
+ void _showWebNotification(EventUpdate eventUpdate) async {
+ final room = client.getRoomById(eventUpdate.roomID);
+ final event = Event.fromJson(eventUpdate.content, room);
+ final body = event.getLocalizedBody(
+ L10n.of(context),
+ withSenderNamePrefix:
+ !room.isDirectChat || room.lastEvent.senderId == client.userID,
+ );
+ html.AudioElement()
+ ..src = 'assets/assets/sounds/notification.wav'
+ ..autoplay = true
+ ..load();
+ html.Notification(
+ room.getLocalizedDisplayname(L10n.of(context)),
+ body: body,
+ icon: event.sender.avatarUrl?.getThumbnail(client,
+ width: 64, height: 64, method: ThumbnailMethod.crop) ??
+ room.avatar?.getThumbnail(client,
+ width: 64, height: 64, method: ThumbnailMethod.crop),
+ );
+ }
+
@override
void initState() {
store = widget.store ?? Store();
@@ -234,6 +257,19 @@ class MatrixState extends State {
renderHtml = render == '1';
});
}
+ if (kIsWeb) {
+ client.onSync.stream.first.then((s) {
+ html.Notification.requestPermission();
+ onNotification ??= client.onEvent.stream
+ .where((e) =>
+ e.roomID != activeRoomId &&
+ e.type == 'timeline' &&
+ [EventTypes.Message, EventTypes.Sticker, EventTypes.Encrypted]
+ .contains(e.eventType) &&
+ e.content['sender'] != client.userID)
+ .listen(_showWebNotification);
+ });
+ }
super.initState();
}
@@ -242,6 +278,7 @@ class MatrixState extends State {
onRoomKeyRequestSub?.cancel();
onKeyVerificationRequestSub?.cancel();
onJitsiCallSub?.cancel();
+ onNotification?.cancel();
super.dispose();
}
diff --git a/pubspec.lock b/pubspec.lock
index b6f0e7e..435aa3e 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -157,6 +157,13 @@ packages:
url: "https://github.com/simolus3/moor.git"
source: git
version: "1.0.0"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
famedlysdk:
dependency: "direct main"
description:
@@ -539,7 +546,7 @@ packages:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.4"
+ version: "1.7.0"
path_drawing:
dependency: transitive
description:
@@ -617,13 +624,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.2"
- quiver:
- dependency: transitive
- description:
- name: quiver
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.3"
random_string:
dependency: "direct main"
description:
@@ -761,21 +761,21 @@ packages:
name: test
url: "https://pub.dartlang.org"
source: hosted
- version: "1.14.4"
+ version: "1.14.7"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.15"
+ version: "0.2.16"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
- version: "0.3.4"
+ version: "0.3.7"
typed_data:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 92fc15d..de870ec 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -93,6 +93,7 @@ flutter:
# To add assets to your application, add an assets section, like this:
assets:
- assets/
+ - assets/sounds/
- assets/js/
- assets/js/package/
From b94be803ceb4bde5d1f8ad98a05f50d939c83baa Mon Sep 17 00:00:00 2001
From: Christian Pauly
Date: Sat, 27 Jun 2020 11:08:05 +0200
Subject: [PATCH 40/89] Fix notifications for muted rooms
---
lib/components/matrix.dart | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/components/matrix.dart b/lib/components/matrix.dart
index 510f666..240bcd1 100644
--- a/lib/components/matrix.dart
+++ b/lib/components/matrix.dart
@@ -160,6 +160,7 @@ class MatrixState extends State {
void _showWebNotification(EventUpdate eventUpdate) async {
final room = client.getRoomById(eventUpdate.roomID);
+ if (room.notificationCount == 0) return;
final event = Event.fromJson(eventUpdate.content, room);
final body = event.getLocalizedBody(
L10n.of(context),
From e5cfacf4c103f0860a9c45a95356cf8872fa714f Mon Sep 17 00:00:00 2001
From: Christian Pauly
Date: Sat, 27 Jun 2020 13:09:21 +0200
Subject: [PATCH 41/89] Minor design fixes
---
.../list_items/presence_list_item.dart | 31 ++++++++++++++-----
lib/views/chat_list.dart | 11 +++++++
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/lib/components/list_items/presence_list_item.dart b/lib/components/list_items/presence_list_item.dart
index 6ec1cb7..d694036 100644
--- a/lib/components/list_items/presence_list_item.dart
+++ b/lib/components/list_items/presence_list_item.dart
@@ -44,19 +44,34 @@ class PresenceListItem extends StatelessWidget {
child: Column(
children: [
SizedBox(height: 16),
- Avatar(user.avatarUrl, user.calcDisplayname()),
+ Container(
+ child: Avatar(user.avatarUrl, user.calcDisplayname()),
+ decoration: BoxDecoration(
+ border: Border.all(
+ width: 1,
+ color: presence?.presence?.statusMsg == null
+ ? presence?.presence?.currentlyActive == true
+ ? Colors.blue
+ : Theme.of(context).secondaryHeaderColor
+ : Theme.of(context).primaryColor,
+ ),
+ borderRadius: BorderRadius.circular(80),
+ ),
+ padding: EdgeInsets.all(2),
+ ),
Padding(
- padding: const EdgeInsets.only(left: 6.0, top: 6.0, right: 6.0),
+ padding: const EdgeInsets.only(left: 6.0, top: 0.0, right: 6.0),
child: Text(
- user.calcDisplayname(),
- overflow: TextOverflow.ellipsis,
+ user.calcDisplayname().trim().split(' ').first,
+ overflow: TextOverflow.clip,
maxLines: 1,
style: TextStyle(
- color: Color(0xFF555555),
+ color: Theme.of(context)
+ .textTheme
+ .bodyText2
+ .color
+ .withOpacity(0.66),
fontSize: 13,
- fontWeight: presence?.presence?.statusMsg == null
- ? null
- : FontWeight.bold,
),
),
),
diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart
index be5f041..2b3d106 100644
--- a/lib/views/chat_list.dart
+++ b/lib/views/chat_list.dart
@@ -51,6 +51,7 @@ class ChatList extends StatefulWidget {
class _ChatListState extends State {
bool get searchMode => searchController.text?.isNotEmpty ?? false;
final TextEditingController searchController = TextEditingController();
+ final FocusNode _searchFocusNode = FocusNode();
Timer coolDown;
PublicRoomsResponse publicRoomsResponse;
bool loadingPublicRooms = false;
@@ -303,10 +304,20 @@ class _ChatListState extends State {
child: TextField(
autocorrect: false,
controller: searchController,
+ focusNode: _searchFocusNode,
decoration: InputDecoration(
contentPadding: EdgeInsets.all(9),
border: InputBorder.none,
hintText: L10n.of(context).searchForAChat,
+ suffixIcon: searchMode
+ ? IconButton(
+ icon: Icon(Icons.backspace),
+ onPressed: () => setState(() {
+ searchController.clear();
+ _searchFocusNode.unfocus();
+ }),
+ )
+ : null,
),
),
),
From 8def2fb81fd7c8d6cc3c38ad8aa0e00017a8409f Mon Sep 17 00:00:00 2001
From: Christian Pauly
Date: Sat, 27 Jun 2020 13:24:19 +0200
Subject: [PATCH 42/89] Minor fixes
---
.../list_items/public_room_list_item.dart | 27 +++++++++++++++----
lib/l10n/l10n.dart | 2 ++
lib/views/chat_list.dart | 26 ++++++++++--------
3 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/lib/components/list_items/public_room_list_item.dart b/lib/components/list_items/public_room_list_item.dart
index 224c0da..eff6dd3 100644
--- a/lib/components/list_items/public_room_list_item.dart
+++ b/lib/components/list_items/public_room_list_item.dart
@@ -15,18 +15,33 @@ class PublicRoomListItem extends StatelessWidget {
const PublicRoomListItem(this.publicRoomEntry, {Key key}) : super(key: key);
void joinAction(BuildContext context) async {
- final success = await SimpleDialogs(context).tryRequestWithLoadingDialog(
- Matrix.of(context).client.api.joinRoom(publicRoomEntry.roomId));
+ final success = await SimpleDialogs(context)
+ .tryRequestWithLoadingDialog(_joinRoomAndWait(context));
if (success != false) {
await Navigator.of(context).push(
AppRoute.defaultRoute(
context,
- ChatView(publicRoomEntry.roomId),
+ ChatView(success),
),
);
}
}
+ Future _joinRoomAndWait(BuildContext context) async {
+ final roomId = await Matrix.of(context)
+ .client
+ .api
+ .joinRoomOrAlias(publicRoomEntry.roomId);
+ if (Matrix.of(context).client.getRoomById(roomId) == null) {
+ await Matrix.of(context)
+ .client
+ .onRoomUpdate
+ .stream
+ .firstWhere((r) => r.id == roomId);
+ }
+ return roomId;
+ }
+
@override
Widget build(BuildContext context) {
final hasTopic =
@@ -43,8 +58,10 @@ class PublicRoomListItem extends StatelessWidget {
subtitle: Text(
hasTopic
? publicRoomEntry.topic
- : L10n.of(context).countParticipants(
- publicRoomEntry.numJoinedMembers?.toString() ?? '0'),
+ : publicRoomEntry.numJoinedMembers == null
+ ? L10n.of(context).joinRoom
+ : L10n.of(context).countParticipants(
+ publicRoomEntry.numJoinedMembers.toString()),
maxLines: 1,
),
onTap: () => joinAction(context),
diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart
index ac26f04..8a3d9ca 100644
--- a/lib/l10n/l10n.dart
+++ b/lib/l10n/l10n.dart
@@ -463,6 +463,8 @@ class L10n extends MatrixLocalizations {
args: [username],
);
+ String get joinRoom => Intl.message('Join room');
+
String get keysCached => Intl.message("Keys are cached", name: "keysCached");
String get keysMissing =>
diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart
index 2b3d106..2bd7dda 100644
--- a/lib/views/chat_list.dart
+++ b/lib/views/chat_list.dart
@@ -390,17 +390,21 @@ class _ChatListState extends State {
a.lastEvent.originServerTs));
return ListView.separated(
controller: _scrollController,
- separatorBuilder:
- (BuildContext context, int i) =>
- i == totalCount - publicRoomsCount
- ? Material(
- elevation: 2,
- child: ListTile(
- title: Text(L10n.of(context)
- .publicRooms),
- ),
- )
- : Container(),
+ separatorBuilder: (BuildContext context,
+ int i) =>
+ i == totalCount - publicRoomsCount
+ ? ListTile(
+ title: Text(
+ L10n.of(context).publicRooms +
+ ':',
+ style: TextStyle(
+ fontWeight: FontWeight.bold,
+ color: Theme.of(context)
+ .primaryColor,
+ ),
+ ),
+ )
+ : Container(),
itemCount: totalCount + 1,
itemBuilder: (BuildContext context, int i) {
if (i == 0) {
From 737fb6eece9e66c35084e214b436c6e8dcc31e83 Mon Sep 17 00:00:00 2001
From: Anne Onyme 017
Date: Sat, 27 Jun 2020 07:38:16 +0000
Subject: [PATCH 43/89] Translated using Weblate (French)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/fr/
---
lib/l10n/intl_fr.arb | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb
index 5070819..a47ec08 100644
--- a/lib/l10n/intl_fr.arb
+++ b/lib/l10n/intl_fr.arb
@@ -89,7 +89,7 @@
"type": "text",
"placeholders": {}
},
- "Banned": "Banned",
+ "Banned": "Banni",
"@Banned": {
"type": "text",
"placeholders": {}
@@ -164,7 +164,7 @@
"username": {}
}
},
- "changedTheGuestAccessRulesTo": "{username} a changé les règles d'accès à la discussion pour les invités en : {rules}",
+ "changedTheGuestAccessRulesTo": "{username} a changé les règles d'accès à la discussion pour les invités en : {rules}",
"@changedTheGuestAccessRulesTo": {
"type": "text",
"placeholders": {
@@ -632,7 +632,7 @@
"type": "text",
"placeholders": {}
},
- "is typing...": "is typing...",
+ "is typing...": "est en train d'écrire...",
"@is typing...": {
"type": "text",
"placeholders": {}
@@ -670,17 +670,17 @@
"type": "text",
"placeholders": {}
},
- "Leave": "Leave",
+ "Leave": "Partir",
"@Leave": {
"type": "text",
"placeholders": {}
},
- "Left the chat": "Discussion quittée",
+ "Left the chat": "A quitté la discussion",
"@Left the chat": {
"type": "text",
"placeholders": {}
},
- "Logout": "Logout",
+ "Logout": "Se déconnecter",
"@Logout": {
"type": "text",
"placeholders": {}
@@ -692,7 +692,7 @@
"username": {}
}
},
- "lastActiveAgo": "Vu pour la dernière fois: {localizedTimeShort}",
+ "lastActiveAgo": "Vu pour la dernière fois : {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
@@ -1327,7 +1327,7 @@
"type": "text",
"placeholders": {}
},
- "End to end encryption is currently in Beta! Use at your own risk!": "Le chiffrement de bout en bout est actuellement en beta ! Utilisez cette fonctionnalité à vos propres risques !!",
+ "End to end encryption is currently in Beta! Use at your own risk!": "Le chiffrement de bout en bout est actuellement en béta ! Utilisez cette fonctionnalité à vos propres risques !",
"@End to end encryption is currently in Beta! Use at your own risk!": {
"type": "text",
"placeholders": {}
From 35d5be720605fc2c38df7b00a24bc22639063116 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gergely=20Horv=C3=A1th?=
Date: Sat, 27 Jun 2020 19:30:28 +0000
Subject: [PATCH 44/89] Translated using Weblate (Hungarian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/hu/
---
lib/l10n/intl_hu.arb | 229 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 224 insertions(+), 5 deletions(-)
diff --git a/lib/l10n/intl_hu.arb b/lib/l10n/intl_hu.arb
index c18cfff..a7f7ef9 100644
--- a/lib/l10n/intl_hu.arb
+++ b/lib/l10n/intl_hu.arb
@@ -64,7 +64,7 @@
"type": "text",
"placeholders": {}
},
- "Are guest users allowed to join": "Csatlakozhatnak-e vendég felhasználók",
+ "Are guest users allowed to join": "Csatlakozhatnak vendég felhasználók",
"@Are guest users allowed to join": {
"type": "text",
"placeholders": {}
@@ -424,7 +424,7 @@
"type": "text",
"placeholders": {}
},
- "Emote Settings": "Hangulatjel beállíŧások",
+ "Emote Settings": "Hangulatjel beállítások",
"@Emote Settings": {
"type": "text",
"placeholders": {}
@@ -835,7 +835,7 @@
"type": "text",
"placeholders": {}
},
- "Open camera": "Kamera megnyitása",
+ "Open camera": "Kamera megnyitása",
"@Open camera": {
"type": "text",
"placeholders": {}
@@ -1282,7 +1282,7 @@
"type": {}
}
},
- "Verify": "Igazol",
+ "Verify": "Hitelesít",
"@Verify": {
"type": "text",
"placeholders": {}
@@ -1376,5 +1376,224 @@
"@Your own username": {
"type": "text",
"placeholders": {}
+ },
+ "askSSSSSign": "A másik személy igazolásához, kérlek add meg jelszavadat vagy visszaállítási kulcsodat.",
+ "@askSSSSSign": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "newVerificationRequest": "Új hitelesítési kérelem!",
+ "@newVerificationRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerNumbers": "Várakozás partnere, amíg elfogadja a számokat...",
+ "@waitingPartnerNumbers": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerAcceptRequest": "Várakozás partnerre, amíg elfogadja a kérést...",
+ "@waitingPartnerAcceptRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerEmoji": "Várakozás partnere, amíg elfogadja a hangulatjeleket...",
+ "@waitingPartnerEmoji": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Verify User": "Felhasználó hitelesítése",
+ "@Verify User": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyTitle": "Másik fiók hitelesítése",
+ "@verifyTitle": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifySuccess": "Sikeresen hitelesítettél!",
+ "@verifySuccess": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyStart": "Hitelesítés megkezdése",
+ "@verifyStart": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifiedSession": "Sikeresen hitelesítetted a munkamenetedet!",
+ "@verifiedSession": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyManual": "Kézi hitelesítés",
+ "@verifyManual": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownSessionVerify": "Ismeretlen munkamenet, kérlek hitelesítsd",
+ "@unknownSessionVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Block Device": "Eszköz blokkolása",
+ "@Block Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unblock Device": "Eszköz blokkolásának megszüntetése",
+ "@Unblock Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Match": "Megegyeznek",
+ "@They Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Don't Match": "Nem egyeznek",
+ "@They Don't Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Submit": "Mehet",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Skip": "Kihagy",
+ "@Skip": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sessionVerified": "Munkamenet hitelesítve",
+ "@sessionVerified": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Seen a long time ago": "Már régen látta",
+ "@Seen a long time ago": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Room has been upgraded": "Szoba frissítve lett",
+ "@Room has been upgraded": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reject": "Visszautasít",
+ "@Reject": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "passphraseOrKey": "Jelszó vagy visszaállítási kulcs",
+ "@passphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupEnabled": "Online Kulcs Archívum engedélyezve",
+ "@onlineKeyBackupEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupDisabled": "Online Kulcs Archívum letiltva",
+ "@onlineKeyBackupDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noMegolmBootstrap": "FluffyChat jelenleg nem támogatja az Online Kulcs Archívumot (backup). Kérlek engedélyezd Riot-ból.",
+ "@noMegolmBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noCrossSignBootstrap": "FluffyChat jelenleg nem támogatja a Kereszt-Aláírás bekapcsolását. Kérlek engedélyezd Riot-ból.",
+ "@noCrossSignBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysMissing": "Kulcsok hiányoznak",
+ "@keysMissing": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysCached": "Kulcsok betöltve",
+ "@keysCached": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "isDeviceKeyCorrect": "Helyes az alábbi eszköz kulcs?",
+ "@isDeviceKeyCorrect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "incorrectPassphraseOrKey": "Hibás jelszó vagy visszaállítási kulcs",
+ "@incorrectPassphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption": "Titkosítás",
+ "@Encryption": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Currently active": "Jelenleg aktív",
+ "@Currently active": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningEnabled": "Kereszt-Aláírás bekapcsolva",
+ "@crossSigningEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningDisabled": "Kereszt-Aláírás kikapcsolva",
+ "@crossSigningDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "couldNotDecryptMessage": "Nem sikerült visszafejteni a titkosított üzenetet: {error}",
+ "@couldNotDecryptMessage": {
+ "type": "text",
+ "placeholders": {
+ "error": {}
+ }
+ },
+ "compareNumbersMatch": "Hasonlítsd össze a számokat a másik eszközön lévőkkel:",
+ "@compareNumbersMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareEmojiMatch": "Hasonlítsd össze a hangulatjeleket a másik eszközön lévőkkel:",
+ "@compareEmojiMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "cachedKeys": "Sikeresen betöltöttük a kulcsokat!",
+ "@cachedKeys": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askVerificationRequest": "Elfogadod {username} hitelesítési kérelmét?",
+ "@askVerificationRequest": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "askSSSSVerify": "Add meg a biztonságos tárolóhoz tartozó vagy a visszaállítási jelszavadat, a munkamenet hitelesítéséhez.",
+ "@askSSSSVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSCache": "Add meg a biztonságos tárolóhoz tartozó vagy a visszaállítási jelszavadat, hogy betöltsük a kulcsaidat.",
+ "@askSSSSCache": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Accept": "Elfogad",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
}
-}
\ No newline at end of file
+}
From bfc3a80a290c505fe1b6fadcbd70e6907400fef8 Mon Sep 17 00:00:00 2001
From: "[Redacted]"
Date: Sat, 27 Jun 2020 11:40:47 +0000
Subject: [PATCH 45/89] Translated using Weblate (Czech)
Currently translated at 84.0% (242 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/cs/
---
lib/l10n/intl_cs.arb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb
index 16034ea..d31cfc2 100644
--- a/lib/l10n/intl_cs.arb
+++ b/lib/l10n/intl_cs.arb
@@ -1386,5 +1386,10 @@
"@Your own username": {
"type": "text",
"placeholders": {}
+ },
+ "Accept": "Přijmout",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
}
}
From 6d9fdc64e7e97e404dee78facdbcaac6081f99dd Mon Sep 17 00:00:00 2001
From: "[Redacted]"
Date: Sun, 28 Jun 2020 13:09:40 +0000
Subject: [PATCH 46/89] Translated using Weblate (Slovak)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/sk/
---
lib/l10n/intl_sk.arb | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb
index 0935149..179b569 100644
--- a/lib/l10n/intl_sk.arb
+++ b/lib/l10n/intl_sk.arb
@@ -1,6 +1,6 @@
{
"@@last_modified": "2020-06-25T16:02:16.297192",
- "About": "O aplikacií",
+ "About": "O aplikácii",
"@About": {
"type": "text",
"placeholders": {}
@@ -10,7 +10,7 @@
"type": "text",
"placeholders": {}
},
- "acceptedTheInvitation": "{username} prijali pozvanie",
+ "acceptedTheInvitation": "{username} prijali pozvánku",
"@acceptedTheInvitation": {
"type": "text",
"placeholders": {
@@ -22,12 +22,12 @@
"type": "text",
"placeholders": {}
},
- "Account informations": "Informácie o účtu",
+ "Account informations": "Informácie o účte",
"@Account informations": {
"type": "text",
"placeholders": {}
},
- "activatedEndToEndEncryption": "{username} aktivoval koncové šifrovanie",
+ "activatedEndToEndEncryption": "{username} aktivovali koncové šifrovanie",
"@activatedEndToEndEncryption": {
"type": "text",
"placeholders": {
@@ -151,7 +151,7 @@
"type": "text",
"placeholders": {}
},
- "changedTheChatAvatar": "{username} zmenili svôj avatar",
+ "changedTheChatAvatar": "{username} si zmenili svôj avatar",
"@changedTheChatAvatar": {
"type": "text",
"placeholders": {
@@ -181,7 +181,7 @@
"username": {}
}
},
- "changedTheDisplaynameTo": "{username} zmenili prezývku na: {displayname}",
+ "changedTheDisplaynameTo": "{username} si zmenili prezývku na: {displayname}",
"@changedTheDisplaynameTo": {
"type": "text",
"placeholders": {
@@ -209,14 +209,14 @@
"rules": {}
}
},
- "changedTheHistoryVisibility": "{username} zmenili nastavenie viditelnosti histórie diskusie",
+ "changedTheHistoryVisibility": "{username} zmenili nastavenie viditelnosti histórie chatu",
"@changedTheHistoryVisibility": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheHistoryVisibilityTo": "{username} zmenili nastavenie viditelnosti histórie diskusie na: {rules}",
+ "changedTheHistoryVisibilityTo": "{username} zmenili nastavenie viditelnosti histórie chatu na: {rules}",
"@changedTheHistoryVisibilityTo": {
"type": "text",
"placeholders": {
@@ -239,7 +239,7 @@
"joinRules": {}
}
},
- "changedTheProfileAvatar": "{username} zmenil profilový obrázok",
+ "changedTheProfileAvatar": "{username} si zmenili profilový obrázok",
"@changedTheProfileAvatar": {
"type": "text",
"placeholders": {
@@ -411,7 +411,7 @@
"type": "text",
"placeholders": {}
},
- "Currently active": "Momentálne aktívny",
+ "Currently active": "Momentálne prítomní",
"@Currently active": {
"type": "text",
"placeholders": {}
@@ -516,7 +516,7 @@
"type": "text",
"placeholders": {}
},
- "You won't be able to disable the encryption anymore. Are you sure?": "Šifrovanie už nebude možné vypnúť. Ste si tým istý?",
+ "You won't be able to disable the encryption anymore. Are you sure?": "Šifrovanie už nebude možné vypnúť. Ste si tým istí?",
"@You won't be able to disable the encryption anymore. Are you sure?": {
"type": "text",
"placeholders": {}
@@ -739,7 +739,7 @@
"targetName": {}
}
},
- "kickedAndBanned": "{username} vyhodil a zabanoval {targetName}",
+ "kickedAndBanned": "{username} vyhodili a zabanovali {targetName}",
"@kickedAndBanned": {
"type": "text",
"placeholders": {
@@ -774,14 +774,14 @@
"username": {}
}
},
- "lastActiveAgo": "Naposledy aktívny: {localizedTimeShort}",
+ "lastActiveAgo": "Naposledy prítomní: {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
"localizedTimeShort": {}
}
},
- "Last seen IP": "Naposledy videná IP adresa",
+ "Last seen IP": "Naposledy zaznamenaná IP adresa",
"@Last seen IP": {
"type": "text",
"placeholders": {}
@@ -855,7 +855,7 @@
"type": "text",
"placeholders": {}
},
- "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "Budte si vedomí, že na koncové šifrovanie zatiaľ potrebujete Pantalaimon.",
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "Prosím berte na vedomie, že na koncové šifrovanie zatiaľ potrebujete Pantalaimon.",
"@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
"type": "text",
"placeholders": {}
@@ -900,7 +900,7 @@
"type": "text",
"placeholders": {}
},
- "No permission": "Bez povolenia",
+ "No permission": "Chýba povolenie",
"@No permission": {
"type": "text",
"placeholders": {}
@@ -915,7 +915,7 @@
"type": "text",
"placeholders": {}
},
- "numberSelected": "{number} vybraných",
+ "numberSelected": "{number} označených správ",
"@numberSelected": {
"type": "text",
"placeholders": {
@@ -1405,7 +1405,7 @@
"unreadEvents": {}
}
},
- "unreadMessagesInChats": "{unreadEvents} neprečítaných správ v {unreadChats}",
+ "unreadMessagesInChats": "{unreadEvents} neprečítaných správ v {unreadChats} chatoch",
"@unreadMessagesInChats": {
"type": "text",
"placeholders": {
@@ -1441,7 +1441,7 @@
"username": {}
}
},
- "userSentUnknownEvent": "{username} poslal udalosť {type}",
+ "userSentUnknownEvent": "{username} poslali udalosť {type}",
"@userSentUnknownEvent": {
"type": "text",
"placeholders": {
@@ -1529,7 +1529,7 @@
"type": "text",
"placeholders": {}
},
- "End to end encryption is currently in Beta! Use at your own risk!": "Konečné šifrovanie je momentalné v Beta verzii! Používajte na vlastné riziko!",
+ "End to end encryption is currently in Beta! Use at your own risk!": "Konečné šifrovanie je momentálne v Beta verzii! Používajte na vlastné riziko!",
"@End to end encryption is currently in Beta! Use at your own risk!": {
"type": "text",
"placeholders": {}
From 7535c3a8bb438aa8cc2df2895c997bb0d94f2d47 Mon Sep 17 00:00:00 2001
From: Andy Cuccaro
Date: Mon, 29 Jun 2020 22:37:10 +0000
Subject: [PATCH 47/89] Translated using Weblate (Spanish)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/es/
---
lib/l10n/intl_es.arb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb
index 5d91cf1..bc2be30 100644
--- a/lib/l10n/intl_es.arb
+++ b/lib/l10n/intl_es.arb
@@ -1270,7 +1270,7 @@
"type": "text",
"placeholders": {}
},
- "Use Amoled compatible colors?": "¿Usar colores compatible con AMOLED?",
+ "Use Amoled compatible colors?": "¿Usar colores compatibles con AMOLED?",
"@Use Amoled compatible colors?": {
"type": "text",
"placeholders": {}
@@ -1584,7 +1584,7 @@
"type": "text",
"placeholders": {}
},
- "Your own username": "Tu propio nombre de usuario",
+ "Your own username": "Tu nombre de usuario",
"@Your own username": {
"type": "text",
"placeholders": {}
From 7997751d82dff72e92cc394d21d144a5cb1d3348 Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Wed, 1 Jul 2020 18:55:00 +0000
Subject: [PATCH 48/89] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index b0d72a8..099787b 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,11 @@
-
+
- Open FluffyChat in the browser - Join the community - Follow me on Mastodon - Translate FluffyChat - Translate the website - FAQ - Website
+ Open FluffyChat in the browser - Join the community - Follow me on Mastodon - Translate FluffyChat - Translate the website - FAQ - Website
From 7de6b8c7006f7924b796da272fdc44e5838ad330 Mon Sep 17 00:00:00 2001
From: Katerina
Date: Thu, 2 Jul 2020 09:10:03 +0000
Subject: [PATCH 49/89] Cosmetic improvements of homeserver and user inputs
Keyboard type for homeserver TextInput changed to url and trailing '/' with potential whitespaces is stripped.
Keyboard type for username changed to e-mail for convenience.
Should resolve: #34 and #64
---
lib/components/dialogs/simple_dialogs.dart | 23 +++++++++++-----------
lib/views/homeserver_picker.dart | 10 +++++++++-
lib/views/login.dart | 1 +
3 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/lib/components/dialogs/simple_dialogs.dart b/lib/components/dialogs/simple_dialogs.dart
index b1fd04e..527d0e6 100644
--- a/lib/components/dialogs/simple_dialogs.dart
+++ b/lib/components/dialogs/simple_dialogs.dart
@@ -8,17 +8,17 @@ class SimpleDialogs {
const SimpleDialogs(this.context);
- Future enterText({
- String titleText,
- String confirmText,
- String cancelText,
- String hintText,
- String labelText,
- String prefixText,
- String suffixText,
- bool password = false,
- bool multiLine = false,
- }) async {
+ Future enterText(
+ {String titleText,
+ String confirmText,
+ String cancelText,
+ String hintText,
+ String labelText,
+ String prefixText,
+ String suffixText,
+ bool password = false,
+ bool multiLine = false,
+ TextInputType keyboardType}) async {
var textEditingController = TextEditingController();
final controller = textEditingController;
String input;
@@ -38,6 +38,7 @@ class SimpleDialogs {
maxLines: multiLine ? 3 : 1,
obscureText: password,
textInputAction: multiLine ? TextInputAction.newline : null,
+ keyboardType: keyboardType,
decoration: InputDecoration(
hintText: hintText,
labelText: labelText,
diff --git a/lib/views/homeserver_picker.dart b/lib/views/homeserver_picker.dart
index 8f6dbec..85568be 100644
--- a/lib/views/homeserver_picker.dart
+++ b/lib/views/homeserver_picker.dart
@@ -12,7 +12,8 @@ class HomeserverPicker extends StatelessWidget {
final homeserver = await SimpleDialogs(context).enterText(
titleText: L10n.of(context).enterYourHomeserver,
hintText: Matrix.defaultHomeserver,
- prefixText: 'https://');
+ prefixText: 'https://',
+ keyboardType: TextInputType.url);
if (homeserver?.isEmpty ?? true) return;
_checkHomeserverAction(homeserver, context);
}
@@ -21,6 +22,13 @@ class HomeserverPicker extends StatelessWidget {
if (!homeserver.startsWith('https://')) {
homeserver = 'https://$homeserver';
}
+
+ // removes trailing spaces and slash from url if present (api errors on it)
+ homeserver = homeserver.trim();
+ if (homeserver.endsWith('/')) {
+ homeserver = homeserver.substring(0, homeserver.length - 1);
+ }
+
final success = await SimpleDialogs(context).tryRequestWithLoadingDialog(
Matrix.of(context).client.checkServer(homeserver));
if (success != false) {
diff --git a/lib/views/login.dart b/lib/views/login.dart
index 306c4ac..8f36078 100644
--- a/lib/views/login.dart
+++ b/lib/views/login.dart
@@ -131,6 +131,7 @@ class _LoginState extends State {
readOnly: loading,
autocorrect: false,
autofocus: true,
+ keyboardType: TextInputType.emailAddress,
onChanged: (t) => _checkWellKnownWithCoolDown(t, context),
controller: usernameController,
decoration: InputDecoration(
From ddc328e4df19dcab261f7babb3c5895becae358d Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Thu, 2 Jul 2020 09:30:59 +0000
Subject: [PATCH 50/89] Update sdk for performance increases
---
lib/components/matrix.dart | 5 ++++-
lib/utils/matrix_file_extension.dart | 4 ++--
lib/views/chat.dart | 15 ++++++++-------
lib/views/chat_details.dart | 2 +-
lib/views/chat_list.dart | 2 +-
lib/views/settings.dart | 2 +-
lib/views/settings_emotes.dart | 4 ++--
lib/views/sign_up_password.dart | 2 +-
pubspec.lock | 4 ++--
pubspec.yaml | 2 +-
10 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/lib/components/matrix.dart b/lib/components/matrix.dart
index 240bcd1..aa59c82 100644
--- a/lib/components/matrix.dart
+++ b/lib/components/matrix.dart
@@ -196,7 +196,10 @@ class MatrixState extends State {
client = Client(widget.clientName,
debug: false,
enableE2eeRecovery: true,
- verificationMethods: verificationMethods);
+ verificationMethods: verificationMethods,
+ importantStateEvents: {
+ 'im.ponies.room_emotes', // we want emotes to work properly
+ });
onJitsiCallSub ??= client.onEvent.stream
.where((e) =>
e.type == 'timeline' &&
diff --git a/lib/utils/matrix_file_extension.dart b/lib/utils/matrix_file_extension.dart
index 04cb7e4..f2c92b9 100644
--- a/lib/utils/matrix_file_extension.dart
+++ b/lib/utils/matrix_file_extension.dart
@@ -10,7 +10,7 @@ import 'package:mime_type/mime_type.dart';
extension MatrixFileExtension on MatrixFile {
void open() async {
if (kIsWeb) {
- final fileName = path.split('/').last;
+ final fileName = name.split('/').last;
final mimeType = mime(fileName);
var element = html.document.createElement('a');
element.setAttribute(
@@ -25,7 +25,7 @@ extension MatrixFileExtension on MatrixFile {
element.remove();
} else {
var tempDir = await getTemporaryDirectory();
- final file = File(tempDir.path + '/' + path.split('/').last);
+ final file = File(tempDir.path + '/' + name.split('/').last);
file.writeAsBytesSync(bytes);
await OpenFile.open(file.path);
}
diff --git a/lib/views/chat.dart b/lib/views/chat.dart
index d8e9817..c35a733 100644
--- a/lib/views/chat.dart
+++ b/lib/views/chat.dart
@@ -190,7 +190,7 @@ class _ChatState extends State<_Chat> {
if (file == null) return;
await SimpleDialogs(context).tryRequestWithLoadingDialog(
room.sendFileEvent(
- MatrixFile(bytes: file.bytes, path: file.path),
+ MatrixFile(bytes: file.bytes, name: file.path),
),
);
}
@@ -203,8 +203,8 @@ class _ChatState extends State<_Chat> {
maxHeight: 1600);
if (file == null) return;
await SimpleDialogs(context).tryRequestWithLoadingDialog(
- room.sendImageEvent(
- MatrixFile(bytes: await file.bytes, path: file.path),
+ room.sendFileEvent(
+ MatrixImageFile(bytes: await file.bytes, name: file.path),
),
);
}
@@ -217,8 +217,8 @@ class _ChatState extends State<_Chat> {
maxHeight: 1600);
if (file == null) return;
await SimpleDialogs(context).tryRequestWithLoadingDialog(
- room.sendImageEvent(
- MatrixFile(bytes: file.bytes, path: file.path),
+ room.sendFileEvent(
+ MatrixImageFile(bytes: file.bytes, name: file.path),
),
);
}
@@ -233,8 +233,9 @@ class _ChatState extends State<_Chat> {
if (result == null) return;
final audioFile = File(result);
await SimpleDialogs(context).tryRequestWithLoadingDialog(
- room.sendAudioEvent(
- MatrixFile(bytes: audioFile.readAsBytesSync(), path: audioFile.path),
+ room.sendFileEvent(
+ MatrixAudioFile(
+ bytes: audioFile.readAsBytesSync(), name: audioFile.path),
),
);
}
diff --git a/lib/views/chat_details.dart b/lib/views/chat_details.dart
index fb184bb..cf062e9 100644
--- a/lib/views/chat_details.dart
+++ b/lib/views/chat_details.dart
@@ -111,7 +111,7 @@ class _ChatDetailsState extends State {
widget.room.setAvatar(
MatrixFile(
bytes: tempFile.bytes,
- path: tempFile.path,
+ name: tempFile.path,
),
),
);
diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart
index 2bd7dda..ee90f9c 100644
--- a/lib/views/chat_list.dart
+++ b/lib/views/chat_list.dart
@@ -137,7 +137,7 @@ class _ChatListState extends State {
'msgtype': 'chat.fluffy.shared_file',
'file': MatrixFile(
bytes: file.readAsBytesSync(),
- path: file.path,
+ name: file.path,
),
};
}
diff --git a/lib/views/settings.dart b/lib/views/settings.dart
index 20c06a1..af100fd 100644
--- a/lib/views/settings.dart
+++ b/lib/views/settings.dart
@@ -99,7 +99,7 @@ class _SettingsState extends State {
matrix.client.setAvatar(
MatrixFile(
bytes: tempFile.bytes,
- path: tempFile.path,
+ name: tempFile.path,
),
),
);
diff --git a/lib/views/settings_emotes.dart b/lib/views/settings_emotes.dart
index e7c0482..8568385 100644
--- a/lib/views/settings_emotes.dart
+++ b/lib/views/settings_emotes.dart
@@ -374,13 +374,13 @@ class _EmoteImagePickerState extends State<_EmoteImagePicker> {
maxWidth: 128,
maxHeight: 128);
if (file == null) return;
- final matrixFile = MatrixFile(bytes: file.bytes, path: file.path);
+ final matrixFile = MatrixFile(bytes: file.bytes, name: file.path);
final uploadResp =
await SimpleDialogs(context).tryRequestWithLoadingDialog(
Matrix.of(context)
.client
.api
- .upload(matrixFile.bytes, matrixFile.path),
+ .upload(matrixFile.bytes, matrixFile.name),
);
setState(() {
widget.controller.text = uploadResp;
diff --git a/lib/views/sign_up_password.dart b/lib/views/sign_up_password.dart
index 8cef828..c2f9b20 100644
--- a/lib/views/sign_up_password.dart
+++ b/lib/views/sign_up_password.dart
@@ -101,7 +101,7 @@ class _SignUpPasswordState extends State {
await matrix.client.setAvatar(
MatrixFile(
bytes: widget.avatar.bytes,
- path: widget.avatar.path,
+ name: widget.avatar.path,
),
);
} catch (exception) {
diff --git a/pubspec.lock b/pubspec.lock
index 4362c93..c7a6603 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -168,8 +168,8 @@ packages:
dependency: "direct main"
description:
path: "."
- ref: "28fd207f2a1c0fbba959b7ddbcd78fb8178bff67"
- resolved-ref: "28fd207f2a1c0fbba959b7ddbcd78fb8178bff67"
+ ref: ac720df3d26985faef0b6d6a86a8013f44c5c6e3
+ resolved-ref: ac720df3d26985faef0b6d6a86a8013f44c5c6e3
url: "https://gitlab.com/famedly/famedlysdk.git"
source: git
version: "0.0.1"
diff --git a/pubspec.yaml b/pubspec.yaml
index f9971f5..60db4c5 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -27,7 +27,7 @@ dependencies:
famedlysdk:
git:
url: https://gitlab.com/famedly/famedlysdk.git
- ref: 28fd207f2a1c0fbba959b7ddbcd78fb8178bff67
+ ref: ac720df3d26985faef0b6d6a86a8013f44c5c6e3
localstorage: ^3.0.1+4
bubble: ^1.1.9+1
From 62e1e49870112e999cc7f38c6b85840088716405 Mon Sep 17 00:00:00 2001
From: Christian Pauly
Date: Sat, 4 Jul 2020 10:22:51 +0200
Subject: [PATCH 51/89] Add connection status header
---
lib/components/connection_status_header.dart | 44 +++++++++++++++++++
lib/views/chat.dart | 46 ++++++++++++--------
lib/views/chat_list.dart | 41 ++++++++++-------
3 files changed, 97 insertions(+), 34 deletions(-)
create mode 100644 lib/components/connection_status_header.dart
diff --git a/lib/components/connection_status_header.dart b/lib/components/connection_status_header.dart
new file mode 100644
index 0000000..705a4f5
--- /dev/null
+++ b/lib/components/connection_status_header.dart
@@ -0,0 +1,44 @@
+import 'dart:async';
+import 'package:flutter/material.dart';
+
+import 'matrix.dart';
+
+class ConnectionStatusHeader extends StatefulWidget {
+ @override
+ _ConnectionStatusHeaderState createState() => _ConnectionStatusHeaderState();
+}
+
+class _ConnectionStatusHeaderState extends State {
+ StreamSubscription _onSyncSub;
+ StreamSubscription _onSyncErrorSub;
+ static bool _connected = false;
+
+ set connected(bool connected) {
+ if (mounted) {
+ setState(() => _connected = connected);
+ }
+ }
+
+ @override
+ void dispose() {
+ _onSyncSub?.cancel();
+ _onSyncErrorSub?.cancel();
+ super.dispose();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ _onSyncSub ??= Matrix.of(context).client.onSync.stream.listen(
+ (_) => connected = true,
+ );
+ _onSyncErrorSub ??= Matrix.of(context).client.onSyncError.stream.listen(
+ (_) => connected = false,
+ );
+
+ return AnimatedContainer(
+ duration: Duration(milliseconds: 500),
+ height: _connected ? 0 : 5,
+ child: LinearProgressIndicator(),
+ );
+ }
+}
diff --git a/lib/views/chat.dart b/lib/views/chat.dart
index c35a733..70c6c53 100644
--- a/lib/views/chat.dart
+++ b/lib/views/chat.dart
@@ -6,6 +6,7 @@ import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/components/adaptive_page_layout.dart';
import 'package:fluffychat/components/avatar.dart';
import 'package:fluffychat/components/chat_settings_popup_menu.dart';
+import 'package:fluffychat/components/connection_status_header.dart';
import 'package:fluffychat/components/dialogs/presence_dialog.dart';
import 'package:fluffychat/components/dialogs/recording_dialog.dart';
import 'package:fluffychat/components/dialogs/simple_dialogs.dart';
@@ -90,11 +91,11 @@ class _ChatState extends State<_Chat> {
void requestHistory() async {
if (_canLoadMore) {
setState(() => _loadingHistory = true);
- try {
- await timeline.requestHistory(historyCount: _loadHistoryCount);
- } catch (e) {
- debugPrint('Error loading history: ' + e.toString());
- }
+
+ await SimpleDialogs(context).tryRequestWithErrorToast(
+ timeline.requestHistory(historyCount: _loadHistoryCount),
+ );
+
if (mounted) setState(() => _loadingHistory = false);
}
}
@@ -452,7 +453,6 @@ class _ChatState extends State<_Chat> {
),
Column(
children: [
- if (_loadingHistory) LinearProgressIndicator(),
Expanded(
child: FutureBuilder(
future: getTimeline(),
@@ -486,19 +486,28 @@ class _ChatState extends State<_Chat> {
controller: _scrollController,
itemBuilder: (BuildContext context, int i) {
return i == timeline.events.length + 1
- ? _canLoadMore && !_loadingHistory
- ? FlatButton(
- child: Text(
- L10n.of(context).loadMore,
- style: TextStyle(
- color: Theme.of(context).primaryColor,
- fontWeight: FontWeight.bold,
- decoration: TextDecoration.underline,
- ),
- ),
- onPressed: requestHistory,
+ ? _loadingHistory
+ ? Container(
+ height: 50,
+ alignment: Alignment.center,
+ padding: EdgeInsets.all(8),
+ child: CircularProgressIndicator(),
)
- : Container()
+ : _canLoadMore
+ ? FlatButton(
+ child: Text(
+ L10n.of(context).loadMore,
+ style: TextStyle(
+ color: Theme.of(context)
+ .primaryColor,
+ fontWeight: FontWeight.bold,
+ decoration:
+ TextDecoration.underline,
+ ),
+ ),
+ onPressed: requestHistory,
+ )
+ : Container()
: i == 0
? AnimatedContainer(
height: seenByText.isEmpty ? 0 : 24,
@@ -556,6 +565,7 @@ class _ChatState extends State<_Chat> {
},
),
),
+ ConnectionStatusHeader(),
AnimatedContainer(
duration: Duration(milliseconds: 300),
height: replyEvent != null ? 56 : 0,
diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart
index ee90f9c..93a78ab 100644
--- a/lib/views/chat_list.dart
+++ b/lib/views/chat_list.dart
@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:famedlysdk/matrix_api.dart';
+import 'package:fluffychat/components/connection_status_header.dart';
import 'package:fluffychat/components/dialogs/simple_dialogs.dart';
import 'package:fluffychat/components/list_items/presence_list_item.dart';
import 'package:fluffychat/components/list_items/public_room_list_item.dart';
@@ -408,26 +409,34 @@ class _ChatListState extends State {
itemCount: totalCount + 1,
itemBuilder: (BuildContext context, int i) {
if (i == 0) {
- return (directChats.isEmpty ||
- selectMode == SelectMode.share)
- ? Container()
- : PreferredSize(
- preferredSize:
- Size.fromHeight(90),
- child: Container(
- height: 82,
- child: ListView.builder(
- scrollDirection:
- Axis.horizontal,
- itemCount: directChats.length,
- itemBuilder:
- (BuildContext context,
+ return Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ ConnectionStatusHeader(),
+ (directChats.isEmpty ||
+ selectMode ==
+ SelectMode.share)
+ ? Container()
+ : PreferredSize(
+ preferredSize:
+ Size.fromHeight(90),
+ child: Container(
+ height: 82,
+ child: ListView.builder(
+ scrollDirection:
+ Axis.horizontal,
+ itemCount:
+ directChats.length,
+ itemBuilder: (BuildContext
+ context,
int i) =>
PresenceListItem(
directChats[i]),
+ ),
+ ),
),
- ),
- );
+ ],
+ );
}
i--;
return i < rooms.length
From 2ce6ac6b95b2740bd260aecebe0eb21d9f408fc3 Mon Sep 17 00:00:00 2001
From: Christian Pauly
Date: Sat, 4 Jul 2020 12:17:31 +0200
Subject: [PATCH 52/89] Dont request history on chat open
---
lib/views/chat.dart | 3 ---
1 file changed, 3 deletions(-)
diff --git a/lib/views/chat.dart b/lib/views/chat.dart
index 70c6c53..e364bc8 100644
--- a/lib/views/chat.dart
+++ b/lib/views/chat.dart
@@ -157,9 +157,6 @@ class _ChatState extends State<_Chat> {
if (timeline.events.isNotEmpty) {
unawaited(room.sendReadReceipt(timeline.events.first.eventId));
}
- if (timeline.events.length < _loadHistoryCount) {
- requestHistory();
- }
}
updateView();
return true;
From 4dcbc4ec1cfe2095efa9bb23c698b98d2d87efce Mon Sep 17 00:00:00 2001
From: Milo Ivir
Date: Sat, 4 Jul 2020 18:09:01 +0000
Subject: [PATCH 53/89] Added translation using Weblate (Croatian)
---
lib/l10n/intl_hr.arb | 1592 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1592 insertions(+)
create mode 100644 lib/l10n/intl_hr.arb
diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb
new file mode 100644
index 0000000..f598ebb
--- /dev/null
+++ b/lib/l10n/intl_hr.arb
@@ -0,0 +1,1592 @@
+{
+ "@@last_modified": "2020-06-25T16:02:16.297192",
+ "About": "",
+ "@About": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Accept": "",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "acceptedTheInvitation": "",
+ "@acceptedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Account": "",
+ "@Account": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Account informations": "",
+ "@Account informations": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "activatedEndToEndEncryption": "",
+ "@activatedEndToEndEncryption": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Add a group description": "",
+ "@Add a group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Admin": "",
+ "@Admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "alias": "",
+ "@alias": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Already have an account?": "",
+ "@Already have an account?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Anyone can join": "",
+ "@Anyone can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archive": "",
+ "@Archive": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archived Room": "",
+ "@Archived Room": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are guest users allowed to join": "",
+ "@Are guest users allowed to join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are you sure?": "",
+ "@Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSCache": "",
+ "@askSSSSCache": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSSign": "",
+ "@askSSSSSign": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSVerify": "",
+ "@askSSSSVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askVerificationRequest": "",
+ "@askVerificationRequest": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Authentication": "",
+ "@Authentication": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Avatar has been changed": "",
+ "@Avatar has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Ban from chat": "",
+ "@Ban from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Banned": "",
+ "@Banned": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "bannedUser": "",
+ "@bannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Block Device": "",
+ "@Block Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "byDefaultYouWillBeConnectedTo": "",
+ "@byDefaultYouWillBeConnectedTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "cachedKeys": "",
+ "@cachedKeys": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Cancel": "",
+ "@Cancel": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheChatAvatar": "",
+ "@changedTheChatAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheChatNameTo": "",
+ "@changedTheChatNameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "chatname": {}
+ }
+ },
+ "changedTheChatDescriptionTo": "",
+ "@changedTheChatDescriptionTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "description": {}
+ }
+ },
+ "changedTheChatPermissions": "",
+ "@changedTheChatPermissions": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheDisplaynameTo": "",
+ "@changedTheDisplaynameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "displayname": {}
+ }
+ },
+ "Change the homeserver": "",
+ "@Change the homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheGuestAccessRules": "",
+ "@changedTheGuestAccessRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheGuestAccessRulesTo": "",
+ "@changedTheGuestAccessRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheHistoryVisibility": "",
+ "@changedTheHistoryVisibility": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheHistoryVisibilityTo": "",
+ "@changedTheHistoryVisibilityTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheJoinRules": "",
+ "@changedTheJoinRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheJoinRulesTo": "",
+ "@changedTheJoinRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "joinRules": {}
+ }
+ },
+ "changedTheProfileAvatar": "",
+ "@changedTheProfileAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomAliases": "",
+ "@changedTheRoomAliases": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomInvitationLink": "",
+ "@changedTheRoomInvitationLink": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Changelog": "",
+ "@Changelog": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the name of the group": "",
+ "@Change the name of the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change wallpaper": "",
+ "@Change wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the server": "",
+ "@Change the server": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "The encryption has been corrupted": "",
+ "@The encryption has been corrupted": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat": "",
+ "@Chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat details": "",
+ "@Chat details": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a strong password": "",
+ "@Choose a strong password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a username": "",
+ "@Choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Close": "",
+ "@Close": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareEmojiMatch": "",
+ "@compareEmojiMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareNumbersMatch": "",
+ "@compareNumbersMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Confirm": "",
+ "@Confirm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connect": "",
+ "@Connect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connection attempt failed": "",
+ "@Connection attempt failed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Contact has been invited to the group": "",
+ "@Contact has been invited to the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Content viewer": "",
+ "@Content viewer": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copied to clipboard": "",
+ "@Copied to clipboard": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copy": "",
+ "@Copy": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "couldNotDecryptMessage": "",
+ "@couldNotDecryptMessage": {
+ "type": "text",
+ "placeholders": {
+ "error": {}
+ }
+ },
+ "Could not set avatar": "",
+ "@Could not set avatar": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Could not set displayname": "",
+ "@Could not set displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "countParticipants": "",
+ "@countParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Create": "",
+ "@Create": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Create account now": "",
+ "@Create account now": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "createdTheChat": "",
+ "@createdTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Create new group": "",
+ "@Create new group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningDisabled": "",
+ "@crossSigningDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningEnabled": "",
+ "@crossSigningEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Currently active": "",
+ "@Currently active": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "dateAndTimeOfDay": "",
+ "@dateAndTimeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "date": {},
+ "timeOfDay": {}
+ }
+ },
+ "dateWithoutYear": "",
+ "@dateWithoutYear": {
+ "type": "text",
+ "placeholders": {
+ "month": {},
+ "day": {}
+ }
+ },
+ "dateWithYear": "",
+ "@dateWithYear": {
+ "type": "text",
+ "placeholders": {
+ "year": {},
+ "month": {},
+ "day": {}
+ }
+ },
+ "Delete": "",
+ "@Delete": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Delete message": "",
+ "@Delete message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Deny": "",
+ "@Deny": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Device": "",
+ "@Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Devices": "",
+ "@Devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Discard picture": "",
+ "@Discard picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Displayname has been changed": "",
+ "@Displayname has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Download file": "",
+ "@Download file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit displayname": "",
+ "@Edit displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote Settings": "",
+ "@Emote Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote shortcode": "",
+ "@Emote shortcode": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteWarnNeedToPick": "",
+ "@emoteWarnNeedToPick": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteExists": "",
+ "@emoteExists": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteInvalid": "",
+ "@emoteInvalid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Empty chat": "",
+ "@Empty chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "@You won't be able to disable the encryption anymore. Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption": "",
+ "@Encryption": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption algorithm": "",
+ "@Encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption is not enabled": "",
+ "@Encryption is not enabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End-to-end encryption settings": "",
+ "@End-to-end encryption settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a group name": "",
+ "@Enter a group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a username": "",
+ "@Enter a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter your homeserver": "",
+ "@Enter your homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File name": "",
+ "@File name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File size": "",
+ "@File size": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "FluffyChat": "",
+ "@FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Forward": "",
+ "@Forward": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Friday": "",
+ "@Friday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From joining": "",
+ "@From joining": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From the invitation": "",
+ "@From the invitation": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group": "",
+ "@Group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description": "",
+ "@Group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description has been changed": "",
+ "@Group description has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group is public": "",
+ "@Group is public": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "groupWith": "",
+ "@groupWith": {
+ "type": "text",
+ "placeholders": {
+ "displayname": {}
+ }
+ },
+ "Guests are forbidden": "",
+ "@Guests are forbidden": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Guests can join": "",
+ "@Guests can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "hasWithdrawnTheInvitationFor": "",
+ "@hasWithdrawnTheInvitationFor": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Help": "",
+ "@Help": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Homeserver is not compatible": "",
+ "@Homeserver is not compatible": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "ID": "",
+ "@ID": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Identity": "",
+ "@Identity": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "incorrectPassphraseOrKey": "",
+ "@incorrectPassphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Invite contact": "",
+ "@Invite contact": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteContactToGroup": "",
+ "@inviteContactToGroup": {
+ "type": "text",
+ "placeholders": {
+ "groupName": {}
+ }
+ },
+ "Invited": "",
+ "@Invited": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteText": "",
+ "@inviteText": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "link": {}
+ }
+ },
+ "invitedUser": "",
+ "@invitedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Invited users only": "",
+ "@Invited users only": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "isDeviceKeyCorrect": "",
+ "@isDeviceKeyCorrect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "is typing...": "",
+ "@is typing...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit Jitsi instance": "",
+ "@Edit Jitsi instance": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "joinedTheChat": "",
+ "@joinedTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "keysCached": "",
+ "@keysCached": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysMissing": "",
+ "@keysMissing": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "kicked": "",
+ "@kicked": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "kickedAndBanned": "",
+ "@kickedAndBanned": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Kick from chat": "",
+ "@Kick from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Leave": "",
+ "@Leave": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Left the chat": "",
+ "@Left the chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Logout": "",
+ "@Logout": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userLeftTheChat": "",
+ "@userLeftTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "lastActiveAgo": "",
+ "@lastActiveAgo": {
+ "type": "text",
+ "placeholders": {
+ "localizedTimeShort": {}
+ }
+ },
+ "Last seen IP": "",
+ "@Last seen IP": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "License": "",
+ "@License": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Loading... Please wait": "",
+ "@Loading... Please wait": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Load more...": "",
+ "@Load more...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "loadCountMoreParticipants": "",
+ "@loadCountMoreParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Login": "",
+ "@Login": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "logInTo": "",
+ "@logInTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "Make a moderator": "",
+ "@Make a moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make an admin": "",
+ "@Make an admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make sure the identifier is valid": "",
+ "@Make sure the identifier is valid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Message will be removed for all participants": "",
+ "@Message will be removed for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Moderator": "",
+ "@Moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Monday": "",
+ "@Monday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Mute chat": "",
+ "@Mute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New message in FluffyChat": "",
+ "@New message in FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New private chat": "",
+ "@New private chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "newVerificationRequest": "",
+ "@newVerificationRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noCrossSignBootstrap": "",
+ "@noCrossSignBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noMegolmBootstrap": "",
+ "@noMegolmBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "None": "",
+ "@None": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No emotes found. 😕": "",
+ "@No emotes found. 😕": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No permission": "",
+ "@No permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No rooms found...": "",
+ "@No rooms found...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Not supported in web": "",
+ "@Not supported in web": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "numberSelected": "",
+ "@numberSelected": {
+ "type": "text",
+ "placeholders": {
+ "number": {}
+ }
+ },
+ "ok": "",
+ "@ok": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupDisabled": "",
+ "@onlineKeyBackupDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupEnabled": "",
+ "@onlineKeyBackupEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Oops something went wrong...": "",
+ "@Oops something went wrong...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open app to read messages": "",
+ "@Open app to read messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open camera": "",
+ "@Open camera": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "(Optional) Group name": "",
+ "@(Optional) Group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Participating user devices": "",
+ "@Participating user devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "passphraseOrKey": "",
+ "@passphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Password": "",
+ "@Password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Pick image": "",
+ "@Pick image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "play": "",
+ "@play": {
+ "type": "text",
+ "placeholders": {
+ "fileName": {}
+ }
+ },
+ "Please choose a username": "",
+ "@Please choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter a matrix identifier": "",
+ "@Please enter a matrix identifier": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your password": "",
+ "@Please enter your password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your username": "",
+ "@Please enter your username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Public Rooms": "",
+ "@Public Rooms": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reject": "",
+ "@Reject": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Rejoin": "",
+ "@Rejoin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Render rich message content": "",
+ "@Render rich message content": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Recording": "",
+ "@Recording": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "redactedAnEvent": "",
+ "@redactedAnEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "rejectedTheInvitation": "",
+ "@rejectedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove all other devices": "",
+ "@Remove all other devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "removedBy": "",
+ "@removedBy": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove device": "",
+ "@Remove device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove exile": "",
+ "@Remove exile": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Revoke all permissions": "",
+ "@Revoke all permissions": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove": "",
+ "@Remove": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove message": "",
+ "@Remove message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reply": "",
+ "@Reply": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request permission": "",
+ "@Request permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request to read older messages": "",
+ "@Request to read older messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Room has been upgraded": "",
+ "@Room has been upgraded": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Saturday": "",
+ "@Saturday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Share": "",
+ "@Share": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sharedTheLocation": "",
+ "@sharedTheLocation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Search for a chat": "",
+ "@Search for a chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Seen a long time ago": "",
+ "@Seen a long time ago": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "seenByUser": "",
+ "@seenByUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "seenByUserAndUser": "",
+ "@seenByUserAndUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "seenByUserAndCountOthers": "",
+ "@seenByUserAndCountOthers": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "Send": "",
+ "@Send": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send a message": "",
+ "@Send a message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send file": "",
+ "@Send file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send image": "",
+ "@Send image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sentAFile": "",
+ "@sentAFile": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAnAudio": "",
+ "@sentAnAudio": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAPicture": "",
+ "@sentAPicture": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentASticker": "",
+ "@sentASticker": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAVideo": "",
+ "@sentAVideo": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sessionVerified": "",
+ "@sessionVerified": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set a profile picture": "",
+ "@Set a profile picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set group description": "",
+ "@Set group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set invitation link": "",
+ "@Set invitation link": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set status": "",
+ "@Set status": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Settings": "",
+ "@Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sign up": "",
+ "@Sign up": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Skip": "",
+ "@Skip": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change your style": "",
+ "@Change your style": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "System": "",
+ "@System": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "How are you today?": "",
+ "@How are you today?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Light": "",
+ "@Light": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Dark": "",
+ "@Dark": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Use Amoled compatible colors?": "",
+ "@Use Amoled compatible colors?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Source code": "",
+ "@Source code": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Start your first chat :-)": "",
+ "@Start your first chat :-)": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Submit": "",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sunday": "",
+ "@Sunday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Donate": "",
+ "@Donate": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tap to show menu": "",
+ "@Tap to show menu": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Don't Match": "",
+ "@They Don't Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Match": "",
+ "@They Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "This room has been archived.": "",
+ "@This room has been archived.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Thursday": "",
+ "@Thursday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "timeOfDay": "",
+ "@timeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "hours12": {},
+ "hours24": {},
+ "minutes": {},
+ "suffix": {}
+ }
+ },
+ "title": "",
+ "@title": {
+ "description": "Title for the application",
+ "type": "text",
+ "placeholders": {}
+ },
+ "Try to send again": "",
+ "@Try to send again": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tuesday": "",
+ "@Tuesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unbannedUser": "",
+ "@unbannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Unblock Device": "",
+ "@Unblock Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unmute chat": "",
+ "@Unmute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown device": "",
+ "@Unknown device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown encryption algorithm": "",
+ "@Unknown encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownSessionVerify": "",
+ "@unknownSessionVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownEvent": "",
+ "@unknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "type": {}
+ }
+ },
+ "unreadChats": "",
+ "@unreadChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadCount": {}
+ }
+ },
+ "unreadMessages": "",
+ "@unreadMessages": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {}
+ }
+ },
+ "unreadMessagesInChats": "",
+ "@unreadMessagesInChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {},
+ "unreadChats": {}
+ }
+ },
+ "userAndOthersAreTyping": "",
+ "@userAndOthersAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "userAndUserAreTyping": "",
+ "@userAndUserAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "Username": "",
+ "@Username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userIsTyping": "",
+ "@userIsTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "userSentUnknownEvent": "",
+ "@userSentUnknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "type": {}
+ }
+ },
+ "Verify": "",
+ "@Verify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyManual": "",
+ "@verifyManual": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifiedSession": "",
+ "@verifiedSession": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyStart": "",
+ "@verifyStart": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifySuccess": "",
+ "@verifySuccess": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyTitle": "",
+ "@verifyTitle": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Verify User": "",
+ "@Verify User": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Video call": "",
+ "@Video call": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for all participants": "",
+ "@Visible for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for everyone": "",
+ "@Visible for everyone": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visibility of the chat history": "",
+ "@Visibility of the chat history": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Voice message": "",
+ "@Voice message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerAcceptRequest": "",
+ "@waitingPartnerAcceptRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerEmoji": "",
+ "@waitingPartnerEmoji": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerNumbers": "",
+ "@waitingPartnerNumbers": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wallpaper": "",
+ "@Wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "@End to end encryption is currently in Beta! Use at your own risk!": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wednesday": "",
+ "@Wednesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Welcome to the cutest instant messenger in the matrix network.": "",
+ "@Welcome to the cutest instant messenger in the matrix network.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Who is allowed to join this group": "",
+ "@Who is allowed to join this group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Write a message...": "",
+ "@Write a message...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Yes": "",
+ "@Yes": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You": "",
+ "@You": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are invited to this chat": "",
+ "@You are invited to this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are no longer participating in this chat": "",
+ "@You are no longer participating in this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You cannot invite yourself": "",
+ "@You cannot invite yourself": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You have been banned from this chat": "",
+ "@You have been banned from this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Your own username": "",
+ "@Your own username": {
+ "type": "text",
+ "placeholders": {}
+ }
+}
From 35f2202e9054fb3f474a7c930851ec51086d781f Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Sun, 5 Jul 2020 18:41:27 +0200
Subject: [PATCH 54/89] Strip reply fallback before passing to html renderer
---
lib/components/html_message.dart | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/lib/components/html_message.dart b/lib/components/html_message.dart
index ece16a8..2008ee0 100644
--- a/lib/components/html_message.dart
+++ b/lib/components/html_message.dart
@@ -21,11 +21,19 @@ class HtmlMessage extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ // riot-web is notorious for creating bad reply fallback events from invalid messages which, if
+ // not handled properly, can lead to impersination. As such, we strip the entire `` tags
+ // here already, to prevent that from happening.
+ // We do *not* do this in an AST and just with simple regex here, as riot-web tends to create
+ // miss-matching tags, and this way we actually correctly identify what we want to strip and, well,
+ // strip it.
+ final renderHtml = html.replaceAll(RegExp('.*<\/mx-reply>'), '');
+
// there is no need to pre-validate the html, as we validate it while rendering
final themeData = Theme.of(context);
return Html(
- data: html,
+ data: renderHtml,
defaultTextStyle: defaultTextStyle,
linkStyle: linkStyle ??
themeData.textTheme.bodyText2.copyWith(
From bf8667d50cc7eec585a499919bbd64edf7ae48a2 Mon Sep 17 00:00:00 2001
From: Milo Ivir
Date: Sat, 4 Jul 2020 18:41:41 +0000
Subject: [PATCH 55/89] Translated using Weblate (German)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/de/
---
lib/l10n/intl_de.arb | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb
index effbcf2..c996436 100644
--- a/lib/l10n/intl_de.arb
+++ b/lib/l10n/intl_de.arb
@@ -89,7 +89,7 @@
"type": "text",
"placeholders": {}
},
- "Banned": "Banned",
+ "Banned": "Verbannt",
"@Banned": {
"type": "text",
"placeholders": {}
@@ -102,7 +102,7 @@
"targetName": {}
}
},
- "byDefaultYouWillBeConnectedTo": "Standardmäßig wirst Du mit {Homeserver} verbunden",
+ "byDefaultYouWillBeConnectedTo": "Standardmäßig wirst Du mit {homeserver} verbunden",
"@byDefaultYouWillBeConnectedTo": {
"type": "text",
"placeholders": {
@@ -223,7 +223,7 @@
"username": {}
}
},
- "Changelog": "Changelog",
+ "Changelog": "Protokoll der Änderungen",
"@Changelog": {
"type": "text",
"placeholders": {}
@@ -332,7 +332,7 @@
"count": {}
}
},
- "Create": "Create",
+ "Create": "Erstellen",
"@Create": {
"type": "text",
"placeholders": {}
@@ -367,7 +367,7 @@
"timeOfDay": {}
}
},
- "dateWithoutYear": "{day}.{month}",
+ "dateWithoutYear": "{day}. {month}",
"@dateWithoutYear": {
"type": "text",
"placeholders": {
@@ -375,7 +375,7 @@
"day": {}
}
},
- "dateWithYear": "{day}.{month}.{year}",
+ "dateWithYear": "{day}. {month}. {year}",
"@dateWithYear": {
"type": "text",
"placeholders": {
@@ -599,7 +599,7 @@
"type": "text",
"placeholders": {}
},
- "inviteContactToGroup": "Kontakt zu {groupName} einladen",
+ "inviteContactToGroup": "Kontakt in die Gruppe {groupName} einladen",
"@inviteContactToGroup": {
"type": "text",
"placeholders": {
@@ -680,7 +680,7 @@
"type": "text",
"placeholders": {}
},
- "Logout": "Logout",
+ "Logout": "Abmelden",
"@Logout": {
"type": "text",
"placeholders": {}
@@ -692,7 +692,7 @@
"username": {}
}
},
- "lastActiveAgo": "Zuletzt gesehen: {localizedTimeShort}",
+ "lastActiveAgo": "Zuletzt aktiv: {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
@@ -860,7 +860,7 @@
"type": "text",
"placeholders": {}
},
- "play": "Play {fileName}",
+ "play": "{fileName} abspielen",
"@play": {
"type": "text",
"placeholders": {
@@ -990,7 +990,7 @@
"username": {}
}
},
- "Search for a chat": "Chats durchsuchen",
+ "Search for a chat": "Chat suchen",
"@Search for a chat": {
"type": "text",
"placeholders": {}
@@ -1217,7 +1217,7 @@
"type": "text",
"placeholders": {}
},
- "unknownEvent": "Unbekanntes Event '{type}'",
+ "unknownEvent": "Unbekanntes Ereignis '{type}'",
"@unknownEvent": {
"type": "text",
"placeholders": {
@@ -1557,7 +1557,7 @@
"type": "text",
"placeholders": {}
},
- "askVerificationRequest": "Nehme Verifikationsanfrage von {username} an?",
+ "askVerificationRequest": "Diese Bestätigungsanfrage von {username} annehmen?",
"@askVerificationRequest": {
"type": "text",
"placeholders": {
@@ -1583,5 +1583,10 @@
"@Accept": {
"type": "text",
"placeholders": {}
+ },
+ "Submit": "Absenden",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
}
}
From 8e4027f96ac8c77d4db7d1338bd07174bd87bc91 Mon Sep 17 00:00:00 2001
From: Shogo Takata
Date: Mon, 6 Jul 2020 15:41:43 +0000
Subject: [PATCH 56/89] Added translation using Weblate (Japanese)
---
lib/l10n/intl_ja.arb | 1592 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1592 insertions(+)
create mode 100644 lib/l10n/intl_ja.arb
diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb
new file mode 100644
index 0000000..f598ebb
--- /dev/null
+++ b/lib/l10n/intl_ja.arb
@@ -0,0 +1,1592 @@
+{
+ "@@last_modified": "2020-06-25T16:02:16.297192",
+ "About": "",
+ "@About": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Accept": "",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "acceptedTheInvitation": "",
+ "@acceptedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Account": "",
+ "@Account": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Account informations": "",
+ "@Account informations": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "activatedEndToEndEncryption": "",
+ "@activatedEndToEndEncryption": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Add a group description": "",
+ "@Add a group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Admin": "",
+ "@Admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "alias": "",
+ "@alias": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Already have an account?": "",
+ "@Already have an account?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Anyone can join": "",
+ "@Anyone can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archive": "",
+ "@Archive": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archived Room": "",
+ "@Archived Room": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are guest users allowed to join": "",
+ "@Are guest users allowed to join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are you sure?": "",
+ "@Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSCache": "",
+ "@askSSSSCache": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSSign": "",
+ "@askSSSSSign": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSVerify": "",
+ "@askSSSSVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askVerificationRequest": "",
+ "@askVerificationRequest": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Authentication": "",
+ "@Authentication": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Avatar has been changed": "",
+ "@Avatar has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Ban from chat": "",
+ "@Ban from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Banned": "",
+ "@Banned": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "bannedUser": "",
+ "@bannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Block Device": "",
+ "@Block Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "byDefaultYouWillBeConnectedTo": "",
+ "@byDefaultYouWillBeConnectedTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "cachedKeys": "",
+ "@cachedKeys": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Cancel": "",
+ "@Cancel": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheChatAvatar": "",
+ "@changedTheChatAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheChatNameTo": "",
+ "@changedTheChatNameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "chatname": {}
+ }
+ },
+ "changedTheChatDescriptionTo": "",
+ "@changedTheChatDescriptionTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "description": {}
+ }
+ },
+ "changedTheChatPermissions": "",
+ "@changedTheChatPermissions": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheDisplaynameTo": "",
+ "@changedTheDisplaynameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "displayname": {}
+ }
+ },
+ "Change the homeserver": "",
+ "@Change the homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheGuestAccessRules": "",
+ "@changedTheGuestAccessRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheGuestAccessRulesTo": "",
+ "@changedTheGuestAccessRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheHistoryVisibility": "",
+ "@changedTheHistoryVisibility": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheHistoryVisibilityTo": "",
+ "@changedTheHistoryVisibilityTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheJoinRules": "",
+ "@changedTheJoinRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheJoinRulesTo": "",
+ "@changedTheJoinRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "joinRules": {}
+ }
+ },
+ "changedTheProfileAvatar": "",
+ "@changedTheProfileAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomAliases": "",
+ "@changedTheRoomAliases": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomInvitationLink": "",
+ "@changedTheRoomInvitationLink": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Changelog": "",
+ "@Changelog": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the name of the group": "",
+ "@Change the name of the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change wallpaper": "",
+ "@Change wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the server": "",
+ "@Change the server": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "The encryption has been corrupted": "",
+ "@The encryption has been corrupted": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat": "",
+ "@Chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat details": "",
+ "@Chat details": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a strong password": "",
+ "@Choose a strong password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a username": "",
+ "@Choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Close": "",
+ "@Close": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareEmojiMatch": "",
+ "@compareEmojiMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareNumbersMatch": "",
+ "@compareNumbersMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Confirm": "",
+ "@Confirm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connect": "",
+ "@Connect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connection attempt failed": "",
+ "@Connection attempt failed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Contact has been invited to the group": "",
+ "@Contact has been invited to the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Content viewer": "",
+ "@Content viewer": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copied to clipboard": "",
+ "@Copied to clipboard": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copy": "",
+ "@Copy": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "couldNotDecryptMessage": "",
+ "@couldNotDecryptMessage": {
+ "type": "text",
+ "placeholders": {
+ "error": {}
+ }
+ },
+ "Could not set avatar": "",
+ "@Could not set avatar": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Could not set displayname": "",
+ "@Could not set displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "countParticipants": "",
+ "@countParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Create": "",
+ "@Create": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Create account now": "",
+ "@Create account now": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "createdTheChat": "",
+ "@createdTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Create new group": "",
+ "@Create new group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningDisabled": "",
+ "@crossSigningDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningEnabled": "",
+ "@crossSigningEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Currently active": "",
+ "@Currently active": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "dateAndTimeOfDay": "",
+ "@dateAndTimeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "date": {},
+ "timeOfDay": {}
+ }
+ },
+ "dateWithoutYear": "",
+ "@dateWithoutYear": {
+ "type": "text",
+ "placeholders": {
+ "month": {},
+ "day": {}
+ }
+ },
+ "dateWithYear": "",
+ "@dateWithYear": {
+ "type": "text",
+ "placeholders": {
+ "year": {},
+ "month": {},
+ "day": {}
+ }
+ },
+ "Delete": "",
+ "@Delete": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Delete message": "",
+ "@Delete message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Deny": "",
+ "@Deny": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Device": "",
+ "@Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Devices": "",
+ "@Devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Discard picture": "",
+ "@Discard picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Displayname has been changed": "",
+ "@Displayname has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Download file": "",
+ "@Download file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit displayname": "",
+ "@Edit displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote Settings": "",
+ "@Emote Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote shortcode": "",
+ "@Emote shortcode": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteWarnNeedToPick": "",
+ "@emoteWarnNeedToPick": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteExists": "",
+ "@emoteExists": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteInvalid": "",
+ "@emoteInvalid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Empty chat": "",
+ "@Empty chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "@You won't be able to disable the encryption anymore. Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption": "",
+ "@Encryption": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption algorithm": "",
+ "@Encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption is not enabled": "",
+ "@Encryption is not enabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End-to-end encryption settings": "",
+ "@End-to-end encryption settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a group name": "",
+ "@Enter a group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a username": "",
+ "@Enter a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter your homeserver": "",
+ "@Enter your homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File name": "",
+ "@File name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File size": "",
+ "@File size": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "FluffyChat": "",
+ "@FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Forward": "",
+ "@Forward": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Friday": "",
+ "@Friday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From joining": "",
+ "@From joining": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From the invitation": "",
+ "@From the invitation": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group": "",
+ "@Group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description": "",
+ "@Group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description has been changed": "",
+ "@Group description has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group is public": "",
+ "@Group is public": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "groupWith": "",
+ "@groupWith": {
+ "type": "text",
+ "placeholders": {
+ "displayname": {}
+ }
+ },
+ "Guests are forbidden": "",
+ "@Guests are forbidden": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Guests can join": "",
+ "@Guests can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "hasWithdrawnTheInvitationFor": "",
+ "@hasWithdrawnTheInvitationFor": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Help": "",
+ "@Help": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Homeserver is not compatible": "",
+ "@Homeserver is not compatible": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "ID": "",
+ "@ID": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Identity": "",
+ "@Identity": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "incorrectPassphraseOrKey": "",
+ "@incorrectPassphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Invite contact": "",
+ "@Invite contact": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteContactToGroup": "",
+ "@inviteContactToGroup": {
+ "type": "text",
+ "placeholders": {
+ "groupName": {}
+ }
+ },
+ "Invited": "",
+ "@Invited": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteText": "",
+ "@inviteText": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "link": {}
+ }
+ },
+ "invitedUser": "",
+ "@invitedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Invited users only": "",
+ "@Invited users only": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "isDeviceKeyCorrect": "",
+ "@isDeviceKeyCorrect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "is typing...": "",
+ "@is typing...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit Jitsi instance": "",
+ "@Edit Jitsi instance": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "joinedTheChat": "",
+ "@joinedTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "keysCached": "",
+ "@keysCached": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysMissing": "",
+ "@keysMissing": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "kicked": "",
+ "@kicked": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "kickedAndBanned": "",
+ "@kickedAndBanned": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Kick from chat": "",
+ "@Kick from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Leave": "",
+ "@Leave": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Left the chat": "",
+ "@Left the chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Logout": "",
+ "@Logout": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userLeftTheChat": "",
+ "@userLeftTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "lastActiveAgo": "",
+ "@lastActiveAgo": {
+ "type": "text",
+ "placeholders": {
+ "localizedTimeShort": {}
+ }
+ },
+ "Last seen IP": "",
+ "@Last seen IP": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "License": "",
+ "@License": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Loading... Please wait": "",
+ "@Loading... Please wait": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Load more...": "",
+ "@Load more...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "loadCountMoreParticipants": "",
+ "@loadCountMoreParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Login": "",
+ "@Login": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "logInTo": "",
+ "@logInTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "Make a moderator": "",
+ "@Make a moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make an admin": "",
+ "@Make an admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make sure the identifier is valid": "",
+ "@Make sure the identifier is valid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Message will be removed for all participants": "",
+ "@Message will be removed for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Moderator": "",
+ "@Moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Monday": "",
+ "@Monday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Mute chat": "",
+ "@Mute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New message in FluffyChat": "",
+ "@New message in FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New private chat": "",
+ "@New private chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "newVerificationRequest": "",
+ "@newVerificationRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noCrossSignBootstrap": "",
+ "@noCrossSignBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noMegolmBootstrap": "",
+ "@noMegolmBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "None": "",
+ "@None": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No emotes found. 😕": "",
+ "@No emotes found. 😕": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No permission": "",
+ "@No permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No rooms found...": "",
+ "@No rooms found...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Not supported in web": "",
+ "@Not supported in web": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "numberSelected": "",
+ "@numberSelected": {
+ "type": "text",
+ "placeholders": {
+ "number": {}
+ }
+ },
+ "ok": "",
+ "@ok": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupDisabled": "",
+ "@onlineKeyBackupDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupEnabled": "",
+ "@onlineKeyBackupEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Oops something went wrong...": "",
+ "@Oops something went wrong...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open app to read messages": "",
+ "@Open app to read messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open camera": "",
+ "@Open camera": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "(Optional) Group name": "",
+ "@(Optional) Group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Participating user devices": "",
+ "@Participating user devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "passphraseOrKey": "",
+ "@passphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Password": "",
+ "@Password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Pick image": "",
+ "@Pick image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "play": "",
+ "@play": {
+ "type": "text",
+ "placeholders": {
+ "fileName": {}
+ }
+ },
+ "Please choose a username": "",
+ "@Please choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter a matrix identifier": "",
+ "@Please enter a matrix identifier": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your password": "",
+ "@Please enter your password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your username": "",
+ "@Please enter your username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Public Rooms": "",
+ "@Public Rooms": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reject": "",
+ "@Reject": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Rejoin": "",
+ "@Rejoin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Render rich message content": "",
+ "@Render rich message content": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Recording": "",
+ "@Recording": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "redactedAnEvent": "",
+ "@redactedAnEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "rejectedTheInvitation": "",
+ "@rejectedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove all other devices": "",
+ "@Remove all other devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "removedBy": "",
+ "@removedBy": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove device": "",
+ "@Remove device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove exile": "",
+ "@Remove exile": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Revoke all permissions": "",
+ "@Revoke all permissions": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove": "",
+ "@Remove": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove message": "",
+ "@Remove message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reply": "",
+ "@Reply": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request permission": "",
+ "@Request permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request to read older messages": "",
+ "@Request to read older messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Room has been upgraded": "",
+ "@Room has been upgraded": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Saturday": "",
+ "@Saturday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Share": "",
+ "@Share": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sharedTheLocation": "",
+ "@sharedTheLocation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Search for a chat": "",
+ "@Search for a chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Seen a long time ago": "",
+ "@Seen a long time ago": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "seenByUser": "",
+ "@seenByUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "seenByUserAndUser": "",
+ "@seenByUserAndUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "seenByUserAndCountOthers": "",
+ "@seenByUserAndCountOthers": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "Send": "",
+ "@Send": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send a message": "",
+ "@Send a message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send file": "",
+ "@Send file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send image": "",
+ "@Send image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sentAFile": "",
+ "@sentAFile": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAnAudio": "",
+ "@sentAnAudio": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAPicture": "",
+ "@sentAPicture": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentASticker": "",
+ "@sentASticker": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAVideo": "",
+ "@sentAVideo": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sessionVerified": "",
+ "@sessionVerified": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set a profile picture": "",
+ "@Set a profile picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set group description": "",
+ "@Set group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set invitation link": "",
+ "@Set invitation link": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set status": "",
+ "@Set status": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Settings": "",
+ "@Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sign up": "",
+ "@Sign up": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Skip": "",
+ "@Skip": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change your style": "",
+ "@Change your style": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "System": "",
+ "@System": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "How are you today?": "",
+ "@How are you today?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Light": "",
+ "@Light": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Dark": "",
+ "@Dark": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Use Amoled compatible colors?": "",
+ "@Use Amoled compatible colors?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Source code": "",
+ "@Source code": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Start your first chat :-)": "",
+ "@Start your first chat :-)": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Submit": "",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sunday": "",
+ "@Sunday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Donate": "",
+ "@Donate": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tap to show menu": "",
+ "@Tap to show menu": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Don't Match": "",
+ "@They Don't Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Match": "",
+ "@They Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "This room has been archived.": "",
+ "@This room has been archived.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Thursday": "",
+ "@Thursday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "timeOfDay": "",
+ "@timeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "hours12": {},
+ "hours24": {},
+ "minutes": {},
+ "suffix": {}
+ }
+ },
+ "title": "",
+ "@title": {
+ "description": "Title for the application",
+ "type": "text",
+ "placeholders": {}
+ },
+ "Try to send again": "",
+ "@Try to send again": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tuesday": "",
+ "@Tuesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unbannedUser": "",
+ "@unbannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Unblock Device": "",
+ "@Unblock Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unmute chat": "",
+ "@Unmute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown device": "",
+ "@Unknown device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown encryption algorithm": "",
+ "@Unknown encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownSessionVerify": "",
+ "@unknownSessionVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownEvent": "",
+ "@unknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "type": {}
+ }
+ },
+ "unreadChats": "",
+ "@unreadChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadCount": {}
+ }
+ },
+ "unreadMessages": "",
+ "@unreadMessages": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {}
+ }
+ },
+ "unreadMessagesInChats": "",
+ "@unreadMessagesInChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {},
+ "unreadChats": {}
+ }
+ },
+ "userAndOthersAreTyping": "",
+ "@userAndOthersAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "userAndUserAreTyping": "",
+ "@userAndUserAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "Username": "",
+ "@Username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userIsTyping": "",
+ "@userIsTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "userSentUnknownEvent": "",
+ "@userSentUnknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "type": {}
+ }
+ },
+ "Verify": "",
+ "@Verify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyManual": "",
+ "@verifyManual": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifiedSession": "",
+ "@verifiedSession": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyStart": "",
+ "@verifyStart": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifySuccess": "",
+ "@verifySuccess": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyTitle": "",
+ "@verifyTitle": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Verify User": "",
+ "@Verify User": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Video call": "",
+ "@Video call": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for all participants": "",
+ "@Visible for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for everyone": "",
+ "@Visible for everyone": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visibility of the chat history": "",
+ "@Visibility of the chat history": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Voice message": "",
+ "@Voice message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerAcceptRequest": "",
+ "@waitingPartnerAcceptRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerEmoji": "",
+ "@waitingPartnerEmoji": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerNumbers": "",
+ "@waitingPartnerNumbers": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wallpaper": "",
+ "@Wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "@End to end encryption is currently in Beta! Use at your own risk!": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wednesday": "",
+ "@Wednesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Welcome to the cutest instant messenger in the matrix network.": "",
+ "@Welcome to the cutest instant messenger in the matrix network.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Who is allowed to join this group": "",
+ "@Who is allowed to join this group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Write a message...": "",
+ "@Write a message...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Yes": "",
+ "@Yes": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You": "",
+ "@You": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are invited to this chat": "",
+ "@You are invited to this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are no longer participating in this chat": "",
+ "@You are no longer participating in this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You cannot invite yourself": "",
+ "@You cannot invite yourself": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You have been banned from this chat": "",
+ "@You have been banned from this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Your own username": "",
+ "@Your own username": {
+ "type": "text",
+ "placeholders": {}
+ }
+}
From 641de6fb28f4ca4c742089300f4da74aac6ea061 Mon Sep 17 00:00:00 2001
From: Milo Ivir
Date: Mon, 6 Jul 2020 12:04:29 +0000
Subject: [PATCH 57/89] Translated using Weblate (Croatian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/hr/
---
lib/l10n/intl_hr.arb | 576 +++++++++++++++++++++----------------------
1 file changed, 288 insertions(+), 288 deletions(-)
diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb
index f598ebb..422de1a 100644
--- a/lib/l10n/intl_hr.arb
+++ b/lib/l10n/intl_hr.arb
@@ -1,127 +1,127 @@
{
"@@last_modified": "2020-06-25T16:02:16.297192",
- "About": "",
+ "About": "Informacije",
"@About": {
"type": "text",
"placeholders": {}
},
- "Accept": "",
+ "Accept": "Prihvati",
"@Accept": {
"type": "text",
"placeholders": {}
},
- "acceptedTheInvitation": "",
+ "acceptedTheInvitation": "{username} je prihvatio/la poziv",
"@acceptedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Account": "",
+ "Account": "Račun",
"@Account": {
"type": "text",
"placeholders": {}
},
- "Account informations": "",
+ "Account informations": "Podaci računa",
"@Account informations": {
"type": "text",
"placeholders": {}
},
- "activatedEndToEndEncryption": "",
+ "activatedEndToEndEncryption": "{username} je aktivirao/la obostrano šifriranje",
"@activatedEndToEndEncryption": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Add a group description": "",
+ "Add a group description": "Dodaj opis grupe",
"@Add a group description": {
"type": "text",
"placeholders": {}
},
- "Admin": "",
+ "Admin": "Administrator",
"@Admin": {
"type": "text",
"placeholders": {}
},
- "alias": "",
+ "alias": "pseudonim",
"@alias": {
"type": "text",
"placeholders": {}
},
- "Already have an account?": "",
+ "Already have an account?": "Već imaš račun?",
"@Already have an account?": {
"type": "text",
"placeholders": {}
},
- "Anyone can join": "",
+ "Anyone can join": "Svatko se može pridružiti",
"@Anyone can join": {
"type": "text",
"placeholders": {}
},
- "Archive": "",
+ "Archive": "Arhiva",
"@Archive": {
"type": "text",
"placeholders": {}
},
- "Archived Room": "",
+ "Archived Room": "Arhivirana soba",
"@Archived Room": {
"type": "text",
"placeholders": {}
},
- "Are guest users allowed to join": "",
+ "Are guest users allowed to join": "Smiju li se gosti pridružiti grupi",
"@Are guest users allowed to join": {
"type": "text",
"placeholders": {}
},
- "Are you sure?": "",
+ "Are you sure?": "Sigurno?",
"@Are you sure?": {
"type": "text",
"placeholders": {}
},
- "askSSSSCache": "",
+ "askSSSSCache": "Upiši svoju sigurnosnu lozinku ili ključ za obnavljanje, kako bi se ključevi spremili u predmemoriju.",
"@askSSSSCache": {
"type": "text",
"placeholders": {}
},
- "askSSSSSign": "",
+ "askSSSSSign": "Za potpisivanje druge osobe, upiši svoju sigurnosnu lozinku ili ključ za obnavljanje.",
"@askSSSSSign": {
"type": "text",
"placeholders": {}
},
- "askSSSSVerify": "",
+ "askSSSSVerify": "Za potvrđivanje tvoje sesije, upiši svoju sigurnosnu lozinku ili ključ za obnavljanje.",
"@askSSSSVerify": {
"type": "text",
"placeholders": {}
},
- "askVerificationRequest": "",
+ "askVerificationRequest": "Prihvatiti ovaj zahtjev za potvrđivanje od {username}?",
"@askVerificationRequest": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Authentication": "",
+ "Authentication": "Autentifikacija",
"@Authentication": {
"type": "text",
"placeholders": {}
},
- "Avatar has been changed": "",
+ "Avatar has been changed": "Avatar je promijenjen",
"@Avatar has been changed": {
"type": "text",
"placeholders": {}
},
- "Ban from chat": "",
+ "Ban from chat": "Isključi iz chata",
"@Ban from chat": {
"type": "text",
"placeholders": {}
},
- "Banned": "",
+ "Banned": "Isključen",
"@Banned": {
"type": "text",
"placeholders": {}
},
- "bannedUser": "",
+ "bannedUser": "{username} je isključio/la {targetName}",
"@bannedUser": {
"type": "text",
"placeholders": {
@@ -129,36 +129,36 @@
"targetName": {}
}
},
- "Block Device": "",
+ "Block Device": "Blokiraj uređaj",
"@Block Device": {
"type": "text",
"placeholders": {}
},
- "byDefaultYouWillBeConnectedTo": "",
+ "byDefaultYouWillBeConnectedTo": "Standardno ćeš biti povezan/a s {homeserver}",
"@byDefaultYouWillBeConnectedTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "cachedKeys": "",
+ "cachedKeys": "Uspješno međuspremljeni ključevi!",
"@cachedKeys": {
"type": "text",
"placeholders": {}
},
- "Cancel": "",
+ "Cancel": "Odustani",
"@Cancel": {
"type": "text",
"placeholders": {}
},
- "changedTheChatAvatar": "",
+ "changedTheChatAvatar": "{username} je promijenio/la avatar chata",
"@changedTheChatAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheChatNameTo": "",
+ "changedTheChatNameTo": "{username} je promijenio/la ime chata u: „{chatname}”",
"@changedTheChatNameTo": {
"type": "text",
"placeholders": {
@@ -166,7 +166,7 @@
"chatname": {}
}
},
- "changedTheChatDescriptionTo": "",
+ "changedTheChatDescriptionTo": "{username} je promijenio/la opis chata u: „{description}”",
"@changedTheChatDescriptionTo": {
"type": "text",
"placeholders": {
@@ -174,14 +174,14 @@
"description": {}
}
},
- "changedTheChatPermissions": "",
+ "changedTheChatPermissions": "{username} je promijenio/la dozvole chata",
"@changedTheChatPermissions": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheDisplaynameTo": "",
+ "changedTheDisplaynameTo": "{username} je promijenio/la prikazano ime u: {displayname}",
"@changedTheDisplaynameTo": {
"type": "text",
"placeholders": {
@@ -189,19 +189,19 @@
"displayname": {}
}
},
- "Change the homeserver": "",
+ "Change the homeserver": "Promijeni domaćeg poslužitelja",
"@Change the homeserver": {
"type": "text",
"placeholders": {}
},
- "changedTheGuestAccessRules": "",
+ "changedTheGuestAccessRules": "{username} je promijenio/la pravila pristupa za goste",
"@changedTheGuestAccessRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheGuestAccessRulesTo": "",
+ "changedTheGuestAccessRulesTo": "{username} je promijenio/la pravila pristupa za goste u: {rules}",
"@changedTheGuestAccessRulesTo": {
"type": "text",
"placeholders": {
@@ -209,14 +209,14 @@
"rules": {}
}
},
- "changedTheHistoryVisibility": "",
+ "changedTheHistoryVisibility": "{username} je promijenio/la vidljivost kronologije",
"@changedTheHistoryVisibility": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheHistoryVisibilityTo": "",
+ "changedTheHistoryVisibilityTo": "{username} je promijenio/la vidljivost kronologije u: {rules}",
"@changedTheHistoryVisibilityTo": {
"type": "text",
"placeholders": {
@@ -224,14 +224,14 @@
"rules": {}
}
},
- "changedTheJoinRules": "",
+ "changedTheJoinRules": "{username} je promijenio/la pravila pridruživanja",
"@changedTheJoinRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheJoinRulesTo": "",
+ "changedTheJoinRulesTo": "{username} je promijenio/la pravila pridruživanja u: {joinRules}",
"@changedTheJoinRulesTo": {
"type": "text",
"placeholders": {
@@ -239,184 +239,184 @@
"joinRules": {}
}
},
- "changedTheProfileAvatar": "",
+ "changedTheProfileAvatar": "{username} je promijenio/la avatar profila",
"@changedTheProfileAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomAliases": "",
+ "changedTheRoomAliases": "{username} je promijenio/la pseudonime soba",
"@changedTheRoomAliases": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomInvitationLink": "",
+ "changedTheRoomInvitationLink": "{username} je promijenio/la poveznicu poziva",
"@changedTheRoomInvitationLink": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Changelog": "",
+ "Changelog": "Zapis promjena",
"@Changelog": {
"type": "text",
"placeholders": {}
},
- "Change the name of the group": "",
+ "Change the name of the group": "Promijeni ime grupe",
"@Change the name of the group": {
"type": "text",
"placeholders": {}
},
- "Change wallpaper": "",
+ "Change wallpaper": "Promijeni sliku pozadine",
"@Change wallpaper": {
"type": "text",
"placeholders": {}
},
- "Change the server": "",
+ "Change the server": "Promijeni poslužitelja",
"@Change the server": {
"type": "text",
"placeholders": {}
},
- "The encryption has been corrupted": "",
+ "The encryption has been corrupted": "Šifriranje je oštećeno",
"@The encryption has been corrupted": {
"type": "text",
"placeholders": {}
},
- "Chat": "",
+ "Chat": "Chat",
"@Chat": {
"type": "text",
"placeholders": {}
},
- "Chat details": "",
+ "Chat details": "Detalji chata",
"@Chat details": {
"type": "text",
"placeholders": {}
},
- "Choose a strong password": "",
+ "Choose a strong password": "Odaberi snažnu lozinku",
"@Choose a strong password": {
"type": "text",
"placeholders": {}
},
- "Choose a username": "",
+ "Choose a username": "Odaberi korisničko ime",
"@Choose a username": {
"type": "text",
"placeholders": {}
},
- "Close": "",
+ "Close": "Zatvori",
"@Close": {
"type": "text",
"placeholders": {}
},
- "compareEmojiMatch": "",
+ "compareEmojiMatch": "Usporedi i provjeri, poklapaju li se sljedeći emojiji s onima drugog uređaja:",
"@compareEmojiMatch": {
"type": "text",
"placeholders": {}
},
- "compareNumbersMatch": "",
+ "compareNumbersMatch": "Usporedi i provjeri, poklapaju li se sljedeći brojevi s onima drugog uređaja:",
"@compareNumbersMatch": {
"type": "text",
"placeholders": {}
},
- "Confirm": "",
+ "Confirm": "Potvrdi",
"@Confirm": {
"type": "text",
"placeholders": {}
},
- "Connect": "",
+ "Connect": "Spoji",
"@Connect": {
"type": "text",
"placeholders": {}
},
- "Connection attempt failed": "",
+ "Connection attempt failed": "Neuspio pokušaj povezivanja",
"@Connection attempt failed": {
"type": "text",
"placeholders": {}
},
- "Contact has been invited to the group": "",
+ "Contact has been invited to the group": "Kontakt je pozvan u grupu",
"@Contact has been invited to the group": {
"type": "text",
"placeholders": {}
},
- "Content viewer": "",
+ "Content viewer": "Prikazivač sadržaja",
"@Content viewer": {
"type": "text",
"placeholders": {}
},
- "Copied to clipboard": "",
+ "Copied to clipboard": "Kopirano u međuspremnik",
"@Copied to clipboard": {
"type": "text",
"placeholders": {}
},
- "Copy": "",
+ "Copy": "Kopiraj",
"@Copy": {
"type": "text",
"placeholders": {}
},
- "couldNotDecryptMessage": "",
+ "couldNotDecryptMessage": "Neuspjelo dešifriranje poruke: {error}",
"@couldNotDecryptMessage": {
"type": "text",
"placeholders": {
"error": {}
}
},
- "Could not set avatar": "",
+ "Could not set avatar": "Neuspjelo postavljanje avatara",
"@Could not set avatar": {
"type": "text",
"placeholders": {}
},
- "Could not set displayname": "",
+ "Could not set displayname": "Neuspjelo postavljanje prikaznog imena",
"@Could not set displayname": {
"type": "text",
"placeholders": {}
},
- "countParticipants": "",
+ "countParticipants": "{count} sudionika",
"@countParticipants": {
"type": "text",
"placeholders": {
"count": {}
}
},
- "Create": "",
+ "Create": "Stvori",
"@Create": {
"type": "text",
"placeholders": {}
},
- "Create account now": "",
+ "Create account now": "Stvori račun sada",
"@Create account now": {
"type": "text",
"placeholders": {}
},
- "createdTheChat": "",
+ "createdTheChat": "{username} je stvorio/la chat",
"@createdTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Create new group": "",
+ "Create new group": "Stvori novu grupu",
"@Create new group": {
"type": "text",
"placeholders": {}
},
- "crossSigningDisabled": "",
+ "crossSigningDisabled": "Unakrsno potpisivanje je deaktivirano",
"@crossSigningDisabled": {
"type": "text",
"placeholders": {}
},
- "crossSigningEnabled": "",
+ "crossSigningEnabled": "Unakrsno potpisivanje je aktivirano",
"@crossSigningEnabled": {
"type": "text",
"placeholders": {}
},
- "Currently active": "",
+ "Currently active": "Trenutačno aktivni",
"@Currently active": {
"type": "text",
"placeholders": {}
},
- "dateAndTimeOfDay": "",
+ "dateAndTimeOfDay": "{date}, {timeOfDay}",
"@dateAndTimeOfDay": {
"type": "text",
"placeholders": {
@@ -424,7 +424,7 @@
"timeOfDay": {}
}
},
- "dateWithoutYear": "",
+ "dateWithoutYear": "{day}. {month}.",
"@dateWithoutYear": {
"type": "text",
"placeholders": {
@@ -432,7 +432,7 @@
"day": {}
}
},
- "dateWithYear": "",
+ "dateWithYear": "{day}. {month}. {year}.",
"@dateWithYear": {
"type": "text",
"placeholders": {
@@ -441,194 +441,194 @@
"day": {}
}
},
- "Delete": "",
+ "Delete": "Izbriži",
"@Delete": {
"type": "text",
"placeholders": {}
},
- "Delete message": "",
+ "Delete message": "Izbriži poruku",
"@Delete message": {
"type": "text",
"placeholders": {}
},
- "Deny": "",
+ "Deny": "Odbij",
"@Deny": {
"type": "text",
"placeholders": {}
},
- "Device": "",
+ "Device": "Uređaj",
"@Device": {
"type": "text",
"placeholders": {}
},
- "Devices": "",
+ "Devices": "Uređaji",
"@Devices": {
"type": "text",
"placeholders": {}
},
- "Discard picture": "",
+ "Discard picture": "Odbaci sliku",
"@Discard picture": {
"type": "text",
"placeholders": {}
},
- "Displayname has been changed": "",
+ "Displayname has been changed": "Prikazno ime je promijenjeno",
"@Displayname has been changed": {
"type": "text",
"placeholders": {}
},
- "Download file": "",
+ "Download file": "Preuzmi datoteku",
"@Download file": {
"type": "text",
"placeholders": {}
},
- "Edit displayname": "",
+ "Edit displayname": "Uredi prikazano ime",
"@Edit displayname": {
"type": "text",
"placeholders": {}
},
- "Emote Settings": "",
+ "Emote Settings": "Postavke emojija",
"@Emote Settings": {
"type": "text",
"placeholders": {}
},
- "Emote shortcode": "",
+ "Emote shortcode": "Kratica emota",
"@Emote shortcode": {
"type": "text",
"placeholders": {}
},
- "emoteWarnNeedToPick": "",
+ "emoteWarnNeedToPick": "Moraš odabrati jednu kraticu emota i sliku!",
"@emoteWarnNeedToPick": {
"type": "text",
"placeholders": {}
},
- "emoteExists": "",
+ "emoteExists": "Emot već postoji!",
"@emoteExists": {
"type": "text",
"placeholders": {}
},
- "emoteInvalid": "",
+ "emoteInvalid": "Neispravna kratica emota!",
"@emoteInvalid": {
"type": "text",
"placeholders": {}
},
- "Empty chat": "",
+ "Empty chat": "Prazan chat",
"@Empty chat": {
"type": "text",
"placeholders": {}
},
- "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "You won't be able to disable the encryption anymore. Are you sure?": "Više nećeš moći deaktivirati šifriranje. Sigurno?",
"@You won't be able to disable the encryption anymore. Are you sure?": {
"type": "text",
"placeholders": {}
},
- "Encryption": "",
+ "Encryption": "Šifriranje",
"@Encryption": {
"type": "text",
"placeholders": {}
},
- "Encryption algorithm": "",
+ "Encryption algorithm": "Algoritam šifriranja",
"@Encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "Encryption is not enabled": "",
+ "Encryption is not enabled": "Šifriranje nije aktivirano",
"@Encryption is not enabled": {
"type": "text",
"placeholders": {}
},
- "End-to-end encryption settings": "",
+ "End-to-end encryption settings": "Postavke obostranog šifriranja",
"@End-to-end encryption settings": {
"type": "text",
"placeholders": {}
},
- "Enter a group name": "",
+ "Enter a group name": "Upiši ime grupe",
"@Enter a group name": {
"type": "text",
"placeholders": {}
},
- "Enter a username": "",
+ "Enter a username": "Upiši korisničko ime",
"@Enter a username": {
"type": "text",
"placeholders": {}
},
- "Enter your homeserver": "",
+ "Enter your homeserver": "Upiši svog domaćeg poslužitelja",
"@Enter your homeserver": {
"type": "text",
"placeholders": {}
},
- "File name": "",
+ "File name": "Ime datoteke",
"@File name": {
"type": "text",
"placeholders": {}
},
- "File size": "",
+ "File size": "Veličina datoteke",
"@File size": {
"type": "text",
"placeholders": {}
},
- "FluffyChat": "",
+ "FluffyChat": "FluffyChat",
"@FluffyChat": {
"type": "text",
"placeholders": {}
},
- "Forward": "",
+ "Forward": "Proslijedi",
"@Forward": {
"type": "text",
"placeholders": {}
},
- "Friday": "",
+ "Friday": "Petak",
"@Friday": {
"type": "text",
"placeholders": {}
},
- "From joining": "",
+ "From joining": "Od pridruživanja",
"@From joining": {
"type": "text",
"placeholders": {}
},
- "From the invitation": "",
+ "From the invitation": "Od poziva",
"@From the invitation": {
"type": "text",
"placeholders": {}
},
- "Group": "",
+ "Group": "Grupiraj",
"@Group": {
"type": "text",
"placeholders": {}
},
- "Group description": "",
+ "Group description": "Opis grupe",
"@Group description": {
"type": "text",
"placeholders": {}
},
- "Group description has been changed": "",
+ "Group description has been changed": "Opis grupe je promijenjen",
"@Group description has been changed": {
"type": "text",
"placeholders": {}
},
- "Group is public": "",
+ "Group is public": "Grupa je javna",
"@Group is public": {
"type": "text",
"placeholders": {}
},
- "groupWith": "",
+ "groupWith": "Grupa s {displayname}",
"@groupWith": {
"type": "text",
"placeholders": {
"displayname": {}
}
},
- "Guests are forbidden": "",
+ "Guests are forbidden": "Gosti su zabranjeni",
"@Guests are forbidden": {
"type": "text",
"placeholders": {}
},
- "Guests can join": "",
+ "Guests can join": "Gosti se mogu pridružiti",
"@Guests can join": {
"type": "text",
"placeholders": {}
},
- "hasWithdrawnTheInvitationFor": "",
+ "hasWithdrawnTheInvitationFor": "{username} je povukao/la poziv za {targetName}",
"@hasWithdrawnTheInvitationFor": {
"type": "text",
"placeholders": {
@@ -636,49 +636,49 @@
"targetName": {}
}
},
- "Help": "",
+ "Help": "Pomoć",
"@Help": {
"type": "text",
"placeholders": {}
},
- "Homeserver is not compatible": "",
+ "Homeserver is not compatible": "Domaći poslužitelj nije kompatibilan",
"@Homeserver is not compatible": {
"type": "text",
"placeholders": {}
},
- "ID": "",
+ "ID": "ID",
"@ID": {
"type": "text",
"placeholders": {}
},
- "Identity": "",
+ "Identity": "Identitet",
"@Identity": {
"type": "text",
"placeholders": {}
},
- "incorrectPassphraseOrKey": "",
+ "incorrectPassphraseOrKey": "Neispravna lozinka ili ključ za obnavljanje",
"@incorrectPassphraseOrKey": {
"type": "text",
"placeholders": {}
},
- "Invite contact": "",
+ "Invite contact": "Pozovi kontakt",
"@Invite contact": {
"type": "text",
"placeholders": {}
},
- "inviteContactToGroup": "",
+ "inviteContactToGroup": "Pozovi kontakt u {groupName}",
"@inviteContactToGroup": {
"type": "text",
"placeholders": {
"groupName": {}
}
},
- "Invited": "",
+ "Invited": "Pozvan/a",
"@Invited": {
"type": "text",
"placeholders": {}
},
- "inviteText": "",
+ "inviteText": "{username} te je pozvao/la u FluffyChat. \n1. Instaliraj FluffyChat: http://fluffy.chat \n2. Registriraj ili prijavi se \n3. Otvori poveznicu poziva: {link}",
"@inviteText": {
"type": "text",
"placeholders": {
@@ -686,7 +686,7 @@
"link": {}
}
},
- "invitedUser": "",
+ "invitedUser": "{username} je pozvao/la {targetName}",
"@invitedUser": {
"type": "text",
"placeholders": {
@@ -694,44 +694,44 @@
"targetName": {}
}
},
- "Invited users only": "",
+ "Invited users only": "Samo pozvani korisnici",
"@Invited users only": {
"type": "text",
"placeholders": {}
},
- "isDeviceKeyCorrect": "",
+ "isDeviceKeyCorrect": "Je li sljedeći ključ uređaja ispravan?",
"@isDeviceKeyCorrect": {
"type": "text",
"placeholders": {}
},
- "is typing...": "",
+ "is typing...": "piše …",
"@is typing...": {
"type": "text",
"placeholders": {}
},
- "Edit Jitsi instance": "",
+ "Edit Jitsi instance": "Uredi Jitsi primjerak",
"@Edit Jitsi instance": {
"type": "text",
"placeholders": {}
},
- "joinedTheChat": "",
+ "joinedTheChat": "{username} se pridružio/la chatu",
"@joinedTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "keysCached": "",
+ "keysCached": "Ključevi su spremljeni u predmemoriji",
"@keysCached": {
"type": "text",
"placeholders": {}
},
- "keysMissing": "",
+ "keysMissing": "Nedostaju ključevi",
"@keysMissing": {
"type": "text",
"placeholders": {}
},
- "kicked": "",
+ "kicked": "{username} je izbacio/la {targetName}",
"@kicked": {
"type": "text",
"placeholders": {
@@ -739,7 +739,7 @@
"targetName": {}
}
},
- "kickedAndBanned": "",
+ "kickedAndBanned": "{username} je izbacio/la i isključio/la {targetName}",
"@kickedAndBanned": {
"type": "text",
"placeholders": {
@@ -747,394 +747,394 @@
"targetName": {}
}
},
- "Kick from chat": "",
+ "Kick from chat": "Izbaci iz chata",
"@Kick from chat": {
"type": "text",
"placeholders": {}
},
- "Leave": "",
+ "Leave": "Napusti",
"@Leave": {
"type": "text",
"placeholders": {}
},
- "Left the chat": "",
+ "Left the chat": "Napustio/la je chat",
"@Left the chat": {
"type": "text",
"placeholders": {}
},
- "Logout": "",
+ "Logout": "Odjava",
"@Logout": {
"type": "text",
"placeholders": {}
},
- "userLeftTheChat": "",
+ "userLeftTheChat": "{username} je napustio/la chat",
"@userLeftTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "lastActiveAgo": "",
+ "lastActiveAgo": "Zadnja aktivnost: {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
"localizedTimeShort": {}
}
},
- "Last seen IP": "",
+ "Last seen IP": "Zadnji viđeni IP",
"@Last seen IP": {
"type": "text",
"placeholders": {}
},
- "License": "",
+ "License": "Licenca",
"@License": {
"type": "text",
"placeholders": {}
},
- "Loading... Please wait": "",
+ "Loading... Please wait": "Učitava se … Pričekaj",
"@Loading... Please wait": {
"type": "text",
"placeholders": {}
},
- "Load more...": "",
+ "Load more...": "Učitaj više …",
"@Load more...": {
"type": "text",
"placeholders": {}
},
- "loadCountMoreParticipants": "",
+ "loadCountMoreParticipants": "Učitaj još {count} sudionika",
"@loadCountMoreParticipants": {
"type": "text",
"placeholders": {
"count": {}
}
},
- "Login": "",
+ "Login": "Prijava",
"@Login": {
"type": "text",
"placeholders": {}
},
- "logInTo": "",
+ "logInTo": "Prijavi se na {homeserver}",
"@logInTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "Make a moderator": "",
+ "Make a moderator": "Postavi kao voditelja",
"@Make a moderator": {
"type": "text",
"placeholders": {}
},
- "Make an admin": "",
+ "Make an admin": "Postavi kao administratora",
"@Make an admin": {
"type": "text",
"placeholders": {}
},
- "Make sure the identifier is valid": "",
+ "Make sure the identifier is valid": "Provjeri je li identifikator ispravan",
"@Make sure the identifier is valid": {
"type": "text",
"placeholders": {}
},
- "Message will be removed for all participants": "",
+ "Message will be removed for all participants": "Poruke će se ukloniti za sve sudionike",
"@Message will be removed for all participants": {
"type": "text",
"placeholders": {}
},
- "Moderator": "",
+ "Moderator": "Voditelj",
"@Moderator": {
"type": "text",
"placeholders": {}
},
- "Monday": "",
+ "Monday": "Ponedjeljak",
"@Monday": {
"type": "text",
"placeholders": {}
},
- "Mute chat": "",
+ "Mute chat": "Isključi zvuk chata",
"@Mute chat": {
"type": "text",
"placeholders": {}
},
- "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "Za sada trebaš Pantalaimon za obostrano šifriranje.",
"@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
"type": "text",
"placeholders": {}
},
- "New message in FluffyChat": "",
+ "New message in FluffyChat": "Nova poruka u FluffyChatu",
"@New message in FluffyChat": {
"type": "text",
"placeholders": {}
},
- "New private chat": "",
+ "New private chat": "Novi privatni chat",
"@New private chat": {
"type": "text",
"placeholders": {}
},
- "newVerificationRequest": "",
+ "newVerificationRequest": "Novi zahtjev za provjeru!",
"@newVerificationRequest": {
"type": "text",
"placeholders": {}
},
- "noCrossSignBootstrap": "",
+ "noCrossSignBootstrap": "Fluffychat trenutačno ne podržava unakrsno potpisivanje. Aktiviraj je pomoću Riot-a.",
"@noCrossSignBootstrap": {
"type": "text",
"placeholders": {}
},
- "noMegolmBootstrap": "",
+ "noMegolmBootstrap": "Fluffychat trenutačno ne podržava online sigurnosnu kopiju ključeva. Aktiviraj je pomoću Riot-a.",
"@noMegolmBootstrap": {
"type": "text",
"placeholders": {}
},
- "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "Čini se da na mobitelu nemaš google usluge. To je dobra odluka za tvoju privatnost! Za primanje push obavijesti u FluffyChatu preporučujemo upotrebu microG-a: https://microg.org/",
"@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
"type": "text",
"placeholders": {}
},
- "None": "",
+ "None": "Ništa",
"@None": {
"type": "text",
"placeholders": {}
},
- "No emotes found. 😕": "",
+ "No emotes found. 😕": "Nema emota. 😕",
"@No emotes found. 😕": {
"type": "text",
"placeholders": {}
},
- "No permission": "",
+ "No permission": "Bez dozvole",
"@No permission": {
"type": "text",
"placeholders": {}
},
- "No rooms found...": "",
+ "No rooms found...": "Nema pronađenih soba …",
"@No rooms found...": {
"type": "text",
"placeholders": {}
},
- "Not supported in web": "",
+ "Not supported in web": "Nije podržano u internetu",
"@Not supported in web": {
"type": "text",
"placeholders": {}
},
- "numberSelected": "",
+ "numberSelected": "{number} odabrano",
"@numberSelected": {
"type": "text",
"placeholders": {
"number": {}
}
},
- "ok": "",
+ "ok": "u redu",
"@ok": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupDisabled": "",
+ "onlineKeyBackupDisabled": "Online sigurnosna kopija ključeva je deaktivirana",
"@onlineKeyBackupDisabled": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupEnabled": "",
+ "onlineKeyBackupEnabled": "Online sigurnosna kopija ključeva je aktivirana",
"@onlineKeyBackupEnabled": {
"type": "text",
"placeholders": {}
},
- "Oops something went wrong...": "",
+ "Oops something went wrong...": "Ups, došlo je do neke greške …",
"@Oops something went wrong...": {
"type": "text",
"placeholders": {}
},
- "Open app to read messages": "",
+ "Open app to read messages": "Za čitanje poruka, otvori program",
"@Open app to read messages": {
"type": "text",
"placeholders": {}
},
- "Open camera": "",
+ "Open camera": "Otvori kameru",
"@Open camera": {
"type": "text",
"placeholders": {}
},
- "(Optional) Group name": "",
+ "(Optional) Group name": "(Opcionalno) Ime grupe",
"@(Optional) Group name": {
"type": "text",
"placeholders": {}
},
- "Participating user devices": "",
+ "Participating user devices": "Sudjelujući korisnički uređaji",
"@Participating user devices": {
"type": "text",
"placeholders": {}
},
- "passphraseOrKey": "",
+ "passphraseOrKey": "Lozinka ili ključ za obnavljanje",
"@passphraseOrKey": {
"type": "text",
"placeholders": {}
},
- "Password": "",
+ "Password": "Lozinka",
"@Password": {
"type": "text",
"placeholders": {}
},
- "Pick image": "",
+ "Pick image": "Odaberi sliku",
"@Pick image": {
"type": "text",
"placeholders": {}
},
- "play": "",
+ "play": "Sviraj {fileName}",
"@play": {
"type": "text",
"placeholders": {
"fileName": {}
}
},
- "Please choose a username": "",
+ "Please choose a username": "Odaberi korisničko ime",
"@Please choose a username": {
"type": "text",
"placeholders": {}
},
- "Please enter a matrix identifier": "",
+ "Please enter a matrix identifier": "Upiši identifikator matrice",
"@Please enter a matrix identifier": {
"type": "text",
"placeholders": {}
},
- "Please enter your password": "",
+ "Please enter your password": "Upiši svoju lozinku",
"@Please enter your password": {
"type": "text",
"placeholders": {}
},
- "Please enter your username": "",
+ "Please enter your username": "Upiši svoje korisničko ime",
"@Please enter your username": {
"type": "text",
"placeholders": {}
},
- "Public Rooms": "",
+ "Public Rooms": "Javne sobe",
"@Public Rooms": {
"type": "text",
"placeholders": {}
},
- "Reject": "",
+ "Reject": "Odbij",
"@Reject": {
"type": "text",
"placeholders": {}
},
- "Rejoin": "",
+ "Rejoin": "Ponovo se pridruži",
"@Rejoin": {
"type": "text",
"placeholders": {}
},
- "Render rich message content": "",
+ "Render rich message content": "Prikaži formatirani sadržaj poruke",
"@Render rich message content": {
"type": "text",
"placeholders": {}
},
- "Recording": "",
+ "Recording": "Snimanje",
"@Recording": {
"type": "text",
"placeholders": {}
},
- "redactedAnEvent": "",
+ "redactedAnEvent": "{username} je preuredio/la događaj",
"@redactedAnEvent": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "rejectedTheInvitation": "",
+ "rejectedTheInvitation": "{username} je odbio/la poziv",
"@rejectedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove all other devices": "",
+ "Remove all other devices": "Ukloni sve druge uređaje",
"@Remove all other devices": {
"type": "text",
"placeholders": {}
},
- "removedBy": "",
+ "removedBy": "Uklonjeno od {username}",
"@removedBy": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove device": "",
+ "Remove device": "Ukloni uređaj",
"@Remove device": {
"type": "text",
"placeholders": {}
},
- "Remove exile": "",
+ "Remove exile": "Ukloni izbacivanje",
"@Remove exile": {
"type": "text",
"placeholders": {}
},
- "Revoke all permissions": "",
+ "Revoke all permissions": "Opozovi sve dozvole",
"@Revoke all permissions": {
"type": "text",
"placeholders": {}
},
- "Remove": "",
+ "Remove": "Ukloni",
"@Remove": {
"type": "text",
"placeholders": {}
},
- "Remove message": "",
+ "Remove message": "Ukloni poruku",
"@Remove message": {
"type": "text",
"placeholders": {}
},
- "Reply": "",
+ "Reply": "Odgovori",
"@Reply": {
"type": "text",
"placeholders": {}
},
- "Request permission": "",
+ "Request permission": "Zatraži dozvolu",
"@Request permission": {
"type": "text",
"placeholders": {}
},
- "Request to read older messages": "",
+ "Request to read older messages": "Zahtjev za čitanje starijih poruka",
"@Request to read older messages": {
"type": "text",
"placeholders": {}
},
- "Room has been upgraded": "",
+ "Room has been upgraded": "Ova soba je nadograđena",
"@Room has been upgraded": {
"type": "text",
"placeholders": {}
},
- "Saturday": "",
+ "Saturday": "Subota",
"@Saturday": {
"type": "text",
"placeholders": {}
},
- "Share": "",
+ "Share": "Dijeli",
"@Share": {
"type": "text",
"placeholders": {}
},
- "sharedTheLocation": "",
+ "sharedTheLocation": "{username} je dijelio/la mjesto",
"@sharedTheLocation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Search for a chat": "",
+ "Search for a chat": "Traži chat",
"@Search for a chat": {
"type": "text",
"placeholders": {}
},
- "Seen a long time ago": "",
+ "Seen a long time ago": "Viđeno prije dugo vremena",
"@Seen a long time ago": {
"type": "text",
"placeholders": {}
},
- "seenByUser": "",
+ "seenByUser": "Viđeno od {username}",
"@seenByUser": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "seenByUserAndUser": "",
+ "seenByUserAndUser": "Viđeno od {username} i {username2}",
"@seenByUserAndUser": {
"type": "text",
"placeholders": {
@@ -1142,7 +1142,7 @@
"username2": {}
}
},
- "seenByUserAndCountOthers": "",
+ "seenByUserAndCountOthers": "Viđeno od {username} i još {count} korisnika",
"@seenByUserAndCountOthers": {
"type": "text",
"placeholders": {
@@ -1150,182 +1150,182 @@
"count": {}
}
},
- "Send": "",
+ "Send": "Pošalji",
"@Send": {
"type": "text",
"placeholders": {}
},
- "Send a message": "",
+ "Send a message": "Pošalji poruku",
"@Send a message": {
"type": "text",
"placeholders": {}
},
- "Send file": "",
+ "Send file": "Pošalji datoteku",
"@Send file": {
"type": "text",
"placeholders": {}
},
- "Send image": "",
+ "Send image": "Pošalji sliku",
"@Send image": {
"type": "text",
"placeholders": {}
},
- "sentAFile": "",
+ "sentAFile": "{username} ja poslao/la datoteku",
"@sentAFile": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAnAudio": "",
+ "sentAnAudio": "{username} ja poslao/la audio",
"@sentAnAudio": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAPicture": "",
+ "sentAPicture": "{username} ja poslao/la sliku",
"@sentAPicture": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentASticker": "",
+ "sentASticker": "{username} je poslao/la naljepnicu",
"@sentASticker": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAVideo": "",
+ "sentAVideo": "{username} ja poslao/la video",
"@sentAVideo": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sessionVerified": "",
+ "sessionVerified": "Sesija je provjerena",
"@sessionVerified": {
"type": "text",
"placeholders": {}
},
- "Set a profile picture": "",
+ "Set a profile picture": "Postavi sliku profila",
"@Set a profile picture": {
"type": "text",
"placeholders": {}
},
- "Set group description": "",
+ "Set group description": "Postavi opis grupe",
"@Set group description": {
"type": "text",
"placeholders": {}
},
- "Set invitation link": "",
+ "Set invitation link": "Pošalji poveznicu za pozivnicu",
"@Set invitation link": {
"type": "text",
"placeholders": {}
},
- "Set status": "",
+ "Set status": "Postavi stanje",
"@Set status": {
"type": "text",
"placeholders": {}
},
- "Settings": "",
+ "Settings": "Postavke",
"@Settings": {
"type": "text",
"placeholders": {}
},
- "Sign up": "",
+ "Sign up": "Prijavi se",
"@Sign up": {
"type": "text",
"placeholders": {}
},
- "Skip": "",
+ "Skip": "Preskoči",
"@Skip": {
"type": "text",
"placeholders": {}
},
- "Change your style": "",
+ "Change your style": "Promijeni svoj stil",
"@Change your style": {
"type": "text",
"placeholders": {}
},
- "System": "",
+ "System": "Sustav",
"@System": {
"type": "text",
"placeholders": {}
},
- "How are you today?": "",
+ "How are you today?": "Kako si danas?",
"@How are you today?": {
"type": "text",
"placeholders": {}
},
- "Light": "",
+ "Light": "Svjetla",
"@Light": {
"type": "text",
"placeholders": {}
},
- "Dark": "",
+ "Dark": "Tamna",
"@Dark": {
"type": "text",
"placeholders": {}
},
- "Use Amoled compatible colors?": "",
+ "Use Amoled compatible colors?": "Koristiti Amoled kompatibilne boje?",
"@Use Amoled compatible colors?": {
"type": "text",
"placeholders": {}
},
- "Source code": "",
+ "Source code": "Izvorni kȏd",
"@Source code": {
"type": "text",
"placeholders": {}
},
- "Start your first chat :-)": "",
+ "Start your first chat :-)": "Počni svoj prvi chat :-)",
"@Start your first chat :-)": {
"type": "text",
"placeholders": {}
},
- "Submit": "",
+ "Submit": "Pošalji",
"@Submit": {
"type": "text",
"placeholders": {}
},
- "Sunday": "",
+ "Sunday": "Nedjelja",
"@Sunday": {
"type": "text",
"placeholders": {}
},
- "Donate": "",
+ "Donate": "Doniraj",
"@Donate": {
"type": "text",
"placeholders": {}
},
- "Tap to show menu": "",
+ "Tap to show menu": "Dodirni za prikaz izbornika",
"@Tap to show menu": {
"type": "text",
"placeholders": {}
},
- "They Don't Match": "",
+ "They Don't Match": "Ne poklapaju se",
"@They Don't Match": {
"type": "text",
"placeholders": {}
},
- "They Match": "",
+ "They Match": "Poklapaju se",
"@They Match": {
"type": "text",
"placeholders": {}
},
- "This room has been archived.": "",
+ "This room has been archived.": "Ova soba je arhivirana.",
"@This room has been archived.": {
"type": "text",
"placeholders": {}
},
- "Thursday": "",
+ "Thursday": "Četvrtak",
"@Thursday": {
"type": "text",
"placeholders": {}
},
- "timeOfDay": "",
+ "timeOfDay": "{hours24}:{minutes}",
"@timeOfDay": {
"type": "text",
"placeholders": {
@@ -1335,23 +1335,23 @@
"suffix": {}
}
},
- "title": "",
+ "title": "FluffyChat",
"@title": {
"description": "Title for the application",
"type": "text",
"placeholders": {}
},
- "Try to send again": "",
+ "Try to send again": "Pokušaj ponovo poslati",
"@Try to send again": {
"type": "text",
"placeholders": {}
},
- "Tuesday": "",
+ "Tuesday": "Utorak",
"@Tuesday": {
"type": "text",
"placeholders": {}
},
- "unbannedUser": "",
+ "unbannedUser": "{username} je ponovo uključio/la {targetName}",
"@unbannedUser": {
"type": "text",
"placeholders": {
@@ -1359,53 +1359,53 @@
"targetName": {}
}
},
- "Unblock Device": "",
+ "Unblock Device": "Deblokiraj uređaj",
"@Unblock Device": {
"type": "text",
"placeholders": {}
},
- "Unmute chat": "",
+ "Unmute chat": "Uključi zvuk chata",
"@Unmute chat": {
"type": "text",
"placeholders": {}
},
- "Unknown device": "",
+ "Unknown device": "Nepoznat uređaj",
"@Unknown device": {
"type": "text",
"placeholders": {}
},
- "Unknown encryption algorithm": "",
+ "Unknown encryption algorithm": "Nepoznat algoritam šifriranja",
"@Unknown encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "unknownSessionVerify": "",
+ "unknownSessionVerify": "Nepoznata sesija, provjeri",
"@unknownSessionVerify": {
"type": "text",
"placeholders": {}
},
- "unknownEvent": "",
+ "unknownEvent": "Nepoznata vrsta događaja „{type}”",
"@unknownEvent": {
"type": "text",
"placeholders": {
"type": {}
}
},
- "unreadChats": "",
+ "unreadChats": "{unreadCount} nepročitana chata",
"@unreadChats": {
"type": "text",
"placeholders": {
"unreadCount": {}
}
},
- "unreadMessages": "",
+ "unreadMessages": "{unreadEvents} nepročitane poruke",
"@unreadMessages": {
"type": "text",
"placeholders": {
"unreadEvents": {}
}
},
- "unreadMessagesInChats": "",
+ "unreadMessagesInChats": "{unreadEvents} nepročitane poruke u {unreadChats} chata",
"@unreadMessagesInChats": {
"type": "text",
"placeholders": {
@@ -1413,7 +1413,7 @@
"unreadChats": {}
}
},
- "userAndOthersAreTyping": "",
+ "userAndOthersAreTyping": "{username} i još {count} korisnika pišu …",
"@userAndOthersAreTyping": {
"type": "text",
"placeholders": {
@@ -1421,7 +1421,7 @@
"count": {}
}
},
- "userAndUserAreTyping": "",
+ "userAndUserAreTyping": "{username} i {username2} pišu …",
"@userAndUserAreTyping": {
"type": "text",
"placeholders": {
@@ -1429,19 +1429,19 @@
"username2": {}
}
},
- "Username": "",
+ "Username": "Korisničko ime",
"@Username": {
"type": "text",
"placeholders": {}
},
- "userIsTyping": "",
+ "userIsTyping": "{username} piše …",
"@userIsTyping": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "userSentUnknownEvent": "",
+ "userSentUnknownEvent": "{username} ja poslao/la {type} događaj",
"@userSentUnknownEvent": {
"type": "text",
"placeholders": {
@@ -1449,142 +1449,142 @@
"type": {}
}
},
- "Verify": "",
+ "Verify": "Provjeri",
"@Verify": {
"type": "text",
"placeholders": {}
},
- "verifyManual": "",
+ "verifyManual": "Provjeri ručno",
"@verifyManual": {
"type": "text",
"placeholders": {}
},
- "verifiedSession": "",
+ "verifiedSession": "Uspješno provjerena sesija!",
"@verifiedSession": {
"type": "text",
"placeholders": {}
},
- "verifyStart": "",
+ "verifyStart": "Pokreni provjeru",
"@verifyStart": {
"type": "text",
"placeholders": {}
},
- "verifySuccess": "",
+ "verifySuccess": "Uspješno si provjerio/la!",
"@verifySuccess": {
"type": "text",
"placeholders": {}
},
- "verifyTitle": "",
+ "verifyTitle": "Provjeravanje drugog računa",
"@verifyTitle": {
"type": "text",
"placeholders": {}
},
- "Verify User": "",
+ "Verify User": "Provjeri korisnika",
"@Verify User": {
"type": "text",
"placeholders": {}
},
- "Video call": "",
+ "Video call": "Video poziv",
"@Video call": {
"type": "text",
"placeholders": {}
},
- "Visible for all participants": "",
+ "Visible for all participants": "Vidljivo za sve sudionike",
"@Visible for all participants": {
"type": "text",
"placeholders": {}
},
- "Visible for everyone": "",
+ "Visible for everyone": "Vidljivo za sve",
"@Visible for everyone": {
"type": "text",
"placeholders": {}
},
- "Visibility of the chat history": "",
+ "Visibility of the chat history": "Vidljivost kronologije chata",
"@Visibility of the chat history": {
"type": "text",
"placeholders": {}
},
- "Voice message": "",
+ "Voice message": "Glasovna poruka",
"@Voice message": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerAcceptRequest": "",
+ "waitingPartnerAcceptRequest": "Čekanje na partnera, da prihvati zahtjeva …",
"@waitingPartnerAcceptRequest": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerEmoji": "",
+ "waitingPartnerEmoji": "Čekanje na partnera, da prihvati emoji …",
"@waitingPartnerEmoji": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerNumbers": "",
+ "waitingPartnerNumbers": "Čekanje na partnera, da prihvati brojeve …",
"@waitingPartnerNumbers": {
"type": "text",
"placeholders": {}
},
- "Wallpaper": "",
+ "Wallpaper": "Slika pozadine",
"@Wallpaper": {
"type": "text",
"placeholders": {}
},
- "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "End to end encryption is currently in Beta! Use at your own risk!": "Obostrano šifriranje je trenutačno u beta stanju! Koriti na vlastitu odgovornost!",
"@End to end encryption is currently in Beta! Use at your own risk!": {
"type": "text",
"placeholders": {}
},
- "Wednesday": "",
+ "Wednesday": "Srijeda",
"@Wednesday": {
"type": "text",
"placeholders": {}
},
- "Welcome to the cutest instant messenger in the matrix network.": "",
+ "Welcome to the cutest instant messenger in the matrix network.": "Lijep pozdrav u najslađi program za čavrljanje u matrix-mreži.",
"@Welcome to the cutest instant messenger in the matrix network.": {
"type": "text",
"placeholders": {}
},
- "Who is allowed to join this group": "",
+ "Who is allowed to join this group": "Tko se smije pridružiti grupi",
"@Who is allowed to join this group": {
"type": "text",
"placeholders": {}
},
- "Write a message...": "",
+ "Write a message...": "Napiši poruku …",
"@Write a message...": {
"type": "text",
"placeholders": {}
},
- "Yes": "",
+ "Yes": "Da",
"@Yes": {
"type": "text",
"placeholders": {}
},
- "You": "",
+ "You": "Ti",
"@You": {
"type": "text",
"placeholders": {}
},
- "You are invited to this chat": "",
+ "You are invited to this chat": "Pozvan/a si u ovaj chat",
"@You are invited to this chat": {
"type": "text",
"placeholders": {}
},
- "You are no longer participating in this chat": "",
+ "You are no longer participating in this chat": "Više ne sudjeluješ u ovom chatu",
"@You are no longer participating in this chat": {
"type": "text",
"placeholders": {}
},
- "You cannot invite yourself": "",
+ "You cannot invite yourself": "Sebe ne možeš pozvati",
"@You cannot invite yourself": {
"type": "text",
"placeholders": {}
},
- "You have been banned from this chat": "",
+ "You have been banned from this chat": "Isključen/a si iz ovog chata",
"@You have been banned from this chat": {
"type": "text",
"placeholders": {}
},
- "Your own username": "",
+ "Your own username": "Tvoje korisničko ime",
"@Your own username": {
"type": "text",
"placeholders": {}
From dc263f7a5d19772e6688885024e3a20d60c8599e Mon Sep 17 00:00:00 2001
From: Shogo Takata
Date: Tue, 7 Jul 2020 07:10:23 +0000
Subject: [PATCH 58/89] Translated using Weblate (Japanese)
Currently translated at 36.8% (106 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ja/
---
lib/l10n/intl_ja.arb | 212 +++++++++++++++++++++----------------------
1 file changed, 106 insertions(+), 106 deletions(-)
diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb
index f598ebb..47af26a 100644
--- a/lib/l10n/intl_ja.arb
+++ b/lib/l10n/intl_ja.arb
@@ -1,127 +1,127 @@
{
"@@last_modified": "2020-06-25T16:02:16.297192",
- "About": "",
+ "About": "このアプリについて",
"@About": {
"type": "text",
"placeholders": {}
},
- "Accept": "",
+ "Accept": "承諾する",
"@Accept": {
"type": "text",
"placeholders": {}
},
- "acceptedTheInvitation": "",
+ "acceptedTheInvitation": "{username} が招待を承諾しました",
"@acceptedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Account": "",
+ "Account": "アカウント",
"@Account": {
"type": "text",
"placeholders": {}
},
- "Account informations": "",
+ "Account informations": "アカウント情報",
"@Account informations": {
"type": "text",
"placeholders": {}
},
- "activatedEndToEndEncryption": "",
+ "activatedEndToEndEncryption": "{username} がエンドツーエンド暗号化を有効にしました",
"@activatedEndToEndEncryption": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Add a group description": "",
+ "Add a group description": "グループの説明を追加する",
"@Add a group description": {
"type": "text",
"placeholders": {}
},
- "Admin": "",
+ "Admin": "管理者",
"@Admin": {
"type": "text",
"placeholders": {}
},
- "alias": "",
+ "alias": "エイリアス",
"@alias": {
"type": "text",
"placeholders": {}
},
- "Already have an account?": "",
+ "Already have an account?": "アカウントをすでにお持ちですか?",
"@Already have an account?": {
"type": "text",
"placeholders": {}
},
- "Anyone can join": "",
+ "Anyone can join": "誰でも参加できます",
"@Anyone can join": {
"type": "text",
"placeholders": {}
},
- "Archive": "",
+ "Archive": "アーカイブ",
"@Archive": {
"type": "text",
"placeholders": {}
},
- "Archived Room": "",
+ "Archived Room": "アーカイブされた部屋",
"@Archived Room": {
"type": "text",
"placeholders": {}
},
- "Are guest users allowed to join": "",
+ "Are guest users allowed to join": "ゲストユーザーの参加を許可する",
"@Are guest users allowed to join": {
"type": "text",
"placeholders": {}
},
- "Are you sure?": "",
+ "Are you sure?": "これでよろしいですか?",
"@Are you sure?": {
"type": "text",
"placeholders": {}
},
- "askSSSSCache": "",
+ "askSSSSCache": "鍵をキャッシュするためにはパスフレーズやリカバリーキーを入力してください。",
"@askSSSSCache": {
"type": "text",
"placeholders": {}
},
- "askSSSSSign": "",
+ "askSSSSSign": "他の人を署名するためにはパスフレーズやリカバリーキーを入力してください。",
"@askSSSSSign": {
"type": "text",
"placeholders": {}
},
- "askSSSSVerify": "",
+ "askSSSSVerify": "セッションを検証するためにはパスフレーズやリカバリーキーを入力してください。",
"@askSSSSVerify": {
"type": "text",
"placeholders": {}
},
- "askVerificationRequest": "",
+ "askVerificationRequest": "{username} の検証リクエストを承認しますか?",
"@askVerificationRequest": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Authentication": "",
+ "Authentication": "認証",
"@Authentication": {
"type": "text",
"placeholders": {}
},
- "Avatar has been changed": "",
+ "Avatar has been changed": "アバターが変更されました",
"@Avatar has been changed": {
"type": "text",
"placeholders": {}
},
- "Ban from chat": "",
+ "Ban from chat": "チャットからBANする",
"@Ban from chat": {
"type": "text",
"placeholders": {}
},
- "Banned": "",
+ "Banned": "BANされています",
"@Banned": {
"type": "text",
"placeholders": {}
},
- "bannedUser": "",
+ "bannedUser": "{username}が{targetName}をBANしました",
"@bannedUser": {
"type": "text",
"placeholders": {
@@ -129,36 +129,36 @@
"targetName": {}
}
},
- "Block Device": "",
+ "Block Device": "デバイスをブロックする",
"@Block Device": {
"type": "text",
"placeholders": {}
},
- "byDefaultYouWillBeConnectedTo": "",
+ "byDefaultYouWillBeConnectedTo": "デフォルトで{homeserver}に接続されます",
"@byDefaultYouWillBeConnectedTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "cachedKeys": "",
+ "cachedKeys": "鍵のキャッシュに成功しました!",
"@cachedKeys": {
"type": "text",
"placeholders": {}
},
- "Cancel": "",
+ "Cancel": "キャンセル",
"@Cancel": {
"type": "text",
"placeholders": {}
},
- "changedTheChatAvatar": "",
+ "changedTheChatAvatar": "{username}がチャットアバターを変更しました",
"@changedTheChatAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheChatNameTo": "",
+ "changedTheChatNameTo": "{username}がチャットの名前を「{chatname}」に変更しました",
"@changedTheChatNameTo": {
"type": "text",
"placeholders": {
@@ -166,7 +166,7 @@
"chatname": {}
}
},
- "changedTheChatDescriptionTo": "",
+ "changedTheChatDescriptionTo": "{username}がチャットの説明を「{description}」に変更しました",
"@changedTheChatDescriptionTo": {
"type": "text",
"placeholders": {
@@ -174,14 +174,14 @@
"description": {}
}
},
- "changedTheChatPermissions": "",
+ "changedTheChatPermissions": "{username}がチャットの権限を変更しました",
"@changedTheChatPermissions": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheDisplaynameTo": "",
+ "changedTheDisplaynameTo": "{username}が表示名を「{displayname}」に変更しました",
"@changedTheDisplaynameTo": {
"type": "text",
"placeholders": {
@@ -189,19 +189,19 @@
"displayname": {}
}
},
- "Change the homeserver": "",
+ "Change the homeserver": "ホームサーバーの変更",
"@Change the homeserver": {
"type": "text",
"placeholders": {}
},
- "changedTheGuestAccessRules": "",
+ "changedTheGuestAccessRules": "{username}がゲストのアクセスルールを変更しました",
"@changedTheGuestAccessRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheGuestAccessRulesTo": "",
+ "changedTheGuestAccessRulesTo": "{username}がゲストのアクセスルールを{rules}に変更しました",
"@changedTheGuestAccessRulesTo": {
"type": "text",
"placeholders": {
@@ -209,14 +209,14 @@
"rules": {}
}
},
- "changedTheHistoryVisibility": "",
+ "changedTheHistoryVisibility": "{username}が履歴の表示設定を変更しました",
"@changedTheHistoryVisibility": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheHistoryVisibilityTo": "",
+ "changedTheHistoryVisibilityTo": "{username}が履歴の表示設定を{rules}に変更しました",
"@changedTheHistoryVisibilityTo": {
"type": "text",
"placeholders": {
@@ -224,14 +224,14 @@
"rules": {}
}
},
- "changedTheJoinRules": "",
+ "changedTheJoinRules": "{username}が参加ルールを変更しました",
"@changedTheJoinRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheJoinRulesTo": "",
+ "changedTheJoinRulesTo": "{username}が参加ルールを{joinRules}に変更しました",
"@changedTheJoinRulesTo": {
"type": "text",
"placeholders": {
@@ -239,98 +239,98 @@
"joinRules": {}
}
},
- "changedTheProfileAvatar": "",
+ "changedTheProfileAvatar": "{username}がプロフィールのアバターを変更しました",
"@changedTheProfileAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomAliases": "",
+ "changedTheRoomAliases": "{username}が部屋のエイリアスを変更しました",
"@changedTheRoomAliases": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomInvitationLink": "",
+ "changedTheRoomInvitationLink": "{username}が招待リンクを変更しました",
"@changedTheRoomInvitationLink": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Changelog": "",
+ "Changelog": "変更履歴",
"@Changelog": {
"type": "text",
"placeholders": {}
},
- "Change the name of the group": "",
+ "Change the name of the group": "グループの名前を変更する",
"@Change the name of the group": {
"type": "text",
"placeholders": {}
},
- "Change wallpaper": "",
+ "Change wallpaper": "壁紙を変更する",
"@Change wallpaper": {
"type": "text",
"placeholders": {}
},
- "Change the server": "",
+ "Change the server": "サーバーを変更する",
"@Change the server": {
"type": "text",
"placeholders": {}
},
- "The encryption has been corrupted": "",
+ "The encryption has been corrupted": "暗号が破損しています",
"@The encryption has been corrupted": {
"type": "text",
"placeholders": {}
},
- "Chat": "",
+ "Chat": "チャット",
"@Chat": {
"type": "text",
"placeholders": {}
},
- "Chat details": "",
+ "Chat details": "チャットの詳細",
"@Chat details": {
"type": "text",
"placeholders": {}
},
- "Choose a strong password": "",
+ "Choose a strong password": "強いパスワードを選択してください",
"@Choose a strong password": {
"type": "text",
"placeholders": {}
},
- "Choose a username": "",
+ "Choose a username": "ユーザー名を選択してください",
"@Choose a username": {
"type": "text",
"placeholders": {}
},
- "Close": "",
+ "Close": "閉じる",
"@Close": {
"type": "text",
"placeholders": {}
},
- "compareEmojiMatch": "",
+ "compareEmojiMatch": "表示されている絵文字が他のデバイスで表示されているものと一致するか確認してください",
"@compareEmojiMatch": {
"type": "text",
"placeholders": {}
},
- "compareNumbersMatch": "",
+ "compareNumbersMatch": "表示されている数字が他のデバイスで表示されているものと一致するか確認してください",
"@compareNumbersMatch": {
"type": "text",
"placeholders": {}
},
- "Confirm": "",
+ "Confirm": "確認しました",
"@Confirm": {
"type": "text",
"placeholders": {}
},
- "Connect": "",
+ "Connect": "接続",
"@Connect": {
"type": "text",
"placeholders": {}
},
- "Connection attempt failed": "",
+ "Connection attempt failed": "接続が失敗しました",
"@Connection attempt failed": {
"type": "text",
"placeholders": {}
@@ -345,29 +345,29 @@
"type": "text",
"placeholders": {}
},
- "Copied to clipboard": "",
+ "Copied to clipboard": "クリップボードにコピーされました",
"@Copied to clipboard": {
"type": "text",
"placeholders": {}
},
- "Copy": "",
+ "Copy": "コピー",
"@Copy": {
"type": "text",
"placeholders": {}
},
- "couldNotDecryptMessage": "",
+ "couldNotDecryptMessage": "メッセージを解読できませんでした: {error}",
"@couldNotDecryptMessage": {
"type": "text",
"placeholders": {
"error": {}
}
},
- "Could not set avatar": "",
+ "Could not set avatar": "アバターをセットできませんでした",
"@Could not set avatar": {
"type": "text",
"placeholders": {}
},
- "Could not set displayname": "",
+ "Could not set displayname": "表示名をセットできませんでした",
"@Could not set displayname": {
"type": "text",
"placeholders": {}
@@ -379,34 +379,34 @@
"count": {}
}
},
- "Create": "",
+ "Create": "作成",
"@Create": {
"type": "text",
"placeholders": {}
},
- "Create account now": "",
+ "Create account now": "アカウントを作成する",
"@Create account now": {
"type": "text",
"placeholders": {}
},
- "createdTheChat": "",
+ "createdTheChat": "{username}がチャットを作成しました",
"@createdTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Create new group": "",
+ "Create new group": "新しいグループを作成する",
"@Create new group": {
"type": "text",
"placeholders": {}
},
- "crossSigningDisabled": "",
+ "crossSigningDisabled": "相互署名は使えません",
"@crossSigningDisabled": {
"type": "text",
"placeholders": {}
},
- "crossSigningEnabled": "",
+ "crossSigningEnabled": "相互署名が使えます",
"@crossSigningEnabled": {
"type": "text",
"placeholders": {}
@@ -416,7 +416,7 @@
"type": "text",
"placeholders": {}
},
- "dateAndTimeOfDay": "",
+ "dateAndTimeOfDay": "{date}, {timeOfDay}",
"@dateAndTimeOfDay": {
"type": "text",
"placeholders": {
@@ -424,7 +424,7 @@
"timeOfDay": {}
}
},
- "dateWithoutYear": "",
+ "dateWithoutYear": "{month}-{day}",
"@dateWithoutYear": {
"type": "text",
"placeholders": {
@@ -432,7 +432,7 @@
"day": {}
}
},
- "dateWithYear": "",
+ "dateWithYear": "{year}-{month}-{day}",
"@dateWithYear": {
"type": "text",
"placeholders": {
@@ -441,27 +441,27 @@
"day": {}
}
},
- "Delete": "",
+ "Delete": "削除",
"@Delete": {
"type": "text",
"placeholders": {}
},
- "Delete message": "",
+ "Delete message": "メッセージの削除",
"@Delete message": {
"type": "text",
"placeholders": {}
},
- "Deny": "",
+ "Deny": "拒否",
"@Deny": {
"type": "text",
"placeholders": {}
},
- "Device": "",
+ "Device": "デバイス",
"@Device": {
"type": "text",
"placeholders": {}
},
- "Devices": "",
+ "Devices": "デバイス",
"@Devices": {
"type": "text",
"placeholders": {}
@@ -471,17 +471,17 @@
"type": "text",
"placeholders": {}
},
- "Displayname has been changed": "",
+ "Displayname has been changed": "表示名が変更されました",
"@Displayname has been changed": {
"type": "text",
"placeholders": {}
},
- "Download file": "",
+ "Download file": "ファイルのダウンロード",
"@Download file": {
"type": "text",
"placeholders": {}
},
- "Edit displayname": "",
+ "Edit displayname": "表示名を編集",
"@Edit displayname": {
"type": "text",
"placeholders": {}
@@ -511,62 +511,62 @@
"type": "text",
"placeholders": {}
},
- "Empty chat": "",
+ "Empty chat": "空のチャット",
"@Empty chat": {
"type": "text",
"placeholders": {}
},
- "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "You won't be able to disable the encryption anymore. Are you sure?": "一度暗号化を有効にするともとに戻せません。よろしいですか?",
"@You won't be able to disable the encryption anymore. Are you sure?": {
"type": "text",
"placeholders": {}
},
- "Encryption": "",
+ "Encryption": "暗号化",
"@Encryption": {
"type": "text",
"placeholders": {}
},
- "Encryption algorithm": "",
+ "Encryption algorithm": "暗号化アルゴリズム",
"@Encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "Encryption is not enabled": "",
+ "Encryption is not enabled": "暗号化されていません",
"@Encryption is not enabled": {
"type": "text",
"placeholders": {}
},
- "End-to-end encryption settings": "",
+ "End-to-end encryption settings": "エンドツーエンド暗号化設定",
"@End-to-end encryption settings": {
"type": "text",
"placeholders": {}
},
- "Enter a group name": "",
+ "Enter a group name": "グループ名を入力してください",
"@Enter a group name": {
"type": "text",
"placeholders": {}
},
- "Enter a username": "",
+ "Enter a username": "ユーザー名を入力してください",
"@Enter a username": {
"type": "text",
"placeholders": {}
},
- "Enter your homeserver": "",
+ "Enter your homeserver": "ホームサーバーを入力してください",
"@Enter your homeserver": {
"type": "text",
"placeholders": {}
},
- "File name": "",
+ "File name": "ファイル名",
"@File name": {
"type": "text",
"placeholders": {}
},
- "File size": "",
+ "File size": "ファイルサイズ",
"@File size": {
"type": "text",
"placeholders": {}
},
- "FluffyChat": "",
+ "FluffyChat": "FluffyChat",
"@FluffyChat": {
"type": "text",
"placeholders": {}
@@ -576,7 +576,7 @@
"type": "text",
"placeholders": {}
},
- "Friday": "",
+ "Friday": "金曜日",
"@Friday": {
"type": "text",
"placeholders": {}
@@ -591,17 +591,17 @@
"type": "text",
"placeholders": {}
},
- "Group": "",
+ "Group": "グループ",
"@Group": {
"type": "text",
"placeholders": {}
},
- "Group description": "",
+ "Group description": "グループの説明",
"@Group description": {
"type": "text",
"placeholders": {}
},
- "Group description has been changed": "",
+ "Group description has been changed": "グループの説明が変更されました",
"@Group description has been changed": {
"type": "text",
"placeholders": {}
@@ -618,12 +618,12 @@
"displayname": {}
}
},
- "Guests are forbidden": "",
+ "Guests are forbidden": "ゲストは許可されていません",
"@Guests are forbidden": {
"type": "text",
"placeholders": {}
},
- "Guests can join": "",
+ "Guests can join": "ゲストが許可されています",
"@Guests can join": {
"type": "text",
"placeholders": {}
@@ -636,17 +636,17 @@
"targetName": {}
}
},
- "Help": "",
+ "Help": "ヘルプ",
"@Help": {
"type": "text",
"placeholders": {}
},
- "Homeserver is not compatible": "",
+ "Homeserver is not compatible": "このホームサーバーは互換性がありません",
"@Homeserver is not compatible": {
"type": "text",
"placeholders": {}
},
- "ID": "",
+ "ID": "ID",
"@ID": {
"type": "text",
"placeholders": {}
@@ -656,7 +656,7 @@
"type": "text",
"placeholders": {}
},
- "incorrectPassphraseOrKey": "",
+ "incorrectPassphraseOrKey": "パスフレーズかリカバリーキーが間違っています",
"@incorrectPassphraseOrKey": {
"type": "text",
"placeholders": {}
@@ -678,7 +678,7 @@
"type": "text",
"placeholders": {}
},
- "inviteText": "",
+ "inviteText": "{username}がFluffyChatにあなたを招待しました. \n1. FluffyChatをインストールしてください: http://fluffy.chat \n2. 新しくアカウントを作成するかサインインしてください\n3. 招待リンクを開いてください: {link}",
"@inviteText": {
"type": "text",
"placeholders": {
@@ -686,7 +686,7 @@
"link": {}
}
},
- "invitedUser": "",
+ "invitedUser": "{username}が{targetName}を招待しました",
"@invitedUser": {
"type": "text",
"placeholders": {
@@ -694,7 +694,7 @@
"targetName": {}
}
},
- "Invited users only": "",
+ "Invited users only": "招待されたユーザーのみ",
"@Invited users only": {
"type": "text",
"placeholders": {}
@@ -704,7 +704,7 @@
"type": "text",
"placeholders": {}
},
- "is typing...": "",
+ "is typing...": "が入力しています...",
"@is typing...": {
"type": "text",
"placeholders": {}
From a3ed705cecb3d5f9aca532886a139306516fb616 Mon Sep 17 00:00:00 2001
From: Nikets
Date: Thu, 16 Jul 2020 12:35:43 +0200
Subject: [PATCH 59/89] Added translation using Weblate (Russian)
---
lib/l10n/intl_ru.arb | 1592 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1592 insertions(+)
create mode 100644 lib/l10n/intl_ru.arb
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
new file mode 100644
index 0000000..f598ebb
--- /dev/null
+++ b/lib/l10n/intl_ru.arb
@@ -0,0 +1,1592 @@
+{
+ "@@last_modified": "2020-06-25T16:02:16.297192",
+ "About": "",
+ "@About": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Accept": "",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "acceptedTheInvitation": "",
+ "@acceptedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Account": "",
+ "@Account": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Account informations": "",
+ "@Account informations": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "activatedEndToEndEncryption": "",
+ "@activatedEndToEndEncryption": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Add a group description": "",
+ "@Add a group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Admin": "",
+ "@Admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "alias": "",
+ "@alias": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Already have an account?": "",
+ "@Already have an account?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Anyone can join": "",
+ "@Anyone can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archive": "",
+ "@Archive": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archived Room": "",
+ "@Archived Room": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are guest users allowed to join": "",
+ "@Are guest users allowed to join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are you sure?": "",
+ "@Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSCache": "",
+ "@askSSSSCache": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSSign": "",
+ "@askSSSSSign": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSVerify": "",
+ "@askSSSSVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askVerificationRequest": "",
+ "@askVerificationRequest": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Authentication": "",
+ "@Authentication": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Avatar has been changed": "",
+ "@Avatar has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Ban from chat": "",
+ "@Ban from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Banned": "",
+ "@Banned": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "bannedUser": "",
+ "@bannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Block Device": "",
+ "@Block Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "byDefaultYouWillBeConnectedTo": "",
+ "@byDefaultYouWillBeConnectedTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "cachedKeys": "",
+ "@cachedKeys": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Cancel": "",
+ "@Cancel": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheChatAvatar": "",
+ "@changedTheChatAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheChatNameTo": "",
+ "@changedTheChatNameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "chatname": {}
+ }
+ },
+ "changedTheChatDescriptionTo": "",
+ "@changedTheChatDescriptionTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "description": {}
+ }
+ },
+ "changedTheChatPermissions": "",
+ "@changedTheChatPermissions": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheDisplaynameTo": "",
+ "@changedTheDisplaynameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "displayname": {}
+ }
+ },
+ "Change the homeserver": "",
+ "@Change the homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheGuestAccessRules": "",
+ "@changedTheGuestAccessRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheGuestAccessRulesTo": "",
+ "@changedTheGuestAccessRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheHistoryVisibility": "",
+ "@changedTheHistoryVisibility": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheHistoryVisibilityTo": "",
+ "@changedTheHistoryVisibilityTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheJoinRules": "",
+ "@changedTheJoinRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheJoinRulesTo": "",
+ "@changedTheJoinRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "joinRules": {}
+ }
+ },
+ "changedTheProfileAvatar": "",
+ "@changedTheProfileAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomAliases": "",
+ "@changedTheRoomAliases": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomInvitationLink": "",
+ "@changedTheRoomInvitationLink": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Changelog": "",
+ "@Changelog": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the name of the group": "",
+ "@Change the name of the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change wallpaper": "",
+ "@Change wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the server": "",
+ "@Change the server": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "The encryption has been corrupted": "",
+ "@The encryption has been corrupted": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat": "",
+ "@Chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat details": "",
+ "@Chat details": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a strong password": "",
+ "@Choose a strong password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a username": "",
+ "@Choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Close": "",
+ "@Close": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareEmojiMatch": "",
+ "@compareEmojiMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareNumbersMatch": "",
+ "@compareNumbersMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Confirm": "",
+ "@Confirm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connect": "",
+ "@Connect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connection attempt failed": "",
+ "@Connection attempt failed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Contact has been invited to the group": "",
+ "@Contact has been invited to the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Content viewer": "",
+ "@Content viewer": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copied to clipboard": "",
+ "@Copied to clipboard": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copy": "",
+ "@Copy": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "couldNotDecryptMessage": "",
+ "@couldNotDecryptMessage": {
+ "type": "text",
+ "placeholders": {
+ "error": {}
+ }
+ },
+ "Could not set avatar": "",
+ "@Could not set avatar": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Could not set displayname": "",
+ "@Could not set displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "countParticipants": "",
+ "@countParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Create": "",
+ "@Create": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Create account now": "",
+ "@Create account now": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "createdTheChat": "",
+ "@createdTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Create new group": "",
+ "@Create new group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningDisabled": "",
+ "@crossSigningDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningEnabled": "",
+ "@crossSigningEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Currently active": "",
+ "@Currently active": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "dateAndTimeOfDay": "",
+ "@dateAndTimeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "date": {},
+ "timeOfDay": {}
+ }
+ },
+ "dateWithoutYear": "",
+ "@dateWithoutYear": {
+ "type": "text",
+ "placeholders": {
+ "month": {},
+ "day": {}
+ }
+ },
+ "dateWithYear": "",
+ "@dateWithYear": {
+ "type": "text",
+ "placeholders": {
+ "year": {},
+ "month": {},
+ "day": {}
+ }
+ },
+ "Delete": "",
+ "@Delete": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Delete message": "",
+ "@Delete message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Deny": "",
+ "@Deny": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Device": "",
+ "@Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Devices": "",
+ "@Devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Discard picture": "",
+ "@Discard picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Displayname has been changed": "",
+ "@Displayname has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Download file": "",
+ "@Download file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit displayname": "",
+ "@Edit displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote Settings": "",
+ "@Emote Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote shortcode": "",
+ "@Emote shortcode": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteWarnNeedToPick": "",
+ "@emoteWarnNeedToPick": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteExists": "",
+ "@emoteExists": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteInvalid": "",
+ "@emoteInvalid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Empty chat": "",
+ "@Empty chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "@You won't be able to disable the encryption anymore. Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption": "",
+ "@Encryption": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption algorithm": "",
+ "@Encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption is not enabled": "",
+ "@Encryption is not enabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End-to-end encryption settings": "",
+ "@End-to-end encryption settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a group name": "",
+ "@Enter a group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a username": "",
+ "@Enter a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter your homeserver": "",
+ "@Enter your homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File name": "",
+ "@File name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File size": "",
+ "@File size": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "FluffyChat": "",
+ "@FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Forward": "",
+ "@Forward": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Friday": "",
+ "@Friday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From joining": "",
+ "@From joining": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From the invitation": "",
+ "@From the invitation": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group": "",
+ "@Group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description": "",
+ "@Group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description has been changed": "",
+ "@Group description has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group is public": "",
+ "@Group is public": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "groupWith": "",
+ "@groupWith": {
+ "type": "text",
+ "placeholders": {
+ "displayname": {}
+ }
+ },
+ "Guests are forbidden": "",
+ "@Guests are forbidden": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Guests can join": "",
+ "@Guests can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "hasWithdrawnTheInvitationFor": "",
+ "@hasWithdrawnTheInvitationFor": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Help": "",
+ "@Help": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Homeserver is not compatible": "",
+ "@Homeserver is not compatible": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "ID": "",
+ "@ID": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Identity": "",
+ "@Identity": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "incorrectPassphraseOrKey": "",
+ "@incorrectPassphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Invite contact": "",
+ "@Invite contact": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteContactToGroup": "",
+ "@inviteContactToGroup": {
+ "type": "text",
+ "placeholders": {
+ "groupName": {}
+ }
+ },
+ "Invited": "",
+ "@Invited": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteText": "",
+ "@inviteText": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "link": {}
+ }
+ },
+ "invitedUser": "",
+ "@invitedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Invited users only": "",
+ "@Invited users only": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "isDeviceKeyCorrect": "",
+ "@isDeviceKeyCorrect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "is typing...": "",
+ "@is typing...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit Jitsi instance": "",
+ "@Edit Jitsi instance": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "joinedTheChat": "",
+ "@joinedTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "keysCached": "",
+ "@keysCached": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysMissing": "",
+ "@keysMissing": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "kicked": "",
+ "@kicked": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "kickedAndBanned": "",
+ "@kickedAndBanned": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Kick from chat": "",
+ "@Kick from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Leave": "",
+ "@Leave": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Left the chat": "",
+ "@Left the chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Logout": "",
+ "@Logout": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userLeftTheChat": "",
+ "@userLeftTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "lastActiveAgo": "",
+ "@lastActiveAgo": {
+ "type": "text",
+ "placeholders": {
+ "localizedTimeShort": {}
+ }
+ },
+ "Last seen IP": "",
+ "@Last seen IP": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "License": "",
+ "@License": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Loading... Please wait": "",
+ "@Loading... Please wait": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Load more...": "",
+ "@Load more...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "loadCountMoreParticipants": "",
+ "@loadCountMoreParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Login": "",
+ "@Login": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "logInTo": "",
+ "@logInTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "Make a moderator": "",
+ "@Make a moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make an admin": "",
+ "@Make an admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make sure the identifier is valid": "",
+ "@Make sure the identifier is valid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Message will be removed for all participants": "",
+ "@Message will be removed for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Moderator": "",
+ "@Moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Monday": "",
+ "@Monday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Mute chat": "",
+ "@Mute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New message in FluffyChat": "",
+ "@New message in FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New private chat": "",
+ "@New private chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "newVerificationRequest": "",
+ "@newVerificationRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noCrossSignBootstrap": "",
+ "@noCrossSignBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noMegolmBootstrap": "",
+ "@noMegolmBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "None": "",
+ "@None": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No emotes found. 😕": "",
+ "@No emotes found. 😕": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No permission": "",
+ "@No permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No rooms found...": "",
+ "@No rooms found...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Not supported in web": "",
+ "@Not supported in web": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "numberSelected": "",
+ "@numberSelected": {
+ "type": "text",
+ "placeholders": {
+ "number": {}
+ }
+ },
+ "ok": "",
+ "@ok": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupDisabled": "",
+ "@onlineKeyBackupDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupEnabled": "",
+ "@onlineKeyBackupEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Oops something went wrong...": "",
+ "@Oops something went wrong...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open app to read messages": "",
+ "@Open app to read messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open camera": "",
+ "@Open camera": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "(Optional) Group name": "",
+ "@(Optional) Group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Participating user devices": "",
+ "@Participating user devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "passphraseOrKey": "",
+ "@passphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Password": "",
+ "@Password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Pick image": "",
+ "@Pick image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "play": "",
+ "@play": {
+ "type": "text",
+ "placeholders": {
+ "fileName": {}
+ }
+ },
+ "Please choose a username": "",
+ "@Please choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter a matrix identifier": "",
+ "@Please enter a matrix identifier": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your password": "",
+ "@Please enter your password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your username": "",
+ "@Please enter your username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Public Rooms": "",
+ "@Public Rooms": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reject": "",
+ "@Reject": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Rejoin": "",
+ "@Rejoin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Render rich message content": "",
+ "@Render rich message content": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Recording": "",
+ "@Recording": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "redactedAnEvent": "",
+ "@redactedAnEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "rejectedTheInvitation": "",
+ "@rejectedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove all other devices": "",
+ "@Remove all other devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "removedBy": "",
+ "@removedBy": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove device": "",
+ "@Remove device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove exile": "",
+ "@Remove exile": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Revoke all permissions": "",
+ "@Revoke all permissions": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove": "",
+ "@Remove": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove message": "",
+ "@Remove message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reply": "",
+ "@Reply": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request permission": "",
+ "@Request permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request to read older messages": "",
+ "@Request to read older messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Room has been upgraded": "",
+ "@Room has been upgraded": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Saturday": "",
+ "@Saturday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Share": "",
+ "@Share": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sharedTheLocation": "",
+ "@sharedTheLocation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Search for a chat": "",
+ "@Search for a chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Seen a long time ago": "",
+ "@Seen a long time ago": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "seenByUser": "",
+ "@seenByUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "seenByUserAndUser": "",
+ "@seenByUserAndUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "seenByUserAndCountOthers": "",
+ "@seenByUserAndCountOthers": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "Send": "",
+ "@Send": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send a message": "",
+ "@Send a message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send file": "",
+ "@Send file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send image": "",
+ "@Send image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sentAFile": "",
+ "@sentAFile": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAnAudio": "",
+ "@sentAnAudio": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAPicture": "",
+ "@sentAPicture": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentASticker": "",
+ "@sentASticker": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAVideo": "",
+ "@sentAVideo": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sessionVerified": "",
+ "@sessionVerified": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set a profile picture": "",
+ "@Set a profile picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set group description": "",
+ "@Set group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set invitation link": "",
+ "@Set invitation link": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set status": "",
+ "@Set status": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Settings": "",
+ "@Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sign up": "",
+ "@Sign up": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Skip": "",
+ "@Skip": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change your style": "",
+ "@Change your style": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "System": "",
+ "@System": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "How are you today?": "",
+ "@How are you today?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Light": "",
+ "@Light": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Dark": "",
+ "@Dark": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Use Amoled compatible colors?": "",
+ "@Use Amoled compatible colors?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Source code": "",
+ "@Source code": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Start your first chat :-)": "",
+ "@Start your first chat :-)": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Submit": "",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sunday": "",
+ "@Sunday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Donate": "",
+ "@Donate": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tap to show menu": "",
+ "@Tap to show menu": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Don't Match": "",
+ "@They Don't Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Match": "",
+ "@They Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "This room has been archived.": "",
+ "@This room has been archived.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Thursday": "",
+ "@Thursday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "timeOfDay": "",
+ "@timeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "hours12": {},
+ "hours24": {},
+ "minutes": {},
+ "suffix": {}
+ }
+ },
+ "title": "",
+ "@title": {
+ "description": "Title for the application",
+ "type": "text",
+ "placeholders": {}
+ },
+ "Try to send again": "",
+ "@Try to send again": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tuesday": "",
+ "@Tuesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unbannedUser": "",
+ "@unbannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Unblock Device": "",
+ "@Unblock Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unmute chat": "",
+ "@Unmute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown device": "",
+ "@Unknown device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown encryption algorithm": "",
+ "@Unknown encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownSessionVerify": "",
+ "@unknownSessionVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownEvent": "",
+ "@unknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "type": {}
+ }
+ },
+ "unreadChats": "",
+ "@unreadChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadCount": {}
+ }
+ },
+ "unreadMessages": "",
+ "@unreadMessages": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {}
+ }
+ },
+ "unreadMessagesInChats": "",
+ "@unreadMessagesInChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {},
+ "unreadChats": {}
+ }
+ },
+ "userAndOthersAreTyping": "",
+ "@userAndOthersAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "userAndUserAreTyping": "",
+ "@userAndUserAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "Username": "",
+ "@Username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userIsTyping": "",
+ "@userIsTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "userSentUnknownEvent": "",
+ "@userSentUnknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "type": {}
+ }
+ },
+ "Verify": "",
+ "@Verify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyManual": "",
+ "@verifyManual": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifiedSession": "",
+ "@verifiedSession": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyStart": "",
+ "@verifyStart": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifySuccess": "",
+ "@verifySuccess": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyTitle": "",
+ "@verifyTitle": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Verify User": "",
+ "@Verify User": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Video call": "",
+ "@Video call": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for all participants": "",
+ "@Visible for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for everyone": "",
+ "@Visible for everyone": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visibility of the chat history": "",
+ "@Visibility of the chat history": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Voice message": "",
+ "@Voice message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerAcceptRequest": "",
+ "@waitingPartnerAcceptRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerEmoji": "",
+ "@waitingPartnerEmoji": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerNumbers": "",
+ "@waitingPartnerNumbers": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wallpaper": "",
+ "@Wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "@End to end encryption is currently in Beta! Use at your own risk!": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wednesday": "",
+ "@Wednesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Welcome to the cutest instant messenger in the matrix network.": "",
+ "@Welcome to the cutest instant messenger in the matrix network.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Who is allowed to join this group": "",
+ "@Who is allowed to join this group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Write a message...": "",
+ "@Write a message...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Yes": "",
+ "@Yes": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You": "",
+ "@You": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are invited to this chat": "",
+ "@You are invited to this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are no longer participating in this chat": "",
+ "@You are no longer participating in this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You cannot invite yourself": "",
+ "@You cannot invite yourself": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You have been banned from this chat": "",
+ "@You have been banned from this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Your own username": "",
+ "@Your own username": {
+ "type": "text",
+ "placeholders": {}
+ }
+}
From c7e8f81c90e3f58f03b666c0667b7f8cdd19e9cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Xos=C3=A9=20M?=
Date: Thu, 16 Jul 2020 16:12:12 +0200
Subject: [PATCH 60/89] Added translation using Weblate (Galician)
---
lib/l10n/intl_gl.arb | 1592 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1592 insertions(+)
create mode 100644 lib/l10n/intl_gl.arb
diff --git a/lib/l10n/intl_gl.arb b/lib/l10n/intl_gl.arb
new file mode 100644
index 0000000..f598ebb
--- /dev/null
+++ b/lib/l10n/intl_gl.arb
@@ -0,0 +1,1592 @@
+{
+ "@@last_modified": "2020-06-25T16:02:16.297192",
+ "About": "",
+ "@About": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Accept": "",
+ "@Accept": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "acceptedTheInvitation": "",
+ "@acceptedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Account": "",
+ "@Account": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Account informations": "",
+ "@Account informations": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "activatedEndToEndEncryption": "",
+ "@activatedEndToEndEncryption": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Add a group description": "",
+ "@Add a group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Admin": "",
+ "@Admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "alias": "",
+ "@alias": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Already have an account?": "",
+ "@Already have an account?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Anyone can join": "",
+ "@Anyone can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archive": "",
+ "@Archive": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Archived Room": "",
+ "@Archived Room": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are guest users allowed to join": "",
+ "@Are guest users allowed to join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Are you sure?": "",
+ "@Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSCache": "",
+ "@askSSSSCache": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSSign": "",
+ "@askSSSSSign": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askSSSSVerify": "",
+ "@askSSSSVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "askVerificationRequest": "",
+ "@askVerificationRequest": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Authentication": "",
+ "@Authentication": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Avatar has been changed": "",
+ "@Avatar has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Ban from chat": "",
+ "@Ban from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Banned": "",
+ "@Banned": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "bannedUser": "",
+ "@bannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Block Device": "",
+ "@Block Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "byDefaultYouWillBeConnectedTo": "",
+ "@byDefaultYouWillBeConnectedTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "cachedKeys": "",
+ "@cachedKeys": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Cancel": "",
+ "@Cancel": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheChatAvatar": "",
+ "@changedTheChatAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheChatNameTo": "",
+ "@changedTheChatNameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "chatname": {}
+ }
+ },
+ "changedTheChatDescriptionTo": "",
+ "@changedTheChatDescriptionTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "description": {}
+ }
+ },
+ "changedTheChatPermissions": "",
+ "@changedTheChatPermissions": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheDisplaynameTo": "",
+ "@changedTheDisplaynameTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "displayname": {}
+ }
+ },
+ "Change the homeserver": "",
+ "@Change the homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "changedTheGuestAccessRules": "",
+ "@changedTheGuestAccessRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheGuestAccessRulesTo": "",
+ "@changedTheGuestAccessRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheHistoryVisibility": "",
+ "@changedTheHistoryVisibility": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheHistoryVisibilityTo": "",
+ "@changedTheHistoryVisibilityTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "rules": {}
+ }
+ },
+ "changedTheJoinRules": "",
+ "@changedTheJoinRules": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheJoinRulesTo": "",
+ "@changedTheJoinRulesTo": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "joinRules": {}
+ }
+ },
+ "changedTheProfileAvatar": "",
+ "@changedTheProfileAvatar": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomAliases": "",
+ "@changedTheRoomAliases": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "changedTheRoomInvitationLink": "",
+ "@changedTheRoomInvitationLink": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Changelog": "",
+ "@Changelog": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the name of the group": "",
+ "@Change the name of the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change wallpaper": "",
+ "@Change wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change the server": "",
+ "@Change the server": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "The encryption has been corrupted": "",
+ "@The encryption has been corrupted": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat": "",
+ "@Chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Chat details": "",
+ "@Chat details": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a strong password": "",
+ "@Choose a strong password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Choose a username": "",
+ "@Choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Close": "",
+ "@Close": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareEmojiMatch": "",
+ "@compareEmojiMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "compareNumbersMatch": "",
+ "@compareNumbersMatch": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Confirm": "",
+ "@Confirm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connect": "",
+ "@Connect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Connection attempt failed": "",
+ "@Connection attempt failed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Contact has been invited to the group": "",
+ "@Contact has been invited to the group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Content viewer": "",
+ "@Content viewer": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copied to clipboard": "",
+ "@Copied to clipboard": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Copy": "",
+ "@Copy": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "couldNotDecryptMessage": "",
+ "@couldNotDecryptMessage": {
+ "type": "text",
+ "placeholders": {
+ "error": {}
+ }
+ },
+ "Could not set avatar": "",
+ "@Could not set avatar": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Could not set displayname": "",
+ "@Could not set displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "countParticipants": "",
+ "@countParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Create": "",
+ "@Create": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Create account now": "",
+ "@Create account now": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "createdTheChat": "",
+ "@createdTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Create new group": "",
+ "@Create new group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningDisabled": "",
+ "@crossSigningDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "crossSigningEnabled": "",
+ "@crossSigningEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Currently active": "",
+ "@Currently active": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "dateAndTimeOfDay": "",
+ "@dateAndTimeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "date": {},
+ "timeOfDay": {}
+ }
+ },
+ "dateWithoutYear": "",
+ "@dateWithoutYear": {
+ "type": "text",
+ "placeholders": {
+ "month": {},
+ "day": {}
+ }
+ },
+ "dateWithYear": "",
+ "@dateWithYear": {
+ "type": "text",
+ "placeholders": {
+ "year": {},
+ "month": {},
+ "day": {}
+ }
+ },
+ "Delete": "",
+ "@Delete": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Delete message": "",
+ "@Delete message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Deny": "",
+ "@Deny": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Device": "",
+ "@Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Devices": "",
+ "@Devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Discard picture": "",
+ "@Discard picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Displayname has been changed": "",
+ "@Displayname has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Download file": "",
+ "@Download file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit displayname": "",
+ "@Edit displayname": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote Settings": "",
+ "@Emote Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Emote shortcode": "",
+ "@Emote shortcode": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteWarnNeedToPick": "",
+ "@emoteWarnNeedToPick": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteExists": "",
+ "@emoteExists": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "emoteInvalid": "",
+ "@emoteInvalid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Empty chat": "",
+ "@Empty chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "@You won't be able to disable the encryption anymore. Are you sure?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption": "",
+ "@Encryption": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption algorithm": "",
+ "@Encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Encryption is not enabled": "",
+ "@Encryption is not enabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End-to-end encryption settings": "",
+ "@End-to-end encryption settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a group name": "",
+ "@Enter a group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter a username": "",
+ "@Enter a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Enter your homeserver": "",
+ "@Enter your homeserver": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File name": "",
+ "@File name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "File size": "",
+ "@File size": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "FluffyChat": "",
+ "@FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Forward": "",
+ "@Forward": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Friday": "",
+ "@Friday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From joining": "",
+ "@From joining": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "From the invitation": "",
+ "@From the invitation": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group": "",
+ "@Group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description": "",
+ "@Group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group description has been changed": "",
+ "@Group description has been changed": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Group is public": "",
+ "@Group is public": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "groupWith": "",
+ "@groupWith": {
+ "type": "text",
+ "placeholders": {
+ "displayname": {}
+ }
+ },
+ "Guests are forbidden": "",
+ "@Guests are forbidden": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Guests can join": "",
+ "@Guests can join": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "hasWithdrawnTheInvitationFor": "",
+ "@hasWithdrawnTheInvitationFor": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Help": "",
+ "@Help": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Homeserver is not compatible": "",
+ "@Homeserver is not compatible": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "ID": "",
+ "@ID": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Identity": "",
+ "@Identity": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "incorrectPassphraseOrKey": "",
+ "@incorrectPassphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Invite contact": "",
+ "@Invite contact": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteContactToGroup": "",
+ "@inviteContactToGroup": {
+ "type": "text",
+ "placeholders": {
+ "groupName": {}
+ }
+ },
+ "Invited": "",
+ "@Invited": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "inviteText": "",
+ "@inviteText": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "link": {}
+ }
+ },
+ "invitedUser": "",
+ "@invitedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Invited users only": "",
+ "@Invited users only": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "isDeviceKeyCorrect": "",
+ "@isDeviceKeyCorrect": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "is typing...": "",
+ "@is typing...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Edit Jitsi instance": "",
+ "@Edit Jitsi instance": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "joinedTheChat": "",
+ "@joinedTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "keysCached": "",
+ "@keysCached": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "keysMissing": "",
+ "@keysMissing": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "kicked": "",
+ "@kicked": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "kickedAndBanned": "",
+ "@kickedAndBanned": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Kick from chat": "",
+ "@Kick from chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Leave": "",
+ "@Leave": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Left the chat": "",
+ "@Left the chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Logout": "",
+ "@Logout": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userLeftTheChat": "",
+ "@userLeftTheChat": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "lastActiveAgo": "",
+ "@lastActiveAgo": {
+ "type": "text",
+ "placeholders": {
+ "localizedTimeShort": {}
+ }
+ },
+ "Last seen IP": "",
+ "@Last seen IP": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "License": "",
+ "@License": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Loading... Please wait": "",
+ "@Loading... Please wait": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Load more...": "",
+ "@Load more...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "loadCountMoreParticipants": "",
+ "@loadCountMoreParticipants": {
+ "type": "text",
+ "placeholders": {
+ "count": {}
+ }
+ },
+ "Login": "",
+ "@Login": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "logInTo": "",
+ "@logInTo": {
+ "type": "text",
+ "placeholders": {
+ "homeserver": {}
+ }
+ },
+ "Make a moderator": "",
+ "@Make a moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make an admin": "",
+ "@Make an admin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Make sure the identifier is valid": "",
+ "@Make sure the identifier is valid": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Message will be removed for all participants": "",
+ "@Message will be removed for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Moderator": "",
+ "@Moderator": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Monday": "",
+ "@Monday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Mute chat": "",
+ "@Mute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New message in FluffyChat": "",
+ "@New message in FluffyChat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "New private chat": "",
+ "@New private chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "newVerificationRequest": "",
+ "@newVerificationRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noCrossSignBootstrap": "",
+ "@noCrossSignBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "noMegolmBootstrap": "",
+ "@noMegolmBootstrap": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "None": "",
+ "@None": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No emotes found. 😕": "",
+ "@No emotes found. 😕": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No permission": "",
+ "@No permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "No rooms found...": "",
+ "@No rooms found...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Not supported in web": "",
+ "@Not supported in web": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "numberSelected": "",
+ "@numberSelected": {
+ "type": "text",
+ "placeholders": {
+ "number": {}
+ }
+ },
+ "ok": "",
+ "@ok": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupDisabled": "",
+ "@onlineKeyBackupDisabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "onlineKeyBackupEnabled": "",
+ "@onlineKeyBackupEnabled": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Oops something went wrong...": "",
+ "@Oops something went wrong...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open app to read messages": "",
+ "@Open app to read messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Open camera": "",
+ "@Open camera": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "(Optional) Group name": "",
+ "@(Optional) Group name": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Participating user devices": "",
+ "@Participating user devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "passphraseOrKey": "",
+ "@passphraseOrKey": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Password": "",
+ "@Password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Pick image": "",
+ "@Pick image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "play": "",
+ "@play": {
+ "type": "text",
+ "placeholders": {
+ "fileName": {}
+ }
+ },
+ "Please choose a username": "",
+ "@Please choose a username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter a matrix identifier": "",
+ "@Please enter a matrix identifier": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your password": "",
+ "@Please enter your password": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Please enter your username": "",
+ "@Please enter your username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Public Rooms": "",
+ "@Public Rooms": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reject": "",
+ "@Reject": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Rejoin": "",
+ "@Rejoin": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Render rich message content": "",
+ "@Render rich message content": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Recording": "",
+ "@Recording": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "redactedAnEvent": "",
+ "@redactedAnEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "rejectedTheInvitation": "",
+ "@rejectedTheInvitation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove all other devices": "",
+ "@Remove all other devices": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "removedBy": "",
+ "@removedBy": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Remove device": "",
+ "@Remove device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove exile": "",
+ "@Remove exile": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Revoke all permissions": "",
+ "@Revoke all permissions": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove": "",
+ "@Remove": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Remove message": "",
+ "@Remove message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Reply": "",
+ "@Reply": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request permission": "",
+ "@Request permission": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Request to read older messages": "",
+ "@Request to read older messages": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Room has been upgraded": "",
+ "@Room has been upgraded": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Saturday": "",
+ "@Saturday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Share": "",
+ "@Share": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sharedTheLocation": "",
+ "@sharedTheLocation": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "Search for a chat": "",
+ "@Search for a chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Seen a long time ago": "",
+ "@Seen a long time ago": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "seenByUser": "",
+ "@seenByUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "seenByUserAndUser": "",
+ "@seenByUserAndUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "seenByUserAndCountOthers": "",
+ "@seenByUserAndCountOthers": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "Send": "",
+ "@Send": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send a message": "",
+ "@Send a message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send file": "",
+ "@Send file": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Send image": "",
+ "@Send image": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "sentAFile": "",
+ "@sentAFile": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAnAudio": "",
+ "@sentAnAudio": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAPicture": "",
+ "@sentAPicture": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentASticker": "",
+ "@sentASticker": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sentAVideo": "",
+ "@sentAVideo": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "sessionVerified": "",
+ "@sessionVerified": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set a profile picture": "",
+ "@Set a profile picture": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set group description": "",
+ "@Set group description": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set invitation link": "",
+ "@Set invitation link": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Set status": "",
+ "@Set status": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Settings": "",
+ "@Settings": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sign up": "",
+ "@Sign up": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Skip": "",
+ "@Skip": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Change your style": "",
+ "@Change your style": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "System": "",
+ "@System": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "How are you today?": "",
+ "@How are you today?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Light": "",
+ "@Light": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Dark": "",
+ "@Dark": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Use Amoled compatible colors?": "",
+ "@Use Amoled compatible colors?": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Source code": "",
+ "@Source code": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Start your first chat :-)": "",
+ "@Start your first chat :-)": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Submit": "",
+ "@Submit": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Sunday": "",
+ "@Sunday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Donate": "",
+ "@Donate": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tap to show menu": "",
+ "@Tap to show menu": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Don't Match": "",
+ "@They Don't Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "They Match": "",
+ "@They Match": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "This room has been archived.": "",
+ "@This room has been archived.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Thursday": "",
+ "@Thursday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "timeOfDay": "",
+ "@timeOfDay": {
+ "type": "text",
+ "placeholders": {
+ "hours12": {},
+ "hours24": {},
+ "minutes": {},
+ "suffix": {}
+ }
+ },
+ "title": "",
+ "@title": {
+ "description": "Title for the application",
+ "type": "text",
+ "placeholders": {}
+ },
+ "Try to send again": "",
+ "@Try to send again": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Tuesday": "",
+ "@Tuesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unbannedUser": "",
+ "@unbannedUser": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "targetName": {}
+ }
+ },
+ "Unblock Device": "",
+ "@Unblock Device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unmute chat": "",
+ "@Unmute chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown device": "",
+ "@Unknown device": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Unknown encryption algorithm": "",
+ "@Unknown encryption algorithm": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownSessionVerify": "",
+ "@unknownSessionVerify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "unknownEvent": "",
+ "@unknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "type": {}
+ }
+ },
+ "unreadChats": "",
+ "@unreadChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadCount": {}
+ }
+ },
+ "unreadMessages": "",
+ "@unreadMessages": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {}
+ }
+ },
+ "unreadMessagesInChats": "",
+ "@unreadMessagesInChats": {
+ "type": "text",
+ "placeholders": {
+ "unreadEvents": {},
+ "unreadChats": {}
+ }
+ },
+ "userAndOthersAreTyping": "",
+ "@userAndOthersAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "count": {}
+ }
+ },
+ "userAndUserAreTyping": "",
+ "@userAndUserAreTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "username2": {}
+ }
+ },
+ "Username": "",
+ "@Username": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "userIsTyping": "",
+ "@userIsTyping": {
+ "type": "text",
+ "placeholders": {
+ "username": {}
+ }
+ },
+ "userSentUnknownEvent": "",
+ "@userSentUnknownEvent": {
+ "type": "text",
+ "placeholders": {
+ "username": {},
+ "type": {}
+ }
+ },
+ "Verify": "",
+ "@Verify": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyManual": "",
+ "@verifyManual": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifiedSession": "",
+ "@verifiedSession": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyStart": "",
+ "@verifyStart": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifySuccess": "",
+ "@verifySuccess": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "verifyTitle": "",
+ "@verifyTitle": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Verify User": "",
+ "@Verify User": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Video call": "",
+ "@Video call": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for all participants": "",
+ "@Visible for all participants": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visible for everyone": "",
+ "@Visible for everyone": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Visibility of the chat history": "",
+ "@Visibility of the chat history": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Voice message": "",
+ "@Voice message": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerAcceptRequest": "",
+ "@waitingPartnerAcceptRequest": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerEmoji": "",
+ "@waitingPartnerEmoji": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "waitingPartnerNumbers": "",
+ "@waitingPartnerNumbers": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wallpaper": "",
+ "@Wallpaper": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "@End to end encryption is currently in Beta! Use at your own risk!": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Wednesday": "",
+ "@Wednesday": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Welcome to the cutest instant messenger in the matrix network.": "",
+ "@Welcome to the cutest instant messenger in the matrix network.": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Who is allowed to join this group": "",
+ "@Who is allowed to join this group": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Write a message...": "",
+ "@Write a message...": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Yes": "",
+ "@Yes": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You": "",
+ "@You": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are invited to this chat": "",
+ "@You are invited to this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You are no longer participating in this chat": "",
+ "@You are no longer participating in this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You cannot invite yourself": "",
+ "@You cannot invite yourself": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "You have been banned from this chat": "",
+ "@You have been banned from this chat": {
+ "type": "text",
+ "placeholders": {}
+ },
+ "Your own username": "",
+ "@Your own username": {
+ "type": "text",
+ "placeholders": {}
+ }
+}
From 56d60369fabf6276082250a51cc0221ba7f92969 Mon Sep 17 00:00:00 2001
From: Lukas Lihotzki
Date: Thu, 16 Jul 2020 17:32:11 +0200
Subject: [PATCH 61/89] Include the olm library with flutter_olm
---
.gitmodules | 3 ---
android/app/build.gradle | 14 --------------
ios/Podfile | 1 -
ios/olm | 1 -
pubspec.yaml | 1 +
5 files changed, 1 insertion(+), 19 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 ios/olm
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index f651483..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "ios/olm"]
- path = ios/olm
- url = https://gitlab.matrix.org/matrix-org/olm.git
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 2255470..0689123 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -49,11 +49,6 @@ android {
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- externalNativeBuild {
- cmake {
- arguments "-DOLM_TESTS=NO"
- }
- }
}
signingConfigs {
@@ -77,15 +72,6 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
-
- externalNativeBuild {
- // Encapsulates your CMake build configurations.
- cmake {
- // Provides a relative path to your CMake build script.
- path "../../ios/olm/CMakeLists.txt"
- version "3.10.2"
- }
- }
}
flutter {
diff --git a/ios/Podfile b/ios/Podfile
index 2bd2b5c..5b12b73 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -63,7 +63,6 @@ target 'Runner' do
# Keep pod path relative so it can be checked into Podfile.lock.
pod 'Flutter', :path => 'Flutter'
- pod 'OLMKit'
# Plugin Pods
diff --git a/ios/olm b/ios/olm
deleted file mode 160000
index 930c467..0000000
--- a/ios/olm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 930c4677547ebb3058680a9c3ad88186bb2030da
diff --git a/pubspec.yaml b/pubspec.yaml
index 60db4c5..040cc5c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -56,6 +56,7 @@ dependencies:
moor: ^3.0.2
random_string: ^2.0.1
flutter_typeahead: ^1.8.1
+ flutter_olm: ^1.0.1
intl: ^0.16.0
intl_translation: ^0.17.9
From f2c8a7bf3d308cf3ea130d9bdeee0865826a072c Mon Sep 17 00:00:00 2001
From: Nikita Epifanov
Date: Thu, 16 Jul 2020 12:30:06 +0000
Subject: [PATCH 62/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 576 +++++++++++++++++++++----------------------
1 file changed, 288 insertions(+), 288 deletions(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index f598ebb..8435fbc 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -1,127 +1,127 @@
{
"@@last_modified": "2020-06-25T16:02:16.297192",
- "About": "",
+ "About": "О приложении",
"@About": {
"type": "text",
"placeholders": {}
},
- "Accept": "",
+ "Accept": "Принять",
"@Accept": {
"type": "text",
"placeholders": {}
},
- "acceptedTheInvitation": "",
+ "acceptedTheInvitation": "{username} принял приглашение",
"@acceptedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Account": "",
+ "Account": "Аккаунт",
"@Account": {
"type": "text",
"placeholders": {}
},
- "Account informations": "",
+ "Account informations": "Сведения об аккаунте",
"@Account informations": {
"type": "text",
"placeholders": {}
},
- "activatedEndToEndEncryption": "",
+ "activatedEndToEndEncryption": "{username} активировал сквозное шифрование",
"@activatedEndToEndEncryption": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Add a group description": "",
+ "Add a group description": "Добавить описание группы",
"@Add a group description": {
"type": "text",
"placeholders": {}
},
- "Admin": "",
+ "Admin": "Админ",
"@Admin": {
"type": "text",
"placeholders": {}
},
- "alias": "",
+ "alias": "псевдоним",
"@alias": {
"type": "text",
"placeholders": {}
},
- "Already have an account?": "",
+ "Already have an account?": "Уже есть аккаунт?",
"@Already have an account?": {
"type": "text",
"placeholders": {}
},
- "Anyone can join": "",
+ "Anyone can join": "Каждый может присоединиться",
"@Anyone can join": {
"type": "text",
"placeholders": {}
},
- "Archive": "",
+ "Archive": "Архив",
"@Archive": {
"type": "text",
"placeholders": {}
},
- "Archived Room": "",
+ "Archived Room": "Архивная комната",
"@Archived Room": {
"type": "text",
"placeholders": {}
},
- "Are guest users allowed to join": "",
+ "Are guest users allowed to join": "Разрешено ли гостям присоединяться",
"@Are guest users allowed to join": {
"type": "text",
"placeholders": {}
},
- "Are you sure?": "",
+ "Are you sure?": "Вы уверены?",
"@Are you sure?": {
"type": "text",
"placeholders": {}
},
- "askSSSSCache": "",
+ "askSSSSCache": "Пожалуйста, введите секретную фразу безопасного хранилища или ключ восстановления для кеширования ключей.",
"@askSSSSCache": {
"type": "text",
"placeholders": {}
},
- "askSSSSSign": "",
+ "askSSSSSign": "Чтобы иметь возможность подписать другое лицо, пожалуйста, введите пароль или ключ восстановления вашего безопасного хранилища.",
"@askSSSSSign": {
"type": "text",
"placeholders": {}
},
- "askSSSSVerify": "",
+ "askSSSSVerify": "Пожалуйста, введите вашу безопасную парольную фразу или ключ восстановления, чтобы подтвердить ваш сеанс.",
"@askSSSSVerify": {
"type": "text",
"placeholders": {}
},
- "askVerificationRequest": "",
+ "askVerificationRequest": "Принять этот запрос подтверждения от {username}?",
"@askVerificationRequest": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Authentication": "",
+ "Authentication": "Аутентификация",
"@Authentication": {
"type": "text",
"placeholders": {}
},
- "Avatar has been changed": "",
+ "Avatar has been changed": "Аватар был изменен",
"@Avatar has been changed": {
"type": "text",
"placeholders": {}
},
- "Ban from chat": "",
+ "Ban from chat": "Бан чата",
"@Ban from chat": {
"type": "text",
"placeholders": {}
},
- "Banned": "",
+ "Banned": "Забанен",
"@Banned": {
"type": "text",
"placeholders": {}
},
- "bannedUser": "",
+ "bannedUser": "{username} забанен {targetName}",
"@bannedUser": {
"type": "text",
"placeholders": {
@@ -129,36 +129,36 @@
"targetName": {}
}
},
- "Block Device": "",
+ "Block Device": "Заблокировать устройство",
"@Block Device": {
"type": "text",
"placeholders": {}
},
- "byDefaultYouWillBeConnectedTo": "",
+ "byDefaultYouWillBeConnectedTo": "По умолчанию вы будете подключены к {homeserver}",
"@byDefaultYouWillBeConnectedTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "cachedKeys": "",
+ "cachedKeys": "Ключи успешно кэшированы!",
"@cachedKeys": {
"type": "text",
"placeholders": {}
},
- "Cancel": "",
+ "Cancel": "Отмена",
"@Cancel": {
"type": "text",
"placeholders": {}
},
- "changedTheChatAvatar": "",
+ "changedTheChatAvatar": "{username} изменил аватар чата",
"@changedTheChatAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheChatNameTo": "",
+ "changedTheChatNameTo": "{username} изменил имя чата на: '{chatname}'",
"@changedTheChatNameTo": {
"type": "text",
"placeholders": {
@@ -166,7 +166,7 @@
"chatname": {}
}
},
- "changedTheChatDescriptionTo": "",
+ "changedTheChatDescriptionTo": "{username} изменил описание чата на: '{description}'",
"@changedTheChatDescriptionTo": {
"type": "text",
"placeholders": {
@@ -174,14 +174,14 @@
"description": {}
}
},
- "changedTheChatPermissions": "",
+ "changedTheChatPermissions": "{username} изменил права чата",
"@changedTheChatPermissions": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheDisplaynameTo": "",
+ "changedTheDisplaynameTo": "{username} изменил отображаемое имя на: {displayname}",
"@changedTheDisplaynameTo": {
"type": "text",
"placeholders": {
@@ -189,19 +189,19 @@
"displayname": {}
}
},
- "Change the homeserver": "",
+ "Change the homeserver": "Измените домашний сервер",
"@Change the homeserver": {
"type": "text",
"placeholders": {}
},
- "changedTheGuestAccessRules": "",
+ "changedTheGuestAccessRules": "{username} изменил правила гостевого доступа",
"@changedTheGuestAccessRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheGuestAccessRulesTo": "",
+ "changedTheGuestAccessRulesTo": "{username} изменил правила гостевого доступа на: {rules}",
"@changedTheGuestAccessRulesTo": {
"type": "text",
"placeholders": {
@@ -209,14 +209,14 @@
"rules": {}
}
},
- "changedTheHistoryVisibility": "",
+ "changedTheHistoryVisibility": "{username} изменил видимость истории",
"@changedTheHistoryVisibility": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheHistoryVisibilityTo": "",
+ "changedTheHistoryVisibilityTo": "{username} изменил видимость истории на: {rules}",
"@changedTheHistoryVisibilityTo": {
"type": "text",
"placeholders": {
@@ -224,14 +224,14 @@
"rules": {}
}
},
- "changedTheJoinRules": "",
+ "changedTheJoinRules": "{username} изменил правила присоединения",
"@changedTheJoinRules": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheJoinRulesTo": "",
+ "changedTheJoinRulesTo": "{username} изменил правила присоединения на: {joinRules}",
"@changedTheJoinRulesTo": {
"type": "text",
"placeholders": {
@@ -239,184 +239,184 @@
"joinRules": {}
}
},
- "changedTheProfileAvatar": "",
+ "changedTheProfileAvatar": "{username} сменил аватар профиля",
"@changedTheProfileAvatar": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomAliases": "",
+ "changedTheRoomAliases": "{username} изменил псевдонимы комнаты",
"@changedTheRoomAliases": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "changedTheRoomInvitationLink": "",
+ "changedTheRoomInvitationLink": "{username} изменил ссылку приглашения",
"@changedTheRoomInvitationLink": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Changelog": "",
+ "Changelog": "Изменения",
"@Changelog": {
"type": "text",
"placeholders": {}
},
- "Change the name of the group": "",
+ "Change the name of the group": "Изменить название группы",
"@Change the name of the group": {
"type": "text",
"placeholders": {}
},
- "Change wallpaper": "",
+ "Change wallpaper": "Сменить обои",
"@Change wallpaper": {
"type": "text",
"placeholders": {}
},
- "Change the server": "",
+ "Change the server": "Сменить сервер",
"@Change the server": {
"type": "text",
"placeholders": {}
},
- "The encryption has been corrupted": "",
+ "The encryption has been corrupted": "Шифрование было повреждено",
"@The encryption has been corrupted": {
"type": "text",
"placeholders": {}
},
- "Chat": "",
+ "Chat": "Чат",
"@Chat": {
"type": "text",
"placeholders": {}
},
- "Chat details": "",
+ "Chat details": "Детали чата",
"@Chat details": {
"type": "text",
"placeholders": {}
},
- "Choose a strong password": "",
+ "Choose a strong password": "Выберите надёжный пароль",
"@Choose a strong password": {
"type": "text",
"placeholders": {}
},
- "Choose a username": "",
+ "Choose a username": "Выберете имя пользователя",
"@Choose a username": {
"type": "text",
"placeholders": {}
},
- "Close": "",
+ "Close": "Закрыть",
"@Close": {
"type": "text",
"placeholders": {}
},
- "compareEmojiMatch": "",
+ "compareEmojiMatch": "Сравните и убедитесь, что следующие эмодзи соответствуют таковым на другом устройстве:",
"@compareEmojiMatch": {
"type": "text",
"placeholders": {}
},
- "compareNumbersMatch": "",
+ "compareNumbersMatch": "Сравните и убедитесь, что следующие числа соответствуют числам на другом устройстве:",
"@compareNumbersMatch": {
"type": "text",
"placeholders": {}
},
- "Confirm": "",
+ "Confirm": "Подтвердить",
"@Confirm": {
"type": "text",
"placeholders": {}
},
- "Connect": "",
+ "Connect": "Присоединиться",
"@Connect": {
"type": "text",
"placeholders": {}
},
- "Connection attempt failed": "",
+ "Connection attempt failed": "Попытка подключения не удалась",
"@Connection attempt failed": {
"type": "text",
"placeholders": {}
},
- "Contact has been invited to the group": "",
+ "Contact has been invited to the group": "Контакт был приглашен в группу",
"@Contact has been invited to the group": {
"type": "text",
"placeholders": {}
},
- "Content viewer": "",
+ "Content viewer": "Просмотр содержимого",
"@Content viewer": {
"type": "text",
"placeholders": {}
},
- "Copied to clipboard": "",
+ "Copied to clipboard": "Скопировано в буфер обмена",
"@Copied to clipboard": {
"type": "text",
"placeholders": {}
},
- "Copy": "",
+ "Copy": "Скопировать",
"@Copy": {
"type": "text",
"placeholders": {}
},
- "couldNotDecryptMessage": "",
+ "couldNotDecryptMessage": "Не удалось расшифровать сообщение: {error}",
"@couldNotDecryptMessage": {
"type": "text",
"placeholders": {
"error": {}
}
},
- "Could not set avatar": "",
+ "Could not set avatar": "Не удалось установить аватар",
"@Could not set avatar": {
"type": "text",
"placeholders": {}
},
- "Could not set displayname": "",
+ "Could not set displayname": "Не удалось установить отображаемое имя",
"@Could not set displayname": {
"type": "text",
"placeholders": {}
},
- "countParticipants": "",
+ "countParticipants": "{count} участника(ов)",
"@countParticipants": {
"type": "text",
"placeholders": {
"count": {}
}
},
- "Create": "",
+ "Create": "Создать",
"@Create": {
"type": "text",
"placeholders": {}
},
- "Create account now": "",
+ "Create account now": "Создать аккаунт сейчас",
"@Create account now": {
"type": "text",
"placeholders": {}
},
- "createdTheChat": "",
+ "createdTheChat": "{username} создал чат",
"@createdTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Create new group": "",
+ "Create new group": "Создать новую группу",
"@Create new group": {
"type": "text",
"placeholders": {}
},
- "crossSigningDisabled": "",
+ "crossSigningDisabled": "Кросс-подпись отключена",
"@crossSigningDisabled": {
"type": "text",
"placeholders": {}
},
- "crossSigningEnabled": "",
+ "crossSigningEnabled": "Кросс-подпись включена",
"@crossSigningEnabled": {
"type": "text",
"placeholders": {}
},
- "Currently active": "",
+ "Currently active": "В настоящее время активен",
"@Currently active": {
"type": "text",
"placeholders": {}
},
- "dateAndTimeOfDay": "",
+ "dateAndTimeOfDay": "{date}, {timeOfDay}",
"@dateAndTimeOfDay": {
"type": "text",
"placeholders": {
@@ -424,7 +424,7 @@
"timeOfDay": {}
}
},
- "dateWithoutYear": "",
+ "dateWithoutYear": "{month}-{day}",
"@dateWithoutYear": {
"type": "text",
"placeholders": {
@@ -432,7 +432,7 @@
"day": {}
}
},
- "dateWithYear": "",
+ "dateWithYear": "{year}-{month}-{day}",
"@dateWithYear": {
"type": "text",
"placeholders": {
@@ -441,194 +441,194 @@
"day": {}
}
},
- "Delete": "",
+ "Delete": "Удалить",
"@Delete": {
"type": "text",
"placeholders": {}
},
- "Delete message": "",
+ "Delete message": "Удалить сообщение",
"@Delete message": {
"type": "text",
"placeholders": {}
},
- "Deny": "",
+ "Deny": "Отклонить",
"@Deny": {
"type": "text",
"placeholders": {}
},
- "Device": "",
+ "Device": "Устройство",
"@Device": {
"type": "text",
"placeholders": {}
},
- "Devices": "",
+ "Devices": "Устройства",
"@Devices": {
"type": "text",
"placeholders": {}
},
- "Discard picture": "",
+ "Discard picture": "Сбросить картинку",
"@Discard picture": {
"type": "text",
"placeholders": {}
},
- "Displayname has been changed": "",
+ "Displayname has been changed": "Отображаемое имя было изменено",
"@Displayname has been changed": {
"type": "text",
"placeholders": {}
},
- "Download file": "",
+ "Download file": "Скачать файл",
"@Download file": {
"type": "text",
"placeholders": {}
},
- "Edit displayname": "",
+ "Edit displayname": "Изменить отображаемое имя",
"@Edit displayname": {
"type": "text",
"placeholders": {}
},
- "Emote Settings": "",
+ "Emote Settings": "Настройки смайликов",
"@Emote Settings": {
"type": "text",
"placeholders": {}
},
- "Emote shortcode": "",
+ "Emote shortcode": "Краткий код для смайлика",
"@Emote shortcode": {
"type": "text",
"placeholders": {}
},
- "emoteWarnNeedToPick": "",
+ "emoteWarnNeedToPick": "Вам нужно выбрать краткий код смайлика и картинку!",
"@emoteWarnNeedToPick": {
"type": "text",
"placeholders": {}
},
- "emoteExists": "",
+ "emoteExists": "Смайлик уже существует!",
"@emoteExists": {
"type": "text",
"placeholders": {}
},
- "emoteInvalid": "",
+ "emoteInvalid": "Недопустимый краткий код смайлика!",
"@emoteInvalid": {
"type": "text",
"placeholders": {}
},
- "Empty chat": "",
+ "Empty chat": "Пустой чат",
"@Empty chat": {
"type": "text",
"placeholders": {}
},
- "You won't be able to disable the encryption anymore. Are you sure?": "",
+ "You won't be able to disable the encryption anymore. Are you sure?": "Вы больше не сможете отключить шифрование. Вы уверены?",
"@You won't be able to disable the encryption anymore. Are you sure?": {
"type": "text",
"placeholders": {}
},
- "Encryption": "",
+ "Encryption": "Шифрование",
"@Encryption": {
"type": "text",
"placeholders": {}
},
- "Encryption algorithm": "",
+ "Encryption algorithm": "Алгоритм шифрования",
"@Encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "Encryption is not enabled": "",
+ "Encryption is not enabled": "Шифрование не включено",
"@Encryption is not enabled": {
"type": "text",
"placeholders": {}
},
- "End-to-end encryption settings": "",
+ "End-to-end encryption settings": "Сквозные настройки шифрования",
"@End-to-end encryption settings": {
"type": "text",
"placeholders": {}
},
- "Enter a group name": "",
+ "Enter a group name": "Введите название группы",
"@Enter a group name": {
"type": "text",
"placeholders": {}
},
- "Enter a username": "",
+ "Enter a username": "Введите имя пользователя",
"@Enter a username": {
"type": "text",
"placeholders": {}
},
- "Enter your homeserver": "",
+ "Enter your homeserver": "Введите ваш домашний сервер",
"@Enter your homeserver": {
"type": "text",
"placeholders": {}
},
- "File name": "",
+ "File name": "Имя файла",
"@File name": {
"type": "text",
"placeholders": {}
},
- "File size": "",
+ "File size": "Размер файла",
"@File size": {
"type": "text",
"placeholders": {}
},
- "FluffyChat": "",
+ "FluffyChat": "FluffyChat",
"@FluffyChat": {
"type": "text",
"placeholders": {}
},
- "Forward": "",
+ "Forward": "Отправить",
"@Forward": {
"type": "text",
"placeholders": {}
},
- "Friday": "",
+ "Friday": "Пятница",
"@Friday": {
"type": "text",
"placeholders": {}
},
- "From joining": "",
+ "From joining": "С момента присоединения",
"@From joining": {
"type": "text",
"placeholders": {}
},
- "From the invitation": "",
+ "From the invitation": "С момента приглашения",
"@From the invitation": {
"type": "text",
"placeholders": {}
},
- "Group": "",
+ "Group": "Группа",
"@Group": {
"type": "text",
"placeholders": {}
},
- "Group description": "",
+ "Group description": "Описание группы",
"@Group description": {
"type": "text",
"placeholders": {}
},
- "Group description has been changed": "",
+ "Group description has been changed": "Описание группы было изменено",
"@Group description has been changed": {
"type": "text",
"placeholders": {}
},
- "Group is public": "",
+ "Group is public": "Публичная группа",
"@Group is public": {
"type": "text",
"placeholders": {}
},
- "groupWith": "",
+ "groupWith": "Группа с {displayname}",
"@groupWith": {
"type": "text",
"placeholders": {
"displayname": {}
}
},
- "Guests are forbidden": "",
+ "Guests are forbidden": "Гости запрещены",
"@Guests are forbidden": {
"type": "text",
"placeholders": {}
},
- "Guests can join": "",
+ "Guests can join": "Гости могут присоединиться",
"@Guests can join": {
"type": "text",
"placeholders": {}
},
- "hasWithdrawnTheInvitationFor": "",
+ "hasWithdrawnTheInvitationFor": "{username} отозвал приглашение для {targetName}",
"@hasWithdrawnTheInvitationFor": {
"type": "text",
"placeholders": {
@@ -636,49 +636,49 @@
"targetName": {}
}
},
- "Help": "",
+ "Help": "Помощь",
"@Help": {
"type": "text",
"placeholders": {}
},
- "Homeserver is not compatible": "",
+ "Homeserver is not compatible": "Домашний сервер не совместим",
"@Homeserver is not compatible": {
"type": "text",
"placeholders": {}
},
- "ID": "",
+ "ID": "ID",
"@ID": {
"type": "text",
"placeholders": {}
},
- "Identity": "",
+ "Identity": "Идентификация",
"@Identity": {
"type": "text",
"placeholders": {}
},
- "incorrectPassphraseOrKey": "",
+ "incorrectPassphraseOrKey": "Неверный пароль или ключ восстановления",
"@incorrectPassphraseOrKey": {
"type": "text",
"placeholders": {}
},
- "Invite contact": "",
+ "Invite contact": "Пригласить контакт",
"@Invite contact": {
"type": "text",
"placeholders": {}
},
- "inviteContactToGroup": "",
+ "inviteContactToGroup": "Пригласить контакт в {groupName}",
"@inviteContactToGroup": {
"type": "text",
"placeholders": {
"groupName": {}
}
},
- "Invited": "",
+ "Invited": "Приглашён",
"@Invited": {
"type": "text",
"placeholders": {}
},
- "inviteText": "",
+ "inviteText": "{username} пригласил вас в FluffyChat. \n1. Установите FluffyChat: http://fluffy.chat \n2. Зарегистрируйтесь или войдите \n3. Откройте ссылку приглашения: {link}",
"@inviteText": {
"type": "text",
"placeholders": {
@@ -686,7 +686,7 @@
"link": {}
}
},
- "invitedUser": "",
+ "invitedUser": "{username} пригласил {targetName}",
"@invitedUser": {
"type": "text",
"placeholders": {
@@ -694,44 +694,44 @@
"targetName": {}
}
},
- "Invited users only": "",
+ "Invited users only": "Только приглашённым пользователям",
"@Invited users only": {
"type": "text",
"placeholders": {}
},
- "isDeviceKeyCorrect": "",
+ "isDeviceKeyCorrect": "Правильно ли указан следующий ключ устройства?",
"@isDeviceKeyCorrect": {
"type": "text",
"placeholders": {}
},
- "is typing...": "",
+ "is typing...": "Печатает...",
"@is typing...": {
"type": "text",
"placeholders": {}
},
- "Edit Jitsi instance": "",
+ "Edit Jitsi instance": "Изменить экземпляр Jitsi",
"@Edit Jitsi instance": {
"type": "text",
"placeholders": {}
},
- "joinedTheChat": "",
+ "joinedTheChat": "{username} присоединился к чату",
"@joinedTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "keysCached": "",
+ "keysCached": "Ключи кэшированы",
"@keysCached": {
"type": "text",
"placeholders": {}
},
- "keysMissing": "",
+ "keysMissing": "Ключи отсутствуют",
"@keysMissing": {
"type": "text",
"placeholders": {}
},
- "kicked": "",
+ "kicked": "{username} исключил {targetName}",
"@kicked": {
"type": "text",
"placeholders": {
@@ -739,7 +739,7 @@
"targetName": {}
}
},
- "kickedAndBanned": "",
+ "kickedAndBanned": "{username} исключил и забанил {targetName}",
"@kickedAndBanned": {
"type": "text",
"placeholders": {
@@ -747,394 +747,394 @@
"targetName": {}
}
},
- "Kick from chat": "",
+ "Kick from chat": "Исключить из чата",
"@Kick from chat": {
"type": "text",
"placeholders": {}
},
- "Leave": "",
+ "Leave": "Покинуть",
"@Leave": {
"type": "text",
"placeholders": {}
},
- "Left the chat": "",
+ "Left the chat": "Покинуть чат",
"@Left the chat": {
"type": "text",
"placeholders": {}
},
- "Logout": "",
+ "Logout": "Выйти",
"@Logout": {
"type": "text",
"placeholders": {}
},
- "userLeftTheChat": "",
+ "userLeftTheChat": "{username} покинул чат",
"@userLeftTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "lastActiveAgo": "",
+ "lastActiveAgo": "Последнее посещение: {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
"localizedTimeShort": {}
}
},
- "Last seen IP": "",
+ "Last seen IP": "Последний увиденный IP",
"@Last seen IP": {
"type": "text",
"placeholders": {}
},
- "License": "",
+ "License": "Лицензия",
"@License": {
"type": "text",
"placeholders": {}
},
- "Loading... Please wait": "",
+ "Loading... Please wait": "Загрузка... Пожалуйста подождите",
"@Loading... Please wait": {
"type": "text",
"placeholders": {}
},
- "Load more...": "",
+ "Load more...": "Загрузить больше...",
"@Load more...": {
"type": "text",
"placeholders": {}
},
- "loadCountMoreParticipants": "",
+ "loadCountMoreParticipants": "Загрузить {count} больше участника(ов)",
"@loadCountMoreParticipants": {
"type": "text",
"placeholders": {
"count": {}
}
},
- "Login": "",
+ "Login": "Вход",
"@Login": {
"type": "text",
"placeholders": {}
},
- "logInTo": "",
+ "logInTo": "Войти в {homeserver}",
"@logInTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "Make a moderator": "",
+ "Make a moderator": "Сделать модератором",
"@Make a moderator": {
"type": "text",
"placeholders": {}
},
- "Make an admin": "",
+ "Make an admin": "Сделать админом",
"@Make an admin": {
"type": "text",
"placeholders": {}
},
- "Make sure the identifier is valid": "",
+ "Make sure the identifier is valid": "Убедитесь, что идентификатор действителен",
"@Make sure the identifier is valid": {
"type": "text",
"placeholders": {}
},
- "Message will be removed for all participants": "",
+ "Message will be removed for all participants": "Сообщение будет удалено для всех участников",
"@Message will be removed for all participants": {
"type": "text",
"placeholders": {}
},
- "Moderator": "",
+ "Moderator": "Модератор",
"@Moderator": {
"type": "text",
"placeholders": {}
},
- "Monday": "",
+ "Monday": "Понедельник",
"@Monday": {
"type": "text",
"placeholders": {}
},
- "Mute chat": "",
+ "Mute chat": "Замутить чат",
"@Mute chat": {
"type": "text",
"placeholders": {}
},
- "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "Помните, что вам нужен Pantalaimon для использования сквозного шифрования.",
"@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
"type": "text",
"placeholders": {}
},
- "New message in FluffyChat": "",
+ "New message in FluffyChat": "Новое сообщение в FluffyChat",
"@New message in FluffyChat": {
"type": "text",
"placeholders": {}
},
- "New private chat": "",
+ "New private chat": "Новый приватный чат",
"@New private chat": {
"type": "text",
"placeholders": {}
},
- "newVerificationRequest": "",
+ "newVerificationRequest": "Новый запрос на подтверждение!",
"@newVerificationRequest": {
"type": "text",
"placeholders": {}
},
- "noCrossSignBootstrap": "",
+ "noCrossSignBootstrap": "Fluffychat в настоящее время не поддерживает включение кросс-подписи. Пожалуйста, включите его в Riot.",
"@noCrossSignBootstrap": {
"type": "text",
"placeholders": {}
},
- "noMegolmBootstrap": "",
+ "noMegolmBootstrap": "В настоящее время Fluffychat не поддерживает функцию резервного копирования онлайн-ключей. Пожалуйста, включите его из Riot.",
"@noMegolmBootstrap": {
"type": "text",
"placeholders": {}
},
- "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "Похоже, у вас нет служб Google на вашем телефоне. Это хорошее решение для вашей конфиденциальности! Для получения push-уведомлений в FluffyChat мы рекомендуем использовать microG: https://microg.org/",
"@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
"type": "text",
"placeholders": {}
},
- "None": "",
+ "None": "Ничего",
"@None": {
"type": "text",
"placeholders": {}
},
- "No emotes found. 😕": "",
+ "No emotes found. 😕": "Смайликов не найдено. 😕",
"@No emotes found. 😕": {
"type": "text",
"placeholders": {}
},
- "No permission": "",
+ "No permission": "Нет разрешений",
"@No permission": {
"type": "text",
"placeholders": {}
},
- "No rooms found...": "",
+ "No rooms found...": "Комнаты не найдены...",
"@No rooms found...": {
"type": "text",
"placeholders": {}
},
- "Not supported in web": "",
+ "Not supported in web": "Не поддерживается в сети",
"@Not supported in web": {
"type": "text",
"placeholders": {}
},
- "numberSelected": "",
+ "numberSelected": "{number} выбрано",
"@numberSelected": {
"type": "text",
"placeholders": {
"number": {}
}
},
- "ok": "",
+ "ok": "ok",
"@ok": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupDisabled": "",
+ "onlineKeyBackupDisabled": "Резервное копирование онлайн-ключей отключено",
"@onlineKeyBackupDisabled": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupEnabled": "",
+ "onlineKeyBackupEnabled": "Резервное копирование онлайн ключей включено",
"@onlineKeyBackupEnabled": {
"type": "text",
"placeholders": {}
},
- "Oops something went wrong...": "",
+ "Oops something went wrong...": "Упс! Что-то пошло не так...",
"@Oops something went wrong...": {
"type": "text",
"placeholders": {}
},
- "Open app to read messages": "",
+ "Open app to read messages": "Откройте приложение для чтения сообщений",
"@Open app to read messages": {
"type": "text",
"placeholders": {}
},
- "Open camera": "",
+ "Open camera": "Открыть камеру",
"@Open camera": {
"type": "text",
"placeholders": {}
},
- "(Optional) Group name": "",
+ "(Optional) Group name": "(Необязательно) Название группы",
"@(Optional) Group name": {
"type": "text",
"placeholders": {}
},
- "Participating user devices": "",
+ "Participating user devices": "Участвующие устройства",
"@Participating user devices": {
"type": "text",
"placeholders": {}
},
- "passphraseOrKey": "",
+ "passphraseOrKey": "пароль или ключ восстановления",
"@passphraseOrKey": {
"type": "text",
"placeholders": {}
},
- "Password": "",
+ "Password": "Пароль",
"@Password": {
"type": "text",
"placeholders": {}
},
- "Pick image": "",
+ "Pick image": "Выбрать картинку",
"@Pick image": {
"type": "text",
"placeholders": {}
},
- "play": "",
+ "play": "Играть {fileName}",
"@play": {
"type": "text",
"placeholders": {
"fileName": {}
}
},
- "Please choose a username": "",
+ "Please choose a username": "Пожалуйста, выберите имя пользователя",
"@Please choose a username": {
"type": "text",
"placeholders": {}
},
- "Please enter a matrix identifier": "",
+ "Please enter a matrix identifier": "Пожалуйста, введите matrix идентификатор",
"@Please enter a matrix identifier": {
"type": "text",
"placeholders": {}
},
- "Please enter your password": "",
+ "Please enter your password": "Пожалуйста введите ваш пароль",
"@Please enter your password": {
"type": "text",
"placeholders": {}
},
- "Please enter your username": "",
+ "Please enter your username": "Пожалуйста, введите имя пользователя",
"@Please enter your username": {
"type": "text",
"placeholders": {}
},
- "Public Rooms": "",
+ "Public Rooms": "Публичные комнаты",
"@Public Rooms": {
"type": "text",
"placeholders": {}
},
- "Reject": "",
+ "Reject": "Отклонить",
"@Reject": {
"type": "text",
"placeholders": {}
},
- "Rejoin": "",
+ "Rejoin": "Перезайти",
"@Rejoin": {
"type": "text",
"placeholders": {}
},
- "Render rich message content": "",
+ "Render rich message content": "Показать расширенные сообщения",
"@Render rich message content": {
"type": "text",
"placeholders": {}
},
- "Recording": "",
+ "Recording": "Запись",
"@Recording": {
"type": "text",
"placeholders": {}
},
- "redactedAnEvent": "",
+ "redactedAnEvent": "{username} отредактировал событие",
"@redactedAnEvent": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "rejectedTheInvitation": "",
+ "rejectedTheInvitation": "{username} отклонил приглашение",
"@rejectedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove all other devices": "",
+ "Remove all other devices": "Удалить все другие устройства",
"@Remove all other devices": {
"type": "text",
"placeholders": {}
},
- "removedBy": "",
+ "removedBy": "Удалено {username}",
"@removedBy": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove device": "",
+ "Remove device": "Удалить устройство",
"@Remove device": {
"type": "text",
"placeholders": {}
},
- "Remove exile": "",
+ "Remove exile": "Удалить ссылку",
"@Remove exile": {
"type": "text",
"placeholders": {}
},
- "Revoke all permissions": "",
+ "Revoke all permissions": "Отменить все разрешения",
"@Revoke all permissions": {
"type": "text",
"placeholders": {}
},
- "Remove": "",
+ "Remove": "Удалить",
"@Remove": {
"type": "text",
"placeholders": {}
},
- "Remove message": "",
+ "Remove message": "Удалить сообщение",
"@Remove message": {
"type": "text",
"placeholders": {}
},
- "Reply": "",
+ "Reply": "Ответить",
"@Reply": {
"type": "text",
"placeholders": {}
},
- "Request permission": "",
+ "Request permission": "Запросить разрешение",
"@Request permission": {
"type": "text",
"placeholders": {}
},
- "Request to read older messages": "",
+ "Request to read older messages": "Запросить доступ к предыдущим сообщениям",
"@Request to read older messages": {
"type": "text",
"placeholders": {}
},
- "Room has been upgraded": "",
+ "Room has been upgraded": "Комната обновлена",
"@Room has been upgraded": {
"type": "text",
"placeholders": {}
},
- "Saturday": "",
+ "Saturday": "Суббота",
"@Saturday": {
"type": "text",
"placeholders": {}
},
- "Share": "",
+ "Share": "Поделиться",
"@Share": {
"type": "text",
"placeholders": {}
},
- "sharedTheLocation": "",
+ "sharedTheLocation": "{username} поделился местоположением",
"@sharedTheLocation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Search for a chat": "",
+ "Search for a chat": "Поиск чата",
"@Search for a chat": {
"type": "text",
"placeholders": {}
},
- "Seen a long time ago": "",
+ "Seen a long time ago": "В последний раз видели давно",
"@Seen a long time ago": {
"type": "text",
"placeholders": {}
},
- "seenByUser": "",
+ "seenByUser": "Просмотрено {username}",
"@seenByUser": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "seenByUserAndUser": "",
+ "seenByUserAndUser": "Просмотрено {username} и {username2}",
"@seenByUserAndUser": {
"type": "text",
"placeholders": {
@@ -1142,7 +1142,7 @@
"username2": {}
}
},
- "seenByUserAndCountOthers": "",
+ "seenByUserAndCountOthers": "Просмотрено {username} и {count} другими",
"@seenByUserAndCountOthers": {
"type": "text",
"placeholders": {
@@ -1150,182 +1150,182 @@
"count": {}
}
},
- "Send": "",
+ "Send": "Отправить",
"@Send": {
"type": "text",
"placeholders": {}
},
- "Send a message": "",
+ "Send a message": "Отправить сообщение",
"@Send a message": {
"type": "text",
"placeholders": {}
},
- "Send file": "",
+ "Send file": "Отправить файл",
"@Send file": {
"type": "text",
"placeholders": {}
},
- "Send image": "",
+ "Send image": "Отправить картинку",
"@Send image": {
"type": "text",
"placeholders": {}
},
- "sentAFile": "",
+ "sentAFile": "{username} отправил файл",
"@sentAFile": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAnAudio": "",
+ "sentAnAudio": "{username} отправил аудио",
"@sentAnAudio": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAPicture": "",
+ "sentAPicture": "{username} отправил картинку",
"@sentAPicture": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentASticker": "",
+ "sentASticker": "{username} отправил стикер",
"@sentASticker": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAVideo": "",
+ "sentAVideo": "{username} отправил видео",
"@sentAVideo": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sessionVerified": "",
+ "sessionVerified": "Сессия подтверждена",
"@sessionVerified": {
"type": "text",
"placeholders": {}
},
- "Set a profile picture": "",
+ "Set a profile picture": "Установить изображение профиля",
"@Set a profile picture": {
"type": "text",
"placeholders": {}
},
- "Set group description": "",
+ "Set group description": "Задать описание группы",
"@Set group description": {
"type": "text",
"placeholders": {}
},
- "Set invitation link": "",
+ "Set invitation link": "Установить ссылку для приглашения",
"@Set invitation link": {
"type": "text",
"placeholders": {}
},
- "Set status": "",
+ "Set status": "Задать статус",
"@Set status": {
"type": "text",
"placeholders": {}
},
- "Settings": "",
+ "Settings": "Настройки",
"@Settings": {
"type": "text",
"placeholders": {}
},
- "Sign up": "",
+ "Sign up": "Зарегистрироваться",
"@Sign up": {
"type": "text",
"placeholders": {}
},
- "Skip": "",
+ "Skip": "Пропустить",
"@Skip": {
"type": "text",
"placeholders": {}
},
- "Change your style": "",
+ "Change your style": "Изменить свой стиль",
"@Change your style": {
"type": "text",
"placeholders": {}
},
- "System": "",
+ "System": "Системный",
"@System": {
"type": "text",
"placeholders": {}
},
- "How are you today?": "",
+ "How are you today?": "Как у вас сегодня дела?",
"@How are you today?": {
"type": "text",
"placeholders": {}
},
- "Light": "",
+ "Light": "Светлый",
"@Light": {
"type": "text",
"placeholders": {}
},
- "Dark": "",
+ "Dark": "Тёмный",
"@Dark": {
"type": "text",
"placeholders": {}
},
- "Use Amoled compatible colors?": "",
+ "Use Amoled compatible colors?": "Использовать Amoled совместимые цвета?",
"@Use Amoled compatible colors?": {
"type": "text",
"placeholders": {}
},
- "Source code": "",
+ "Source code": "Исходный код",
"@Source code": {
"type": "text",
"placeholders": {}
},
- "Start your first chat :-)": "",
+ "Start your first chat :-)": "Начни свой первый чат :-)",
"@Start your first chat :-)": {
"type": "text",
"placeholders": {}
},
- "Submit": "",
+ "Submit": "Отправить",
"@Submit": {
"type": "text",
"placeholders": {}
},
- "Sunday": "",
+ "Sunday": "Воскресенье",
"@Sunday": {
"type": "text",
"placeholders": {}
},
- "Donate": "",
+ "Donate": "Пожертвовать",
"@Donate": {
"type": "text",
"placeholders": {}
},
- "Tap to show menu": "",
+ "Tap to show menu": "Нажмите, чтобы показать меню",
"@Tap to show menu": {
"type": "text",
"placeholders": {}
},
- "They Don't Match": "",
+ "They Don't Match": "Они не совпадают",
"@They Don't Match": {
"type": "text",
"placeholders": {}
},
- "They Match": "",
+ "They Match": "Они совпадают",
"@They Match": {
"type": "text",
"placeholders": {}
},
- "This room has been archived.": "",
+ "This room has been archived.": "Эта комната была заархивирована.",
"@This room has been archived.": {
"type": "text",
"placeholders": {}
},
- "Thursday": "",
+ "Thursday": "Четверг",
"@Thursday": {
"type": "text",
"placeholders": {}
},
- "timeOfDay": "",
+ "timeOfDay": "{hours24}:{minutes} {suffix}",
"@timeOfDay": {
"type": "text",
"placeholders": {
@@ -1335,23 +1335,23 @@
"suffix": {}
}
},
- "title": "",
+ "title": "FluffyChat",
"@title": {
"description": "Title for the application",
"type": "text",
"placeholders": {}
},
- "Try to send again": "",
+ "Try to send again": "Попробуйте отправить еще раз",
"@Try to send again": {
"type": "text",
"placeholders": {}
},
- "Tuesday": "",
+ "Tuesday": "Вторник",
"@Tuesday": {
"type": "text",
"placeholders": {}
},
- "unbannedUser": "",
+ "unbannedUser": "{username} разбанил {targetName}",
"@unbannedUser": {
"type": "text",
"placeholders": {
@@ -1359,53 +1359,53 @@
"targetName": {}
}
},
- "Unblock Device": "",
+ "Unblock Device": "Разблокировать устройство",
"@Unblock Device": {
"type": "text",
"placeholders": {}
},
- "Unmute chat": "",
+ "Unmute chat": "Размутить чат",
"@Unmute chat": {
"type": "text",
"placeholders": {}
},
- "Unknown device": "",
+ "Unknown device": "Неизвестное устройство",
"@Unknown device": {
"type": "text",
"placeholders": {}
},
- "Unknown encryption algorithm": "",
+ "Unknown encryption algorithm": "Неизвестный алгоритм шифрования",
"@Unknown encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "unknownSessionVerify": "",
+ "unknownSessionVerify": "Неизвестная сессия, пожалуйста, проверьте",
"@unknownSessionVerify": {
"type": "text",
"placeholders": {}
},
- "unknownEvent": "",
+ "unknownEvent": "Неизвестное событие '{type}'",
"@unknownEvent": {
"type": "text",
"placeholders": {
"type": {}
}
},
- "unreadChats": "",
+ "unreadChats": "{unreadCount} непрочитанных чатов",
"@unreadChats": {
"type": "text",
"placeholders": {
"unreadCount": {}
}
},
- "unreadMessages": "",
+ "unreadMessages": "{unreadEvents} непрочитанных сообщений",
"@unreadMessages": {
"type": "text",
"placeholders": {
"unreadEvents": {}
}
},
- "unreadMessagesInChats": "",
+ "unreadMessagesInChats": "{unreadEvents} непрочитанных сообщений в {unreadChats} чатах",
"@unreadMessagesInChats": {
"type": "text",
"placeholders": {
@@ -1413,7 +1413,7 @@
"unreadChats": {}
}
},
- "userAndOthersAreTyping": "",
+ "userAndOthersAreTyping": "{username} и {count} других печатают...",
"@userAndOthersAreTyping": {
"type": "text",
"placeholders": {
@@ -1421,7 +1421,7 @@
"count": {}
}
},
- "userAndUserAreTyping": "",
+ "userAndUserAreTyping": "{username} и {username2} печатают...",
"@userAndUserAreTyping": {
"type": "text",
"placeholders": {
@@ -1429,19 +1429,19 @@
"username2": {}
}
},
- "Username": "",
+ "Username": "Имя пользователя",
"@Username": {
"type": "text",
"placeholders": {}
},
- "userIsTyping": "",
+ "userIsTyping": "{username} печатает...",
"@userIsTyping": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "userSentUnknownEvent": "",
+ "userSentUnknownEvent": "{username} отправил {type} событие",
"@userSentUnknownEvent": {
"type": "text",
"placeholders": {
@@ -1449,142 +1449,142 @@
"type": {}
}
},
- "Verify": "",
+ "Verify": "Проверить",
"@Verify": {
"type": "text",
"placeholders": {}
},
- "verifyManual": "",
+ "verifyManual": "Проверить вручную",
"@verifyManual": {
"type": "text",
"placeholders": {}
},
- "verifiedSession": "",
+ "verifiedSession": "Успешно проверенная сессия!",
"@verifiedSession": {
"type": "text",
"placeholders": {}
},
- "verifyStart": "",
+ "verifyStart": "Начать проверку",
"@verifyStart": {
"type": "text",
"placeholders": {}
},
- "verifySuccess": "",
+ "verifySuccess": "Вы успешно проверили!",
"@verifySuccess": {
"type": "text",
"placeholders": {}
},
- "verifyTitle": "",
+ "verifyTitle": "Проверка другого аккаунта",
"@verifyTitle": {
"type": "text",
"placeholders": {}
},
- "Verify User": "",
+ "Verify User": "Проверить пользователя",
"@Verify User": {
"type": "text",
"placeholders": {}
},
- "Video call": "",
+ "Video call": "Видеозвонок",
"@Video call": {
"type": "text",
"placeholders": {}
},
- "Visible for all participants": "",
+ "Visible for all participants": "Видима для всех участников",
"@Visible for all participants": {
"type": "text",
"placeholders": {}
},
- "Visible for everyone": "",
+ "Visible for everyone": "Видна всем",
"@Visible for everyone": {
"type": "text",
"placeholders": {}
},
- "Visibility of the chat history": "",
+ "Visibility of the chat history": "Видимость истории чата",
"@Visibility of the chat history": {
"type": "text",
"placeholders": {}
},
- "Voice message": "",
+ "Voice message": "Голосовое сообщение",
"@Voice message": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerAcceptRequest": "",
+ "waitingPartnerAcceptRequest": "В ожидании партнера, чтобы принять запрос...",
"@waitingPartnerAcceptRequest": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerEmoji": "",
+ "waitingPartnerEmoji": "В ожидании партнера, чтобы принять смайлики...",
"@waitingPartnerEmoji": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerNumbers": "",
+ "waitingPartnerNumbers": "В ожидании партнера, чтобы принять числа...",
"@waitingPartnerNumbers": {
"type": "text",
"placeholders": {}
},
- "Wallpaper": "",
+ "Wallpaper": "Обои",
"@Wallpaper": {
"type": "text",
"placeholders": {}
},
- "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "End to end encryption is currently in Beta! Use at your own risk!": "Сквозное шифрование в настоящее время в бета-версии! Используйте на свой риск!",
"@End to end encryption is currently in Beta! Use at your own risk!": {
"type": "text",
"placeholders": {}
},
- "Wednesday": "",
+ "Wednesday": "Среда",
"@Wednesday": {
"type": "text",
"placeholders": {}
},
- "Welcome to the cutest instant messenger in the matrix network.": "",
+ "Welcome to the cutest instant messenger in the matrix network.": "Добро пожаловать в самый симпатичный мессенджер в сети matrix.",
"@Welcome to the cutest instant messenger in the matrix network.": {
"type": "text",
"placeholders": {}
},
- "Who is allowed to join this group": "",
+ "Who is allowed to join this group": "Кому разрешено вступать в эту группу",
"@Who is allowed to join this group": {
"type": "text",
"placeholders": {}
},
- "Write a message...": "",
+ "Write a message...": "Напишите сообщение...",
"@Write a message...": {
"type": "text",
"placeholders": {}
},
- "Yes": "",
+ "Yes": "Да",
"@Yes": {
"type": "text",
"placeholders": {}
},
- "You": "",
+ "You": "Вы",
"@You": {
"type": "text",
"placeholders": {}
},
- "You are invited to this chat": "",
+ "You are invited to this chat": "Вы приглашены в этот чат",
"@You are invited to this chat": {
"type": "text",
"placeholders": {}
},
- "You are no longer participating in this chat": "",
+ "You are no longer participating in this chat": "Вы больше не участвуете в этом чате",
"@You are no longer participating in this chat": {
"type": "text",
"placeholders": {}
},
- "You cannot invite yourself": "",
+ "You cannot invite yourself": "Вы не можете пригласить себя",
"@You cannot invite yourself": {
"type": "text",
"placeholders": {}
},
- "You have been banned from this chat": "",
+ "You have been banned from this chat": "Вы были забанены в этом чате",
"@You have been banned from this chat": {
"type": "text",
"placeholders": {}
},
- "Your own username": "",
+ "Your own username": "Ваше имя пользователя",
"@Your own username": {
"type": "text",
"placeholders": {}
From d53dff534c9ea17bab95605c62d318334fff63d3 Mon Sep 17 00:00:00 2001
From: Serge Tarkovski
Date: Fri, 17 Jul 2020 07:31:13 +0000
Subject: [PATCH 63/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index 8435fbc..f8855b3 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -10,14 +10,14 @@
"type": "text",
"placeholders": {}
},
- "acceptedTheInvitation": "{username} принял приглашение",
+ "acceptedTheInvitation": "{username} принял(а) приглашение",
"@acceptedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Account": "Аккаунт",
+ "Account": "Учетная запись",
"@Account": {
"type": "text",
"placeholders": {}
@@ -27,7 +27,7 @@
"type": "text",
"placeholders": {}
},
- "activatedEndToEndEncryption": "{username} активировал сквозное шифрование",
+ "activatedEndToEndEncryption": "{username} активировал(а) сквозное шифрование",
"@activatedEndToEndEncryption": {
"type": "text",
"placeholders": {
@@ -64,7 +64,7 @@
"type": "text",
"placeholders": {}
},
- "Archived Room": "Архивная комната",
+ "Archived Room": "Архивированная комната",
"@Archived Room": {
"type": "text",
"placeholders": {}
From e5574cacfe43a9f46290ae1c82d8bf7e7875d97c Mon Sep 17 00:00:00 2001
From: Serge Tarkovski
Date: Fri, 17 Jul 2020 07:31:41 +0000
Subject: [PATCH 64/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index f8855b3..fabd3b7 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -22,7 +22,7 @@
"type": "text",
"placeholders": {}
},
- "Account informations": "Сведения об аккаунте",
+ "Account informations": "Сведения об учетной записи",
"@Account informations": {
"type": "text",
"placeholders": {}
From 5d24793ee6e641cb53e7a0ddbd796701e4482add Mon Sep 17 00:00:00 2001
From: Nikita Epifanov
Date: Fri, 17 Jul 2020 07:31:34 +0000
Subject: [PATCH 65/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index fabd3b7..8b5715f 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -17,7 +17,7 @@
"username": {}
}
},
- "Account": "Учетная запись",
+ "Account": "Учётная запись",
"@Account": {
"type": "text",
"placeholders": {}
From 333dbf78664f60e763806ee58682e116fe922ef8 Mon Sep 17 00:00:00 2001
From: Serge Tarkovski
Date: Fri, 17 Jul 2020 07:31:54 +0000
Subject: [PATCH 66/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index 8b5715f..062b216 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -49,7 +49,7 @@
"type": "text",
"placeholders": {}
},
- "Already have an account?": "Уже есть аккаунт?",
+ "Already have an account?": "Уже есть учетная запись?",
"@Already have an account?": {
"type": "text",
"placeholders": {}
From 860f57224789fea2e2fa17a2700632f2ce197730 Mon Sep 17 00:00:00 2001
From: Nikita Epifanov
Date: Fri, 17 Jul 2020 07:31:48 +0000
Subject: [PATCH 67/89] Translated using Weblate (Russian)
Currently translated at 100.0% (288 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ru/
---
lib/l10n/intl_ru.arb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb
index 062b216..c8f3dca 100644
--- a/lib/l10n/intl_ru.arb
+++ b/lib/l10n/intl_ru.arb
@@ -22,7 +22,7 @@
"type": "text",
"placeholders": {}
},
- "Account informations": "Сведения об учетной записи",
+ "Account informations": "Сведения об учётной записи",
"@Account informations": {
"type": "text",
"placeholders": {}
From 91e716e5feddef2dda130f5051e73a9a48714857 Mon Sep 17 00:00:00 2001
From: Shogo Takata
Date: Fri, 17 Jul 2020 07:06:53 +0000
Subject: [PATCH 68/89] Translated using Weblate (Japanese)
Currently translated at 99.3% (286 of 288 strings)
Translation: FluffyChat/Translations
Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/ja/
---
lib/l10n/intl_ja.arb | 364 +++++++++++++++++++++----------------------
1 file changed, 182 insertions(+), 182 deletions(-)
diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb
index 47af26a..79c76b2 100644
--- a/lib/l10n/intl_ja.arb
+++ b/lib/l10n/intl_ja.arb
@@ -335,12 +335,12 @@
"type": "text",
"placeholders": {}
},
- "Contact has been invited to the group": "",
+ "Contact has been invited to the group": "連絡先に登録された人が招待されました",
"@Contact has been invited to the group": {
"type": "text",
"placeholders": {}
},
- "Content viewer": "",
+ "Content viewer": "コンテンツビューアー",
"@Content viewer": {
"type": "text",
"placeholders": {}
@@ -372,7 +372,7 @@
"type": "text",
"placeholders": {}
},
- "countParticipants": "",
+ "countParticipants": "{count}名の参加者",
"@countParticipants": {
"type": "text",
"placeholders": {
@@ -411,7 +411,7 @@
"type": "text",
"placeholders": {}
},
- "Currently active": "",
+ "Currently active": "現在アクティブです",
"@Currently active": {
"type": "text",
"placeholders": {}
@@ -466,7 +466,7 @@
"type": "text",
"placeholders": {}
},
- "Discard picture": "",
+ "Discard picture": "画像を無視する",
"@Discard picture": {
"type": "text",
"placeholders": {}
@@ -486,27 +486,27 @@
"type": "text",
"placeholders": {}
},
- "Emote Settings": "",
+ "Emote Settings": "Emote設定",
"@Emote Settings": {
"type": "text",
"placeholders": {}
},
- "Emote shortcode": "",
+ "Emote shortcode": "Emoteショートコード",
"@Emote shortcode": {
"type": "text",
"placeholders": {}
},
- "emoteWarnNeedToPick": "",
+ "emoteWarnNeedToPick": "Emoteショートコードと画像を選択してください!",
"@emoteWarnNeedToPick": {
"type": "text",
"placeholders": {}
},
- "emoteExists": "",
+ "emoteExists": "Emoteはすでに存在します!",
"@emoteExists": {
"type": "text",
"placeholders": {}
},
- "emoteInvalid": "",
+ "emoteInvalid": "不正なEmoteショートコード",
"@emoteInvalid": {
"type": "text",
"placeholders": {}
@@ -571,7 +571,7 @@
"type": "text",
"placeholders": {}
},
- "Forward": "",
+ "Forward": "進む",
"@Forward": {
"type": "text",
"placeholders": {}
@@ -581,12 +581,12 @@
"type": "text",
"placeholders": {}
},
- "From joining": "",
+ "From joining": "参加から",
"@From joining": {
"type": "text",
"placeholders": {}
},
- "From the invitation": "",
+ "From the invitation": "招待から",
"@From the invitation": {
"type": "text",
"placeholders": {}
@@ -606,12 +606,12 @@
"type": "text",
"placeholders": {}
},
- "Group is public": "",
+ "Group is public": "グループは公開されています",
"@Group is public": {
"type": "text",
"placeholders": {}
},
- "groupWith": "",
+ "groupWith": "{displayname}とグループを作成する",
"@groupWith": {
"type": "text",
"placeholders": {
@@ -628,7 +628,7 @@
"type": "text",
"placeholders": {}
},
- "hasWithdrawnTheInvitationFor": "",
+ "hasWithdrawnTheInvitationFor": "{targetName}の招待を{username}が取り下げました",
"@hasWithdrawnTheInvitationFor": {
"type": "text",
"placeholders": {
@@ -651,7 +651,7 @@
"type": "text",
"placeholders": {}
},
- "Identity": "",
+ "Identity": "アイデンティティ",
"@Identity": {
"type": "text",
"placeholders": {}
@@ -661,19 +661,19 @@
"type": "text",
"placeholders": {}
},
- "Invite contact": "",
+ "Invite contact": "連絡先から招待する",
"@Invite contact": {
"type": "text",
"placeholders": {}
},
- "inviteContactToGroup": "",
+ "inviteContactToGroup": "連絡先から{groupName}に招待する",
"@inviteContactToGroup": {
"type": "text",
"placeholders": {
"groupName": {}
}
},
- "Invited": "",
+ "Invited": "招待されました",
"@Invited": {
"type": "text",
"placeholders": {}
@@ -699,7 +699,7 @@
"type": "text",
"placeholders": {}
},
- "isDeviceKeyCorrect": "",
+ "isDeviceKeyCorrect": "このデバイスキーは正しいですか?",
"@isDeviceKeyCorrect": {
"type": "text",
"placeholders": {}
@@ -709,29 +709,29 @@
"type": "text",
"placeholders": {}
},
- "Edit Jitsi instance": "",
+ "Edit Jitsi instance": "Jitsiインスタンスを編集する",
"@Edit Jitsi instance": {
"type": "text",
"placeholders": {}
},
- "joinedTheChat": "",
+ "joinedTheChat": "{username}がチャットに参加しました",
"@joinedTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "keysCached": "",
+ "keysCached": "鍵はキャッシュされたいます",
"@keysCached": {
"type": "text",
"placeholders": {}
},
- "keysMissing": "",
+ "keysMissing": "鍵がありません",
"@keysMissing": {
"type": "text",
"placeholders": {}
},
- "kicked": "",
+ "kicked": "{username}は{targetName}をキックしました",
"@kicked": {
"type": "text",
"placeholders": {
@@ -739,7 +739,7 @@
"targetName": {}
}
},
- "kickedAndBanned": "",
+ "kickedAndBanned": "{username}は{targetName}をキックしBANしました",
"@kickedAndBanned": {
"type": "text",
"placeholders": {
@@ -747,394 +747,394 @@
"targetName": {}
}
},
- "Kick from chat": "",
+ "Kick from chat": "チャットからキックする",
"@Kick from chat": {
"type": "text",
"placeholders": {}
},
- "Leave": "",
+ "Leave": "退室する",
"@Leave": {
"type": "text",
"placeholders": {}
},
- "Left the chat": "",
+ "Left the chat": "退室しました",
"@Left the chat": {
"type": "text",
"placeholders": {}
},
- "Logout": "",
+ "Logout": "ログアウト",
"@Logout": {
"type": "text",
"placeholders": {}
},
- "userLeftTheChat": "",
+ "userLeftTheChat": "{username}は退室しました",
"@userLeftTheChat": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "lastActiveAgo": "",
+ "lastActiveAgo": "最終アクティブ: {localizedTimeShort}",
"@lastActiveAgo": {
"type": "text",
"placeholders": {
"localizedTimeShort": {}
}
},
- "Last seen IP": "",
+ "Last seen IP": "最終IP",
"@Last seen IP": {
"type": "text",
"placeholders": {}
},
- "License": "",
+ "License": "ライセンス",
"@License": {
"type": "text",
"placeholders": {}
},
- "Loading... Please wait": "",
+ "Loading... Please wait": "読み込み中...お待ちください。",
"@Loading... Please wait": {
"type": "text",
"placeholders": {}
},
- "Load more...": "",
+ "Load more...": "更に読み込む...",
"@Load more...": {
"type": "text",
"placeholders": {}
},
- "loadCountMoreParticipants": "",
+ "loadCountMoreParticipants": "あと{count}名参加者を読み込む",
"@loadCountMoreParticipants": {
"type": "text",
"placeholders": {
"count": {}
}
},
- "Login": "",
+ "Login": "ログイン",
"@Login": {
"type": "text",
"placeholders": {}
},
- "logInTo": "",
+ "logInTo": "{homeserver}にログインする",
"@logInTo": {
"type": "text",
"placeholders": {
"homeserver": {}
}
},
- "Make a moderator": "",
+ "Make a moderator": "モデレータを作成する",
"@Make a moderator": {
"type": "text",
"placeholders": {}
},
- "Make an admin": "",
+ "Make an admin": "管理者を作成する",
"@Make an admin": {
"type": "text",
"placeholders": {}
},
- "Make sure the identifier is valid": "",
+ "Make sure the identifier is valid": "識別子が正しいか確認してください",
"@Make sure the identifier is valid": {
"type": "text",
"placeholders": {}
},
- "Message will be removed for all participants": "",
+ "Message will be removed for all participants": "メッセージはすべての参加者から消去されます",
"@Message will be removed for all participants": {
"type": "text",
"placeholders": {}
},
- "Moderator": "",
+ "Moderator": "モデレータ",
"@Moderator": {
"type": "text",
"placeholders": {}
},
- "Monday": "",
+ "Monday": "月曜日",
"@Monday": {
"type": "text",
"placeholders": {}
},
- "Mute chat": "",
+ "Mute chat": "チャットのミュート",
"@Mute chat": {
"type": "text",
"placeholders": {}
},
- "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "",
+ "Please be aware that you need Pantalaimon to use end-to-end encryption for now.": "現時点では、エンドツーエンドの暗号化を使用するにはPantalaimonが必要であることに注意してください。",
"@Please be aware that you need Pantalaimon to use end-to-end encryption for now.": {
"type": "text",
"placeholders": {}
},
- "New message in FluffyChat": "",
+ "New message in FluffyChat": "FluffyChatに新しいメッセージがあります",
"@New message in FluffyChat": {
"type": "text",
"placeholders": {}
},
- "New private chat": "",
+ "New private chat": "新しいプライベートチャット",
"@New private chat": {
"type": "text",
"placeholders": {}
},
- "newVerificationRequest": "",
+ "newVerificationRequest": "新しい認証リクエスト",
"@newVerificationRequest": {
"type": "text",
"placeholders": {}
},
- "noCrossSignBootstrap": "",
+ "noCrossSignBootstrap": "FluffyChatは現在相互署名機能をサポートしていません。Riotから有効化してください。",
"@noCrossSignBootstrap": {
"type": "text",
"placeholders": {}
},
- "noMegolmBootstrap": "",
+ "noMegolmBootstrap": "FluffyChatは現在鍵のオンラインバックアップの有効化をサポートしていません。Riotから有効化してください。",
"@noMegolmBootstrap": {
"type": "text",
"placeholders": {}
},
- "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "",
+ "It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": "あなたのスマホにはグーグルサービスがないようですね。プライバシーを保護するための良い選択です!Push通知を受け取るにはmicroGを使うことを推奨しています: https://microg.org/",
"@It seems that you have no google services on your phone. That's a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/": {
"type": "text",
"placeholders": {}
},
- "None": "",
+ "None": "なし",
"@None": {
"type": "text",
"placeholders": {}
},
- "No emotes found. 😕": "",
+ "No emotes found. 😕": "Emoteは見つかりませんでした😕",
"@No emotes found. 😕": {
"type": "text",
"placeholders": {}
},
- "No permission": "",
+ "No permission": "権限がありません",
"@No permission": {
"type": "text",
"placeholders": {}
},
- "No rooms found...": "",
+ "No rooms found...": "部屋は見つかりませんでした...",
"@No rooms found...": {
"type": "text",
"placeholders": {}
},
- "Not supported in web": "",
+ "Not supported in web": "ウェブではサポートされていません",
"@Not supported in web": {
"type": "text",
"placeholders": {}
},
- "numberSelected": "",
+ "numberSelected": "{number}選択されています",
"@numberSelected": {
"type": "text",
"placeholders": {
"number": {}
}
},
- "ok": "",
+ "ok": "OK",
"@ok": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupDisabled": "",
+ "onlineKeyBackupDisabled": "オンライン鍵バックアップは使用されていません",
"@onlineKeyBackupDisabled": {
"type": "text",
"placeholders": {}
},
- "onlineKeyBackupEnabled": "",
+ "onlineKeyBackupEnabled": "オンライン鍵バックアップは使用されています",
"@onlineKeyBackupEnabled": {
"type": "text",
"placeholders": {}
},
- "Oops something went wrong...": "",
+ "Oops something went wrong...": "おっと、何かがうまくいきませんでした...",
"@Oops something went wrong...": {
"type": "text",
"placeholders": {}
},
- "Open app to read messages": "",
+ "Open app to read messages": "アプリを開いてメッセージを確認してください",
"@Open app to read messages": {
"type": "text",
"placeholders": {}
},
- "Open camera": "",
+ "Open camera": "カメラを開く",
"@Open camera": {
"type": "text",
"placeholders": {}
},
- "(Optional) Group name": "",
+ "(Optional) Group name": "(任意)グループ名",
"@(Optional) Group name": {
"type": "text",
"placeholders": {}
},
- "Participating user devices": "",
+ "Participating user devices": "ユーザーの使用しているデバイス",
"@Participating user devices": {
"type": "text",
"placeholders": {}
},
- "passphraseOrKey": "",
+ "passphraseOrKey": "パスフレーズかリカバリーキー",
"@passphraseOrKey": {
"type": "text",
"placeholders": {}
},
- "Password": "",
+ "Password": "パスワード",
"@Password": {
"type": "text",
"placeholders": {}
},
- "Pick image": "",
+ "Pick image": "画像を選択してください",
"@Pick image": {
"type": "text",
"placeholders": {}
},
- "play": "",
+ "play": "{fileName}を再生する",
"@play": {
"type": "text",
"placeholders": {
"fileName": {}
}
},
- "Please choose a username": "",
+ "Please choose a username": "ユーザー名を選択してください",
"@Please choose a username": {
"type": "text",
"placeholders": {}
},
- "Please enter a matrix identifier": "",
+ "Please enter a matrix identifier": "Matrix識別子を入力してください",
"@Please enter a matrix identifier": {
"type": "text",
"placeholders": {}
},
- "Please enter your password": "",
+ "Please enter your password": "パスワードを入力してください",
"@Please enter your password": {
"type": "text",
"placeholders": {}
},
- "Please enter your username": "",
+ "Please enter your username": "ユーザー名を入力してください",
"@Please enter your username": {
"type": "text",
"placeholders": {}
},
- "Public Rooms": "",
+ "Public Rooms": "公開された部屋",
"@Public Rooms": {
"type": "text",
"placeholders": {}
},
- "Reject": "",
+ "Reject": "拒否",
"@Reject": {
"type": "text",
"placeholders": {}
},
- "Rejoin": "",
+ "Rejoin": "再参加",
"@Rejoin": {
"type": "text",
"placeholders": {}
},
- "Render rich message content": "",
+ "Render rich message content": "リッチメッセージをレンダリングする",
"@Render rich message content": {
"type": "text",
"placeholders": {}
},
- "Recording": "",
+ "Recording": "録音中",
"@Recording": {
"type": "text",
"placeholders": {}
},
- "redactedAnEvent": "",
+ "redactedAnEvent": "{username}がイベントを編集しました",
"@redactedAnEvent": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "rejectedTheInvitation": "",
+ "rejectedTheInvitation": "{username}は招待を拒否しました",
"@rejectedTheInvitation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove all other devices": "",
+ "Remove all other devices": "他のデバイスをすべて削除",
"@Remove all other devices": {
"type": "text",
"placeholders": {}
},
- "removedBy": "",
+ "removedBy": "{username}によって削除されました",
"@removedBy": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Remove device": "",
+ "Remove device": "デバイスの削除",
"@Remove device": {
"type": "text",
"placeholders": {}
},
- "Remove exile": "",
+ "Remove exile": "追放を取り消し",
"@Remove exile": {
"type": "text",
"placeholders": {}
},
- "Revoke all permissions": "",
+ "Revoke all permissions": "すべての権限を取り消す",
"@Revoke all permissions": {
"type": "text",
"placeholders": {}
},
- "Remove": "",
+ "Remove": "消去",
"@Remove": {
"type": "text",
"placeholders": {}
},
- "Remove message": "",
+ "Remove message": "メッセージを削除",
"@Remove message": {
"type": "text",
"placeholders": {}
},
- "Reply": "",
+ "Reply": "返信",
"@Reply": {
"type": "text",
"placeholders": {}
},
- "Request permission": "",
+ "Request permission": "権限を要求する",
"@Request permission": {
"type": "text",
"placeholders": {}
},
- "Request to read older messages": "",
+ "Request to read older messages": "過去のメッセージを読む権限を要求する",
"@Request to read older messages": {
"type": "text",
"placeholders": {}
},
- "Room has been upgraded": "",
+ "Room has been upgraded": "部屋はアップグレードされました",
"@Room has been upgraded": {
"type": "text",
"placeholders": {}
},
- "Saturday": "",
+ "Saturday": "土曜日",
"@Saturday": {
"type": "text",
"placeholders": {}
},
- "Share": "",
+ "Share": "共有",
"@Share": {
"type": "text",
"placeholders": {}
},
- "sharedTheLocation": "",
+ "sharedTheLocation": "{username}は現在地を共有しました",
"@sharedTheLocation": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "Search for a chat": "",
+ "Search for a chat": "チャットを検索する",
"@Search for a chat": {
"type": "text",
"placeholders": {}
},
- "Seen a long time ago": "",
+ "Seen a long time ago": "ずいぶん前に既読",
"@Seen a long time ago": {
"type": "text",
"placeholders": {}
},
- "seenByUser": "",
+ "seenByUser": "{username}が既読",
"@seenByUser": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "seenByUserAndUser": "",
+ "seenByUserAndUser": "{username}と{username2}が既読",
"@seenByUserAndUser": {
"type": "text",
"placeholders": {
@@ -1142,7 +1142,7 @@
"username2": {}
}
},
- "seenByUserAndCountOthers": "",
+ "seenByUserAndCountOthers": "{username}と他{count}名が既読",
"@seenByUserAndCountOthers": {
"type": "text",
"placeholders": {
@@ -1150,182 +1150,182 @@
"count": {}
}
},
- "Send": "",
+ "Send": "送信",
"@Send": {
"type": "text",
"placeholders": {}
},
- "Send a message": "",
+ "Send a message": "メッセージを送信",
"@Send a message": {
"type": "text",
"placeholders": {}
},
- "Send file": "",
+ "Send file": "ファイルを送信",
"@Send file": {
"type": "text",
"placeholders": {}
},
- "Send image": "",
+ "Send image": "画像の送信",
"@Send image": {
"type": "text",
"placeholders": {}
},
- "sentAFile": "",
+ "sentAFile": "{username}はファイルを送信しました",
"@sentAFile": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAnAudio": "",
+ "sentAnAudio": "{username}は音声を送信しました",
"@sentAnAudio": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAPicture": "",
+ "sentAPicture": "{username}は画像を送信しました",
"@sentAPicture": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentASticker": "",
+ "sentASticker": "{username}はステッカーを送信しました",
"@sentASticker": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sentAVideo": "",
+ "sentAVideo": "{username}は動画を送信しました",
"@sentAVideo": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "sessionVerified": "",
+ "sessionVerified": "セッションは確認済みです",
"@sessionVerified": {
"type": "text",
"placeholders": {}
},
- "Set a profile picture": "",
+ "Set a profile picture": "プロフィール画像を設定する",
"@Set a profile picture": {
"type": "text",
"placeholders": {}
},
- "Set group description": "",
+ "Set group description": "グループの説明を設定する",
"@Set group description": {
"type": "text",
"placeholders": {}
},
- "Set invitation link": "",
+ "Set invitation link": "招待リンクを設定する",
"@Set invitation link": {
"type": "text",
"placeholders": {}
},
- "Set status": "",
+ "Set status": "ステータスの設定",
"@Set status": {
"type": "text",
"placeholders": {}
},
- "Settings": "",
+ "Settings": "設定",
"@Settings": {
"type": "text",
"placeholders": {}
},
- "Sign up": "",
+ "Sign up": "サインアップ",
"@Sign up": {
"type": "text",
"placeholders": {}
},
- "Skip": "",
+ "Skip": "スキップ",
"@Skip": {
"type": "text",
"placeholders": {}
},
- "Change your style": "",
+ "Change your style": "スタイルを変更する",
"@Change your style": {
"type": "text",
"placeholders": {}
},
- "System": "",
+ "System": "システム",
"@System": {
"type": "text",
"placeholders": {}
},
- "How are you today?": "",
+ "How are you today?": "お元気ですか?",
"@How are you today?": {
"type": "text",
"placeholders": {}
},
- "Light": "",
+ "Light": "ライト",
"@Light": {
"type": "text",
"placeholders": {}
},
- "Dark": "",
+ "Dark": "ダーク",
"@Dark": {
"type": "text",
"placeholders": {}
},
- "Use Amoled compatible colors?": "",
+ "Use Amoled compatible colors?": "有機EL(Amoled)対応の色にしますか?",
"@Use Amoled compatible colors?": {
"type": "text",
"placeholders": {}
},
- "Source code": "",
+ "Source code": "ソースコード",
"@Source code": {
"type": "text",
"placeholders": {}
},
- "Start your first chat :-)": "",
+ "Start your first chat :-)": "初めてのチャットを開始してください(^_^)",
"@Start your first chat :-)": {
"type": "text",
"placeholders": {}
},
- "Submit": "",
+ "Submit": "送信",
"@Submit": {
"type": "text",
"placeholders": {}
},
- "Sunday": "",
+ "Sunday": "日曜日",
"@Sunday": {
"type": "text",
"placeholders": {}
},
- "Donate": "",
+ "Donate": "寄付する",
"@Donate": {
"type": "text",
"placeholders": {}
},
- "Tap to show menu": "",
+ "Tap to show menu": "メニューを表示するにはタップしてください",
"@Tap to show menu": {
"type": "text",
"placeholders": {}
},
- "They Don't Match": "",
+ "They Don't Match": "違います",
"@They Don't Match": {
"type": "text",
"placeholders": {}
},
- "They Match": "",
+ "They Match": "一致しています",
"@They Match": {
"type": "text",
"placeholders": {}
},
- "This room has been archived.": "",
+ "This room has been archived.": "この部屋はアーカイブされています",
"@This room has been archived.": {
"type": "text",
"placeholders": {}
},
- "Thursday": "",
+ "Thursday": "木曜日",
"@Thursday": {
"type": "text",
"placeholders": {}
},
- "timeOfDay": "",
+ "timeOfDay": "{hours24}:{minutes} {suffix}",
"@timeOfDay": {
"type": "text",
"placeholders": {
@@ -1335,23 +1335,23 @@
"suffix": {}
}
},
- "title": "",
+ "title": "FluffyChat",
"@title": {
"description": "Title for the application",
"type": "text",
"placeholders": {}
},
- "Try to send again": "",
+ "Try to send again": "送信し直してみる",
"@Try to send again": {
"type": "text",
"placeholders": {}
},
- "Tuesday": "",
+ "Tuesday": "火曜日",
"@Tuesday": {
"type": "text",
"placeholders": {}
},
- "unbannedUser": "",
+ "unbannedUser": "{username}が{targetName}のBANを解除しました",
"@unbannedUser": {
"type": "text",
"placeholders": {
@@ -1359,53 +1359,53 @@
"targetName": {}
}
},
- "Unblock Device": "",
+ "Unblock Device": "デバイスをブロック解除する",
"@Unblock Device": {
"type": "text",
"placeholders": {}
},
- "Unmute chat": "",
+ "Unmute chat": "チャットをミュート解除する",
"@Unmute chat": {
"type": "text",
"placeholders": {}
},
- "Unknown device": "",
+ "Unknown device": "未知デバイス",
"@Unknown device": {
"type": "text",
"placeholders": {}
},
- "Unknown encryption algorithm": "",
+ "Unknown encryption algorithm": "未知の暗号化アルゴリズム",
"@Unknown encryption algorithm": {
"type": "text",
"placeholders": {}
},
- "unknownSessionVerify": "",
+ "unknownSessionVerify": "未知のセッションです。確認してください。",
"@unknownSessionVerify": {
"type": "text",
"placeholders": {}
},
- "unknownEvent": "",
+ "unknownEvent": "未知のイベント'{type}'",
"@unknownEvent": {
"type": "text",
"placeholders": {
"type": {}
}
},
- "unreadChats": "",
+ "unreadChats": "{unreadCount}の未読メッセージ",
"@unreadChats": {
"type": "text",
"placeholders": {
"unreadCount": {}
}
},
- "unreadMessages": "",
+ "unreadMessages": "{unreadEvents}件の未読メッセージ",
"@unreadMessages": {
"type": "text",
"placeholders": {
"unreadEvents": {}
}
},
- "unreadMessagesInChats": "",
+ "unreadMessagesInChats": "{unreadChats}で{unreadEvents}件の未読メッセージ",
"@unreadMessagesInChats": {
"type": "text",
"placeholders": {
@@ -1413,7 +1413,7 @@
"unreadChats": {}
}
},
- "userAndOthersAreTyping": "",
+ "userAndOthersAreTyping": "{username}と他{count}名が入力しています...",
"@userAndOthersAreTyping": {
"type": "text",
"placeholders": {
@@ -1421,7 +1421,7 @@
"count": {}
}
},
- "userAndUserAreTyping": "",
+ "userAndUserAreTyping": "{username}と{username2}が入力しています...",
"@userAndUserAreTyping": {
"type": "text",
"placeholders": {
@@ -1429,19 +1429,19 @@
"username2": {}
}
},
- "Username": "",
+ "Username": "ユーザー名",
"@Username": {
"type": "text",
"placeholders": {}
},
- "userIsTyping": "",
+ "userIsTyping": "{username}が入力しています...",
"@userIsTyping": {
"type": "text",
"placeholders": {
"username": {}
}
},
- "userSentUnknownEvent": "",
+ "userSentUnknownEvent": "{username}は{type}イベントを送信しました",
"@userSentUnknownEvent": {
"type": "text",
"placeholders": {
@@ -1449,142 +1449,142 @@
"type": {}
}
},
- "Verify": "",
+ "Verify": "確認",
"@Verify": {
"type": "text",
"placeholders": {}
},
- "verifyManual": "",
+ "verifyManual": "手動で確認",
"@verifyManual": {
"type": "text",
"placeholders": {}
},
- "verifiedSession": "",
+ "verifiedSession": "セッションの確認ができました!",
"@verifiedSession": {
"type": "text",
"placeholders": {}
},
- "verifyStart": "",
+ "verifyStart": "確認を始める",
"@verifyStart": {
"type": "text",
"placeholders": {}
},
- "verifySuccess": "",
+ "verifySuccess": "確認が完了しました!",
"@verifySuccess": {
"type": "text",
"placeholders": {}
},
- "verifyTitle": "",
+ "verifyTitle": "他のアカウントを確認中",
"@verifyTitle": {
"type": "text",
"placeholders": {}
},
- "Verify User": "",
+ "Verify User": "ユーザーの認証",
"@Verify User": {
"type": "text",
"placeholders": {}
},
- "Video call": "",
+ "Video call": "音声通話",
"@Video call": {
"type": "text",
"placeholders": {}
},
- "Visible for all participants": "",
+ "Visible for all participants": "すべての参加者が閲覧可能です",
"@Visible for all participants": {
"type": "text",
"placeholders": {}
},
- "Visible for everyone": "",
+ "Visible for everyone": "すべての人が閲覧可能です",
"@Visible for everyone": {
"type": "text",
"placeholders": {}
},
- "Visibility of the chat history": "",
+ "Visibility of the chat history": "チャット履歴の表示",
"@Visibility of the chat history": {
"type": "text",
"placeholders": {}
},
- "Voice message": "",
+ "Voice message": "ボイスメッセージ",
"@Voice message": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerAcceptRequest": "",
+ "waitingPartnerAcceptRequest": "パートナーのリクエスト承諾待ちです",
"@waitingPartnerAcceptRequest": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerEmoji": "",
+ "waitingPartnerEmoji": "パートナーの絵文字承諾待ちです...",
"@waitingPartnerEmoji": {
"type": "text",
"placeholders": {}
},
- "waitingPartnerNumbers": "",
+ "waitingPartnerNumbers": "パートナーの数字承諾待ちです",
"@waitingPartnerNumbers": {
"type": "text",
"placeholders": {}
},
- "Wallpaper": "",
+ "Wallpaper": "壁紙",
"@Wallpaper": {
"type": "text",
"placeholders": {}
},
- "End to end encryption is currently in Beta! Use at your own risk!": "",
+ "End to end encryption is currently in Beta! Use at your own risk!": "エンドツーエンド暗号化は現在ベータ版です!これは自分自身の責任で行ってください!",
"@End to end encryption is currently in Beta! Use at your own risk!": {
"type": "text",
"placeholders": {}
},
- "Wednesday": "",
+ "Wednesday": "水曜日",
"@Wednesday": {
"type": "text",
"placeholders": {}
},
- "Welcome to the cutest instant messenger in the matrix network.": "",
+ "Welcome to the cutest instant messenger in the matrix network.": "Matrixネットワークで一番かわいいチャットアプリへようこそ!",
"@Welcome to the cutest instant messenger in the matrix network.": {
"type": "text",
"placeholders": {}
},
- "Who is allowed to join this group": "",
+ "Who is allowed to join this group": "誰がこのチャットに入れますか",
"@Who is allowed to join this group": {
"type": "text",
"placeholders": {}
},
- "Write a message...": "",
+ "Write a message...": "メッセージを入力してください...",
"@Write a message...": {
"type": "text",
"placeholders": {}
},
- "Yes": "",
+ "Yes": "はい",
"@Yes": {
"type": "text",
"placeholders": {}
},
- "You": "",
+ "You": "あなた",
"@You": {
"type": "text",
"placeholders": {}
},
- "You are invited to this chat": "",
+ "You are invited to this chat": "チャットに招待されています",
"@You are invited to this chat": {
"type": "text",
"placeholders": {}
},
- "You are no longer participating in this chat": "",
+ "You are no longer participating in this chat": "あなたはもうこのチャットの参加者ではありません",
"@You are no longer participating in this chat": {
"type": "text",
"placeholders": {}
},
- "You cannot invite yourself": "",
+ "You cannot invite yourself": "自分自身を招待することはできません",
"@You cannot invite yourself": {
"type": "text",
"placeholders": {}
},
- "You have been banned from this chat": "",
+ "You have been banned from this chat": "チャットからBANされてしまいました",
"@You have been banned from this chat": {
"type": "text",
"placeholders": {}
},
- "Your own username": "",
+ "Your own username": "あなたのユーザー名",
"@Your own username": {
"type": "text",
"placeholders": {}
From ea162038372e06418b366e646c05edbfd4eb9306 Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Sat, 18 Jul 2020 15:49:14 +0200
Subject: [PATCH 69/89] Update translated languages
---
CHANGELOG.md | 1 +
lib/l10n/l10n.dart | 16 ++++++++++++++--
lib/main.dart | 4 ++++
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index deaa328..4537967 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
# Version 0.16.0 - 2020-07-??
### Features
- Implement web notifications
+- Added languages: Galician, Croatian, Japanese, Russian
# Version 0.15.1 - 2020-06-26
### Fixes:
diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart
index 8a3d9ca..f7ff057 100644
--- a/lib/l10n/l10n.dart
+++ b/lib/l10n/l10n.dart
@@ -8,8 +8,20 @@ class AppLocalizationsDelegate extends LocalizationsDelegate {
@override
bool isSupported(Locale locale) {
- return ['en', 'de', 'hu', 'pl', 'fr', 'cs', 'es', 'sk']
- .contains(locale.languageCode);
+ return [
+ 'en',
+ 'de',
+ 'hu',
+ 'pl',
+ 'fr',
+ 'cs',
+ 'es',
+ 'sk',
+ 'gl',
+ 'hr',
+ 'ja',
+ 'ru',
+ ].contains(locale.languageCode);
}
@override
diff --git a/lib/main.dart b/lib/main.dart
index 3b16f18..7bb69d2 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -49,6 +49,10 @@ class App extends StatelessWidget {
const Locale('cs'), // Czech
const Locale('es'), // Spanish
const Locale('sk'), // Slovakian
+ const Locale('gl'), // Galician
+ const Locale('hr'), // Croatian
+ const Locale('ja'), // Japanese
+ const Locale('ru'), // Russian
],
locale: kIsWeb
? Locale(html.window.navigator.language.split('-').first)
From 063e5118cdbc55b80e2b4855b907fc90a8f68e8b Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Sat, 18 Jul 2020 14:05:33 +0000
Subject: [PATCH 70/89] Fix web verification
---
lib/views/key_verification.dart | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/lib/views/key_verification.dart b/lib/views/key_verification.dart
index 94ca07c..d7b6c8b 100644
--- a/lib/views/key_verification.dart
+++ b/lib/views/key_verification.dart
@@ -182,24 +182,23 @@ class _KeyVerificationPageState extends State {
);
break;
case KeyVerificationState.askSas:
- var emojiWidgets = [];
+ TextSpan compareWidget;
// maybe add a button to switch between the two and only determine default
// view for if "emoji" is a present sasType or not?
String compareText;
if (widget.request.sasTypes.contains('emoji')) {
compareText = L10n.of(context).compareEmojiMatch;
- emojiWidgets =
- widget.request.sasEmojis.map((e) => _Emoji(e)).toList();
+ compareWidget = TextSpan(
+ children: widget.request.sasEmojis
+ .map((e) => WidgetSpan(child: _Emoji(e)))
+ .toList(),
+ );
} else {
compareText = L10n.of(context).compareNumbersMatch;
final numbers = widget.request.sasNumbers;
- emojiWidgets = [
- Text(numbers[0].toString(), style: TextStyle(fontSize: 40)),
- Text('-', style: TextStyle(fontSize: 40)),
- Text(numbers[1].toString(), style: TextStyle(fontSize: 40)),
- Text('-', style: TextStyle(fontSize: 40)),
- Text(numbers[2].toString(), style: TextStyle(fontSize: 40)),
- ];
+ final numbstr = '${numbers[0]}-${numbers[1]}-${numbers[2]}';
+ compareWidget =
+ TextSpan(text: numbstr, style: TextStyle(fontSize: 40));
}
body = Column(
children: [
@@ -208,11 +207,8 @@ class _KeyVerificationPageState extends State {
margin: EdgeInsets.only(left: 8.0, right: 8.0),
),
Container(height: 10),
- RichText(
- text: TextSpan(
- children:
- emojiWidgets.map((w) => WidgetSpan(child: w)).toList(),
- ),
+ Text.rich(
+ compareWidget,
textAlign: TextAlign.center,
),
],
From 6263867811e6e72cd5c7e5e9c9bfc6b276e96989 Mon Sep 17 00:00:00 2001
From: Sorunome
Date: Sat, 18 Jul 2020 16:25:59 +0200
Subject: [PATCH 71/89] update sql-wasm
---
web/sql-wasm.js | 229 ++++++++++++++++++++++------------------------
web/sql-wasm.wasm | Bin 1450157 -> 1178424 bytes
2 files changed, 111 insertions(+), 118 deletions(-)
diff --git a/web/sql-wasm.js b/web/sql-wasm.js
index f75abd4..c0f637c 100644
--- a/web/sql-wasm.js
+++ b/web/sql-wasm.js
@@ -19,7 +19,7 @@ var initSqlJs = function (moduleConfig) {
return initSqlJsPromise;
}
// If we're here, we've never called this function before
- initSqlJsPromise = new Promise((resolveModule, reject) => {
+ initSqlJsPromise = new Promise(function (resolveModule, reject) {
// We are modularizing this manually because the current modularize setting in Emscripten has some issues:
// https://github.com/kripken/emscripten/issues/5820
@@ -66,124 +66,118 @@ var initSqlJs = function (moduleConfig) {
// of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.
// That's a nice side effect since we're handling the modularization efforts ourselves
module = undefined;
-
+
// The emcc-generated code and shell-post.js code goes below,
// meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort
-var aa;var f;f||(f=typeof Module !== 'undefined' ? Module : {});
-var va=function(){var a;var b=h(4);var c={};var d=function(){function a(a,b){this.fb=a;this.db=b;this.nb=1;this.Eb=[]}a.prototype.bind=function(a){if(!this.fb)throw"Statement closed";this.reset();return Array.isArray(a)?this.lc(a):this.mc(a)};a.prototype.step=function(){var a;if(!this.fb)throw"Statement closed";this.nb=1;switch(a=Tb(this.fb)){case c.hc:return!0;case c.DONE:return!1;default:return this.db.handleError(a)}};a.prototype.sc=function(a){null==a&&(a=this.nb++);return Ub(this.fb,a)};a.prototype.tc=
-function(a){null==a&&(a=this.nb++);return Vb(this.fb,a)};a.prototype.getBlob=function(a){var b;null==a&&(a=this.nb++);var c=Wb(this.fb,a);var d=Xb(this.fb,a);var e=new Uint8Array(c);for(a=b=0;0<=c?bc;a=0<=c?++b:--b)e[a]=l[d+a];return e};a.prototype.get=function(a){var b,d;null!=a&&this.bind(a)&&this.step();var e=[];a=b=0;for(d=ib(this.fb);0<=d?bd;a=0<=d?++b:--b)switch(Yb(this.fb,a)){case c.fc:case c.FLOAT:e.push(this.sc(a));break;case c.ic:e.push(this.tc(a));break;case c.Zb:e.push(this.getBlob(a));
-break;default:e.push(null)}return e};a.prototype.getColumnNames=function(){var a,b;var c=[];var d=a=0;for(b=ib(this.fb);0<=b?ab;d=0<=b?++a:--a)c.push(Zb(this.fb,d));return c};a.prototype.getAsObject=function(a){var b,c;var d=this.get(a);var e=this.getColumnNames();var g={};a=b=0;for(c=e.length;b>>0);if(null!=a){var c=this.filename,d=c?n("/",c):"/";c=ia(!0,!0);d=ja(d,(void 0!==c?c:438)&4095|32768,0);if(a){if("string"===typeof a){for(var e=Array(a.length),k=0,m=a.length;kc;e=0<=c?++g:--g){var m=q(d+4*e,"i32");var z=jc(m);e=function(){switch(!1){case 1!==z:return kc;
-case 2!==z:return lc;case 3!==z:return mc;case 4!==z:return function(a){var b,c;var d=nc(a);var e=oc(a);a=new Uint8Array(d);for(b=c=0;0<=d?cd;b=0<=d?++c:--c)a[b]=l[e+b];return a};default:return function(){return null}}}();e=e(m);k.push(e)}if(c=b.apply(null,k))switch(typeof c){case "number":return pc(a,c);case "string":return qc(a,c,-1,-1)}else return rc(a)});this.handleError(sc(this.db,a,b.length,c.jc,0,d,0,0,0));return this};return a}();var g=f.cwrap("sqlite3_open","number",["string","number"]);
-var k=f.cwrap("sqlite3_close_v2","number",["number"]);var m=f.cwrap("sqlite3_exec","number",["number","string","number","number","number"]);f.cwrap("sqlite3_free","",["number"]);var y=f.cwrap("sqlite3_changes","number",["number"]);var z=f.cwrap("sqlite3_prepare_v2","number",["number","string","number","number","number"]);var fa=f.cwrap("sqlite3_prepare_v2","number",["number","number","number","number","number"]);var ca=f.cwrap("sqlite3_bind_text","number",["number","number","number","number","number"]);
-var Ia=f.cwrap("sqlite3_bind_blob","number",["number","number","number","number","number"]);var ac=f.cwrap("sqlite3_bind_double","number",["number","number","number"]);var $b=f.cwrap("sqlite3_bind_int","number",["number","number","number"]);var bc=f.cwrap("sqlite3_bind_parameter_index","number",["number","string"]);var Tb=f.cwrap("sqlite3_step","number",["number"]);var hc=f.cwrap("sqlite3_errmsg","string",["number"]);var ib=f.cwrap("sqlite3_data_count","number",["number"]);var Ub=f.cwrap("sqlite3_column_double",
-"number",["number","number"]);var Vb=f.cwrap("sqlite3_column_text","string",["number","number"]);var Xb=f.cwrap("sqlite3_column_blob","number",["number","number"]);var Wb=f.cwrap("sqlite3_column_bytes","number",["number","number"]);var Yb=f.cwrap("sqlite3_column_type","number",["number","number"]);var Zb=f.cwrap("sqlite3_column_name","string",["number","number"]);var dc=f.cwrap("sqlite3_reset","number",["number"]);var cc=f.cwrap("sqlite3_clear_bindings","number",["number"]);var ec=f.cwrap("sqlite3_finalize",
-"number",["number"]);var sc=f.cwrap("sqlite3_create_function_v2","number","number string number number number number number number number".split(" "));var jc=f.cwrap("sqlite3_value_type","number",["number"]);var nc=f.cwrap("sqlite3_value_bytes","number",["number"]);var mc=f.cwrap("sqlite3_value_text","string",["number"]);var kc=f.cwrap("sqlite3_value_int","number",["number"]);var oc=f.cwrap("sqlite3_value_blob","number",["number"]);var lc=f.cwrap("sqlite3_value_double","number",["number"]);var pc=
-f.cwrap("sqlite3_result_double","",["number","number"]);var rc=f.cwrap("sqlite3_result_null","",["number"]);var qc=f.cwrap("sqlite3_result_text","",["number","string","number","number"]);var fc=f.cwrap("RegisterExtensionFunctions","number",["number"]);this.SQL={Database:e};for(a in this.SQL)f[a]=this.SQL[a];var da=0;c.xb=0;c.we=1;c.Pe=2;c.Ze=3;c.Cc=4;c.Ec=5;c.Se=6;c.NOMEM=7;c.bf=8;c.Qe=9;c.Re=10;c.Hc=11;c.NOTFOUND=12;c.Oe=13;c.Fc=14;c.$e=15;c.EMPTY=16;c.cf=17;c.df=18;c.Gc=19;c.Te=20;c.Ue=21;c.Ve=
-22;c.Dc=23;c.Ne=24;c.af=25;c.We=26;c.Xe=27;c.ef=28;c.hc=100;c.DONE=101;c.fc=1;c.FLOAT=2;c.ic=3;c.Zb=4;c.Ye=5;c.jc=1}.bind(this);f.preRun=f.preRun||[];f.preRun.push(va);var wa={},u;for(u in f)f.hasOwnProperty(u)&&(wa[u]=f[u]);f.arguments=[];f.thisProgram="./this.program";f.quit=function(a,b){throw b;};f.preRun=[];f.postRun=[];var v=!1,w=!1,x=!1,xa=!1;v="object"===typeof window;w="function"===typeof importScripts;x="object"===typeof process&&"function"===typeof require&&!v&&!w;xa=!v&&!x&&!w;var A="";
-if(x){A=__dirname+"/";var ya,za;f.read=function(a,b){ya||(ya=require("fs"));za||(za=require("path"));a=za.normalize(a);a=ya.readFileSync(a);return b?a:a.toString()};f.readBinary=function(a){a=f.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1>2];a=b+a+15&-16;if(a<=Da())D[Ca>>2]=a;else if(!Ea(a))return 0;return b}
-var Fa={"f64-rem":function(a,b){return a%b},"debugger":function(){debugger}},Ga=1,E=Array(64);function ua(a){for(var b=0;64>b;b++)if(!E[b])return E[b]=a,Ga+b;throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";}"object"!==typeof WebAssembly&&C("no native wasm support detected");
-function q(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return l[a>>0];case "i8":return l[a>>0];case "i16":return Ha[a>>1];case "i32":return D[a>>2];case "i64":return D[a>>2];case "float":return Ja[a>>2];case "double":return Ka[a>>3];default:B("invalid type for getValue: "+b)}return null}var La,Ma=!1;function assert(a,b){a||B("Assertion failed: "+b)}function Na(a){var b=f["_"+a];assert(b,"Cannot call unknown function "+a+", make sure it is exported");return b}
-function Oa(a,b,c,d){var e={string:function(a){var b=0;if(null!==a&&void 0!==a&&0!==a){var c=(a.length<<2)+1;b=h(c);r(a,F,b,c)}return b},array:function(a){var b=h(a.length);l.set(a,b);return b}},g=Na(a),k=[];a=0;if(d)for(var m=0;m>0]=0;break;case "i8":l[a>>0]=0;break;case "i16":Ha[a>>1]=0;break;case "i32":D[a>>2]=0;break;case "i64":aa=[0,1<=+Pa(0)?~~+Qa(0)>>>0:0];D[a>>2]=aa[0];D[a+4>>2]=aa[1];break;case "float":Ja[a>>2]=0;break;case "double":Ka[a>>3]=0;break;default:B("invalid type for setValue: "+b)}}var Ra=0,Sa=3;
-function ea(a){var b=Ra;if("number"===typeof a){var c=!0;var d=a}else c=!1,d=a.length;b=b==Sa?e:[Ta,h,Ba][b](Math.max(d,1));if(c){var e=b;assert(0==(b&3));for(a=b+(d&-4);e>2]=0;for(a=b+d;e>0]=0;return b}a.subarray||a.slice?F.set(a,b):F.set(new Uint8Array(a),b);return b}var Ua="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;
-function t(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function G(a){return a?t(F,a,void 0):""}
-function r(a,b,c,d){if(!(0=k){var m=a.charCodeAt(++g);k=65536+((k&1023)<<10)|m&1023}if(127>=k){if(c>=d)break;b[c++]=k}else{if(2047>=k){if(c+1>=d)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=d)break;b[c++]=224|k>>12}else{if(c+3>=d)break;b[c++]=240|k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-e}
-function oa(a){for(var b=0,c=0;c=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function Va(a){return a.replace(/__Z[\w\d_]+/g,function(a){return a===a?a:a+" ["+a+"]"})}function Wa(a){0Ya&&C("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+Ya+"! (TOTAL_STACK=5242880)");
-f.buffer?buffer=f.buffer:"object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(La=new WebAssembly.Memory({initial:Ya/65536}),buffer=La.buffer):buffer=new ArrayBuffer(Ya);Xa();D[Ca>>2]=5303264;function Za(a){for(;0>2];var c=D[b>>2]}else ob.rb=!0,J.USER=J.LOGNAME="web_user",J.PATH="/",J.PWD="/",J.HOME="/home/web_user",J.LANG="C.UTF-8",J._=f.thisProgram,c=db?Ta(1024):Ba(1024),b=db?Ta(256):Ba(256),D[b>>2]=c,D[a>>2]=b;a=[];var d=0,e;for(e in J)if("string"===typeof J[e]){var g=e+"="+J[e];a.push(g);d+=g.length}if(1024>0]=d.charCodeAt(m);l[k>>0]=0;D[b+
-4*e>>2]=c;c+=g.length+1}D[b+4*a.length>>2]=0}function pb(a){f.___errno_location&&(D[f.___errno_location()>>2]=a);return a}function qb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a}function rb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=qb(a.split("/").filter(function(a){return!!a}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}
-function sb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function tb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function ub(){var a=Array.prototype.slice.call(arguments,0);return rb(a.join("/"))}function n(a,b){return rb(a+"/"+b)}
-function vb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=qb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var wb=[];function xb(a,b){wb[a]={input:[],output:[],ub:b};yb(a,zb)}
-var zb={open:function(a){var b=wb[a.node.rdev];if(!b)throw new K(L.Cb);a.tty=b;a.seekable=!1},close:function(a){a.tty.ub.flush(a.tty)},flush:function(a){a.tty.ub.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.ub.Xb)throw new K(L.Ob);for(var e=0,g=0;g=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.bb,a.bb=new Uint8Array(b),0b)a.bb.length=b;else for(;a.bb.length=a.node.gb)return 0;a=Math.min(a.node.gb-e,d);if(8