adding bottom status bar for global network status
the build was successful Details

This commit is contained in:
Dan Ballard 2020-05-11 15:48:07 -07:00
parent 4ccf48a50f
commit 40e0c5f700
24 changed files with 643 additions and 396 deletions

2
go.mod
View File

@ -4,7 +4,7 @@ go 1.12
require (
cwtch.im/cwtch v0.3.11
git.openprivacy.ca/openprivacy/connectivity v1.1.1
git.openprivacy.ca/openprivacy/connectivity v1.1.4
git.openprivacy.ca/openprivacy/log v1.0.0
github.com/gopherjs/gopherjs v0.0.0-20200209183636-89e6cbcd0b6d // indirect
github.com/therecipe/qt v0.0.0-20191101232336-18864661ae4f

40
go.sum
View File

@ -6,11 +6,21 @@ cwtch.im/tapir v0.1.15 h1:XSCWOvjmNkzMT2IceFgTBXWGKtYfr3a8o+La1s10OhE=
cwtch.im/tapir v0.1.15/go.mod h1:HzezugpEx+nZ3LdyDsl0w6n45IJYnOt8uqldkLWmaqs=
cwtch.im/tapir v0.1.17 h1:2jVZUe1a88tMI4aJPvRTO4Id3NN3PsM62cT5lntEChk=
cwtch.im/tapir v0.1.17/go.mod h1:HzezugpEx+nZ3LdyDsl0w6n45IJYnOt8uqldkLWmaqs=
cwtch.im/tapir v0.1.18 h1:Fs/jL9ZRyel/A1D/BYzIPEVQau8y5BJg44yA+GQDbSM=
cwtch.im/tapir v0.1.18/go.mod h1:/IrAI6CBHfgzsfgRT8WHVb1P9fCCz7+45hfsdkKn8Zg=
git.openprivacy.ca/openprivacy/connectivity v1.1.0/go.mod h1:4P8mirZZslKbo2zBrXXVjgEdqGwHo/6qoFBwFQW6d6E=
git.openprivacy.ca/openprivacy/connectivity v1.1.1 h1:hKxBOmxP7Jdu3K1BJ93mRtKNiWUoP6YHt/o2snE2Z0w=
git.openprivacy.ca/openprivacy/connectivity v1.1.1/go.mod h1:4P8mirZZslKbo2zBrXXVjgEdqGwHo/6qoFBwFQW6d6E=
git.openprivacy.ca/openprivacy/connectivity v1.1.2 h1:Bk8ul3+4/awpQGvskfLpp7/K3Lj8OAxBwlmQqeZy3Ok=
git.openprivacy.ca/openprivacy/connectivity v1.1.2/go.mod h1:4P8mirZZslKbo2zBrXXVjgEdqGwHo/6qoFBwFQW6d6E=
git.openprivacy.ca/openprivacy/connectivity v1.1.3 h1:iRGHS8RB4SZ9cjYK/yXt4R8PqQDVwwYJZ3iqe+w3IPE=
git.openprivacy.ca/openprivacy/connectivity v1.1.3/go.mod h1:4P8mirZZslKbo2zBrXXVjgEdqGwHo/6qoFBwFQW6d6E=
git.openprivacy.ca/openprivacy/connectivity v1.1.4 h1:/I9epvNNjM8rR/q5y9Y63D9/aPXpBFvngwNGLD8mvUk=
git.openprivacy.ca/openprivacy/connectivity v1.1.4/go.mod h1:4P8mirZZslKbo2zBrXXVjgEdqGwHo/6qoFBwFQW6d6E=
git.openprivacy.ca/openprivacy/libricochet-go v1.0.11 h1:C7QFFzG0p5XKu0zcOIdLGwEpA9uU0BceBM7CfVK5D40=
git.openprivacy.ca/openprivacy/libricochet-go v1.0.11/go.mod h1:yTMps/ZpYS+BNBBvANsNAft28FXrBvFHQauMYNWPrwE=
git.openprivacy.ca/openprivacy/libricochet-go v1.0.13 h1:Z86uL9K47onznY1wP1P/wWfWMbbyvk6xnCp94R180os=
git.openprivacy.ca/openprivacy/libricochet-go v1.0.13/go.mod h1:ZUuX1SOrgV4K18IEcp0hQJNPKszRr2oGb3UeK2iYe5U=
git.openprivacy.ca/openprivacy/log v1.0.0 h1:Rvqm1weUdR4AOnJ79b1upHCc9vC/QF1rhSD2Um7sr1Y=
git.openprivacy.ca/openprivacy/log v1.0.0/go.mod h1:gGYK8xHtndRLDymFtmjkG26GaMQNgyhioNS82m812Iw=
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI=
@ -25,6 +35,9 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gopherjs/gopherjs v0.0.0-20191106031601-ce3c9ade29de h1:F7WD09S8QB4LrkEpka0dFPLSotH11HRpCsLIbIcJ7sU=
github.com/gopherjs/gopherjs v0.0.0-20191106031601-ce3c9ade29de/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
@ -43,10 +56,13 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0=
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0=
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
@ -77,12 +93,14 @@ github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20191101232336
github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20191101232336-18864661ae4f/go.mod h1:mH55Ek7AZcdns5KPp99O0bg+78el64YCYWHiQKrOdt4=
github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20200126204426-5074eb6d8c41 h1:jTzKrQ6EIPvKw1B9/wwoKJLrXF+ManMsXoUzufxAdsg=
github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20200126204426-5074eb6d8c41/go.mod h1:mH55Ek7AZcdns5KPp99O0bg+78el64YCYWHiQKrOdt4=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg=
go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 h1:+ELyKg6m8UBf0nPFSqD0mi7zUfwPyXo23HNjMnXPz7w=
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a h1:aczoJ0HPNE92XKa7DrIzkNN6esOKO2TBwiiYoKcINhA=
@ -92,14 +110,24 @@ golang.org/x/crypto v0.0.0-20200210222208-86ce3cb69678 h1:wCWoJcFExDgyYx2m2hpHgw
golang.org/x/crypto v0.0.0-20200210222208-86ce3cb69678/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200320181102-891825fb96df h1:lDWgvUvNnaTnNBc/dwOty86cFeKoKWbwy2wQj0gIxbU=
golang.org/x/crypto v0.0.0-20200320181102-891825fb96df/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200420104511-884d27f42877 h1:IhZPbxNd1UjBCaD5AfpSSbJTRlp+ZSuyuH5uoksNS04=
golang.org/x/crypto v0.0.0-20200420104511-884d27f42877/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190420063019-afa5a82059c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200320181208-1c781a10960a h1:KaxWXSFrOaE2ptiOotI+zFdzHxBsg9MW6XfCv497IRo=
golang.org/x/net v0.0.0-20200320181208-1c781a10960a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -110,13 +138,25 @@ golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a h1:XCr/YX7O0uxRkLq2k1ApNQMim
golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200320181252-af34d8274f85 h1:fD99hd4ciR6T3oPhr2EkmuKe9oHixHx9Hj/hND89j3g=
golang.org/x/sys v0.0.0-20200320181252-af34d8274f85/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d h1:nc5K6ox/4lTFbMVSL9WRR81ixkcwXThoiF6yf+R9scA=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20190420181800-aa740d480789 h1:FF0rjo15h51+N6642mf5S3QuplmKo2aCrJUYkHTx85s=
golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200420001825-978e26b7c37c/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@ -10,7 +10,6 @@ import (
"git.openprivacy.ca/openprivacy/log"
"os"
"strconv"
"time"
)
func App(gcd *ui.GrandCentralDispatcher, subscribed chan bool, reloadingAccounts bool) {
@ -19,55 +18,33 @@ func App(gcd *ui.GrandCentralDispatcher, subscribed chan bool, reloadingAccounts
the.AppBus.Subscribe(event.PeerError, q)
the.AppBus.Subscribe(event.AppError, q)
the.AppBus.Subscribe(event.ACNStatus, q)
the.AppBus.Subscribe(event.NetworkStatus, q)
the.AppBus.Subscribe(event.ReloadDone, q)
subscribed <- true
networkOffline := false
timeSinceLastSuccess := time.Unix(0, 0)
gcd.Loaded()
for {
e := q.Next()
switch e.EventType {
case event.NetworkStatus:
status := e.Data[event.Status]
if status == "Error" && !networkOffline {
networkOffline = true
// if it has been more that 5 minutes since we received any kind of success, then we should kill tor
// anything less that this i.e. transient networking failures, should allow us to reconnect without issue
if time.Now().Sub(timeSinceLastSuccess) > (time.Minute * 5) {
the.ACN.Restart()
}
}
if status == "Success" && networkOffline {
timeSinceLastSuccess = time.Now()
networkOffline = false
}
case event.ACNStatus:
progStr := e.Data[event.Progreess]
percent, _ := strconv.Atoi(progStr)
progress, _ := strconv.Atoi(progStr)
message := e.Data[event.Status]
var statuscode int
if percent >= 0 && percent <= 25 {
statuscode = 1
message = "Connecting to network"
} else if percent < 100 {
statuscode = 2
message = "Establishing Tor circuit"
} else if percent == 100 {
statuscode = 3
message = "tor appears to be running just fine!"
} else {
log.Debugf("ACNStatus: %d %v\n", progress, message)
if progress >= -2 && progress < 0 {
statuscode = 0
message = "can't find tor. is it running? is the controlport configured?"
} else if progress >= 0 && progress < 50 {
statuscode = 1
} else if progress >= 50 && progress < 100 {
statuscode = 2
} else {
statuscode = 3
}
gcd.TorStatus(statuscode, message)
gcd.TorStatus(statuscode)
case event.PeerError:
// current only case

View File

@ -44,7 +44,6 @@ func PeerHandler(onion string, uiManager ui.Manager, subscribed chan bool) {
switch e.EventType {
case event.NetworkStatus:
the.AppBus.Publish(*e)
if e.Data["Status"] == "Success" && networkOffline {
networkOffline = false
// TODO we may have to reinitialize the peer

View File

@ -69,7 +69,7 @@ type GrandCentralDispatcher struct {
// profile-area stuff
_ func(name, onion, image, tag string) `signal:"UpdateMyProfile"`
_ func(status int, str string) `signal:"TorStatus"`
_ func(status int) `signal:"TorStatus"`
// settings helpers
_ func(str string) `signal:"InvokePopup"`
@ -572,7 +572,7 @@ func (this *GrandCentralDispatcher) setLocale(locale string) {
func (this *GrandCentralDispatcher) onActivate() {
log.Debugln("onActivate")
if the.CwtchApp != nil {
the.CwtchApp.QueryACNStatus()
go the.CwtchApp.QueryACNStatus()
}
}

Binary file not shown.

View File

@ -4,30 +4,29 @@
<context>
<name>AddGroupPane</name>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="19"/>
<source>create-group-title</source>
<translation>Gruppe Anlegen</translation>
<translation type="vanished">Gruppe Anlegen</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<location filename="../qml/panes/AddGroupPane.qml" line="31"/>
<source>server-label</source>
<extracomment>Server label</extracomment>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="53"/>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation>Gruppenname</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="60"/>
<location filename="../qml/panes/AddGroupPane.qml" line="49"/>
<source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation>Tolle Gruppe</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddGroupPane.qml" line="54"/>
<source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation>Anlegen</translation>
@ -155,44 +154,44 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="42"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<source>server-label</source>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="74"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="65"/>
<source>copy-btn</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<source>invitation-label</source>
<translation>Einladung</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="75"/>
<source>group-name-label</source>
<translation>Gruppenname</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="93"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<source>save-btn</source>
<translation>Speichern</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="103"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="94"/>
<source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation>In die Gruppe einladen</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="105"/>
<source>invite-btn</source>
<translation>Einladen</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="123"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<source>delete-btn</source>
<translation>Löschen</translation>
</message>
@ -200,7 +199,7 @@
<context>
<name>InplaceEditText</name>
<message>
<location filename="../qml/widgets/InplaceEditText.qml" line="85"/>
<location filename="../qml/widgets/InplaceEditText.qml" line="87"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
@ -244,18 +243,18 @@
<translation>Klicken, um DM zu senden</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Nachricht konnte nicht gesendet werden</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>acknowledged-label</source>
<translation>bestätigt</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>pending-label</source>
<translation>Bestätigung ausstehend</translation>
</message>
@ -263,25 +262,22 @@
<context>
<name>MyProfile</name>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="186"/>
<source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation>Kopieren</translation>
<translation type="vanished">Kopieren</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="190"/>
<source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation>in die Zwischenablage kopiert</translation>
<translation type="vanished">in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="220"/>
<source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation>Neue Gruppe anlegen</translation>
<translation type="vanished">Neue Gruppe anlegen</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="230"/>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>Adresse hier hinzufügen, um einen Kontakt aufzunehmen</translation>
@ -290,84 +286,78 @@
<context>
<name>OverlayPane</name>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="44"/>
<location filename="../qml/panes/OverlayPane.qml" line="23"/>
<source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation>Möchtest Du die Einladung annehmen</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="49"/>
<location filename="../qml/panes/OverlayPane.qml" line="28"/>
<source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation>Annehmen</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<location filename="../qml/panes/OverlayPane.qml" line="38"/>
<source>reject-group-btn</source>
<extracomment>Reject Group invite button</extracomment>
<translation>Ablehnen</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="73"/>
<location filename="../qml/panes/OverlayPane.qml" line="52"/>
<source>chat-btn</source>
<translation>Chat</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="80"/>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<source>lists-btn</source>
<translation>Listen</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="87"/>
<location filename="../qml/panes/OverlayPane.qml" line="66"/>
<source>bulletins-btn</source>
<translation>Meldungen</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="94"/>
<source>puzzle-game-btn</source>
<translation>Puzzlespiel</translation>
<translation type="vanished">Puzzlespiel</translation>
</message>
</context>
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<source>address-label</source>
<translation>Adresse</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="53"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="48"/>
<source>copy-btn</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="57"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="64"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="67"/>
<source>display-name-label</source>
<translation>Angezeigter Name</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="73"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<source>save-btn</source>
<translation>speichern</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="124"/>
<source>delete-btn</source>
<translation>löschen</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<source>unblock-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="96"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -376,112 +366,102 @@
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>add-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>edit-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="32"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="103"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<source>default-profile-name</source>
<extracomment>default suggested profile name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="84"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="76"/>
<source>profile-onion-label</source>
<extracomment>Onion</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="87"/>
<source>profile-name</source>
<extracomment>Display name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="115"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="107"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="125"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="117"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="136"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="128"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="143"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="135"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="157"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="149"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="177"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="169"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>create-profile-btn</source>
<extracomment>Create Profile || Save Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="215"/>
<source>password-error-match</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="231"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="240"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="232"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="253"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="245"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="269"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="261"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="267"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -490,8 +470,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="88"/>
<location filename="../qml/widgets/ProfileList.qml" line="101"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -499,19 +478,19 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="26"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="27"/>
<source>enter-profile-password</source>
<extracomment>Please enter password:</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="42"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -520,51 +499,68 @@
<context>
<name>SettingsPane</name>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="21"/>
<source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation>Cwtch Einstellungen</translation>
<translation type="vanished">Cwtch Einstellungen</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="54"/>
<location filename="../qml/panes/SettingsPane.qml" line="42"/>
<source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation>Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<location filename="../qml/panes/SettingsPane.qml" line="78"/>
<source>large-text-label</source>
<translation>Groß</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="98"/>
<location filename="../qml/panes/SettingsPane.qml" line="86"/>
<source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation>defaultmäßige Textgröße (Skalierungsfaktor:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="102"/>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<source>small-text-label</source>
<translation>Klein</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>version %1 builddate %2</source>
<extracomment>Version: %1 Built on: %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="83"/>
<location filename="../qml/panes/SettingsPane.qml" line="71"/>
<source>block-unknown-label</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StackToolbar</name>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/StackToolbar.qml" line="58"/>
<source>view-group-membership-tooltip</source>
<extracomment>View Group Membership</extracomment>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>
</message>
</context>

Binary file not shown.

View File

@ -4,30 +4,29 @@
<context>
<name>AddGroupPane</name>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="19"/>
<source>create-group-title</source>
<translation>Create Group</translation>
<translation type="vanished">Create Group</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<location filename="../qml/panes/AddGroupPane.qml" line="31"/>
<source>server-label</source>
<extracomment>Server label</extracomment>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="53"/>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation>Group name</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="60"/>
<location filename="../qml/panes/AddGroupPane.qml" line="49"/>
<source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation>Awesome Group</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddGroupPane.qml" line="54"/>
<source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation>Create</translation>
@ -161,44 +160,44 @@ Right-click to reset.</translation>
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="42"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<source>server-label</source>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="74"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="65"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<source>invitation-label</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="75"/>
<source>group-name-label</source>
<translation>Group Name</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="93"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<source>save-btn</source>
<translation>Save</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="103"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="94"/>
<source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation>Invite to group</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="105"/>
<source>invite-btn</source>
<translation>Invite</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="123"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<source>delete-btn</source>
<translation>Delete</translation>
</message>
@ -206,7 +205,7 @@ Right-click to reset.</translation>
<context>
<name>InplaceEditText</name>
<message>
<location filename="../qml/widgets/InplaceEditText.qml" line="85"/>
<location filename="../qml/widgets/InplaceEditText.qml" line="87"/>
<source>Update</source>
<translation>Update</translation>
</message>
@ -250,18 +249,18 @@ Right-click to reset.</translation>
<translation>Click to DM</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Could not send this message</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>acknowledged-label</source>
<translation>Acknowledged</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>pending-label</source>
<translation>Pending</translation>
</message>
@ -269,25 +268,22 @@ Right-click to reset.</translation>
<context>
<name>MyProfile</name>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="186"/>
<source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation>Copy</translation>
<translation type="vanished">Copy</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="190"/>
<source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation>Copied to clipboard</translation>
<translation type="vanished">Copied to clipboard</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="220"/>
<source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation>Create new group</translation>
<translation type="vanished">Create new group</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="230"/>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... paste an address here to add a contact...</translation>
@ -296,84 +292,82 @@ Right-click to reset.</translation>
<context>
<name>OverlayPane</name>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="44"/>
<location filename="../qml/panes/OverlayPane.qml" line="23"/>
<source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation>Do you want to accept the invitation to</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="49"/>
<location filename="../qml/panes/OverlayPane.qml" line="28"/>
<source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation>Accept</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<location filename="../qml/panes/OverlayPane.qml" line="38"/>
<source>reject-group-btn</source>
<extracomment>Reject Group invite button</extracomment>
<translation>Reject</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="73"/>
<location filename="../qml/panes/OverlayPane.qml" line="52"/>
<source>chat-btn</source>
<translation>Chat</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="80"/>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<source>lists-btn</source>
<translation>Lists</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="87"/>
<location filename="../qml/panes/OverlayPane.qml" line="66"/>
<source>bulletins-btn</source>
<translation>Bulletins</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="94"/>
<source>puzzle-game-btn</source>
<translation>Puzzle Game</translation>
<translation type="vanished">Puzzle Game</translation>
</message>
</context>
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<source>address-label</source>
<translation>Address</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="53"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="48"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="57"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="64"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="67"/>
<source>display-name-label</source>
<translation>Display Name</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="73"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<source>save-btn</source>
<translation>Save</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="96"/>
<source>block-btn</source>
<translation>Block Peer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<source>unblock-btn</source>
<translation>Unblock Peer</translation>
<translation type="vanished">Unblock Peer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="124"/>
<source>delete-btn</source>
<translation>Delete</translation>
</message>
@ -381,113 +375,111 @@ Right-click to reset.</translation>
<context>
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>add-profile-title</source>
<translation>Add new profile</translation>
<translation type="vanished">Add new profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>edit-profile-title</source>
<translation>Edit Profile</translation>
<translation type="vanished">Edit Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="87"/>
<source>profile-name</source>
<extracomment>Display name</extracomment>
<translation>Display name</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="32"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="103"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<source>default-profile-name</source>
<extracomment>default suggested profile name</extracomment>
<translation>Alice</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="84"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="76"/>
<source>profile-onion-label</source>
<extracomment>Onion</extracomment>
<translation>Onion</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="115"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="107"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="125"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="117"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation>Unencrypted (No password)</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="136"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="128"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation>Not using a password on this account means that all data stored locally will not be encrypted</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="143"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="135"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation>Current Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="157"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="149"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="177"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="169"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation>Reenter password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>create-profile-btn</source>
<extracomment>Create Profile || Save Profile</extracomment>
<translation>Create Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>save-profile-btn</source>
<translation>Save Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="215"/>
<source>password-error-match</source>
<extracomment>Passwords do not match</extracomment>
<translation>Passwords do not match</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="231"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation>Error changing password: Supplied password rejected</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="240"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="232"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation>Delete Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="253"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="245"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation>Type DELETE to confirm</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="269"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="261"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation>Really Delete Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="267"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation>DELETE</translation>
@ -496,8 +488,7 @@ Right-click to reset.</translation>
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="88"/>
<location filename="../qml/widgets/ProfileList.qml" line="101"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation>Add new profile</translation>
</message>
@ -505,19 +496,19 @@ Right-click to reset.</translation>
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="26"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="27"/>
<source>enter-profile-password</source>
<extracomment>Please enter password:</extracomment>
<translation>Please enter password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="42"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation>0 profiles loaded with that password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation>Unlock</translation>
@ -526,41 +517,40 @@ Right-click to reset.</translation>
<context>
<name>SettingsPane</name>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="21"/>
<source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation>Cwtch Settings</translation>
<translation type="vanished">Cwtch Settings</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>version %1 builddate %2</source>
<extracomment>Version: %1 Built on: %2</extracomment>
<translation>Version: %1 Built on: %2</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="54"/>
<location filename="../qml/panes/SettingsPane.qml" line="42"/>
<source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation>Interface zoom (mostly affects text and button sizes)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="83"/>
<location filename="../qml/panes/SettingsPane.qml" line="71"/>
<source>block-unknown-label</source>
<translation>Block Unknown Peers</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<location filename="../qml/panes/SettingsPane.qml" line="78"/>
<source>large-text-label</source>
<translation>Large</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="98"/>
<location filename="../qml/panes/SettingsPane.qml" line="86"/>
<source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation>Default size text (scale factor:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="102"/>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<source>small-text-label</source>
<translation>Small</translation>
</message>
@ -568,10 +558,36 @@ Right-click to reset.</translation>
<context>
<name>StackToolbar</name>
<message>
<location filename="../qml/widgets/StackToolbar.qml" line="58"/>
<source>view-group-membership-tooltip</source>
<extracomment>View Group Membership</extracomment>
<translation>View Group Membership</translation>
<translation type="vanished">View Group Membership</translation>
</message>
</context>
<context>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation>Disconnected from the internet, check your connection</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation>Attempting to connect to Tor network</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation>Connecting to network and peers...</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation>Online</translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -4,30 +4,29 @@
<context>
<name>AddGroupPane</name>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="19"/>
<source>create-group-title</source>
<translation>Créer un groupe</translation>
<translation type="vanished">Créer un groupe</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<location filename="../qml/panes/AddGroupPane.qml" line="31"/>
<source>server-label</source>
<extracomment>Server label</extracomment>
<translation>Serveur</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="53"/>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation>Groupe</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="60"/>
<location filename="../qml/panes/AddGroupPane.qml" line="49"/>
<source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation>Un super groupe</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddGroupPane.qml" line="54"/>
<source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation>Créer</translation>
@ -155,44 +154,44 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="42"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<source>server-label</source>
<translation>Serveur</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="74"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="65"/>
<source>copy-btn</source>
<translation>Copier</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<source>invitation-label</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="75"/>
<source>group-name-label</source>
<translation>Nom du groupe</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="93"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<source>save-btn</source>
<translation>Sauvegarder</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="103"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="94"/>
<source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation>Inviter quelqu&apos;un</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="105"/>
<source>invite-btn</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="123"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<source>delete-btn</source>
<translation>Effacer</translation>
</message>
@ -200,7 +199,7 @@
<context>
<name>InplaceEditText</name>
<message>
<location filename="../qml/widgets/InplaceEditText.qml" line="85"/>
<location filename="../qml/widgets/InplaceEditText.qml" line="87"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
@ -244,18 +243,18 @@
<translation>Envoyer un message privé</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Impossible d&apos;envoyer ce message</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>acknowledged-label</source>
<translation>Confirmé</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>pending-label</source>
<translation>En attente</translation>
</message>
@ -263,25 +262,22 @@
<context>
<name>MyProfile</name>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="186"/>
<source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation>Copier</translation>
<translation type="vanished">Copier</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="190"/>
<source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation>Copié dans le presse-papier</translation>
<translation type="vanished">Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="220"/>
<source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation>Créer un nouveau groupe</translation>
<translation type="vanished">Créer un nouveau groupe</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="230"/>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... coller une adresse ici pour ajouter un contact...</translation>
@ -290,84 +286,78 @@
<context>
<name>OverlayPane</name>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="44"/>
<location filename="../qml/panes/OverlayPane.qml" line="23"/>
<source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation>Voulez-vous accepter l&apos;invitation au groupe</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="49"/>
<location filename="../qml/panes/OverlayPane.qml" line="28"/>
<source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation>Accepter</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<location filename="../qml/panes/OverlayPane.qml" line="38"/>
<source>reject-group-btn</source>
<extracomment>Reject Group invite button</extracomment>
<translation>Refuser</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="73"/>
<location filename="../qml/panes/OverlayPane.qml" line="52"/>
<source>chat-btn</source>
<translation>Discuter</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="80"/>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<source>lists-btn</source>
<translation>Listes</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="87"/>
<location filename="../qml/panes/OverlayPane.qml" line="66"/>
<source>bulletins-btn</source>
<translation>Bulletins</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="94"/>
<source>puzzle-game-btn</source>
<translation>Puzzle</translation>
<translation type="vanished">Puzzle</translation>
</message>
</context>
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<source>address-label</source>
<translation>Adresse</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="53"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="48"/>
<source>copy-btn</source>
<translation>Copier</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="57"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="64"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="67"/>
<source>display-name-label</source>
<translation>Pseudo</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="73"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<source>save-btn</source>
<translation>Sauvegarder</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="124"/>
<source>delete-btn</source>
<translation>Effacer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<source>unblock-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="96"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -376,112 +366,102 @@
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>add-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>edit-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="32"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="103"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<source>default-profile-name</source>
<extracomment>default suggested profile name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="84"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="76"/>
<source>profile-onion-label</source>
<extracomment>Onion</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="87"/>
<source>profile-name</source>
<extracomment>Display name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="115"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="107"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="125"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="117"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="136"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="128"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="143"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="135"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="157"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="149"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="177"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="169"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>create-profile-btn</source>
<extracomment>Create Profile || Save Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="215"/>
<source>password-error-match</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="231"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="240"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="232"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="253"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="245"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="269"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="261"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="267"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -490,8 +470,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="88"/>
<location filename="../qml/widgets/ProfileList.qml" line="101"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -499,19 +478,19 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="26"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="27"/>
<source>enter-profile-password</source>
<extracomment>Please enter password:</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="42"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -520,51 +499,68 @@
<context>
<name>SettingsPane</name>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="21"/>
<source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation>Préférences Cwtch</translation>
<translation type="vanished">Préférences Cwtch</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="54"/>
<location filename="../qml/panes/SettingsPane.qml" line="42"/>
<source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation>Interface zoom (essentiellement la taille du texte et des composants de l&apos;interface)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<location filename="../qml/panes/SettingsPane.qml" line="78"/>
<source>large-text-label</source>
<translation type="unfinished">Large</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="98"/>
<location filename="../qml/panes/SettingsPane.qml" line="86"/>
<source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation>Taille par défaut du texte (échelle:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="102"/>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<source>small-text-label</source>
<translation>Petit</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>version %1 builddate %2</source>
<extracomment>Version: %1 Built on: %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="83"/>
<location filename="../qml/panes/SettingsPane.qml" line="71"/>
<source>block-unknown-label</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StackToolbar</name>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/StackToolbar.qml" line="58"/>
<source>view-group-membership-tooltip</source>
<extracomment>View Group Membership</extracomment>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>
</message>
</context>

Binary file not shown.

View File

@ -4,30 +4,29 @@
<context>
<name>AddGroupPane</name>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="19"/>
<source>create-group-title</source>
<translation>Criar Grupo</translation>
<translation type="vanished">Criar Grupo</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<location filename="../qml/panes/AddGroupPane.qml" line="31"/>
<source>server-label</source>
<extracomment>Server label</extracomment>
<translation>Servidor</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="53"/>
<location filename="../qml/panes/AddGroupPane.qml" line="42"/>
<source>group-name-label</source>
<extracomment>Group name label</extracomment>
<translation>Nome do grupo</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="60"/>
<location filename="../qml/panes/AddGroupPane.qml" line="49"/>
<source>default-group-name</source>
<extracomment>default suggested group name</extracomment>
<translation>Grupo incrível</translation>
</message>
<message>
<location filename="../qml/panes/AddGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddGroupPane.qml" line="54"/>
<source>create-group-btn</source>
<extracomment>create group button</extracomment>
<translation>Criar</translation>
@ -155,44 +154,44 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="42"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<source>server-label</source>
<translation>Servidor</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="74"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="65"/>
<source>copy-btn</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<source>invitation-label</source>
<translation>Convite</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="75"/>
<source>group-name-label</source>
<translation>Nome do Grupo</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="93"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="84"/>
<source>save-btn</source>
<translation>Salvar</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="103"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="94"/>
<source>invite-to-group-label</source>
<extracomment>Invite someone to the group</extracomment>
<translation>Convidar ao grupo</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="105"/>
<source>invite-btn</source>
<translation>Convidar</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="123"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="114"/>
<source>delete-btn</source>
<translation>Deletar</translation>
</message>
@ -200,7 +199,7 @@
<context>
<name>InplaceEditText</name>
<message>
<location filename="../qml/widgets/InplaceEditText.qml" line="85"/>
<location filename="../qml/widgets/InplaceEditText.qml" line="87"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
@ -244,18 +243,18 @@
<translation>Clique para DM</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Não deu para enviar esta mensagem</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>acknowledged-label</source>
<translation>Confirmada</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="162"/>
<location filename="../qml/widgets/Message.qml" line="163"/>
<source>pending-label</source>
<translation>Pendente</translation>
</message>
@ -263,25 +262,22 @@
<context>
<name>MyProfile</name>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="186"/>
<source>copy-btn</source>
<extracomment>Button for copying profile onion address to clipboard</extracomment>
<translation>Copiar</translation>
<translation type="vanished">Copiar</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="190"/>
<source>copied-clipboard-notification</source>
<extracomment>Copied to clipboard</extracomment>
<translation>Copiado</translation>
<translation type="vanished">Copiado</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="220"/>
<source>new-group-btn</source>
<extracomment>create new group button</extracomment>
<translation>Criar novo grupo</translation>
<translation type="vanished">Criar novo grupo</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="230"/>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation> cole um endereço aqui para adicionar um contato</translation>
@ -290,84 +286,78 @@
<context>
<name>OverlayPane</name>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="44"/>
<location filename="../qml/panes/OverlayPane.qml" line="23"/>
<source>accept-group-invite-label</source>
<extracomment>Do you want to accept the invitation to $GROUP</extracomment>
<translation>Você quer aceitar o convite para</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="49"/>
<location filename="../qml/panes/OverlayPane.qml" line="28"/>
<source>accept-group-btn</source>
<extracomment>Accept group invite button</extracomment>
<translation>Aceitar</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<location filename="../qml/panes/OverlayPane.qml" line="38"/>
<source>reject-group-btn</source>
<extracomment>Reject Group invite button</extracomment>
<translation>Recusar</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="73"/>
<location filename="../qml/panes/OverlayPane.qml" line="52"/>
<source>chat-btn</source>
<translation>Chat</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="80"/>
<location filename="../qml/panes/OverlayPane.qml" line="59"/>
<source>lists-btn</source>
<translation>Listas</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="87"/>
<location filename="../qml/panes/OverlayPane.qml" line="66"/>
<source>bulletins-btn</source>
<translation>Boletins</translation>
</message>
<message>
<location filename="../qml/panes/OverlayPane.qml" line="94"/>
<source>puzzle-game-btn</source>
<translation>Jogo de Adivinhação</translation>
<translation type="vanished">Jogo de Adivinhação</translation>
</message>
</context>
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<source>address-label</source>
<translation>Endereço</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="53"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="48"/>
<source>copy-btn</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="57"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="51"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copiado</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="64"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="67"/>
<source>display-name-label</source>
<translation>Nome de Exibição</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="73"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<source>save-btn</source>
<translation>Salvar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="124"/>
<source>delete-btn</source>
<translation>Deletar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<source>unblock-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="85"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="96"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -376,112 +366,102 @@
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>add-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="24"/>
<source>edit-profile-title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="32"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="103"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<source>default-profile-name</source>
<extracomment>default suggested profile name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="84"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="76"/>
<source>profile-onion-label</source>
<extracomment>Onion</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="95"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="87"/>
<source>profile-name</source>
<extracomment>Display name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="115"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="107"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="125"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="117"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="136"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="128"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="143"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="135"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="157"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="149"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="177"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="169"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>create-profile-btn</source>
<extracomment>Create Profile || Save Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="191"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="215"/>
<source>password-error-match</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="231"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="223"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="240"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="232"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="253"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="245"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="269"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="261"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="267"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -490,8 +470,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="88"/>
<location filename="../qml/widgets/ProfileList.qml" line="101"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -499,19 +478,19 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="26"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="27"/>
<source>enter-profile-password</source>
<extracomment>Please enter password:</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="42"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -520,51 +499,68 @@
<context>
<name>SettingsPane</name>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="21"/>
<source>cwtch-settings-title</source>
<extracomment>Cwtch Settings title</extracomment>
<translation>Configurações do Cwtch</translation>
<translation type="vanished">Configurações do Cwtch</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="54"/>
<location filename="../qml/panes/SettingsPane.qml" line="42"/>
<source>zoom-label</source>
<extracomment>Interface zoom (mostly affects text and button sizes)</extracomment>
<translation>Zoom da interface (afeta principalmente tamanho de texto e botões)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<location filename="../qml/panes/SettingsPane.qml" line="78"/>
<source>large-text-label</source>
<translation>Grande</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="98"/>
<location filename="../qml/panes/SettingsPane.qml" line="86"/>
<source>default-scaling-text</source>
<extracomment>&quot;Default size text (scale factor: &quot;</extracomment>
<translation>Texto tamanho padrão (fator de escala: </translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="102"/>
<location filename="../qml/panes/SettingsPane.qml" line="90"/>
<source>small-text-label</source>
<translation>Pequeno</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>version %1 builddate %2</source>
<extracomment>Version: %1 Built on: %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="83"/>
<location filename="../qml/panes/SettingsPane.qml" line="71"/>
<source>block-unknown-label</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>StackToolbar</name>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/StackToolbar.qml" line="58"/>
<source>view-group-membership-tooltip</source>
<extracomment>View Group Membership</extracomment>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -238,6 +238,7 @@ func loadACN() {
var err error
the.ACN, err = tor.NewTorACN(the.CwtchDir, torpath)
if err != nil {
// TODO: turn into UI error: status panel?
log.Errorf("Could not start Tor: %v", err)
os.Exit(1)
}

View File

@ -34,6 +34,8 @@
<file>qml/widgets/RadioButton.qml</file>
<file>qml/widgets/Button.qml</file>
<file>qml/widgets/TextField.qml</file>
<file>qml/widgets/Toolbar.qml</file>
<file>qml/widgets/Statusbar.qml</file>
<file>qml/widgets/controls/Loader.qml</file>
<file>qml/widgets/controls/Variables.qml</file>
<file>i18n/translation_de.qm</file>

View File

@ -101,7 +101,7 @@ ApplicationWindow {
currentIndex: 1
anchors.right: parent.right
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.bottom: statusbar.top
anchors.top: toolbar.bottom
readonly property int splashPane: 0
@ -212,6 +212,8 @@ ApplicationWindow {
}
}
focus: true
Keys.onPressed: {
if (event.key == Qt.Key_Back) {
@ -220,7 +222,7 @@ ApplicationWindow {
}
}
onCurrentIndexChanged : updateToolbar()
onCurrentIndexChanged : { updateToolbar(); statusbar.resetHeight() }
@ -252,6 +254,10 @@ ApplicationWindow {
Component.onCompleted: updateToolbar()
}
Statusbar {
id: statusbar
}
function backFn() {
if (parentStack.currentIndex == parentStack.managementPane) {
androidCwtchActivity.rootHomeButtonHandle()

View File

@ -11,7 +11,7 @@ import "../widgets" as Widgets
import "../styles"
import "../theme"
Column { // peerSettingsPane
ColumnLayout { // peerSettingsPane
id: root
anchors.fill: parent
property bool blocked

View File

@ -37,4 +37,13 @@ ThemeType {
toggleOffColor: mauvePurple
toolbarIconColor: whitePurple
statusbarDisconnectedInternetColor: whitePurple
statusbarDisconnectedInternetFontColor: deepPurple
statusbarDisconnectedTorColor: darkGrayPurple
statusbarDisconnectedTorFontColor: whitePurple
statusbarConnectingColor: deepPurple
statusbarConnectingFontColor: whitePurple
statusbarOnlineColor: mauvePurple
statusbarOnlineFontColor: whitePurple
}

View File

@ -37,4 +37,13 @@ ThemeType {
toggleOffColor: purple
toolbarIconColor: darkPurple
statusbarDisconnectedInternetColor: softPurple
statusbarDisconnectedInternetFontColor: darkPurple
statusbarDisconnectedTorColor: purple
statusbarDisconnectedTorFontColor: darkPurple
statusbarConnectingColor: greyPurple
statusbarConnectingFontColor: whitePurple
statusbarOnlineColor: darkPurple
statusbarOnlineFontColor: whitePurple
}

View File

@ -33,6 +33,15 @@ Item {
readonly property color toolbarIconColor: theme.toolbarIconColor
readonly property color statusbarDisconnectedInternetColor: theme.statusbarDisconnectedInternetColor
readonly property color statusbarDisconnectedInternetFontColor: theme.statusbarDisconnectedInternetFontColor
readonly property color statusbarDisconnectedTorFontColor: theme.statusbarDisconnectedTorFontColor
readonly property color statusbarDisconnectedTorColor: theme.statusbarDisconnectedTorColor
readonly property color statusbarConnectingColor: theme.statusbarConnectingColor
readonly property color statusbarConnectingFontColor: theme.statusbarConnectingFontColor
readonly property color statusbarOnlineColor: theme.statusbarOnlineColor
readonly property color statusbarOnlineFontColor: theme.statusbarOnlineFontColor
readonly property int headerSize: 50
readonly property int usernameSize: 30
readonly property int tabSize: 25
@ -40,6 +49,7 @@ Item {
readonly property int secondaryTextSize: 20 // address
readonly property int chatMetaTextSize: 15
readonly property int badgeTextSize: 12
readonly property int statusTextSize: 12
readonly property int sidePaneMinSize: 700
readonly property int doublePaneMinSize: 1000

View File

@ -29,6 +29,15 @@ QtObject {
property color toolbarIconColor: "red"
property color statusbarDisconnectedInternetColor: "red"
property color statusbarDisconnectedInternetFontColor: "red"
property color statusbarDisconnectedTorFontColor: "red"
property color statusbarDisconnectedTorColor: "red"
property color statusbarConnectingColor: "red"
property color statusbarConnectingFontColor: "red"
property color statusbarOnlineColor: "red"
property color statusbarOnlineFontColor: "red"
// ... more to come

View File

@ -170,10 +170,5 @@ Item {
}
onResetProfile: { realignProfile() }
/*onTorStatus: function(code, str) {
rectTorStatus.code = code
rectTorStatus.message = str
}*/
}
}

186
qml/widgets/Statusbar.qml Normal file
View File

@ -0,0 +1,186 @@
import QtQuick 2.7
import QtQuick.Controls 2.4
import "." as Widgets
import "../theme"
// Statusbar is a app wide 10-25 tall bar that should be place at the bottom of the app that gives network health information
// it changes color and text/icon message based on network health. when netowrk is not healthy it is always in fullsized mode
// when network is health it reduces to a minimal color strip unless mouse overed / clicked to reveal the text/icons
Rectangle {
id: statusbar
property int status: statusDisconnectedInternet
readonly property int statusDisconnectedInternet: 0
readonly property int statusDisconnectedTor: 1
readonly property int statusConnecting: 2
readonly property int statusOnline: 3
readonly property int openHeight: 25
readonly property int hideHeight: 10
property bool isHover: false
height: openHeight
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
Text {
id: statusMessage
opacity: 0
anchors.right: networkStatus.left
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 5 * gcd.themeScale
font.pixelSize: Theme.statusTextSize * gcd.themeScale
}
Icon {
id: networkStatus
opacity: 0
anchors.right: connectionStatus.left
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 5 * gcd.themeScale
height: 18
width: 18
}
Icon {
id: connectionStatus
opacity: 0
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 10 * gcd.themeScale
height: 18 * gcd.themeScale
width: 18 * gcd.themeScale
}
function changeStatus() {
if (status == statusDisconnectedInternet) {
statusbar.color = Theme.statusbarDisconnectedInternetColor
statusMessage.color = Theme.statusbarDisconnectedInternetFontColor
networkStatus.iconColor = Theme.statusbarDisconnectedInternetFontColor
networkStatus.source = gcd.assetPath + "core/signal_cellular_off-24px.svg"
connectionStatus.iconColor = Theme.statusbarDisconnectedInternetFontColor
connectionStatus.source = gcd.assetPath + "core/syncing-03.svg"
//: Disconnected from the internet, check your connection
statusMessage.text = qsTr("network-status-disconnected")
show()
} else if (status == statusDisconnectedTor) {
statusbar.color = Theme.statusbarDisconnectedTorColor
statusMessage.color = Theme.statusbarDisconnectedTorFontColor
networkStatus.iconColor = Theme.statusbarDisconnectedTorFontColor
networkStatus.source = gcd.assetPath + "core/signal_cellular_connected_no_internet_4_bar-24px.svg"
connectionStatus.iconColor = Theme.statusbarDisconnectedTorFontColor
connectionStatus.source = gcd.assetPath + "core/syncing-03.svg"
//: Attempting to connect to Tor network
statusMessage.text = qsTr("network-status-attempting-tor")
show()
} else if (status == statusConnecting) {
statusbar.color = Theme.statusbarConnectingColor
statusMessage.color = Theme.statusbarConnectingFontColor
networkStatus.iconColor = Theme.statusbarConnectingFontColor
networkStatus.source = gcd.assetPath + "core/signal_cellular_connected_no_internet_4_bar-24px.svg"
connectionStatus.iconColor = Theme.statusbarConnectingFontColor
connectionStatus.source = gcd.assetPath + "core/syncing-02.svg"
//: Connecting...
statusMessage.text = qsTr("network-status-connecting")
show()
} else {
statusbar.color = Theme.statusbarOnlineColor
statusMessage.color = Theme.statusbarOnlineFontColor
networkStatus.iconColor = Theme.statusbarOnlineFontColor
networkStatus.source = gcd.assetPath + "core/signal_cellular_4_bar-24px.svg"
connectionStatus.iconColor = Theme.statusbarOnlineFontColor
connectionStatus.source = gcd.assetPath + "core/syncing-01.svg"
//: Online
statusMessage.text = qsTr("network-status-online")
hide()
}
}
MouseArea {
id: ma
anchors.fill: parent
hoverEnabled: true
SequentialAnimation {
id: showAnim
PropertyAnimation { id: openStatus; target: statusbar; property: "height"; to: openHeight}
ParallelAnimation {
PropertyAnimation { id: showStatus; target: statusMessage; property: "opacity"; to: 1}
PropertyAnimation { id: showNetIcon; target: networkStatus; property: "opacity"; to: 1}
PropertyAnimation { id: showConnIcon; target: connectionStatus; property: "opacity"; to: 1}
}
}
SequentialAnimation {
id: hideAnim
ParallelAnimation {
PropertyAnimation { id: hideStatus; target: statusMessage; property: "opacity"; to: 0}
PropertyAnimation { id: hideNetIcon; target: networkStatus; property: "opacity"; to: 0}
PropertyAnimation { id: hideConnIcon; target: connectionStatus; property: "opacity"; to: 0}
}
PropertyAnimation { id: closeStatus; target: statusbar; property: "height"; to: hideHeight; duration: 200 }
}
onEntered: {
isHover = true
show()
}
onExited: {
isHover = false
hide()
}
onPressed: {
isHover = true
show()
}
onReleased: {
isHover = false
hide()
}
}
function resetHeight() {
if (isHover || status != statusOnline) {
height = openHeight
} else {
height = hideHeight
}
}
function show() {
if (isHover || status != statusOnline) {
hideAnim.stop()
showAnim.start()
}
}
function hide() {
if (!isHover && status == statusOnline) {
showAnim.stop()
hideAnim.start()
}
}
onStatusChanged: { changeStatus() }
Component.onCompleted: { resetHeight() }
Connections {
target: gcd
onTorStatus: function(code) {
status = code
}
}
}

View File

@ -7,7 +7,7 @@ import "../theme"
// perform any additional operations needed to define the behavior of the toggle switch
Switch {
property bool isToggled
property var onToggled: function () { console.log("In Superclass") };
property var onToggled: function () { console.log("In Superclass") };
style: SwitchStyle {
handle: Rectangle {