Italian translation: update
358
INSTALL.md
|
@ -1,8 +1,8 @@
|
|||
#Install Instructions
|
||||
- [Dependencies](#dependencies)
|
||||
- [Windows](#windows)
|
||||
- [Linux](#linux)
|
||||
- [OS X](#osx)
|
||||
- [Windows](#windows)
|
||||
|
||||
<a name="dependencies" />
|
||||
##Dependencies
|
||||
|
@ -15,6 +15,196 @@
|
|||
| OpenCV | >= 2.4.9 | core, highgui, imgproc |
|
||||
| OpenAL Soft | >= 1.16.0 | |
|
||||
|
||||
|
||||
<a name="linux" />
|
||||
##Linux
|
||||
###Simple install
|
||||
Easy qTox install is provided for variety of distributions:
|
||||
https://wiki.tox.im/Binaries#Apt.2FAptitude_.28Debian.2C_Ubuntu.2C_Mint.2C_etc..29
|
||||
|
||||
If your distribution is not listed, or you want/need to compile qTox, there are provided instructions.
|
||||
|
||||
**Please note that installing toxcore/qTox from AUR is not supported**, although installing other dependencies, provided that they met requirements, should be fine, unless you are installing cryptography library from AUR, which should rise red flags by itself…
|
||||
|
||||
----
|
||||
|
||||
Most of the dependencies should be available through your package manger. You may either follow the directions below, or simply run `./simple_make.sh` after cloning, which will attempt to automatically download dependencies followed by compilation.
|
||||
|
||||
|
||||
###Cloning the Repository
|
||||
In order to clone the qTox repository you need Git.
|
||||
|
||||
Arch Linux:
|
||||
```bash
|
||||
sudo pacman -S --needed git
|
||||
```
|
||||
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum install git
|
||||
```
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
Afterwards open a new Terminal, change to a directory of your choice and clone the repository:
|
||||
```bash
|
||||
cd /home/user/qTox
|
||||
git clone https://github.com/tux3/qTox.git qTox
|
||||
```
|
||||
|
||||
The following steps assumes that you cloned the repository at "/home/user/qTox". If you decided to choose another location, replace corresponding parts.
|
||||
|
||||
###GCC, Qt, OpenCV and OpanAL Soft
|
||||
|
||||
Arch Linux:
|
||||
```bash
|
||||
sudo pacman -S --needed base-devel qt5 opencv openal libxss
|
||||
```
|
||||
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install build-essential qt5-qmake qt5-default libopenal-dev libopencv-dev libxss-dev
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum groupinstall "Development Tools"
|
||||
yum install qt-devel qt-doc qt-creator opencv-devel openal-soft-devel libXScrnSaver-devel
|
||||
```
|
||||
|
||||
Slackware:
|
||||
|
||||
You can grab slackbuilds of the needed dependencies here:
|
||||
|
||||
http://slackbuilds.org/repository/14.1/libraries/OpenAL/
|
||||
|
||||
http://slackbuilds.org/repository/14.1/libraries/qt5/
|
||||
|
||||
http://slackbuilds.org/repository/14.1/libraries/opencv/
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install build-essential qt5-qmake qt5-default qttools5-dev-tools libopenal-dev libopencv-dev libxss-dev
|
||||
```
|
||||
|
||||
###Tox Core
|
||||
|
||||
First of all install the dependencies of Tox Core.
|
||||
|
||||
Arch Linux:
|
||||
```bash
|
||||
sudo pacman -S --needed opus vpx
|
||||
```
|
||||
|
||||
```
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum install libtool autoconf automake check check-devel
|
||||
```
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev
|
||||
```
|
||||
|
||||
Now you can either follow the instructions at https://github.com/irungentoo/toxcore/blob/master/INSTALL.md#unix or use the "bootstrap.sh" script located at "/home/user/qTox".
|
||||
The script will automatically download and install Tox Core and libsodium to "/home/user/qTox/libs":
|
||||
```bash
|
||||
cd /home/user/qTox
|
||||
./bootstrap.sh # use -h or --help for more information
|
||||
```
|
||||
|
||||
After all the dependencies are thus reeady to go, compiling should be as simple as
|
||||
```bash
|
||||
qmake
|
||||
make
|
||||
```
|
||||
|
||||
###Building packages
|
||||
|
||||
Alternately, qTox now has the experimental and probably-dodgy ability to package itself (in .deb
|
||||
form natively, and .rpm form with <a href="http://joeyh.name/code/alien/">alien</a>).
|
||||
|
||||
After installing the required dependencies, run `bootstrap.sh` and then run the
|
||||
`buildPackages.sh` script, found in the tools folder. It will automatically get the
|
||||
packages necessary for building .debs, so be prepared to type your password for sudo.
|
||||
|
||||
|
||||
<a name="osx" />
|
||||
##OS X
|
||||
|
||||
###OSX Easy Install
|
||||
|
||||
Since https://github.com/ReDetection/homebrew-qtox you can easily install qtox with homebrew
|
||||
```bash
|
||||
brew install --HEAD ReDetection/qtox/qtox
|
||||
```
|
||||
|
||||
|
||||
###OSX Full Install Guide
|
||||
|
||||
This guide is intended for people who wish to use an existing or new ProjectTox-Core installation separate to the bundled installation with qTox, if you do not wish to use a separate installation you can skip to the section titled 'Final Steps'.
|
||||
|
||||
Installation on OSX, isn't quite straight forward, here is a quick guide on how to install;
|
||||
|
||||
Note that qTox now requires OpenCV and OpenAL for video and audio.
|
||||
|
||||
The first thing you need to do is install ProjectTox-Core with a/v support. Refer to the INSTALL guide in the PrjectTox-Core github repo.
|
||||
|
||||
Next you need to download QtTools (http://qt-project.org/downloads), at the time of writing this is at version .3.0.
|
||||
Make sure you deselect all the unnecessary components from the 5.3 checkbox (iOS/Android libs) otherwise you will end up with a very large download.
|
||||
|
||||
Once that is installed you will most likely need to set the path for qmake. To do this, open up terminal and paste in the following;
|
||||
|
||||
```bash
|
||||
export PATH=/location/to/qmake/binary:$PATH
|
||||
```
|
||||
|
||||
For myself, the qmake binary was located in /Users/mouseym/Qt/5.3/clang_64/bin/.
|
||||
|
||||
This is not a permanent change, it will revert when you close the terminal window, to add it permanently you will need to add echo the above line to your .profile/.bash_profile.
|
||||
|
||||
Once this is installed, do the following;
|
||||
|
||||
```bash
|
||||
git clone https://github.com/tux3/qTox
|
||||
cd toxgui
|
||||
qmake
|
||||
```
|
||||
|
||||
Now, we need to create a symlink to /usr/local/lib/ and /usr/local/include/
|
||||
```
|
||||
mkdir -p $HOME/qTox/libs
|
||||
sudo ln -s /usr/local/lib $HOME/qTox/libs/lib
|
||||
sudo ln -s /usr/local/include $HOME/qTox/libs/include
|
||||
```
|
||||
####Final Steps
|
||||
|
||||
The final step is to run
|
||||
```bash
|
||||
make
|
||||
```
|
||||
in the qTox directory, or if you are using the bundled tox core installation, you can use
|
||||
```bash
|
||||
./bootstrap.sh
|
||||
make
|
||||
```
|
||||
Assuming all went well you should now have a qTox.app file within the directory. Double click and it should open!
|
||||
|
||||
|
||||
<a name="windows" />
|
||||
##Windows
|
||||
|
||||
|
@ -74,168 +264,4 @@ As for OpenCV there are no prebuild packages of OpenAL Softe compiled with MinGW
|
|||
make
|
||||
make install
|
||||
```
|
||||
Copy the dll "OpenAL32.dll" located at "C:\qTox\libs\openal-build\install\bin" to "C:\qTox\libs\lib". Finally, copy the directory "AL" located at "C:\qTox\libs\openal-build\install\include" to "C:\qTox\libs\include". Unlike OpenCV you don't need to patch any files. Feel free to delete the directories "openal-soft-x.y.z" and "openal-build", but you don't need to.
|
||||
|
||||
<a name="linux" />
|
||||
##Linux
|
||||
Most of the dependencies should be available through your package manger. You may either follow the directions below, or simply run `./simple_make.sh` after cloning, which will attempt to automatically download dependencies followed by compilation.
|
||||
|
||||
###Cloning the Repository
|
||||
In order to clone the qTox repository you need Git.
|
||||
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
Arch Linux:
|
||||
```bash
|
||||
sudo pacman -S --needed git
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum install git
|
||||
```
|
||||
|
||||
Afterwards open a new Terminal, change to a directory of your choice and clone the repository:
|
||||
```bash
|
||||
cd /home/user/qTox
|
||||
git clone https://github.com/tux3/qTox.git qTox
|
||||
```
|
||||
|
||||
The following steps assumes that you cloned the repository at "/home/user/qTox". If you decided to choose another location, replace corresponding parts.
|
||||
|
||||
###GCC, Qt, OpenCV and OpanAL Soft
|
||||
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install build-essential qt5-qmake qt5-default libopenal-dev libopencv-dev libxss-dev
|
||||
```
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install build-essential qt5-qmake qt5-default qttools5-dev-tools libopenal-dev libopencv-dev libxss-dev
|
||||
```
|
||||
|
||||
Arch Linux:
|
||||
```bash
|
||||
sudo pacman -S --needed base-devel qt5 opencv openal libxss
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum groupinstall "Development Tools"
|
||||
yum install qt-devel qt-doc qt-creator opencv-devel openal-soft-devel libXScrnSaver-devel
|
||||
```
|
||||
|
||||
###Tox Core
|
||||
|
||||
First of all install the dependencies of Tox Core.
|
||||
|
||||
Debian:
|
||||
```bash
|
||||
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev
|
||||
```
|
||||
|
||||
Ubuntu:
|
||||
```bash
|
||||
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev
|
||||
```
|
||||
|
||||
Arch Linux: (Arch Linux provides the package "tox-git" in AUR)
|
||||
```bash
|
||||
sudo pacman -S --needed opus vpx
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```bash
|
||||
yum install libtool autoconf automake check check-devel
|
||||
```
|
||||
|
||||
Now you can either follow the instructions at https://github.com/irungentoo/toxcore/blob/master/INSTALL.md#unix or use the "bootstrap.sh" script located at "/home/user/qTox".
|
||||
The script will automatically download and install Tox Core and libsodium to "/home/user/qTox/libs":
|
||||
```bash
|
||||
cd /home/user/qTox
|
||||
./bootstrap.sh # use -h or --help for more information
|
||||
```
|
||||
|
||||
After all the dependencies are thus reeady to go, compiling should be as simple as
|
||||
```bash
|
||||
qmake
|
||||
make
|
||||
```
|
||||
|
||||
###Building packages
|
||||
|
||||
Alternately, qTox now has the experimental and probably-dodgy ability to package itself (in .deb
|
||||
form natively, and .rpm form with <a href="http://joeyh.name/code/alien/">alien</a>).
|
||||
|
||||
After installing the required dependencies, run `bootstrap.sh` and then run the
|
||||
`buildPackages.sh` script, found in the tools folder. It will automatically get the
|
||||
packages necessary for building .debs, so be prepared to type your password for sudo.
|
||||
|
||||
<a name="osx" />
|
||||
##OS X
|
||||
|
||||
###OSX Easy Install
|
||||
|
||||
Since https://github.com/ReDetection/homebrew-qtox you can easily install qtox with homebrew
|
||||
```bash
|
||||
brew install --HEAD ReDetection/qtox/qtox
|
||||
```
|
||||
|
||||
###OSX Full Install Guide
|
||||
|
||||
This guide is intended for people who wish to use an existing or new ProjectTox-Core installation separate to the bundled installation with qTox, if you do not wish to use a separate installation you can skip to the section titled 'Final Steps'.
|
||||
|
||||
Installation on OSX, isn't quite straight forward, here is a quick guide on how to install;
|
||||
|
||||
Note that qTox now requires OpenCV and OpenAL for video and audio.
|
||||
|
||||
The first thing you need to do is install ProjectTox-Core with a/v support. Refer to the INSTALL guide in the PrjectTox-Core github repo.
|
||||
|
||||
Next you need to download QtTools (http://qt-project.org/downloads), at the time of writing this is at version .3.0.
|
||||
Make sure you deselect all the unnecessary components from the 5.3 checkbox (iOS/Android libs) otherwise you will end up with a very large download.
|
||||
|
||||
Once that is installed you will most likely need to set the path for qmake. To do this, open up terminal and paste in the following;
|
||||
|
||||
```bash
|
||||
export PATH=/location/to/qmake/binary:$PATH
|
||||
```
|
||||
|
||||
For myself, the qmake binary was located in /Users/mouseym/Qt/5.3/clang_64/bin/.
|
||||
|
||||
This is not a permanent change, it will revert when you close the terminal window, to add it permanently you will need to add echo the above line to your .profile/.bash_profile.
|
||||
|
||||
Once this is installed, do the following;
|
||||
|
||||
```bash
|
||||
git clone https://github.com/tux3/qTox
|
||||
cd toxgui
|
||||
qmake
|
||||
```
|
||||
|
||||
Now, we need to create a symlink to /usr/local/lib/ and /usr/local/include/
|
||||
```
|
||||
mkdir -p $HOME/qTox/libs
|
||||
sudo ln -s /usr/local/lib $HOME/qTox/libs/lib
|
||||
sudo ln -s /usr/local/include $HOME/qTox/libs/include
|
||||
```
|
||||
####Final Steps
|
||||
|
||||
The final step is to run
|
||||
```bash
|
||||
make
|
||||
```
|
||||
in the qTox directory, or if you are using the bundled tox core installation, you can use
|
||||
```bash
|
||||
./bootstrap.sh
|
||||
make
|
||||
```
|
||||
Assuming all went well you should now have a qTox.app file within the directory. Double click and it should open!
|
||||
Copy the dll "OpenAL32.dll" located at "C:\qTox\libs\openal-build\install\bin" to "C:\qTox\libs\lib". Finally, copy the directory "AL" located at "C:\qTox\libs\openal-build\install\include" to "C:\qTox\libs\include". Unlike OpenCV you don't need to patch any files. Feel free to delete the directories "openal-soft-x.y.z" and "openal-build", but you don't need to.
|
BIN
img/taskbar/dark/taskbar_busy.png
Normal file
After Width: | Height: | Size: 420 B |
BIN
img/taskbar/dark/taskbar_busy_2x.png
Normal file
After Width: | Height: | Size: 716 B |
BIN
img/taskbar/dark/taskbar_idle.png
Normal file
After Width: | Height: | Size: 410 B |
BIN
img/taskbar/dark/taskbar_idle_2x.png
Normal file
After Width: | Height: | Size: 719 B |
BIN
img/taskbar/dark/taskbar_invisible.png
Normal file
After Width: | Height: | Size: 478 B |
BIN
img/taskbar/dark/taskbar_invisible_2x.png
Normal file
After Width: | Height: | Size: 704 B |
BIN
img/taskbar/dark/taskbar_offline.png
Normal file
After Width: | Height: | Size: 395 B |
BIN
img/taskbar/dark/taskbar_offline_2x.png
Normal file
After Width: | Height: | Size: 711 B |
BIN
img/taskbar/dark/taskbar_online.png
Normal file
After Width: | Height: | Size: 374 B |
BIN
img/taskbar/dark/taskbar_online_2x.png
Normal file
After Width: | Height: | Size: 637 B |
BIN
img/taskbar/light/taskbar_busy.png
Normal file
After Width: | Height: | Size: 386 B |
BIN
img/taskbar/light/taskbar_busy_2x.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
img/taskbar/light/taskbar_idle.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
img/taskbar/light/taskbar_idle_2x.png
Normal file
After Width: | Height: | Size: 635 B |
BIN
img/taskbar/light/taskbar_invisible.png
Normal file
After Width: | Height: | Size: 366 B |
BIN
img/taskbar/light/taskbar_invisible_2x.png
Normal file
After Width: | Height: | Size: 670 B |
BIN
img/taskbar/light/taskbar_offline.png
Normal file
After Width: | Height: | Size: 378 B |
BIN
img/taskbar/light/taskbar_offline_2x.png
Normal file
After Width: | Height: | Size: 677 B |
BIN
img/taskbar/light/taskbar_online.png
Normal file
After Width: | Height: | Size: 320 B |
BIN
img/taskbar/light/taskbar_online_2x.png
Normal file
After Width: | Height: | Size: 578 B |
|
@ -32,6 +32,41 @@ func fs_type(path string) int {
|
|||
return -1
|
||||
}
|
||||
|
||||
func install(path string, pathlen int) int {
|
||||
files, _ := ioutil.ReadDir(path)
|
||||
|
||||
for _, file := range files {
|
||||
if fs_type(path+file.Name()) == 1 {
|
||||
|
||||
addpath := ""
|
||||
if len(path) != pathlen {
|
||||
addpath = path[pathlen:len(path)]
|
||||
}
|
||||
|
||||
fmt.Print("Installing: ")
|
||||
fmt.Println("/Applications/qtox.app/Contents/" + addpath + file.Name())
|
||||
if _, err := os.Stat("/Applications/qtox.app/Contents/" + file.Name()); os.IsNotExist(err) {
|
||||
newfile := exec.Command("/usr/libexec/authopen", "-c", "-x", "-m", "drwxrwxr-x+", "/Applications/qtox.app/Contents/"+addpath+file.Name())
|
||||
newfile.Run()
|
||||
}
|
||||
|
||||
cat := exec.Command("/bin/cat", path+file.Name())
|
||||
|
||||
auth := exec.Command("/usr/libexec/authopen", "-w", "/Applications/qtox.app/Contents/"+addpath+file.Name())
|
||||
auth.Stdin, _ = cat.StdoutPipe()
|
||||
auth.Stdout = os.Stdout
|
||||
auth.Stderr = os.Stderr
|
||||
_ = auth.Start()
|
||||
_ = cat.Run()
|
||||
_ = auth.Wait()
|
||||
|
||||
} else {
|
||||
install(path+file.Name()+"/", pathlen)
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func main() {
|
||||
usr, e := user.Current()
|
||||
if e != nil {
|
||||
|
@ -45,51 +80,11 @@ func main() {
|
|||
}
|
||||
fmt.Println("qTox Updater")
|
||||
|
||||
files, _ := ioutil.ReadDir(update_dir)
|
||||
killqtox := exec.Command("/usr/bin/killall", "qtox")
|
||||
_ = killqtox.Run()
|
||||
|
||||
for _, file := range files {
|
||||
if fs_type(update_dir+file.Name()) == 1 {
|
||||
fmt.Print("Installing: ")
|
||||
fmt.Println("/Applications/qtox.app/Contents/" + file.Name())
|
||||
if _, err := os.Stat("/Applications/qtox.app/Contents/" + file.Name()); os.IsNotExist(err) {
|
||||
newfile := exec.Command("/usr/libexec/authopen", "-c", "-x", "-m", "drwxrwxr-x+", "/Applications/qtox.app/Contents/"+file.Name())
|
||||
newfile.Run()
|
||||
}
|
||||
install(update_dir, len(update_dir))
|
||||
|
||||
cat := exec.Command("/bin/cat", update_dir+file.Name())
|
||||
auth := exec.Command("/usr/libexec/authopen", "-w", "/Applications/qtox.app/Contents/"+file.Name())
|
||||
auth.Stdin, _ = cat.StdoutPipe()
|
||||
auth.Stdout = os.Stdout
|
||||
auth.Stderr = os.Stderr
|
||||
_ = auth.Start()
|
||||
_ = cat.Run()
|
||||
_ = auth.Wait()
|
||||
|
||||
} else {
|
||||
files, _ := ioutil.ReadDir(update_dir + file.Name())
|
||||
for _, file2 := range files {
|
||||
fmt.Print("Installing: ")
|
||||
fmt.Println("/Applications/qtox.app/Contents/" + file.Name() + "/" + file2.Name())
|
||||
|
||||
if _, err := os.Stat("/Applications/qtox.app/Contents/" + file.Name() + "/" + file2.Name()); os.IsNotExist(err) {
|
||||
newfile := exec.Command("/usr/libexec/authopen", "-c", "-x", "-m", "drwxrwxr-x+", "/Applications/qtox.app/Contents/"+file.Name()+"/"+file2.Name())
|
||||
newfile.Run()
|
||||
}
|
||||
|
||||
cat := exec.Command("/bin/cat", update_dir+file.Name()+"/"+file2.Name())
|
||||
auth := exec.Command("/usr/libexec/authopen", "-w", "/Applications/qtox.app/Contents/"+file.Name()+"/"+file2.Name())
|
||||
auth.Stdin, _ = cat.StdoutPipe()
|
||||
auth.Stdout = os.Stdout
|
||||
auth.Stderr = os.Stderr
|
||||
_ = auth.Start()
|
||||
_ = cat.Run()
|
||||
_ = auth.Wait()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
os.RemoveAll(update_dir)
|
||||
fmt.Println("Update metadata wiped, launching qTox")
|
||||
launchqtox := exec.Command("/usr/bin/open", "-b", "im.tox.qtox")
|
||||
|
|
8
res.qrc
|
@ -37,6 +37,14 @@
|
|||
<file>img/status/dot_online.png</file>
|
||||
<file>img/status/dot_online_2x.png</file>
|
||||
<file>img/status/dot_online_notification.png</file>
|
||||
<file>img/taskbar/dark/taskbar_online_2x.png</file>
|
||||
<file>img/taskbar/dark/taskbar_idle_2x.png</file>
|
||||
<file>img/taskbar/dark/taskbar_busy_2x.png</file>
|
||||
<file>img/taskbar/dark/taskbar_offline_2x.png</file>
|
||||
<file>img/taskbar/light/taskbar_online_2x.png</file>
|
||||
<file>img/taskbar/light/taskbar_idle_2x.png</file>
|
||||
<file>img/taskbar/light/taskbar_busy_2x.png</file>
|
||||
<file>img/taskbar/light/taskbar_offline_2x.png</file>
|
||||
<file>img/transfer.png</file>
|
||||
<file>smileys/cylgom/angel.png</file>
|
||||
<file>smileys/cylgom/angry.png</file>
|
||||
|
|
|
@ -87,8 +87,6 @@ void Audio::openOutput(const QString& outDevDescr)
|
|||
{
|
||||
auto* tmp = alOutDev;
|
||||
alOutDev = nullptr;
|
||||
if (tmp)
|
||||
alcCloseDevice(tmp);
|
||||
if (outDevDescr.isEmpty())
|
||||
alOutDev = alcOpenDevice(nullptr);
|
||||
else
|
||||
|
@ -104,6 +102,8 @@ void Audio::openOutput(const QString& outDevDescr)
|
|||
alcMakeContextCurrent(nullptr);
|
||||
alcDestroyContext(alContext);
|
||||
}
|
||||
if (tmp)
|
||||
alcCloseDevice(tmp);
|
||||
alContext=alcCreateContext(alOutDev,nullptr);
|
||||
if (!alcMakeContextCurrent(alContext))
|
||||
{
|
||||
|
@ -184,14 +184,14 @@ void Audio::playAudioBuffer(ALuint alSource, const int16_t *data, int samples, u
|
|||
alGetSourcei(alSource, AL_BUFFERS_QUEUED, &queued);
|
||||
alSourcei(alSource, AL_LOOPING, AL_FALSE);
|
||||
|
||||
if(processed)
|
||||
if (processed)
|
||||
{
|
||||
ALuint bufids[processed];
|
||||
alSourceUnqueueBuffers(alSource, processed, bufids);
|
||||
alDeleteBuffers(processed - 1, bufids + 1);
|
||||
bufid = bufids[0];
|
||||
}
|
||||
else if(queued < 16)
|
||||
else if (queued < 16)
|
||||
{
|
||||
alGenBuffers(1, &bufid);
|
||||
}
|
||||
|
@ -207,6 +207,6 @@ void Audio::playAudioBuffer(ALuint alSource, const int16_t *data, int samples, u
|
|||
|
||||
ALint state;
|
||||
alGetSourcei(alSource, AL_SOURCE_STATE, &state);
|
||||
if(state != AL_PLAYING)
|
||||
if (state != AL_PLAYING)
|
||||
alSourcePlay(alSource);
|
||||
}
|
||||
|
|
|
@ -728,7 +728,7 @@ void Core::requestFriendship(const QString& friendAddress, const QString& messag
|
|||
{
|
||||
const QString userId = friendAddress.mid(0, TOX_CLIENT_ID_SIZE * 2);
|
||||
|
||||
if(hasFriendWithAddress(friendAddress))
|
||||
if (hasFriendWithAddress(friendAddress))
|
||||
{
|
||||
emit failedToAddFriend(userId, QString(tr("Friend is already added")));
|
||||
}
|
||||
|
@ -1677,7 +1677,7 @@ void Core::createGroup(uint8_t type)
|
|||
bool Core::hasFriendWithAddress(const QString &addr) const
|
||||
{
|
||||
// Valid length check
|
||||
if(addr.length() != (TOX_FRIEND_ADDRESS_SIZE * 2))
|
||||
if (addr.length() != (TOX_FRIEND_ADDRESS_SIZE * 2))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -1689,7 +1689,7 @@ bool Core::hasFriendWithAddress(const QString &addr) const
|
|||
bool Core::hasFriendWithPublicKey(const QString &pubkey) const
|
||||
{
|
||||
// Valid length check
|
||||
if(pubkey.length() != (TOX_CLIENT_ID_SIZE * 2))
|
||||
if (pubkey.length() != (TOX_CLIENT_ID_SIZE * 2))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -1706,7 +1706,7 @@ bool Core::hasFriendWithPublicKey(const QString &pubkey) const
|
|||
QString addrOrId = getFriendAddress(ids[i]);
|
||||
|
||||
// Set true if found
|
||||
if(addrOrId.toUpper().startsWith(pubkey.toUpper()))
|
||||
if (addrOrId.toUpper().startsWith(pubkey.toUpper()))
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
|
|
|
@ -207,7 +207,7 @@ void Core::playCallAudio(void* toxav, int32_t callId, const int16_t *data, uint1
|
|||
alGenSources(1, &calls[callId].alSource);
|
||||
|
||||
ToxAvCSettings dest;
|
||||
if(toxav_get_peer_csettings((ToxAv*)toxav, callId, 0, &dest) == 0)
|
||||
if (toxav_get_peer_csettings((ToxAv*)toxav, callId, 0, &dest) == 0)
|
||||
playAudioBuffer(calls[callId].alSource, data, samples, dest.audio_channels, dest.audio_sample_rate);
|
||||
}
|
||||
|
||||
|
@ -229,24 +229,24 @@ void Core::sendCallAudio(int callId, ToxAv* toxav)
|
|||
bool frame = false;
|
||||
ALint samples;
|
||||
alcGetIntegerv(Audio::alInDev, ALC_CAPTURE_SAMPLES, sizeof(samples), &samples);
|
||||
if(samples >= framesize)
|
||||
if (samples >= framesize)
|
||||
{
|
||||
memset(buf, 0, bufsize); // Avoid uninitialized values (Valgrind)
|
||||
alcCaptureSamples(Audio::alInDev, buf, framesize);
|
||||
frame = 1;
|
||||
}
|
||||
|
||||
if(frame)
|
||||
if (frame)
|
||||
{
|
||||
int r;
|
||||
if((r = toxav_prepare_audio_frame(toxav, callId, dest, framesize*2, (int16_t*)buf, framesize)) < 0)
|
||||
if ((r = toxav_prepare_audio_frame(toxav, callId, dest, framesize*2, (int16_t*)buf, framesize)) < 0)
|
||||
{
|
||||
qDebug() << "Core: toxav_prepare_audio_frame error";
|
||||
calls[callId].sendAudioTimer->start();
|
||||
return;
|
||||
}
|
||||
|
||||
if((r = toxav_send_audio(toxav, callId, dest, r)) < 0)
|
||||
if ((r = toxav_send_audio(toxav, callId, dest, r)) < 0)
|
||||
qDebug() << "Core: toxav_send_audio error";
|
||||
}
|
||||
calls[callId].sendAudioTimer->start();
|
||||
|
@ -271,7 +271,7 @@ void Core::sendCallVideo(int callId)
|
|||
if (frame.w && frame.h)
|
||||
{
|
||||
int result;
|
||||
if((result = toxav_prepare_video_frame(toxav, callId, videobuf, videobufsize, &frame)) < 0)
|
||||
if ((result = toxav_prepare_video_frame(toxav, callId, videobuf, videobufsize, &frame)) < 0)
|
||||
{
|
||||
qDebug() << QString("Core: toxav_prepare_video_frame: error %1").arg(result);
|
||||
vpx_img_free(&frame);
|
||||
|
@ -279,7 +279,7 @@ void Core::sendCallVideo(int callId)
|
|||
return;
|
||||
}
|
||||
|
||||
if((result = toxav_send_video(toxav, callId, (uint8_t*)videobuf, result)) < 0)
|
||||
if ((result = toxav_send_video(toxav, callId, (uint8_t*)videobuf, result)) < 0)
|
||||
qDebug() << QString("Core: toxav_send_video error: %1").arg(result);
|
||||
|
||||
vpx_img_free(&frame);
|
||||
|
@ -540,7 +540,7 @@ void Core::onAvStart(void* _toxav, int32_t call_index, void* core)
|
|||
// This function's logic was shamelessly stolen from uTox
|
||||
void Core::playAudioBuffer(ALuint alSource, const int16_t *data, int samples, unsigned channels, int sampleRate)
|
||||
{
|
||||
if(!channels || channels > 2)
|
||||
if (!channels || channels > 2)
|
||||
{
|
||||
qWarning() << "Core::playAudioBuffer: trying to play on "<<channels<<" channels! Giving up.";
|
||||
return;
|
||||
|
@ -552,14 +552,14 @@ void Core::playAudioBuffer(ALuint alSource, const int16_t *data, int samples, un
|
|||
alGetSourcei(alSource, AL_BUFFERS_QUEUED, &queued);
|
||||
alSourcei(alSource, AL_LOOPING, AL_FALSE);
|
||||
|
||||
if(processed)
|
||||
if (processed)
|
||||
{
|
||||
ALuint bufids[processed];
|
||||
alSourceUnqueueBuffers(alSource, processed, bufids);
|
||||
alDeleteBuffers(processed - 1, bufids + 1);
|
||||
bufid = bufids[0];
|
||||
}
|
||||
else if(queued < 32)
|
||||
else if (queued < 32)
|
||||
{
|
||||
alGenBuffers(1, &bufid);
|
||||
}
|
||||
|
@ -575,7 +575,7 @@ void Core::playAudioBuffer(ALuint alSource, const int16_t *data, int samples, un
|
|||
|
||||
ALint state;
|
||||
alGetSourcei(alSource, AL_SOURCE_STATE, &state);
|
||||
if(state != AL_PLAYING)
|
||||
if (state != AL_PLAYING)
|
||||
{
|
||||
alSourcePlay(alSource);
|
||||
//qDebug() << "Core: Starting audio source " << (int)alSource;
|
||||
|
@ -643,17 +643,17 @@ void Core::sendGroupCallAudio(int groupId, ToxAv* toxav)
|
|||
bool frame = false;
|
||||
ALint samples;
|
||||
alcGetIntegerv(Audio::alInDev, ALC_CAPTURE_SAMPLES, sizeof(samples), &samples);
|
||||
if(samples >= framesize)
|
||||
if (samples >= framesize)
|
||||
{
|
||||
memset(buf, 0, bufsize); // Avoid uninitialized values (Valgrind)
|
||||
alcCaptureSamples(Audio::alInDev, buf, framesize);
|
||||
frame = 1;
|
||||
}
|
||||
|
||||
if(frame)
|
||||
if (frame)
|
||||
{
|
||||
int r;
|
||||
if((r = toxav_group_send_audio(toxav_get_tox(toxav), groupId, (int16_t*)buf,
|
||||
if ((r = toxav_group_send_audio(toxav_get_tox(toxav), groupId, (int16_t*)buf,
|
||||
framesize, av_DefaultSettings.audio_channels, av_DefaultSettings.audio_sample_rate)) < 0)
|
||||
{
|
||||
qDebug() << "Core: toxav_group_send_audio error";
|
||||
|
|
|
@ -70,7 +70,7 @@ int main(int argc, char *argv[])
|
|||
parser.process(a);
|
||||
|
||||
Settings::getInstance(); // Build our Settings singleton as soon as QApplication is ready, not before
|
||||
if(parser.isSet("P"))
|
||||
if (parser.isSet("P"))
|
||||
Settings::getInstance().setCurrentProfile(parser.value("P"));
|
||||
|
||||
sodium_init(); // For the auto-updater
|
||||
|
@ -156,7 +156,7 @@ int main(int argc, char *argv[])
|
|||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else if(!ipc.isCurrentOwner() && !parser.isSet("P"))
|
||||
else if (!ipc.isCurrentOwner() && !parser.isSet("P"))
|
||||
{
|
||||
time_t event = ipc.postEvent("$activate");
|
||||
ipc.waitUntilProcessed(event);
|
||||
|
|
|
@ -129,7 +129,6 @@ void Settings::load()
|
|||
makeToxPortable = s.value("makeToxPortable", false).toBool();
|
||||
autostartInTray = s.value("autostartInTray", false).toBool();
|
||||
closeToTray = s.value("closeToTray", false).toBool();
|
||||
trayShowsUserStatus = s.value("trayShowsUserStatus", false).toBool();
|
||||
forceTCP = s.value("forceTCP", false).toBool();
|
||||
useProxy = s.value("useProxy", false).toBool();
|
||||
proxyAddr = s.value("proxyAddr", "").toString();
|
||||
|
@ -168,6 +167,7 @@ void Settings::load()
|
|||
timestampFormat = s.value("timestampFormat", "hh:mm").toString();
|
||||
minimizeOnClose = s.value("minimizeOnClose", false).toBool();
|
||||
minimizeToTray = s.value("minimizeToTray", false).toBool();
|
||||
lightTrayIcon = s.value("lightTrayIcon", false).toBool();
|
||||
useNativeStyle = s.value("nativeStyle", false).toBool();
|
||||
useEmoticons = s.value("useEmoticons", true).toBool();
|
||||
statusChangeNotificationEnabled = s.value("statusChangeNotificationEnabled", false).toBool();
|
||||
|
@ -281,7 +281,6 @@ void Settings::save(QString path, bool writeFriends)
|
|||
s.setValue("showSystemTray", showSystemTray);
|
||||
s.setValue("autostartInTray",autostartInTray);
|
||||
s.setValue("closeToTray", closeToTray);
|
||||
s.setValue("trayShowsUserStatus", trayShowsUserStatus);
|
||||
s.setValue("useProxy", useProxy);
|
||||
s.setValue("forceTCP", forceTCP);
|
||||
s.setValue("proxyAddr", proxyAddr);
|
||||
|
@ -317,6 +316,7 @@ void Settings::save(QString path, bool writeFriends)
|
|||
s.setValue("timestampFormat", timestampFormat);
|
||||
s.setValue("minimizeOnClose", minimizeOnClose);
|
||||
s.setValue("minimizeToTray", minimizeToTray);
|
||||
s.setValue("lightTrayIcon", lightTrayIcon);
|
||||
s.setValue("nativeStyle", useNativeStyle);
|
||||
s.setValue("useEmoticons", useEmoticons);
|
||||
s.setValue("themeColor", themeColor);
|
||||
|
@ -521,16 +521,6 @@ void Settings::setCloseToTray(bool newValue)
|
|||
closeToTray = newValue;
|
||||
}
|
||||
|
||||
bool Settings::getTrayShowsUserStatus() const
|
||||
{
|
||||
return trayShowsUserStatus;
|
||||
}
|
||||
|
||||
void Settings::setTrayShowsUserStatus(bool newValue)
|
||||
{
|
||||
trayShowsUserStatus = newValue;
|
||||
}
|
||||
|
||||
bool Settings::getMinimizeToTray() const
|
||||
{
|
||||
return minimizeToTray;
|
||||
|
@ -542,6 +532,16 @@ void Settings::setMinimizeToTray(bool newValue)
|
|||
minimizeToTray = newValue;
|
||||
}
|
||||
|
||||
bool Settings::getLightTrayIcon() const
|
||||
{
|
||||
return lightTrayIcon;
|
||||
}
|
||||
|
||||
void Settings::setLightTrayIcon(bool newValue)
|
||||
{
|
||||
lightTrayIcon = newValue;
|
||||
}
|
||||
|
||||
bool Settings::getStatusChangeNotificationEnabled() const
|
||||
{
|
||||
return statusChangeNotificationEnabled;
|
||||
|
|
|
@ -58,12 +58,12 @@ public:
|
|||
|
||||
bool getCloseToTray() const;
|
||||
void setCloseToTray(bool newValue);
|
||||
|
||||
bool getTrayShowsUserStatus() const;
|
||||
void setTrayShowsUserStatus(bool newValue);
|
||||
|
||||
bool getMinimizeToTray() const;
|
||||
void setMinimizeToTray(bool newValue);
|
||||
|
||||
bool getLightTrayIcon() const;
|
||||
void setLightTrayIcon(bool newValue);
|
||||
|
||||
QString getStyle() const;
|
||||
void setStyle(const QString& newValue);
|
||||
|
@ -247,7 +247,7 @@ private:
|
|||
bool autostartInTray;
|
||||
bool closeToTray;
|
||||
bool minimizeToTray;
|
||||
bool trayShowsUserStatus;
|
||||
bool lightTrayIcon;
|
||||
bool useEmoticons;
|
||||
bool checkUpdates;
|
||||
bool showInFront;
|
||||
|
|
|
@ -69,9 +69,9 @@ QList<QPair<QString, QString> > SmileyPack::listSmileyPacks(const QStringList &p
|
|||
|
||||
if (relPath.leftRef(2) == "..")
|
||||
{
|
||||
if(!smileyPacks.contains(QPair<QString, QString>(packageName, absPath)))
|
||||
if (!smileyPacks.contains(QPair<QString, QString>(packageName, absPath)))
|
||||
smileyPacks << QPair<QString, QString>(packageName, absPath);
|
||||
else if(!smileyPacks.contains(QPair<QString, QString>(packageName, relPath)))
|
||||
else if (!smileyPacks.contains(QPair<QString, QString>(packageName, relPath)))
|
||||
smileyPacks << QPair<QString, QString>(packageName, relPath); // use relative path for subdirectories
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ bool SmileyPack::load(const QString& filename)
|
|||
|
||||
// open emoticons.xml
|
||||
QFile xmlFile(filename);
|
||||
if(!xmlFile.open(QIODevice::ReadOnly))
|
||||
if (!xmlFile.open(QIODevice::ReadOnly))
|
||||
return false; // cannot open file
|
||||
|
||||
/* parse the cfg file
|
||||
|
@ -138,14 +138,14 @@ bool SmileyPack::load(const QString& filename)
|
|||
QPixmap pm;
|
||||
pm.loadFromData(getCachedSmiley(emoticon), "PNG");
|
||||
|
||||
if(pm.size().width() > 0)
|
||||
if (pm.size().width() > 0)
|
||||
emoticonSet.push_back(emoticon);
|
||||
|
||||
stringElement = stringElement.nextSibling().toElement();
|
||||
|
||||
}
|
||||
|
||||
if(emoticonSet.size() > 0)
|
||||
if (emoticonSet.size() > 0)
|
||||
emoticons.push_back(emoticonSet);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,14 +17,14 @@
|
|||
#include <QDebug>
|
||||
#ifdef Q_OS_WIN32
|
||||
#include "src/platform/timer.h"
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
uint32_t Platform::getIdleTime()
|
||||
{
|
||||
LASTINPUTINFO info = { 0 };
|
||||
info.cbSize = sizeof(info);
|
||||
if(GetLastInputInfo(&info))
|
||||
if (GetLastInputInfo(&info))
|
||||
return GetTickCount() - info.dwTime;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ uint32_t Platform::getIdleTime()
|
|||
uint32_t idleTime = 0;
|
||||
|
||||
Display *display = XOpenDisplay(NULL);
|
||||
if(!display)
|
||||
if (!display)
|
||||
{
|
||||
qDebug() << "XOpenDisplay(NULL) failed";
|
||||
return 0;
|
||||
|
@ -33,10 +33,10 @@ uint32_t Platform::getIdleTime()
|
|||
|
||||
int32_t x11event = 0, x11error = 0;
|
||||
static int32_t hasExtension = XScreenSaverQueryExtension(display, &x11event, &x11error);
|
||||
if(hasExtension)
|
||||
if (hasExtension)
|
||||
{
|
||||
XScreenSaverInfo *info = XScreenSaverAllocInfo();
|
||||
if(info)
|
||||
if (info)
|
||||
{
|
||||
XScreenSaverQueryInfo(display, DefaultRootWindow(display), info);
|
||||
idleTime = info->idle;
|
||||
|
|
|
@ -129,7 +129,7 @@ void CameraWorker::applyProps()
|
|||
if (!cam.isOpened())
|
||||
return;
|
||||
|
||||
for(int prop : props.keys())
|
||||
for (int prop : props.keys())
|
||||
cam.set(prop, props.value(prop));
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ void CameraWorker::subscribe()
|
|||
|
||||
void CameraWorker::unsubscribe()
|
||||
{
|
||||
if(--refCount <= 0)
|
||||
if (--refCount <= 0)
|
||||
{
|
||||
cam.release();
|
||||
refCount = 0;
|
||||
|
|
|
@ -87,6 +87,7 @@ void ChatAreaWidget::mouseReleaseEvent(QMouseEvent * event)
|
|||
}
|
||||
}
|
||||
}
|
||||
emit onClick();
|
||||
}
|
||||
|
||||
void ChatAreaWidget::onAnchorClicked(const QUrl &url)
|
||||
|
|
|
@ -41,6 +41,7 @@ public slots:
|
|||
|
||||
signals:
|
||||
void onFileTranfertInterract(QString widgetName, QString buttonName);
|
||||
void onClick();
|
||||
|
||||
protected:
|
||||
void mouseReleaseEvent(QMouseEvent * event);
|
||||
|
|
|
@ -673,7 +673,7 @@ void ChatForm::onFileSendFailed(int FriendId, const QString &fname)
|
|||
if (FriendId != f->getFriendID())
|
||||
return;
|
||||
|
||||
addSystemInfoMessage("File: \"" + fname + "\" failed to send.", "red", QDateTime::currentDateTime());
|
||||
addSystemInfoMessage(tr("Failed to send file \"%1\"").arg(fname), "red", QDateTime::currentDateTime());
|
||||
}
|
||||
|
||||
void ChatForm::onAvatarChange(int FriendId, const QPixmap &pic)
|
||||
|
@ -793,7 +793,7 @@ void ChatForm::onLoadHistory()
|
|||
|
||||
void ChatForm::startCounter()
|
||||
{
|
||||
if(!timer)
|
||||
if (!timer)
|
||||
{
|
||||
timer = new QTimer();
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(updateTime()));
|
||||
|
@ -805,7 +805,7 @@ void ChatForm::startCounter()
|
|||
|
||||
void ChatForm::stopCounter()
|
||||
{
|
||||
if(timer)
|
||||
if (timer)
|
||||
{
|
||||
addSystemInfoMessage(tr("Call with %1 ended. %2").arg(f->getDisplayedName(),
|
||||
secondsToDHMS(timeElapsed.elapsed()/1000)),
|
||||
|
@ -834,10 +834,10 @@ QString ChatForm::secondsToDHMS(quint32 duration)
|
|||
int hours = (int) (duration % 24);
|
||||
int days = (int) (duration / 24);
|
||||
|
||||
if(minutes == 0)
|
||||
if (minutes == 0)
|
||||
return cD + res.sprintf("%02ds", seconds);
|
||||
|
||||
if(hours == 0 && days == 0)
|
||||
if (hours == 0 && days == 0)
|
||||
return cD + res.sprintf("%02dm %02ds", minutes, seconds);
|
||||
|
||||
if (days == 0)
|
||||
|
|
|
@ -152,6 +152,7 @@ GenericChatForm::GenericChatForm(QWidget *parent) :
|
|||
|
||||
connect(emoteButton, SIGNAL(clicked()), this, SLOT(onEmoteButtonClicked()));
|
||||
connect(chatWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onChatContextMenuRequested(QPoint)));
|
||||
connect(chatWidget, SIGNAL(onClick()), this, SLOT(onChatWidgetClicked()));
|
||||
|
||||
chatWidget->document()->setDefaultStyleSheet(Style::getStylesheet(":ui/chatArea/innerStyle.css"));
|
||||
chatWidget->setStyleSheet(Style::getStylesheet(":/ui/chatArea/chatArea.css"));
|
||||
|
@ -252,6 +253,11 @@ void GenericChatForm::onEmoteButtonClicked()
|
|||
}
|
||||
}
|
||||
|
||||
void GenericChatForm::onChatWidgetClicked()
|
||||
{
|
||||
msgEdit->setFocus();
|
||||
}
|
||||
|
||||
void GenericChatForm::onEmoteInsertRequested(QString str)
|
||||
{
|
||||
// insert the emoticon
|
||||
|
|
|
@ -69,6 +69,7 @@ protected slots:
|
|||
void onEmoteButtonClicked();
|
||||
void onEmoteInsertRequested(QString str);
|
||||
void clearChatArea(bool);
|
||||
void onChatWidgetClicked();
|
||||
|
||||
protected:
|
||||
QString getElidedName(const QString& name);
|
||||
|
|
|
@ -209,11 +209,8 @@ void GroupChatForm::onCallClicked()
|
|||
|
||||
void GroupChatForm::keyPressEvent(QKeyEvent* ev)
|
||||
{
|
||||
if (msgEdit->hasFocus())
|
||||
return;
|
||||
|
||||
// Push to talk
|
||||
if (ev->key() == Qt::Key_P && inCall)
|
||||
// Push to talk (CTRL+P)
|
||||
if (ev->key() == Qt::Key_P && (ev->modifiers() & Qt::ControlModifier) && inCall)
|
||||
{
|
||||
Core* core = Core::getInstance();
|
||||
if (!core->isGroupCallMicEnabled(group->getGroupId()))
|
||||
|
@ -224,15 +221,15 @@ void GroupChatForm::keyPressEvent(QKeyEvent* ev)
|
|||
Style::repolish(micButton);
|
||||
}
|
||||
}
|
||||
|
||||
if (msgEdit->hasFocus())
|
||||
return;
|
||||
}
|
||||
|
||||
void GroupChatForm::keyReleaseEvent(QKeyEvent* ev)
|
||||
{
|
||||
if (msgEdit->hasFocus())
|
||||
return;
|
||||
|
||||
// Push to talk
|
||||
if (ev->key() == Qt::Key_P && inCall)
|
||||
// Push to talk (CTRL+P)
|
||||
if (ev->key() == Qt::Key_P && (ev->modifiers() & Qt::ControlModifier) && inCall)
|
||||
{
|
||||
Core* core = Core::getInstance();
|
||||
if (core->isGroupCallMicEnabled(group->getGroupId()))
|
||||
|
@ -243,4 +240,7 @@ void GroupChatForm::keyReleaseEvent(QKeyEvent* ev)
|
|||
Style::repolish(micButton);
|
||||
}
|
||||
}
|
||||
|
||||
if (msgEdit->hasFocus())
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -62,8 +62,8 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
|
|||
bodyUI->closeToTray->setEnabled(showSystemTray);
|
||||
bodyUI->minimizeToTray->setChecked(Settings::getInstance().getMinimizeToTray());
|
||||
bodyUI->minimizeToTray->setEnabled(showSystemTray);
|
||||
bodyUI->trayShowsUserStatus->setChecked(Settings::getInstance().getTrayShowsUserStatus());
|
||||
bodyUI->trayShowsUserStatus->setEnabled(showSystemTray);
|
||||
bodyUI->lightTrayIcon->setChecked(Settings::getInstance().getLightTrayIcon());
|
||||
bodyUI->lightTrayIcon->setEnabled(showSystemTray);
|
||||
bodyUI->statusChanges->setChecked(Settings::getInstance().getStatusChangeNotificationEnabled());
|
||||
bodyUI->useEmoticons->setChecked(Settings::getInstance().getUseEmoticons());
|
||||
bodyUI->autoacceptFiles->setChecked(Settings::getInstance().getAutoSaveEnabled());
|
||||
|
@ -81,7 +81,7 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
|
|||
bodyUI->styleBrowser->addItem(tr("None"));
|
||||
bodyUI->styleBrowser->addItems(QStyleFactory::keys());
|
||||
|
||||
if(QStyleFactory::keys().contains(Settings::getInstance().getStyle()))
|
||||
if (QStyleFactory::keys().contains(Settings::getInstance().getStyle()))
|
||||
bodyUI->styleBrowser->setCurrentText(Settings::getInstance().getStyle());
|
||||
else
|
||||
bodyUI->styleBrowser->setCurrentText(tr("None"));
|
||||
|
@ -122,12 +122,12 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
|
|||
connect(bodyUI->startInTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetAutostartInTray);
|
||||
connect(bodyUI->closeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetCloseToTray);
|
||||
connect(bodyUI->minimizeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetMinimizeToTray);
|
||||
connect(bodyUI->trayShowsUserStatus, &QCheckBox::stateChanged, this, &GeneralForm::onSettrayShowsUserStatus);
|
||||
connect(bodyUI->lightTrayIcon, &QCheckBox::stateChanged, this, &GeneralForm::onSetLightTrayIcon);
|
||||
connect(bodyUI->statusChanges, &QCheckBox::stateChanged, this, &GeneralForm::onSetStatusChange);
|
||||
connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged()));
|
||||
connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront);
|
||||
connect(bodyUI->autoacceptFiles, &QCheckBox::stateChanged, this, &GeneralForm::onAutoAcceptFileChange);
|
||||
if(bodyUI->autoacceptFiles->isChecked())
|
||||
if (bodyUI->autoacceptFiles->isChecked())
|
||||
connect(bodyUI->autoSaveFilesDir, SIGNAL(clicked()), this, SLOT(onAutoSaveDirChange()));
|
||||
//theme
|
||||
connect(bodyUI->useEmoticons, &QCheckBox::stateChanged, this, &GeneralForm::onUseEmoticonsChange);
|
||||
|
@ -188,20 +188,20 @@ void GeneralForm::onSetCloseToTray()
|
|||
Settings::getInstance().setCloseToTray(bodyUI->closeToTray->isChecked());
|
||||
}
|
||||
|
||||
void GeneralForm::onSetLightTrayIcon()
|
||||
{
|
||||
Settings::getInstance().setLightTrayIcon(bodyUI->lightTrayIcon->isChecked());
|
||||
Widget::getInstance()->updateTrayIcon();
|
||||
}
|
||||
|
||||
void GeneralForm::onSetMinimizeToTray()
|
||||
{
|
||||
Settings::getInstance().setMinimizeToTray(bodyUI->minimizeToTray->isChecked());
|
||||
}
|
||||
|
||||
void GeneralForm::onSettrayShowsUserStatus()
|
||||
{
|
||||
Settings::getInstance().setTrayShowsUserStatus(bodyUI->trayShowsUserStatus->isChecked());
|
||||
Widget::getInstance()->updateTrayIcon();
|
||||
}
|
||||
|
||||
void GeneralForm::onStyleSelected(QString style)
|
||||
{
|
||||
if(bodyUI->styleBrowser->currentIndex() == 0)
|
||||
if (bodyUI->styleBrowser->currentIndex() == 0)
|
||||
Settings::getInstance().setStyle("None");
|
||||
else
|
||||
Settings::getInstance().setStyle(style);
|
||||
|
@ -230,7 +230,7 @@ void GeneralForm::onAutoAcceptFileChange()
|
|||
{
|
||||
Settings::getInstance().setAutoSaveEnabled(bodyUI->autoacceptFiles->isChecked());
|
||||
|
||||
if(bodyUI->autoacceptFiles->isChecked() == true)
|
||||
if (bodyUI->autoacceptFiles->isChecked() == true)
|
||||
connect(bodyUI->autoSaveFilesDir, SIGNAL(clicked()), this, SLOT(onAutoSaveDirChange()));
|
||||
else
|
||||
disconnect(bodyUI->autoSaveFilesDir, SIGNAL(clicked()),this, SLOT(onAutoSaveDirChange()));
|
||||
|
@ -240,7 +240,7 @@ void GeneralForm::onAutoSaveDirChange()
|
|||
{
|
||||
QString previousDir = Settings::getInstance().getGlobalAutoAcceptDir();
|
||||
QString directory = QFileDialog::getExistingDirectory(0, tr("Choose an auto accept directory","popup title"));
|
||||
if(directory.isEmpty())
|
||||
if (directory.isEmpty())
|
||||
directory = previousDir;
|
||||
|
||||
Settings::getInstance().setGlobalAutoAcceptDir(directory);
|
||||
|
@ -308,7 +308,7 @@ void GeneralForm::reloadSmiles()
|
|||
QStringList smiles;
|
||||
smiles << ":)" << ";)" << ":p" << ":O" << ":["; //just in case...
|
||||
|
||||
for(int i = 0; i < emoticons.size(); i++)
|
||||
for (int i = 0; i < emoticons.size(); i++)
|
||||
smiles.push_front(emoticons.at(i).first());
|
||||
|
||||
int pixSize = 30;
|
||||
|
|
|
@ -37,6 +37,7 @@ private slots:
|
|||
void onSetShowSystemTray();
|
||||
void onSetAutostartInTray();
|
||||
void onSetCloseToTray();
|
||||
void onSetLightTrayIcon();
|
||||
void onSmileyBrowserIndexChanged(int index);
|
||||
void onUDPUpdated();
|
||||
void onProxyAddrEdited();
|
||||
|
@ -49,7 +50,6 @@ private slots:
|
|||
void onAutoAwayChanged();
|
||||
void onUseEmoticonsChange();
|
||||
void onSetMinimizeToTray();
|
||||
void onSettrayShowsUserStatus();
|
||||
void onReconnectClicked();
|
||||
void onAutoAcceptFileChange();
|
||||
void onAutoSaveDirChange();
|
||||
|
|
|
@ -39,8 +39,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>509</width>
|
||||
<height>849</height>
|
||||
<width>513</width>
|
||||
<height>819</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0,1">
|
||||
|
@ -109,7 +109,7 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="1" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="trayBehavior">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="startInTray">
|
||||
|
@ -152,19 +152,10 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="trayShowsUserStatus">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="lightTrayIcon">
|
||||
<property name="text">
|
||||
<string>Tray icon displays user status</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>This is a temporary work around until proper systray status icons are available.</string>
|
||||
<string>Light icon</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -607,21 +598,5 @@
|
|||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>showSystemTray</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>trayShowsUserStatus</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>148</x>
|
||||
<y>143</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>158</x>
|
||||
<y>205</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
|
|
|
@ -52,7 +52,7 @@ void TabCompleter::buildCompletionList()
|
|||
// that section is then used as the completion regex
|
||||
QRegExp regex(QString("^[-_\\[\\]{}|`^.\\\\]*").append(QRegExp::escape(tabAbbrev)), Qt::CaseInsensitive);
|
||||
|
||||
for(auto name : group->getPeerList())
|
||||
for (auto name : group->getPeerList())
|
||||
if (regex.indexIn(name) > -1)
|
||||
completionMap[name.toLower()] = name;
|
||||
|
||||
|
|
|
@ -130,6 +130,6 @@ void MaskablePixmapWidget::paintEvent(QPaintEvent *)
|
|||
|
||||
void MaskablePixmapWidget::mousePressEvent(QMouseEvent*)
|
||||
{
|
||||
if(clickable)
|
||||
if (clickable)
|
||||
emit clicked();
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ MessageAction::MessageAction(const QString &author, const QString &message, cons
|
|||
QString MessageAction::getMessage(QString div)
|
||||
{
|
||||
QString message_;
|
||||
if(Settings::getInstance().getUseEmoticons())
|
||||
if (Settings::getInstance().getUseEmoticons())
|
||||
message_ = SmileyPack::getInstance().smileyfied(toHtmlChars(message));
|
||||
else
|
||||
message_ = toHtmlChars(message);
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
void toxActivateEventHandler(const QByteArray& data)
|
||||
{
|
||||
if(data != "$activate")
|
||||
if (data != "$activate")
|
||||
return;
|
||||
Widget::getInstance()->show();
|
||||
Widget::getInstance()->activateWindow();
|
||||
|
@ -116,7 +116,7 @@ void Widget::init()
|
|||
|
||||
if (Settings::getInstance().getShowSystemTray()){
|
||||
icon->show();
|
||||
if(Settings::getInstance().getAutostartInTray() == false)
|
||||
if (Settings::getInstance().getAutostartInTray() == false)
|
||||
this->show();
|
||||
}
|
||||
else
|
||||
|
@ -125,7 +125,8 @@ void Widget::init()
|
|||
}
|
||||
else
|
||||
{
|
||||
qWarning() << "No system tray detected!";
|
||||
qWarning() << "Widget: No system tray detected!";
|
||||
icon = nullptr;
|
||||
this->show();
|
||||
}
|
||||
|
||||
|
@ -148,7 +149,7 @@ void Widget::init()
|
|||
|
||||
ui->tooliconsZone->setStyleSheet(Style::resolve("QPushButton{background-color:@themeDark;border:none;}QPushButton:hover{background-color:@themeMediumDark;border:none;}"));
|
||||
|
||||
if(QStyleFactory::keys().contains(Settings::getInstance().getStyle())
|
||||
if (QStyleFactory::keys().contains(Settings::getInstance().getStyle())
|
||||
&& Settings::getInstance().getStyle() != "None")
|
||||
{
|
||||
ui->mainHead->setStyle(QStyleFactory::create(Settings::getInstance().getStyle()));
|
||||
|
@ -295,22 +296,20 @@ void Widget::setTranslation()
|
|||
|
||||
void Widget::updateTrayIcon()
|
||||
{
|
||||
if(Settings::getInstance().getTrayShowsUserStatus())
|
||||
{
|
||||
QString status = ui->statusButton->property("status").toString();
|
||||
QString icon;
|
||||
if(status == "online")
|
||||
icon = ":img/status/dot_online_2x.png";
|
||||
else if(status == "away")
|
||||
icon = ":img/status/dot_idle_2x.png";
|
||||
else if(status == "busy")
|
||||
icon = ":img/status/dot_busy_2x.png";
|
||||
else
|
||||
icon = ":img/status/dot_away_2x.png";
|
||||
this->icon->setIcon(QIcon(icon));
|
||||
}
|
||||
if (!icon)
|
||||
return;
|
||||
QString status = ui->statusButton->property("status").toString();
|
||||
QString pic;
|
||||
QString color = Settings::getInstance().getLightTrayIcon() ? "light" : "dark";
|
||||
if (status == "online")
|
||||
pic = ":img/taskbar/" + color + "/taskbar_online_2x.png";
|
||||
else if (status == "away")
|
||||
pic = ":img/taskbar/" + color + "/taskbar_idle_2x.png";
|
||||
else if (status == "busy")
|
||||
pic = ":img/taskbar/" + color + "/taskbar_busy_2x.png";
|
||||
else
|
||||
icon->setIcon(windowIcon());
|
||||
pic = ":img/taskbar/" + color + "/taskbar_offline_2x.png";
|
||||
icon->setIcon(QIcon(pic));
|
||||
}
|
||||
|
||||
Widget::~Widget()
|
||||
|
@ -350,7 +349,7 @@ QThread* Widget::getCoreThread()
|
|||
|
||||
void Widget::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if(Settings::getInstance().getShowSystemTray() && Settings::getInstance().getCloseToTray() == true)
|
||||
if (Settings::getInstance().getShowSystemTray() && Settings::getInstance().getCloseToTray() == true)
|
||||
{
|
||||
event->ignore();
|
||||
this->hide();
|
||||
|
@ -367,7 +366,7 @@ void Widget::changeEvent(QEvent *event)
|
|||
{
|
||||
if (event->type() == QEvent::WindowStateChange)
|
||||
{
|
||||
if(isMinimized() && Settings::getInstance().getMinimizeToTray())
|
||||
if (isMinimized() && Settings::getInstance().getMinimizeToTray())
|
||||
{
|
||||
this->hide();
|
||||
}
|
||||
|
@ -417,7 +416,7 @@ QList<QString> Widget::searchProfiles()
|
|||
QDir dir(Settings::getSettingsDirPath());
|
||||
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
|
||||
dir.setNameFilters(QStringList("*.tox"));
|
||||
for(QFileInfo file : dir.entryInfoList())
|
||||
for (QFileInfo file : dir.entryInfoList())
|
||||
out += file.completeBaseName();
|
||||
return out;
|
||||
}
|
||||
|
@ -593,7 +592,7 @@ void Widget::onIconClick(QSystemTrayIcon::ActivationReason reason)
|
|||
{
|
||||
switch (reason) {
|
||||
case QSystemTrayIcon::Trigger:
|
||||
if(this->isHidden() == true)
|
||||
if (this->isHidden() == true)
|
||||
{
|
||||
this->show();
|
||||
this->activateWindow();
|
||||
|
@ -714,7 +713,7 @@ void Widget::addFriend(int friendId, const QString &userId)
|
|||
void Widget::addFriendFailed(const QString&, const QString& errorInfo)
|
||||
{
|
||||
QString info = QString(tr("Couldn't request friendship"));
|
||||
if(!errorInfo.isEmpty()) {
|
||||
if (!errorInfo.isEmpty()) {
|
||||
info = info + (QString(": ") + errorInfo);
|
||||
}
|
||||
|
||||
|
@ -735,7 +734,7 @@ void Widget::onFriendStatusChanged(int friendId, Status status)
|
|||
f->getFriendWidget()->updateStatusLight();
|
||||
|
||||
//won't print the message if there were no messages before
|
||||
if(!f->getChatForm()->isEmpty()
|
||||
if (!f->getChatForm()->isEmpty()
|
||||
&& Settings::getInstance().getStatusChangeNotificationEnabled())
|
||||
{
|
||||
QString fStatus = "";
|
||||
|
|
31
translations/de.ts
vendored
|
@ -36,6 +36,11 @@
|
|||
<source>Capture device</source>
|
||||
<translation>Aufnahmegerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/avsettings.ui" line="95"/>
|
||||
<source>Rescan audio devices</source>
|
||||
<translation>Erneut nach Audiogeräten suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/avsettings.ui" line="98"/>
|
||||
<source>Video Settings</source>
|
||||
|
@ -252,6 +257,11 @@ Soll der Proxy ignoriert und eine direkte Internetverbindung genutzt werden?</tr
|
|||
<source>Call rejected</source>
|
||||
<translation>Anruf abgewiesen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="676"/>
|
||||
<source>Failed to send file</source>
|
||||
<translation>Fehler beim Senden der Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="804"/>
|
||||
<source>Call with %1 ended. %2</source>
|
||||
|
@ -594,29 +604,34 @@ Wollen Sie ein anderes probieren?</translation>
|
|||
<translation>Mache Tox portabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="101"/>
|
||||
<source>Show system tray</source>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="99"/>
|
||||
<source>System tray integration</source>
|
||||
<translation>Systemtray Integration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="108"/>
|
||||
<source>Show system tray icon</source>
|
||||
<translation>Im Systemtray zeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="114"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="123"/>
|
||||
<source>Start in tray</source>
|
||||
<translation>Ins Tray starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="127"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="136"/>
|
||||
<source>Close to tray</source>
|
||||
<translation>Ins Tray schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="140"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="149"/>
|
||||
<source>Minimize to tray</source>
|
||||
<translation>Ins Tray minimieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="149"/>
|
||||
<source>Show contacts' status changes</source>
|
||||
<translation>Zeige Statusänderungen der Kontakte</translation>
|
||||
<translation>Zeigt Statusänderungen der Kontakte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="156"/>
|
||||
|
@ -626,7 +641,7 @@ Wollen Sie ein anderes probieren?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="163"/>
|
||||
<source>Focus qTox when a message is received</source>
|
||||
<translation>Bringe qTox in den Vordergrund, wenn eine Nachricht eintrifft</translation>
|
||||
<translation>Bringt qTox in den Vordergrund, wenn eine Nachricht eintrifft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="170"/>
|
||||
|
@ -1629,4 +1644,4 @@ Es wird beim Neustart von qTox installiert.</translation>
|
|||
<translation>Senden der Nachricht fehlgeschlagen</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
</TS>
|
140
translations/fr.ts
vendored
|
@ -76,13 +76,13 @@
|
|||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="34"/>
|
||||
<source>Add Friends</source>
|
||||
<translation>Ajouter des amis</translation>
|
||||
<translation>Ajouter des contacts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="37"/>
|
||||
<source>Tox ID</source>
|
||||
<comment>Tox ID of the person you're sending a friend request to</comment>
|
||||
<translation>ID Tox</translation>
|
||||
<translation>Tox ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="38"/>
|
||||
|
@ -93,25 +93,25 @@
|
|||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="39"/>
|
||||
<source>Send friend request</source>
|
||||
<translation>Envoyer la demande d'ami</translation>
|
||||
<translation>Envoyer la demande de contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="40"/>
|
||||
<source>Tox me maybe?</source>
|
||||
<comment>Default message in friend requests if the field is left blank. Write something appropriate!</comment>
|
||||
<translation>Je souhaiterais vous ajouter à mes contacts</translation>
|
||||
<translation>Je souhaiterais vous ajouter à mes contacts.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="89"/>
|
||||
<source>Please fill in a valid Tox ID</source>
|
||||
<comment>Tox ID of the friend you're sending a friend request to</comment>
|
||||
<translation>Merci de remplir un ID Tox valide</translation>
|
||||
<translation>Merci d'entrer un Tox ID valide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="92"/>
|
||||
<source>You can't add yourself as a friend!</source>
|
||||
<comment>When trying to add your own Tox ID as friend</comment>
|
||||
<translation>Vous ne pouvez pas vous ajouter vous même en temps qu'ami!</translation>
|
||||
<translation>Vous ne pouvez pas vous ajouter vous-même !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="100"/>
|
||||
|
@ -123,19 +123,19 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<message>
|
||||
<source>qTox needs to use the Tox DNS, but can't do it through a proxy
|
||||
Ignore the proxy and connect to the Internet directly ?</source>
|
||||
<translation type="vanished">qTox as besoin d'utiliser le DNS Tox, mais ne peut pas le faire avec un proxy
|
||||
<translation type="vanished">qTox a besoin d'utiliser le DNS Tox, mais ne peut pas le faire avec un proxy
|
||||
Ignorer le proxy et se connecter directement à Internet ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/addfriendform.cpp" line="110"/>
|
||||
<source>This Tox ID does not exist</source>
|
||||
<comment>DNS error</comment>
|
||||
<translation>Cet ID Tox n'existe pas</translation>
|
||||
<translation>Ce Tox ID n'existe pas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This address does not exist</source>
|
||||
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment>
|
||||
<translation type="vanished">Cette addresse n'existe pas</translation>
|
||||
<translation type="vanished">Cette adresse n'existe pas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error while looking up DNS</source>
|
||||
|
@ -178,22 +178,22 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="148"/>
|
||||
<source>Bad Idea</source>
|
||||
<translation>Mauvaise Idée</translation>
|
||||
<translation>Mauvaise idée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="148"/>
|
||||
<source>You're trying to send a special (sequential) file, that's not going to work!</source>
|
||||
<translation>Vous êtes en train d'essayer d'envoyer un fichier spécial (sequentiel), ça ne marchera pas!</translation>
|
||||
<translation>Vous êtes en train d'essayer d'envoyer un fichier spécial (sequentiel), ça ne fonctionnera pas !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="254"/>
|
||||
<source>%1 calling</source>
|
||||
<translation>%1 appelle</translation>
|
||||
<translation>%1 appel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="323"/>
|
||||
<source>%1 stopped calling</source>
|
||||
<translation>%1a arreté l'appel</translation>
|
||||
<translation>%1 a arreté l'appel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="379"/>
|
||||
|
@ -229,7 +229,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="256"/>
|
||||
<source>Toxing on qTox</source>
|
||||
<translation>Toxer avec qTox</translation>
|
||||
<translation>Je Tox sur qTox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="257"/>
|
||||
|
@ -239,7 +239,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="746"/>
|
||||
<source>Friend is already added</source>
|
||||
<translation>Cet ami est déjà dans cos contact</translation>
|
||||
<translation>Ce contact est déjà dans vos contacts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="1176"/>
|
||||
|
@ -249,7 +249,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="1176"/>
|
||||
<source>The .tox file is encrypted, but encryption was not checked, continuing regardless.</source>
|
||||
<translation>Le fichier .tox est chiffré, mais l'encryption n'as pas été activée. Le problème sera ignoré.</translation>
|
||||
<translation>Le fichier .tox est chiffré, mais le chiffrement n'a pas été activé. Le problème sera ignoré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="1183"/>
|
||||
|
@ -261,14 +261,14 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
|
|||
<location filename="../src/core.cpp" line="1197"/>
|
||||
<location filename="../src/core.cpp" line="1261"/>
|
||||
<source>Password error</source>
|
||||
<translation>Mod de passe invalide</translation>
|
||||
<translation>Mot de passe invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="1185"/>
|
||||
<location filename="../src/core.cpp" line="1261"/>
|
||||
<source>Failed to setup password.
|
||||
Empty password.</source>
|
||||
<translation>Impossible de mettre ne place le mot de passe.
|
||||
<translation>Impossible de mettre en place le mot de passe.
|
||||
Le mot de passe est vide.</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -289,7 +289,7 @@ Le mot de passe est vide.</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="1198"/>
|
||||
<source>Wrong password has been entered</source>
|
||||
<translation>Un mauvais mot de passe à été entré</translation>
|
||||
<translation>Un mauvais mot de passe a été entré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="1259"/>
|
||||
|
@ -316,7 +316,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="1277"/>
|
||||
<source>Due to incorret password logging will be disabled</source>
|
||||
<translation>À cause d'un mauvais mot de passe, l'historique sera désactivé</translation>
|
||||
<translation>Due à l'utilisation d'un mauvais mot de passe, l'historique sera désactivé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/core.cpp" line="1350"/>
|
||||
|
@ -326,7 +326,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/core.cpp" line="1350"/>
|
||||
<source>Will be saved without encryption!</source>
|
||||
<translation>L'historique sera sauvegardé sans être chiffré!</translation>
|
||||
<translation>L'historique sera sauvegardé sans être chiffré !</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -380,12 +380,12 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="30"/>
|
||||
<source>Friend request</source>
|
||||
<comment>Title of the window to aceept/deny a friend request</comment>
|
||||
<translation>Demande d'ami</translation>
|
||||
<translation>Demande de contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="32"/>
|
||||
<source>Someone wants to make friends with you</source>
|
||||
<translation>Quelqu'un veut devenir votre ami</translation>
|
||||
<translation>Quelqu'un vient de vous ajouter dans sa liste de contacts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="33"/>
|
||||
|
@ -395,7 +395,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="37"/>
|
||||
<source>Friend request message:</source>
|
||||
<translation>Message de demande d'ami:</translation>
|
||||
<translation>Message au sujet de la demande:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="44"/>
|
||||
|
@ -422,7 +422,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/friendwidget.cpp" line="56"/>
|
||||
<source>Copy friend ID</source>
|
||||
<comment>Menu to copy the Tox ID of that friend</comment>
|
||||
<translation>Copier l'ID ami</translation>
|
||||
<translation>Copier l'ID du contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/friendwidget.cpp" line="68"/>
|
||||
|
@ -458,7 +458,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<source>Disable global auto accept</source>
|
||||
<comment>context menu entry</comment>
|
||||
<translation type="vanished">Désactiver l'acceptation automatique de fichier</translation>
|
||||
<translation type="vanished">Désactiver le téléchargement automatique de fichiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/friendwidget.cpp" line="109"/>
|
||||
|
@ -470,7 +470,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/friendwidget.cpp" line="76"/>
|
||||
<source>Remove friend</source>
|
||||
<comment>Menu to remove the friend from our friendlist</comment>
|
||||
<translation>Supprimer ami</translation>
|
||||
<translation>Supprimer ce contact</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -502,7 +502,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/generalform.cpp" line="267"/>
|
||||
<source>You can't disconnect while a call is active!</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Vous ne pouvez pas vous déconnecter avec un appel en cours!</translation>
|
||||
<translation>Vous ne pouvez pas vous déconnecter avec un appel en cours !</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -520,7 +520,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/generalsettings.ui" line="64"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="80"/>
|
||||
<source>The translation may not load until qTox restarts.</source>
|
||||
<translation>La translation peut ne pas se charger jusqu'à ce que qTox redémarre.</translation>
|
||||
<translation>La traduction peut ne pas prendre effet immédiatement. Redémarrez qTox si ce n'est pas le cas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translation:</source>
|
||||
|
@ -550,7 +550,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="133"/>
|
||||
<source>Minimize to tray</source>
|
||||
<translation>Minimizer dans la barre d'état</translation>
|
||||
<translation>Minimiser dans la barre d'état</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="142"/>
|
||||
|
@ -564,7 +564,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
</message>
|
||||
<message>
|
||||
<source>Auto away after (0 to disable):</source>
|
||||
<translation type="vanished">Auto-absent après (0 pour désactiver):</translation>
|
||||
<translation type="vanished">Se rendre absent après (0 pour désactiver):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="191"/>
|
||||
|
@ -620,7 +620,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/generalsettings.ui" line="492"/>
|
||||
<source>Reconnect</source>
|
||||
<comment>reconnect button</comment>
|
||||
<translation>Reconnection</translation>
|
||||
<translation>Se reconnecter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="422"/>
|
||||
|
@ -640,7 +640,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="156"/>
|
||||
<source>Focus qTox when a message is received</source>
|
||||
<translation>Montrer qTox quand un message est reçu</translation>
|
||||
<translation>Montrer la fênetre qTox quand un message est reçu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="163"/>
|
||||
|
@ -713,7 +713,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<source>This allows, e.g., toxing over Tor. It adds load to the Tox network however, so use only when necessary.</source>
|
||||
<extracomment>force tcp checkbox tooltip</extracomment>
|
||||
<translation type="vanished">Permet par exemple d'utiliser Tox à travers Tor, mais ce n'est à utiliser que si nécessaire, car cela ralenti le réseau Tox.</translation>
|
||||
<translation type="vanished">Permet par exemple d'utiliser Tox à travers Tor, mais ce n'est à utiliser que si nécessaire car cela ralenti le réseau Tox.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable UDP (not recommended)</source>
|
||||
|
@ -748,7 +748,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="64"/>
|
||||
<source>Smileys</source>
|
||||
<translation>Emoticones</translation>
|
||||
<translation>Émoticônes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="68"/>
|
||||
|
@ -768,7 +768,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="77"/>
|
||||
<source>Toggle speakers volume</source>
|
||||
<translation>Couper les haut parleurs</translation>
|
||||
<translation>Couper les haut-parleurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="80"/>
|
||||
|
@ -818,7 +818,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/groupwidget.cpp" line="44"/>
|
||||
<location filename="../src/widget/groupwidget.cpp" line="66"/>
|
||||
<source>0 users in chat</source>
|
||||
<translation>0 personnes</translation>
|
||||
<translation>Le groupe est vide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/groupwidget.cpp" line="53"/>
|
||||
|
@ -844,7 +844,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/identityform.cpp" line="133"/>
|
||||
<source>You can't switch profiles while a call is active!</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Vous ne pouvez pas changer de profil quand un appel est en cours!</translation>
|
||||
<translation>Vous ne pouvez pas changer de profil quand un appel est en cours !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="143"/>
|
||||
|
@ -894,7 +894,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="186"/>
|
||||
<source>The file you chose could not be written to.</source>
|
||||
<translation>Le fichier que vous avez choisi n'as pas pu être écrit.</translation>
|
||||
<translation>Le fichier que vous avez choisi n'es pas disponible en écriture.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="194"/>
|
||||
|
@ -912,7 +912,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/identityform.cpp" line="198"/>
|
||||
<source>Deletion imminent!</source>
|
||||
<comment>deletion confirmation title</comment>
|
||||
<translation>Suppression imminente!</translation>
|
||||
<translation>Suppression imminente !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="199"/>
|
||||
|
@ -936,13 +936,13 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/identityform.cpp" line="223"/>
|
||||
<source>Ignoring non-Tox file</source>
|
||||
<comment>popup title</comment>
|
||||
<translation>Fichier non-Tox ignoré</translation>
|
||||
<translation>Fichier incompatible avec Tox ignoré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="224"/>
|
||||
<source>Warning: you've chosen a file that is not a Tox save file; ignoring.</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Attention: Vous avez sélectionné un fichier qui n'est pas une sauvegarde Tox: il sera ignoré.</translation>
|
||||
<translation>Attention: Vous avez sélectionné un fichier qui n'est pas une sauvegarde Tox, il sera ignoré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identityform.cpp" line="230"/>
|
||||
|
@ -986,7 +986,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/settings/identitysettings.ui" line="88"/>
|
||||
<source>Your Tox ID (click to copy)</source>
|
||||
<translation>Votre ID Tox (cliquez pour copier)</translation>
|
||||
<translation>Votre Tox ID (cliquez pour copier)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identitysettings.ui" line="98"/>
|
||||
|
@ -1033,7 +1033,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/identitysettings.ui" line="151"/>
|
||||
<source>This is useful to remain safe on public computers</source>
|
||||
<comment>delete profile button tooltip</comment>
|
||||
<translation>Util pour sécuriser sur un ordinateur public</translation>
|
||||
<translation>Utile pour rester en sécurité sur un ordinateur public</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/identitysettings.ui" line="165"/>
|
||||
|
@ -1045,7 +1045,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<location filename="../src/widget/form/settings/identitysettings.ui" line="175"/>
|
||||
<source>New Tox ID</source>
|
||||
<comment>new profile button</comment>
|
||||
<translation>Nouvel ID Tox</translation>
|
||||
<translation>Nouvel Tox ID</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1093,12 +1093,12 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/mainwindow.ui" line="1101"/>
|
||||
<source>Add friends</source>
|
||||
<translation>Ajouter des amis</translation>
|
||||
<translation>Ajouter des contacts</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow.ui" line="1139"/>
|
||||
<source>Create a group chat</source>
|
||||
<translation>Creer un groupe</translation>
|
||||
<translation>Créer un groupe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow.ui" line="1174"/>
|
||||
|
@ -1125,7 +1125,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/netcamview.cpp" line="28"/>
|
||||
<source>Tox video</source>
|
||||
<translation>Vidéo tox</translation>
|
||||
<translation>Vidéo Tox</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1145,7 +1145,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
|
|||
<source>You already have history log file encrypted with different password
|
||||
Do you want to delete old history file?</source>
|
||||
<translation>Vous avez déjà un historique chiffré avec un autre mot de passe
|
||||
Voulez vous supprimer l'ancien historique?</translation>
|
||||
Voulez vous supprimer l'ancien historique ?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1192,7 +1192,7 @@ Voulez vous supprimer l'ancien historique?</translation>
|
|||
<location filename="../src/widget/toxsave.cpp" line="64"/>
|
||||
<source>Warning: you've chosen a file that is not a Tox save file; ignoring.</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Attention: Vous avez sélectionné un fichier qui n'est pas une sauvegarde Tox: il sera ignoré.</translation>
|
||||
<translation>Attention: Vous avez sélectionné un fichier qui n'est pas une sauvegarde Tox, il sera ignoré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/toxsave.cpp" line="70"/>
|
||||
|
@ -1233,12 +1233,12 @@ Voulez vous supprimer l'ancien historique?</translation>
|
|||
<source>An update is available, do you want to download it now ?
|
||||
It will be installed when qTox restarts.</source>
|
||||
<translation>Une mise à jour est disponible, voulez vous la télécharger maintenant ?
|
||||
Elle sera installée au prochain démarrage de qTox</translation>
|
||||
Elle sera installée au prochain démarrage de qTox.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="68"/>
|
||||
<source>Tox URI to parse</source>
|
||||
<translation>URI Tox à utiliser</translation>
|
||||
<translation>URL Tox à utiliser</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1255,7 +1255,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/form/setpassworddialog.ui" line="37"/>
|
||||
<source>Repeat Password</source>
|
||||
<translation>Répetez le mot de passe</translation>
|
||||
<translation>Retapez le mot de passe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1270,13 +1270,13 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<location filename="../src/toxdns.cpp" line="70"/>
|
||||
<source>This address does not exist</source>
|
||||
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment>
|
||||
<translation>Cette addresse n'existe pas</translation>
|
||||
<translation>Cette adresse n'existe pas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/toxdns.cpp" line="75"/>
|
||||
<source>Error while looking up DNS</source>
|
||||
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment>
|
||||
<translation>Erreur en consultant le serveur DNS</translation>
|
||||
<translation>Une erreur s'est produite en consultant le serveur DNS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/toxdns.cpp" line="82"/>
|
||||
|
@ -1316,22 +1316,22 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<location filename="../src/widget/toxuri.cpp" line="80"/>
|
||||
<source>Add a friend</source>
|
||||
<comment>Title of the window to add a friend through Tox URI</comment>
|
||||
<translation>Ajouter un ami</translation>
|
||||
<translation>Ajouter un contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/toxuri.cpp" line="82"/>
|
||||
<source>Do you want to add %1 as a friend ?</source>
|
||||
<translation>Voulez-vous ajouter %1 à vos amis ?</translation>
|
||||
<translation>Voulez-vous ajouter %1 à vos contacts ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/toxuri.cpp" line="83"/>
|
||||
<source>User ID:</source>
|
||||
<translation>ID utilisateur:</translation>
|
||||
<translation>ID d'utilisateur:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/toxuri.cpp" line="87"/>
|
||||
<source>Friend request message:</source>
|
||||
<translation>Message de demande d'ami:</translation>
|
||||
<translation>Associer un message à cette demande:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/toxuri.cpp" line="92"/>
|
||||
|
@ -1354,7 +1354,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
</message>
|
||||
<message>
|
||||
<source>away</source>
|
||||
<translation type="vanished">indisponnible</translation>
|
||||
<translation type="vanished">absent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>busy</source>
|
||||
|
@ -1368,7 +1368,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="77"/>
|
||||
<source>Away</source>
|
||||
<translation>Indisponible</translation>
|
||||
<translation>Absent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="80"/>
|
||||
|
@ -1383,7 +1383,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="86"/>
|
||||
<source>Change status to:</source>
|
||||
<translation>Changer le status en:</translation>
|
||||
<translation>Changer le status par:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="155"/>
|
||||
|
@ -1395,7 +1395,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<location filename="../src/widget/widget.cpp" line="157"/>
|
||||
<source>Away</source>
|
||||
<comment>Button to set your status to 'Away'</comment>
|
||||
<translation>Indisponible</translation>
|
||||
<translation>Absent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="159"/>
|
||||
|
@ -1443,18 +1443,18 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="477"/>
|
||||
<source>Toxcore failed to start, the application will terminate after you close this message.</source>
|
||||
<translation>Toxcore n'as pas pu démarrer correctement, l'application va quitter quand vous fermerez ce message.</translation>
|
||||
<translation>ToxCore n'as pas pu démarrer correctement, l'application va s'arrêter quand vous fermerez cette alerte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="486"/>
|
||||
<source>toxcore failed to start with your proxy settings. qTox cannot run; please modify your settings and restart.</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Toxcore n'as pas pu démarrer avec ces paramètres de proxy, qTox ne peut pas continuer; merci de modifier vos paramètres et redémarrer.</translation>
|
||||
<translation>ToxCore n'as pas pu démarrer avec ces paramètres proxy. Merci de modifier ou désactiver vos paramètres et redémarrer l'application.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="521"/>
|
||||
<source>Add friend</source>
|
||||
<translation>Ajouter un ami</translation>
|
||||
<translation>Ajouter un contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="533"/>
|
||||
|
@ -1469,13 +1469,13 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="656"/>
|
||||
<source>Couldn't request friendship</source>
|
||||
<translation>Impossible de demander en ami</translation>
|
||||
<translation>Impossible d'envoyer la demande de contact</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="684"/>
|
||||
<source>away</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>indisponnible</translation>
|
||||
<translation>absent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="686"/>
|
||||
|
@ -1487,7 +1487,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<location filename="../src/widget/widget.cpp" line="688"/>
|
||||
<source>offline</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>déconnecté</translation>
|
||||
<translation>hors ligne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="690"/>
|
||||
|
@ -1510,7 +1510,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
|
|||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="1091"/>
|
||||
<source>Message failed to send</source>
|
||||
<translation>Le message n'as pas pu être envoyé</translation>
|
||||
<translation>Le message n'as pu être envoyé</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
132
translations/it.ts
vendored
|
@ -226,6 +226,11 @@ Ignorare le impostazioni del proxy e connettersi direttamente alla rete Tox?</tr
|
|||
<source>Calling to %1</source>
|
||||
<translation>Stai chiamando %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="676"/>
|
||||
<source>Failed to send file "%1"</source>
|
||||
<translation>Invio del file "%1" fallito</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/chatform.cpp" line="810"/>
|
||||
<source>Call with %1 ended. %2</source>
|
||||
|
@ -538,17 +543,22 @@ Soprannome:</translation>
|
|||
<translation>Mostra icona nella traybar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="226"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="158"/>
|
||||
<source>Light icon</source>
|
||||
<translation>Icona brillante</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="217"/>
|
||||
<source>Set to 0 to disable</source>
|
||||
<translation>Imposta 0 per disabilitare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="477"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="468"/>
|
||||
<source>Connection Settings</source>
|
||||
<translation>Impostazioni Connessione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="489"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="480"/>
|
||||
<source>Enable IPv6 (recommended)</source>
|
||||
<extracomment>Text on a checkbox to enable IPv6</extracomment>
|
||||
<translation>Abilita IPv6 (consigliato)</translation>
|
||||
|
@ -590,143 +600,133 @@ Soprannome:</translation>
|
|||
<translation>Minimizza nella traybar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="164"/>
|
||||
<source>Tray icon displays user status</source>
|
||||
<translation>Mostra lo stato nell'icona della traybar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="167"/>
|
||||
<source>This is a temporary work around until proper systray status icons are available.</source>
|
||||
<translation>Questo è un workaround temporaneo fino a quando non saranno disponibili icone di stato adeguate.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="177"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="168"/>
|
||||
<source>Show contacts' status changes</source>
|
||||
<translation>Mostra quando i contatti cambiano stato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="184"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="175"/>
|
||||
<source>Check for updates on startup (unstable)</source>
|
||||
<translation>Controlla aggiornamenti all'avvio (unstable)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="191"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="182"/>
|
||||
<source>Focus qTox when a message is received</source>
|
||||
<translation>Dai il focus a qTox quando arriva un messaggio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="198"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="189"/>
|
||||
<source>Faux offline messaging</source>
|
||||
<translation>Falsi messaggi offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="207"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="198"/>
|
||||
<source>Provided in minutes</source>
|
||||
<translation>Espresso in minuti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="213"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="204"/>
|
||||
<source>Auto away after (0 to disable)</source>
|
||||
<translation>Imposta assenza dopo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="229"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="220"/>
|
||||
<source> minutes</source>
|
||||
<translation> minuti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="249"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="240"/>
|
||||
<source>You can set this on a per-friend basis by right clicking them.</source>
|
||||
<comment>autoaccept cb tooltip</comment>
|
||||
<translation>Puoi impostare questa preferenza per ogni singolo contatto usando il click destro sul suo nome.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="252"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="243"/>
|
||||
<source>Autoaccept files</source>
|
||||
<translation>Accetta automaticamente i trasferimenti di files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="261"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="252"/>
|
||||
<source>Save files in</source>
|
||||
<translation>Salva i files in</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="274"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="265"/>
|
||||
<source>PushButton</source>
|
||||
<translation>Sfoglia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="294"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="285"/>
|
||||
<source>Theme</source>
|
||||
<translation>Impostazioni Tema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="300"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="291"/>
|
||||
<source>Use emoticons</source>
|
||||
<translation>Usa emoticons</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="315"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="306"/>
|
||||
<source>Smiley Pack</source>
|
||||
<extracomment>Text on smiley pack label</extracomment>
|
||||
<translation>Emoticons</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="332"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="323"/>
|
||||
<source>Style</source>
|
||||
<translation>Stile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="406"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="397"/>
|
||||
<source>Theme color</source>
|
||||
<translation>Colore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="423"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="414"/>
|
||||
<source>Emoticon size</source>
|
||||
<translation>Dimensione emoticons</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="439"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="430"/>
|
||||
<source> px</source>
|
||||
<translation> px</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="455"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="446"/>
|
||||
<source>Timestamp format</source>
|
||||
<translation>Formato data/ora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="496"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="487"/>
|
||||
<source>Disabling this allows, e.g., toxing over Tor. It adds load to the Tox network however, so uncheck only when necessary.</source>
|
||||
<extracomment>force tcp checkbox tooltip</extracomment>
|
||||
<translation>Disabilitando questo sarà possibile usare qTox con Tor. Tuttavia verrà aggiunto carico alla rete Tox, quindi disabilitare solo se necessario.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="499"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="490"/>
|
||||
<source>Enable UDP (recommended)</source>
|
||||
<extracomment>Text on checkbox to disable UDP</extracomment>
|
||||
<translation>Abilita UDP (consigliato)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="506"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="497"/>
|
||||
<source>Use proxy (SOCKS5)</source>
|
||||
<translation>Usa proxy (SOCKS5)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="518"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="509"/>
|
||||
<source>Address</source>
|
||||
<extracomment>Text on proxy addr label</extracomment>
|
||||
<translation>IP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="528"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="519"/>
|
||||
<source>Port</source>
|
||||
<extracomment>Text on proxy port label</extracomment>
|
||||
<translation>Porta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="547"/>
|
||||
<location filename="../src/widget/form/settings/generalsettings.ui" line="538"/>
|
||||
<source>Reconnect</source>
|
||||
<comment>reconnect button</comment>
|
||||
<translation>Riconnetti</translation>
|
||||
|
@ -771,7 +771,7 @@ Soprannome:</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="149"/>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="191"/>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="192"/>
|
||||
<source>Save chat log</source>
|
||||
<translation>Salva il log della chat</translation>
|
||||
</message>
|
||||
|
@ -781,7 +781,7 @@ Soprannome:</translation>
|
|||
<translation>Rimuovi messaggi visualizzati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="290"/>
|
||||
<location filename="../src/widget/form/genericchatform.cpp" line="296"/>
|
||||
<source>Cleared</source>
|
||||
<translation>Pulito</translation>
|
||||
</message>
|
||||
|
@ -1417,134 +1417,134 @@ Verrà installata al riavvio del programma.</translation>
|
|||
<translation>Cambia stato in:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="173"/>
|
||||
<location filename="../src/widget/widget.cpp" line="174"/>
|
||||
<source>Online</source>
|
||||
<comment>Button to set your status to 'Online'</comment>
|
||||
<translation>Online</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="175"/>
|
||||
<location filename="../src/widget/widget.cpp" line="176"/>
|
||||
<source>Away</source>
|
||||
<comment>Button to set your status to 'Away'</comment>
|
||||
<translation>Assente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="177"/>
|
||||
<location filename="../src/widget/widget.cpp" line="178"/>
|
||||
<source>Busy</source>
|
||||
<comment>Button to set your status to 'Busy'</comment>
|
||||
<translation>Occupato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="431"/>
|
||||
<location filename="../src/widget/widget.cpp" line="430"/>
|
||||
<source>Choose a profile</source>
|
||||
<translation>Scegli un profilo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="432"/>
|
||||
<location filename="../src/widget/widget.cpp" line="431"/>
|
||||
<source>Please choose which identity to use</source>
|
||||
<translation>Per favore scegli quale identità usare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="453"/>
|
||||
<location filename="../src/widget/widget.cpp" line="452"/>
|
||||
<source>Choose a profile picture</source>
|
||||
<translation>Scegli un'immagine per il profilo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="460"/>
|
||||
<location filename="../src/widget/widget.cpp" line="467"/>
|
||||
<location filename="../src/widget/widget.cpp" line="488"/>
|
||||
<location filename="../src/widget/widget.cpp" line="459"/>
|
||||
<location filename="../src/widget/widget.cpp" line="466"/>
|
||||
<location filename="../src/widget/widget.cpp" line="487"/>
|
||||
<source>Error</source>
|
||||
<translation>Errore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="460"/>
|
||||
<location filename="../src/widget/widget.cpp" line="459"/>
|
||||
<source>Unable to open this file</source>
|
||||
<translation>Impossibile aprire il file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="467"/>
|
||||
<location filename="../src/widget/widget.cpp" line="466"/>
|
||||
<source>Unable to read this image</source>
|
||||
<translation>Impossibile leggere l'immagine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="488"/>
|
||||
<location filename="../src/widget/widget.cpp" line="487"/>
|
||||
<source>This image is too big</source>
|
||||
<translation>L'immagine è troppo grande</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="528"/>
|
||||
<location filename="../src/widget/widget.cpp" line="527"/>
|
||||
<source>Toxcore failed to start, the application will terminate after you close this message.</source>
|
||||
<translation>Impossibile avviare Toxcore.\nqTox terminerà dopo che avrai chiuso questo messaggio.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="537"/>
|
||||
<location filename="../src/widget/widget.cpp" line="536"/>
|
||||
<source>toxcore failed to start with your proxy settings. qTox cannot run; please modify your settings and restart.</source>
|
||||
<comment>popup text</comment>
|
||||
<translation>Impossibile avviare Toxcore con le tue impostazione proxy.\nqTox non può funzionare correttamente, per favore modifica le impostazioni e riavvia il programma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="576"/>
|
||||
<location filename="../src/widget/widget.cpp" line="575"/>
|
||||
<source>Add friend</source>
|
||||
<translation>Aggiungi contatto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="588"/>
|
||||
<location filename="../src/widget/widget.cpp" line="587"/>
|
||||
<source>File transfers</source>
|
||||
<translation>Files trasferiti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="616"/>
|
||||
<location filename="../src/widget/widget.cpp" line="615"/>
|
||||
<source>Settings</source>
|
||||
<translation>Impostazioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="716"/>
|
||||
<location filename="../src/widget/widget.cpp" line="715"/>
|
||||
<source>Couldn't request friendship</source>
|
||||
<translation>Impossibile inviare la richiesta d'amicizia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="744"/>
|
||||
<location filename="../src/widget/widget.cpp" line="743"/>
|
||||
<source>away</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>assente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="746"/>
|
||||
<location filename="../src/widget/widget.cpp" line="745"/>
|
||||
<source>busy</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>occupato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="748"/>
|
||||
<location filename="../src/widget/widget.cpp" line="747"/>
|
||||
<source>offline</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>offline</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="750"/>
|
||||
<location filename="../src/widget/widget.cpp" line="749"/>
|
||||
<source>online</source>
|
||||
<comment>contact status</comment>
|
||||
<translation>online</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="753"/>
|
||||
<location filename="../src/widget/widget.cpp" line="752"/>
|
||||
<source>%1 is now %2</source>
|
||||
<comment>e.g. "Dubslow is now online"</comment>
|
||||
<translation>%1 è ora %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="990"/>
|
||||
<location filename="../src/widget/widget.cpp" line="989"/>
|
||||
<source><Unknown></source>
|
||||
<comment>Placeholder when we don't know someone's name in a group chat</comment>
|
||||
<translation><Sconosciuto></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="1015"/>
|
||||
<location filename="../src/widget/widget.cpp" line="1014"/>
|
||||
<source>%1 has set the title to %2</source>
|
||||
<translation>%1 ha impostato il titolo in %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widget/widget.cpp" line="1166"/>
|
||||
<location filename="../src/widget/widget.cpp" line="1165"/>
|
||||
<source>Message failed to send</source>
|
||||
<translation>Impossibile inviare il messaggio</translation>
|
||||
</message>
|
||||
|
|