adding bottom status bar for global network status #285

Merged
sarah merged 1 commits from :statusBar into master 2020-05-12 22:38:24 +00:00
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)
Outdated
Review

debug

debug
if progress >= -2 && progress < 0 {
Outdated
Review

I like that "percent" can be -2!?

I like that "percent" can be -2!?
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
Outdated
Review

We should get better at documenting these widgets.

We should get better at documenting these widgets.
// 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 {