Browse Source

Italian translation: update

pull/898/head
Ansa89 11 years ago
parent
commit
276c5ce828
  1. 190
      INSTALL.md
  2. BIN
      img/taskbar/dark/taskbar_busy.png
  3. BIN
      img/taskbar/dark/taskbar_busy_2x.png
  4. BIN
      img/taskbar/dark/taskbar_idle.png
  5. BIN
      img/taskbar/dark/taskbar_idle_2x.png
  6. BIN
      img/taskbar/dark/taskbar_invisible.png
  7. BIN
      img/taskbar/dark/taskbar_invisible_2x.png
  8. BIN
      img/taskbar/dark/taskbar_offline.png
  9. BIN
      img/taskbar/dark/taskbar_offline_2x.png
  10. BIN
      img/taskbar/dark/taskbar_online.png
  11. BIN
      img/taskbar/dark/taskbar_online_2x.png
  12. BIN
      img/taskbar/light/taskbar_busy.png
  13. BIN
      img/taskbar/light/taskbar_busy_2x.png
  14. BIN
      img/taskbar/light/taskbar_idle.png
  15. BIN
      img/taskbar/light/taskbar_idle_2x.png
  16. BIN
      img/taskbar/light/taskbar_invisible.png
  17. BIN
      img/taskbar/light/taskbar_invisible_2x.png
  18. BIN
      img/taskbar/light/taskbar_offline.png
  19. BIN
      img/taskbar/light/taskbar_offline_2x.png
  20. BIN
      img/taskbar/light/taskbar_online.png
  21. BIN
      img/taskbar/light/taskbar_online_2x.png
  22. 69
      osx/updater.go
  23. 8
      res.qrc
  24. 4
      src/audio.cpp
  25. 22
      src/misc/settings.cpp
  26. 8
      src/misc/settings.h
  27. 2
      src/platform/timer_win.cpp
  28. 1
      src/widget/chatareawidget.cpp
  29. 1
      src/widget/chatareawidget.h
  30. 2
      src/widget/form/chatform.cpp
  31. 6
      src/widget/form/genericchatform.cpp
  32. 1
      src/widget/form/genericchatform.h
  33. 20
      src/widget/form/groupchatform.cpp
  34. 16
      src/widget/form/settings/generalform.cpp
  35. 2
      src/widget/form/settings/generalform.h
  36. 37
      src/widget/form/settings/generalsettings.ui
  37. 23
      src/widget/widget.cpp
  38. 29
      translations/de.ts
  39. 128
      translations/fr.ts
  40. 132
      translations/it.ts

190
INSTALL.md

@ -1,8 +1,8 @@
#Install Instructions #Install Instructions
- [Dependencies](#dependencies) - [Dependencies](#dependencies)
- [Windows](#windows)
- [Linux](#linux) - [Linux](#linux)
- [OS X](#osx) - [OS X](#osx)
- [Windows](#windows)
<a name="dependencies" /> <a name="dependencies" />
##Dependencies ##Dependencies
@ -15,92 +15,43 @@
| OpenCV | >= 2.4.9 | core, highgui, imgproc | | OpenCV | >= 2.4.9 | core, highgui, imgproc |
| OpenAL Soft | >= 1.16.0 | | | OpenAL Soft | >= 1.16.0 | |
<a name="windows" />
##Windows
###Qt
Download the Qt online installer for Windows from [qt-project.org](http://qt-project.org/downloads).
While installation you have to assemble your Qt toolchain. Take the most recent version of Qt compiled with MinGW.
Although the installer provides its own bundled MinGW compiler toolchain its recommend installing it separately because Qt is missing MSYS which is needed to compile and install OpenCV and OpenAL. Thus you can - if needed - deselect the tab "Tools".
The following steps assume that Qt is installed at "C:\Qt". If you decided to choose another location, replace corresponding parts.
###MinGW <a name="linux" />
##Linux
Download the MinGW installer for Windows from [sourceforge.net](http://sourceforge.net/projects/mingw/files/Installer/). ###Simple install
Make sure to install MSYS (a set of Unix tools for Windows). Easy qTox install is provided for variety of distributions:
The following steps assume that MinGW is installed at "C:\MinGW". If you decided to choose another location, replace corresponding parts. https://wiki.tox.im/Binaries#Apt.2FAptitude_.28Debian.2C_Ubuntu.2C_Mint.2C_etc..29
###Setting up Path
Add MinGW/MSYS binaries to the system path to make them globally accessible.
Open Control Panel -> System and Security -> System -> Advanced system settings -> Environment Variables...
In the second box search for the PATH variable and press Edit...
The input box "Variable value:" should already contain some directories. Each directory is separated with a semicolon.
Extend the input box by adding ";C:\MinGW\bin;C:\MinGW\msys\1.0\bin". The very first semicolon must only be added if it is missing.
###Cloning the Repository
Clone the repository (https://github.com/tux3/qTox.git) with your preferred Git client. [SmartGit](http://www.syntevo.com/smartgit/) is very nice for this task.
The following steps assume that you cloned the repository at "C:\qTox". If you decided to choose another location, replace corresponding parts.
###Tox Core
[jenkins.libtoxcore.so](http://jenkins.libtoxcore.so/job/libtoxcore-win32-i686/lastSuccessfulBuild/artifact/libtoxcore-win32-i686.zip)
provides a prebuild package of Tox Core. Download this package and extract its content to "C:\qTox\libs". You may have to create the directory "libs".
If you prefer to compile Tox Core on your own follow the instructions at https://github.com/irungentoo/toxcore/blob/master/INSTALL.md#windows
###OpenCV
Unfortunately there are no prebuild packages for OpenCV compiled with MinGW. Thus, you have to create your own.
First of all download and install the most recent version of CMake from
[cmake.org](http://www.cmake.org/cmake/resources/software.html).
Afterwards download OpenCV in version 2.4.9 from [sourceforge.net](http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download) and extract the content of the source archive to "C:\qTox\libs". Furthermore, create a new directory named "opencv-build" in "C:\qTox\libs".
Now you should have the two directories "opencv-2.4.9" and "opencv-build" inside your "C:\qTox\libs" directory.
Run CMake (cmake-gui) and set up the input boxes "Where is the source code:" and "Where to build the binaries" with "C:\qTox\libs\opencv-2.4.9" and "C:\qTox\libs\opencv-build". Press configure and choose "MSYS Makefiles" in the drop down menu with "Use default native compilers". To start initial configuration press Finish. Given that qTox only needs some components of OpenCV it's recommended to disable not required modules. Furthermore, this will decrease compilation time of OpenCV dramatically. Each module begins with "BUILD_opencv_" and can be disabled by deselecting its entry. Use the "Search" input box for convenience. Disable all modules except of "core", "highgui" and "imgproc" (highgui depends on imgproc and will automatically be disabled if imgproc is disabled). For maximum performance search for "CMAKE_BUILD_TYPE" and set this value to "Release". Finally, make sure "CMAKE_INSTALL_PREFIX" points to "C:\qTox\libs\opencv-build\install" (should be by default). To update the configuration press Configure again. To generate the Makefiles press Generate.
Open a new command prompt within "C:\qTox\libs\opencv-build" (HINT: Use shift + right click -> "Open command window here" on the directory within Windows Explorer). Compile and install OpenCV with the following command. It's not recommended to use -j for multicore compilation, because it freezes the terminal from time to time. If your distribution is not listed, or you want/need to compile qTox, there are provided instructions.
```bash
make
make install
```
After OpenCV was successfully installed to "C:\qTox\libs\opencv-build\install" copy the dlls "libopencv_core249.dll", "libopencv_highgui249.dll" and "libopencv_imgproc249.dll" located at "C:\qTox\libs\opencv-build\install\x86\mingw\bin" to "C:\qTox\libs\lib". Afterwards copy the content of the directory "C:\qTox\libs\opencv-build\install\include" to "C:\qTox\libs\include". Finally, you have to patch the file "C:\qTox\libs\include\opencv2\opencv.hpp" because it includes all modules of OpenCV regardless of your configuration. Open this file with your preferred text editor and remove all includes except of "opencv2/core/core_c.h", "opencv2/core/core.hpp", "opencv2/imgproc/imgproc_c.h", "opencv2/imgproc/imgproc.hpp", "opencv2/highgui/highgui_c.h" and "opencv2/highgui/highgui.hpp". OpenCV is now ready to use. Feel free to delete the directories "opencv-2.4.9" and "opencv-build", but you don't need to. **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…
###OpenAL Soft ----
As for OpenCV there are no prebuild packages of OpenAL Softe compiled with MinGW, but the installation process is very similar to OpenCV. Download the most recent source archive of OpenAL Soft from [http://kcat.strangesoft.net](http://kcat.strangesoft.net/openal.html#download). Extract its content to "C:\qTox\libs". Besides the source folder itself you'll find the file "pax_global_header". It is not required and can be deleted. Create the directory "openal-build" next to source folder. Now you should have the two directories "openal-soft-x.y.z" where x.y.z is the version of OpenAL and "openal-build" inside your "C:\qTox\libs" directory. Run CMake (cmake-gui) and setup the source and build location. Run the initial configuration and use "MSYS Makefiles" with "Use default native compilers". The only thing you need to configure is "CMAKE_INSTALL_PREFIX" which does not point to "C:\qTox\libs\openal-build\install" by default. Configure the project and generate the Makefiles. Compile and install OpenAL Soft with:
```bash
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. 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 ###Cloning the Repository
In order to clone the qTox repository you need Git. In order to clone the qTox repository you need Git.
Debian: Arch Linux:
```bash ```bash
sudo apt-get install git sudo pacman -S --needed git
``` ```
Ubuntu: Debian:
```bash ```bash
sudo apt-get install git sudo apt-get install git
``` ```
Arch Linux: Fedora:
```bash ```bash
sudo pacman -S --needed git yum install git
``` ```
Fedora: Ubuntu:
```bash ```bash
yum install git sudo apt-get install git
``` ```
Afterwards open a new Terminal, change to a directory of your choice and clone the repository: Afterwards open a new Terminal, change to a directory of your choice and clone the repository:
@ -113,19 +64,14 @@ The following steps assumes that you cloned the repository at "/home/user/qTox".
###GCC, Qt, OpenCV and OpanAL Soft ###GCC, Qt, OpenCV and OpanAL Soft
Debian: Arch Linux:
```bash
sudo apt-get install build-essential qt5-qmake qt5-default libopenal-dev libopencv-dev libxss-dev
```
Ubuntu:
```bash ```bash
sudo apt-get install build-essential qt5-qmake qt5-default qttools5-dev-tools libopenal-dev libopencv-dev libxss-dev sudo pacman -S --needed base-devel qt5 opencv openal libxss
``` ```
Arch Linux: Debian:
```bash ```bash
sudo pacman -S --needed base-devel qt5 opencv openal libxss sudo apt-get install build-essential qt5-qmake qt5-default libopenal-dev libopencv-dev libxss-dev
``` ```
Fedora: Fedora:
@ -134,28 +80,44 @@ yum groupinstall "Development Tools"
yum install qt-devel qt-doc qt-creator opencv-devel openal-soft-devel libXScrnSaver-devel 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 ###Tox Core
First of all install the dependencies of Tox Core. First of all install the dependencies of Tox Core.
Debian: Arch Linux:
```bash ```bash
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev sudo pacman -S --needed opus vpx
``` ```
Ubuntu: ```
Debian:
```bash ```bash
sudo apt-get install libtool autotools-dev automake checkinstall check libopus-dev libvpx-dev 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) Fedora:
```bash ```bash
sudo pacman -S --needed opus vpx yum install libtool autoconf automake check check-devel
``` ```
Fedora: Ubuntu:
```bash ```bash
yum install libtool autoconf automake check check-devel 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". 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".
@ -180,6 +142,7 @@ 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 `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. packages necessary for building .debs, so be prepared to type your password for sudo.
<a name="osx" /> <a name="osx" />
##OS X ##OS X
@ -190,6 +153,7 @@ Since https://github.com/ReDetection/homebrew-qtox you can easily install qtox w
brew install --HEAD ReDetection/qtox/qtox brew install --HEAD ReDetection/qtox/qtox
``` ```
###OSX Full Install Guide ###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'. 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'.
@ -239,3 +203,65 @@ in the qTox directory, or if you are using the bundled tox core installation, yo
make make
``` ```
Assuming all went well you should now have a qTox.app file within the directory. Double click and it should open! 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
###Qt
Download the Qt online installer for Windows from [qt-project.org](http://qt-project.org/downloads).
While installation you have to assemble your Qt toolchain. Take the most recent version of Qt compiled with MinGW.
Although the installer provides its own bundled MinGW compiler toolchain its recommend installing it separately because Qt is missing MSYS which is needed to compile and install OpenCV and OpenAL. Thus you can - if needed - deselect the tab "Tools".
The following steps assume that Qt is installed at "C:\Qt". If you decided to choose another location, replace corresponding parts.
###MinGW
Download the MinGW installer for Windows from [sourceforge.net](http://sourceforge.net/projects/mingw/files/Installer/).
Make sure to install MSYS (a set of Unix tools for Windows).
The following steps assume that MinGW is installed at "C:\MinGW". If you decided to choose another location, replace corresponding parts.
###Setting up Path
Add MinGW/MSYS binaries to the system path to make them globally accessible.
Open Control Panel -> System and Security -> System -> Advanced system settings -> Environment Variables...
In the second box search for the PATH variable and press Edit...
The input box "Variable value:" should already contain some directories. Each directory is separated with a semicolon.
Extend the input box by adding ";C:\MinGW\bin;C:\MinGW\msys\1.0\bin". The very first semicolon must only be added if it is missing.
###Cloning the Repository
Clone the repository (https://github.com/tux3/qTox.git) with your preferred Git client. [SmartGit](http://www.syntevo.com/smartgit/) is very nice for this task.
The following steps assume that you cloned the repository at "C:\qTox". If you decided to choose another location, replace corresponding parts.
###Tox Core
[jenkins.libtoxcore.so](http://jenkins.libtoxcore.so/job/libtoxcore-win32-i686/lastSuccessfulBuild/artifact/libtoxcore-win32-i686.zip)
provides a prebuild package of Tox Core. Download this package and extract its content to "C:\qTox\libs". You may have to create the directory "libs".
If you prefer to compile Tox Core on your own follow the instructions at https://github.com/irungentoo/toxcore/blob/master/INSTALL.md#windows
###OpenCV
Unfortunately there are no prebuild packages for OpenCV compiled with MinGW. Thus, you have to create your own.
First of all download and install the most recent version of CMake from
[cmake.org](http://www.cmake.org/cmake/resources/software.html).
Afterwards download OpenCV in version 2.4.9 from [sourceforge.net](http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download) and extract the content of the source archive to "C:\qTox\libs". Furthermore, create a new directory named "opencv-build" in "C:\qTox\libs".
Now you should have the two directories "opencv-2.4.9" and "opencv-build" inside your "C:\qTox\libs" directory.
Run CMake (cmake-gui) and set up the input boxes "Where is the source code:" and "Where to build the binaries" with "C:\qTox\libs\opencv-2.4.9" and "C:\qTox\libs\opencv-build". Press configure and choose "MSYS Makefiles" in the drop down menu with "Use default native compilers". To start initial configuration press Finish. Given that qTox only needs some components of OpenCV it's recommended to disable not required modules. Furthermore, this will decrease compilation time of OpenCV dramatically. Each module begins with "BUILD_opencv_" and can be disabled by deselecting its entry. Use the "Search" input box for convenience. Disable all modules except of "core", "highgui" and "imgproc" (highgui depends on imgproc and will automatically be disabled if imgproc is disabled). For maximum performance search for "CMAKE_BUILD_TYPE" and set this value to "Release". Finally, make sure "CMAKE_INSTALL_PREFIX" points to "C:\qTox\libs\opencv-build\install" (should be by default). To update the configuration press Configure again. To generate the Makefiles press Generate.
Open a new command prompt within "C:\qTox\libs\opencv-build" (HINT: Use shift + right click -> "Open command window here" on the directory within Windows Explorer). Compile and install OpenCV with the following command. It's not recommended to use -j for multicore compilation, because it freezes the terminal from time to time.
```bash
make
make install
```
After OpenCV was successfully installed to "C:\qTox\libs\opencv-build\install" copy the dlls "libopencv_core249.dll", "libopencv_highgui249.dll" and "libopencv_imgproc249.dll" located at "C:\qTox\libs\opencv-build\install\x86\mingw\bin" to "C:\qTox\libs\lib". Afterwards copy the content of the directory "C:\qTox\libs\opencv-build\install\include" to "C:\qTox\libs\include". Finally, you have to patch the file "C:\qTox\libs\include\opencv2\opencv.hpp" because it includes all modules of OpenCV regardless of your configuration. Open this file with your preferred text editor and remove all includes except of "opencv2/core/core_c.h", "opencv2/core/core.hpp", "opencv2/imgproc/imgproc_c.h", "opencv2/imgproc/imgproc.hpp", "opencv2/highgui/highgui_c.h" and "opencv2/highgui/highgui.hpp". OpenCV is now ready to use. Feel free to delete the directories "opencv-2.4.9" and "opencv-build", but you don't need to.
###OpenAL Soft
As for OpenCV there are no prebuild packages of OpenAL Softe compiled with MinGW, but the installation process is very similar to OpenCV. Download the most recent source archive of OpenAL Soft from [http://kcat.strangesoft.net](http://kcat.strangesoft.net/openal.html#download). Extract its content to "C:\qTox\libs". Besides the source folder itself you'll find the file "pax_global_header". It is not required and can be deleted. Create the directory "openal-build" next to source folder. Now you should have the two directories "openal-soft-x.y.z" where x.y.z is the version of OpenAL and "openal-build" inside your "C:\qTox\libs" directory. Run CMake (cmake-gui) and setup the source and build location. Run the initial configuration and use "MSYS Makefiles" with "Use default native compilers". The only thing you need to configure is "CMAKE_INSTALL_PREFIX" which does not point to "C:\qTox\libs\openal-build\install" by default. Configure the project and generate the Makefiles. Compile and install OpenAL Soft with:
```bash
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.

BIN
img/taskbar/dark/taskbar_busy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

BIN
img/taskbar/dark/taskbar_busy_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

BIN
img/taskbar/dark/taskbar_idle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

BIN
img/taskbar/dark/taskbar_idle_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

BIN
img/taskbar/dark/taskbar_invisible.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

BIN
img/taskbar/dark/taskbar_invisible_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

BIN
img/taskbar/dark/taskbar_offline.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

BIN
img/taskbar/dark/taskbar_offline_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

BIN
img/taskbar/dark/taskbar_online.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

BIN
img/taskbar/dark/taskbar_online_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

BIN
img/taskbar/light/taskbar_busy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

BIN
img/taskbar/light/taskbar_busy_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

BIN
img/taskbar/light/taskbar_idle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

BIN
img/taskbar/light/taskbar_idle_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

BIN
img/taskbar/light/taskbar_invisible.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

BIN
img/taskbar/light/taskbar_invisible_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

BIN
img/taskbar/light/taskbar_offline.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

BIN
img/taskbar/light/taskbar_offline_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

BIN
img/taskbar/light/taskbar_online.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

BIN
img/taskbar/light/taskbar_online_2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

69
osx/updater.go

@ -32,34 +32,27 @@ func fs_type(path string) int {
return -1 return -1
} }
func main() { func install(path string, pathlen int) int {
usr, e := user.Current() files, _ := ioutil.ReadDir(path)
if e != nil {
log.Fatal(e)
}
update_dir := usr.HomeDir + "/Library/Preferences/tox/update/" for _, file := range files {
if _, err := os.Stat(update_dir); os.IsNotExist(err) { if fs_type(path+file.Name()) == 1 {
fmt.Println("Error: No update folder, is check for updates enabled?")
return
}
fmt.Println("qTox Updater")
files, _ := ioutil.ReadDir(update_dir) addpath := ""
killqtox := exec.Command("/usr/bin/killall", "qtox") if len(path) != pathlen {
_ = killqtox.Run() addpath = path[pathlen:len(path)]
}
for _, file := range files {
if fs_type(update_dir+file.Name()) == 1 {
fmt.Print("Installing: ") fmt.Print("Installing: ")
fmt.Println("/Applications/qtox.app/Contents/" + file.Name()) fmt.Println("/Applications/qtox.app/Contents/" + addpath + file.Name())
if _, err := os.Stat("/Applications/qtox.app/Contents/" + file.Name()); os.IsNotExist(err) { 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 := exec.Command("/usr/libexec/authopen", "-c", "-x", "-m", "drwxrwxr-x+", "/Applications/qtox.app/Contents/"+addpath+file.Name())
newfile.Run() newfile.Run()
} }
cat := exec.Command("/bin/cat", update_dir+file.Name()) cat := exec.Command("/bin/cat", path+file.Name())
auth := exec.Command("/usr/libexec/authopen", "-w", "/Applications/qtox.app/Contents/"+file.Name())
auth := exec.Command("/usr/libexec/authopen", "-w", "/Applications/qtox.app/Contents/"+addpath+file.Name())
auth.Stdin, _ = cat.StdoutPipe() auth.Stdin, _ = cat.StdoutPipe()
auth.Stdout = os.Stdout auth.Stdout = os.Stdout
auth.Stderr = os.Stderr auth.Stderr = os.Stderr
@ -68,28 +61,30 @@ func main() {
_ = auth.Wait() _ = auth.Wait()
} else { } else {
files, _ := ioutil.ReadDir(update_dir + file.Name()) install(path+file.Name()+"/", pathlen)
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()
} }
return 0
}
func main() {
usr, e := user.Current()
if e != nil {
log.Fatal(e)
} }
update_dir := usr.HomeDir + "/Library/Preferences/tox/update/"
if _, err := os.Stat(update_dir); os.IsNotExist(err) {
fmt.Println("Error: No update folder, is check for updates enabled?")
return
} }
fmt.Println("qTox Updater")
killqtox := exec.Command("/usr/bin/killall", "qtox")
_ = killqtox.Run()
install(update_dir, len(update_dir))
os.RemoveAll(update_dir) os.RemoveAll(update_dir)
fmt.Println("Update metadata wiped, launching qTox") fmt.Println("Update metadata wiped, launching qTox")
launchqtox := exec.Command("/usr/bin/open", "-b", "im.tox.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.png</file>
<file>img/status/dot_online_2x.png</file> <file>img/status/dot_online_2x.png</file>
<file>img/status/dot_online_notification.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>img/transfer.png</file>
<file>smileys/cylgom/angel.png</file> <file>smileys/cylgom/angel.png</file>
<file>smileys/cylgom/angry.png</file> <file>smileys/cylgom/angry.png</file>

4
src/audio.cpp

@ -87,8 +87,6 @@ void Audio::openOutput(const QString& outDevDescr)
{ {
auto* tmp = alOutDev; auto* tmp = alOutDev;
alOutDev = nullptr; alOutDev = nullptr;
if (tmp)
alcCloseDevice(tmp);
if (outDevDescr.isEmpty()) if (outDevDescr.isEmpty())
alOutDev = alcOpenDevice(nullptr); alOutDev = alcOpenDevice(nullptr);
else else
@ -104,6 +102,8 @@ void Audio::openOutput(const QString& outDevDescr)
alcMakeContextCurrent(nullptr); alcMakeContextCurrent(nullptr);
alcDestroyContext(alContext); alcDestroyContext(alContext);
} }
if (tmp)
alcCloseDevice(tmp);
alContext=alcCreateContext(alOutDev,nullptr); alContext=alcCreateContext(alOutDev,nullptr);
if (!alcMakeContextCurrent(alContext)) if (!alcMakeContextCurrent(alContext))
{ {

22
src/misc/settings.cpp

@ -129,7 +129,6 @@ void Settings::load()
makeToxPortable = s.value("makeToxPortable", false).toBool(); makeToxPortable = s.value("makeToxPortable", false).toBool();
autostartInTray = s.value("autostartInTray", false).toBool(); autostartInTray = s.value("autostartInTray", false).toBool();
closeToTray = s.value("closeToTray", false).toBool(); closeToTray = s.value("closeToTray", false).toBool();
trayShowsUserStatus = s.value("trayShowsUserStatus", false).toBool();
forceTCP = s.value("forceTCP", false).toBool(); forceTCP = s.value("forceTCP", false).toBool();
useProxy = s.value("useProxy", false).toBool(); useProxy = s.value("useProxy", false).toBool();
proxyAddr = s.value("proxyAddr", "").toString(); proxyAddr = s.value("proxyAddr", "").toString();
@ -168,6 +167,7 @@ void Settings::load()
timestampFormat = s.value("timestampFormat", "hh:mm").toString(); timestampFormat = s.value("timestampFormat", "hh:mm").toString();
minimizeOnClose = s.value("minimizeOnClose", false).toBool(); minimizeOnClose = s.value("minimizeOnClose", false).toBool();
minimizeToTray = s.value("minimizeToTray", false).toBool(); minimizeToTray = s.value("minimizeToTray", false).toBool();
lightTrayIcon = s.value("lightTrayIcon", false).toBool();
useNativeStyle = s.value("nativeStyle", false).toBool(); useNativeStyle = s.value("nativeStyle", false).toBool();
useEmoticons = s.value("useEmoticons", true).toBool(); useEmoticons = s.value("useEmoticons", true).toBool();
statusChangeNotificationEnabled = s.value("statusChangeNotificationEnabled", false).toBool(); statusChangeNotificationEnabled = s.value("statusChangeNotificationEnabled", false).toBool();
@ -281,7 +281,6 @@ void Settings::save(QString path, bool writeFriends)
s.setValue("showSystemTray", showSystemTray); s.setValue("showSystemTray", showSystemTray);
s.setValue("autostartInTray",autostartInTray); s.setValue("autostartInTray",autostartInTray);
s.setValue("closeToTray", closeToTray); s.setValue("closeToTray", closeToTray);
s.setValue("trayShowsUserStatus", trayShowsUserStatus);
s.setValue("useProxy", useProxy); s.setValue("useProxy", useProxy);
s.setValue("forceTCP", forceTCP); s.setValue("forceTCP", forceTCP);
s.setValue("proxyAddr", proxyAddr); s.setValue("proxyAddr", proxyAddr);
@ -317,6 +316,7 @@ void Settings::save(QString path, bool writeFriends)
s.setValue("timestampFormat", timestampFormat); s.setValue("timestampFormat", timestampFormat);
s.setValue("minimizeOnClose", minimizeOnClose); s.setValue("minimizeOnClose", minimizeOnClose);
s.setValue("minimizeToTray", minimizeToTray); s.setValue("minimizeToTray", minimizeToTray);
s.setValue("lightTrayIcon", lightTrayIcon);
s.setValue("nativeStyle", useNativeStyle); s.setValue("nativeStyle", useNativeStyle);
s.setValue("useEmoticons", useEmoticons); s.setValue("useEmoticons", useEmoticons);
s.setValue("themeColor", themeColor); s.setValue("themeColor", themeColor);
@ -521,25 +521,25 @@ void Settings::setCloseToTray(bool newValue)
closeToTray = newValue; closeToTray = newValue;
} }
bool Settings::getTrayShowsUserStatus() const bool Settings::getMinimizeToTray() const
{ {
return trayShowsUserStatus; return minimizeToTray;
} }
void Settings::setTrayShowsUserStatus(bool newValue)
void Settings::setMinimizeToTray(bool newValue)
{ {
trayShowsUserStatus = newValue; minimizeToTray = newValue;
} }
bool Settings::getMinimizeToTray() const bool Settings::getLightTrayIcon() const
{ {
return minimizeToTray; return lightTrayIcon;
} }
void Settings::setLightTrayIcon(bool newValue)
void Settings::setMinimizeToTray(bool newValue)
{ {
minimizeToTray = newValue; lightTrayIcon = newValue;
} }
bool Settings::getStatusChangeNotificationEnabled() const bool Settings::getStatusChangeNotificationEnabled() const

8
src/misc/settings.h

@ -59,12 +59,12 @@ public:
bool getCloseToTray() const; bool getCloseToTray() const;
void setCloseToTray(bool newValue); void setCloseToTray(bool newValue);
bool getTrayShowsUserStatus() const;
void setTrayShowsUserStatus(bool newValue);
bool getMinimizeToTray() const; bool getMinimizeToTray() const;
void setMinimizeToTray(bool newValue); void setMinimizeToTray(bool newValue);
bool getLightTrayIcon() const;
void setLightTrayIcon(bool newValue);
QString getStyle() const; QString getStyle() const;
void setStyle(const QString& newValue); void setStyle(const QString& newValue);
@ -247,7 +247,7 @@ private:
bool autostartInTray; bool autostartInTray;
bool closeToTray; bool closeToTray;
bool minimizeToTray; bool minimizeToTray;
bool trayShowsUserStatus; bool lightTrayIcon;
bool useEmoticons; bool useEmoticons;
bool checkUpdates; bool checkUpdates;
bool showInFront; bool showInFront;

2
src/platform/timer_win.cpp

@ -17,7 +17,7 @@
#include <QDebug> #include <QDebug>
#ifdef Q_OS_WIN32 #ifdef Q_OS_WIN32
#include "src/platform/timer.h" #include "src/platform/timer.h"
#include <Windows.h> #include <windows.h>
uint32_t Platform::getIdleTime() uint32_t Platform::getIdleTime()

1
src/widget/chatareawidget.cpp

@ -87,6 +87,7 @@ void ChatAreaWidget::mouseReleaseEvent(QMouseEvent * event)
} }
} }
} }
emit onClick();
} }
void ChatAreaWidget::onAnchorClicked(const QUrl &url) void ChatAreaWidget::onAnchorClicked(const QUrl &url)

1
src/widget/chatareawidget.h

@ -41,6 +41,7 @@ public slots:
signals: signals:
void onFileTranfertInterract(QString widgetName, QString buttonName); void onFileTranfertInterract(QString widgetName, QString buttonName);
void onClick();
protected: protected:
void mouseReleaseEvent(QMouseEvent * event); void mouseReleaseEvent(QMouseEvent * event);

2
src/widget/form/chatform.cpp

@ -673,7 +673,7 @@ void ChatForm::onFileSendFailed(int FriendId, const QString &fname)
if (FriendId != f->getFriendID()) if (FriendId != f->getFriendID())
return; 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) void ChatForm::onAvatarChange(int FriendId, const QPixmap &pic)

6
src/widget/form/genericchatform.cpp

@ -152,6 +152,7 @@ GenericChatForm::GenericChatForm(QWidget *parent) :
connect(emoteButton, SIGNAL(clicked()), this, SLOT(onEmoteButtonClicked())); connect(emoteButton, SIGNAL(clicked()), this, SLOT(onEmoteButtonClicked()));
connect(chatWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onChatContextMenuRequested(QPoint))); 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->document()->setDefaultStyleSheet(Style::getStylesheet(":ui/chatArea/innerStyle.css"));
chatWidget->setStyleSheet(Style::getStylesheet(":/ui/chatArea/chatArea.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) void GenericChatForm::onEmoteInsertRequested(QString str)
{ {
// insert the emoticon // insert the emoticon

1
src/widget/form/genericchatform.h

@ -69,6 +69,7 @@ protected slots:
void onEmoteButtonClicked(); void onEmoteButtonClicked();
void onEmoteInsertRequested(QString str); void onEmoteInsertRequested(QString str);
void clearChatArea(bool); void clearChatArea(bool);
void onChatWidgetClicked();
protected: protected:
QString getElidedName(const QString& name); QString getElidedName(const QString& name);

20
src/widget/form/groupchatform.cpp

@ -209,11 +209,8 @@ void GroupChatForm::onCallClicked()
void GroupChatForm::keyPressEvent(QKeyEvent* ev) void GroupChatForm::keyPressEvent(QKeyEvent* ev)
{ {
if (msgEdit->hasFocus()) // Push to talk (CTRL+P)
return; if (ev->key() == Qt::Key_P && (ev->modifiers() & Qt::ControlModifier) && inCall)
// Push to talk
if (ev->key() == Qt::Key_P && inCall)
{ {
Core* core = Core::getInstance(); Core* core = Core::getInstance();
if (!core->isGroupCallMicEnabled(group->getGroupId())) if (!core->isGroupCallMicEnabled(group->getGroupId()))
@ -224,15 +221,15 @@ void GroupChatForm::keyPressEvent(QKeyEvent* ev)
Style::repolish(micButton); Style::repolish(micButton);
} }
} }
}
void GroupChatForm::keyReleaseEvent(QKeyEvent* ev)
{
if (msgEdit->hasFocus()) if (msgEdit->hasFocus())
return; return;
}
// Push to talk void GroupChatForm::keyReleaseEvent(QKeyEvent* ev)
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(); Core* core = Core::getInstance();
if (core->isGroupCallMicEnabled(group->getGroupId())) if (core->isGroupCallMicEnabled(group->getGroupId()))
@ -243,4 +240,7 @@ void GroupChatForm::keyReleaseEvent(QKeyEvent* ev)
Style::repolish(micButton); Style::repolish(micButton);
} }
} }
if (msgEdit->hasFocus())
return;
} }

16
src/widget/form/settings/generalform.cpp

@ -62,8 +62,8 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
bodyUI->closeToTray->setEnabled(showSystemTray); bodyUI->closeToTray->setEnabled(showSystemTray);
bodyUI->minimizeToTray->setChecked(Settings::getInstance().getMinimizeToTray()); bodyUI->minimizeToTray->setChecked(Settings::getInstance().getMinimizeToTray());
bodyUI->minimizeToTray->setEnabled(showSystemTray); bodyUI->minimizeToTray->setEnabled(showSystemTray);
bodyUI->trayShowsUserStatus->setChecked(Settings::getInstance().getTrayShowsUserStatus()); bodyUI->lightTrayIcon->setChecked(Settings::getInstance().getLightTrayIcon());
bodyUI->trayShowsUserStatus->setEnabled(showSystemTray); bodyUI->lightTrayIcon->setEnabled(showSystemTray);
bodyUI->statusChanges->setChecked(Settings::getInstance().getStatusChangeNotificationEnabled()); bodyUI->statusChanges->setChecked(Settings::getInstance().getStatusChangeNotificationEnabled());
bodyUI->useEmoticons->setChecked(Settings::getInstance().getUseEmoticons()); bodyUI->useEmoticons->setChecked(Settings::getInstance().getUseEmoticons());
bodyUI->autoacceptFiles->setChecked(Settings::getInstance().getAutoSaveEnabled()); bodyUI->autoacceptFiles->setChecked(Settings::getInstance().getAutoSaveEnabled());
@ -122,7 +122,7 @@ GeneralForm::GeneralForm(SettingsWidget *myParent) :
connect(bodyUI->startInTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetAutostartInTray); connect(bodyUI->startInTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetAutostartInTray);
connect(bodyUI->closeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetCloseToTray); connect(bodyUI->closeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetCloseToTray);
connect(bodyUI->minimizeToTray, &QCheckBox::stateChanged, this, &GeneralForm::onSetMinimizeToTray); 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->statusChanges, &QCheckBox::stateChanged, this, &GeneralForm::onSetStatusChange);
connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged())); connect(bodyUI->autoAwaySpinBox, SIGNAL(editingFinished()), this, SLOT(onAutoAwayChanged()));
connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront); connect(bodyUI->showInFront, &QCheckBox::stateChanged, this, &GeneralForm::onSetShowInFront);
@ -188,15 +188,15 @@ void GeneralForm::onSetCloseToTray()
Settings::getInstance().setCloseToTray(bodyUI->closeToTray->isChecked()); Settings::getInstance().setCloseToTray(bodyUI->closeToTray->isChecked());
} }
void GeneralForm::onSetMinimizeToTray() void GeneralForm::onSetLightTrayIcon()
{ {
Settings::getInstance().setMinimizeToTray(bodyUI->minimizeToTray->isChecked()); Settings::getInstance().setLightTrayIcon(bodyUI->lightTrayIcon->isChecked());
Widget::getInstance()->updateTrayIcon();
} }
void GeneralForm::onSettrayShowsUserStatus() void GeneralForm::onSetMinimizeToTray()
{ {
Settings::getInstance().setTrayShowsUserStatus(bodyUI->trayShowsUserStatus->isChecked()); Settings::getInstance().setMinimizeToTray(bodyUI->minimizeToTray->isChecked());
Widget::getInstance()->updateTrayIcon();
} }
void GeneralForm::onStyleSelected(QString style) void GeneralForm::onStyleSelected(QString style)

2
src/widget/form/settings/generalform.h

@ -37,6 +37,7 @@ private slots:
void onSetShowSystemTray(); void onSetShowSystemTray();
void onSetAutostartInTray(); void onSetAutostartInTray();
void onSetCloseToTray(); void onSetCloseToTray();
void onSetLightTrayIcon();
void onSmileyBrowserIndexChanged(int index); void onSmileyBrowserIndexChanged(int index);
void onUDPUpdated(); void onUDPUpdated();
void onProxyAddrEdited(); void onProxyAddrEdited();
@ -49,7 +50,6 @@ private slots:
void onAutoAwayChanged(); void onAutoAwayChanged();
void onUseEmoticonsChange(); void onUseEmoticonsChange();
void onSetMinimizeToTray(); void onSetMinimizeToTray();
void onSettrayShowsUserStatus();
void onReconnectClicked(); void onReconnectClicked();
void onAutoAcceptFileChange(); void onAutoAcceptFileChange();
void onAutoSaveDirChange(); void onAutoSaveDirChange();

37
src/widget/form/settings/generalsettings.ui

@ -39,8 +39,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>509</width> <width>513</width>
<height>849</height> <height>819</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0,1"> <layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0,1">
@ -109,7 +109,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="trayBehavior"> <layout class="QHBoxLayout" name="trayBehavior">
<item> <item>
<widget class="QCheckBox" name="startInTray"> <widget class="QCheckBox" name="startInTray">
@ -152,19 +152,10 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="2" column="0"> <item row="0" column="1">
<widget class="QCheckBox" name="trayShowsUserStatus"> <widget class="QCheckBox" name="lightTrayIcon">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>Tray icon displays user status</string> <string>Light icon</string>
</property>
<property name="toolTip">
<string>This is a temporary work around until proper systray status icons are available.</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -607,21 +598,5 @@
</hint> </hint>
</hints> </hints>
</connection> </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> </connections>
</ui> </ui>

23
src/widget/widget.cpp

@ -125,7 +125,8 @@ void Widget::init()
} }
else else
{ {
qWarning() << "No system tray detected!"; qWarning() << "Widget: No system tray detected!";
icon = nullptr;
this->show(); this->show();
} }
@ -295,22 +296,20 @@ void Widget::setTranslation()
void Widget::updateTrayIcon() void Widget::updateTrayIcon()
{ {
if(Settings::getInstance().getTrayShowsUserStatus()) if (!icon)
{ return;
QString status = ui->statusButton->property("status").toString(); QString status = ui->statusButton->property("status").toString();
QString icon; QString pic;
QString color = Settings::getInstance().getLightTrayIcon() ? "light" : "dark";
if (status == "online") if (status == "online")
icon = ":img/status/dot_online_2x.png"; pic = ":img/taskbar/" + color + "/taskbar_online_2x.png";
else if (status == "away") else if (status == "away")
icon = ":img/status/dot_idle_2x.png"; pic = ":img/taskbar/" + color + "/taskbar_idle_2x.png";
else if (status == "busy") else if (status == "busy")
icon = ":img/status/dot_busy_2x.png"; pic = ":img/taskbar/" + color + "/taskbar_busy_2x.png";
else
icon = ":img/status/dot_away_2x.png";
this->icon->setIcon(QIcon(icon));
}
else else
icon->setIcon(windowIcon()); pic = ":img/taskbar/" + color + "/taskbar_offline_2x.png";
icon->setIcon(QIcon(pic));
} }
Widget::~Widget() Widget::~Widget()

29
translations/de.ts vendored

@ -36,6 +36,11 @@
<source>Capture device</source> <source>Capture device</source>
<translation>Aufnahmegerät</translation> <translation>Aufnahmegerät</translation>
</message> </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> <message>
<location filename="../src/widget/form/settings/avsettings.ui" line="98"/> <location filename="../src/widget/form/settings/avsettings.ui" line="98"/>
<source>Video Settings</source> <source>Video Settings</source>
@ -252,6 +257,11 @@ Soll der Proxy ignoriert und eine direkte Internetverbindung genutzt werden?</tr
<source>Call rejected</source> <source>Call rejected</source>
<translation>Anruf abgewiesen</translation> <translation>Anruf abgewiesen</translation>
</message> </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> <message>
<location filename="../src/widget/form/chatform.cpp" line="804"/> <location filename="../src/widget/form/chatform.cpp" line="804"/>
<source>Call with %1 ended. %2</source> <source>Call with %1 ended. %2</source>
@ -594,29 +604,34 @@ Wollen Sie ein anderes probieren?</translation>
<translation>Mache Tox portabel</translation> <translation>Mache Tox portabel</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="101"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="99"/>
<source>Show system tray</source> <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> <translation>Im Systemtray zeigen</translation>
</message> </message>
<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> <source>Start in tray</source>
<translation>Ins Tray starten</translation> <translation>Ins Tray starten</translation>
</message> </message>
<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> <source>Close to tray</source>
<translation>Ins Tray schließen</translation> <translation>Ins Tray schließen</translation>
</message> </message>
<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> <source>Minimize to tray</source>
<translation>Ins Tray minimieren</translation> <translation>Ins Tray minimieren</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="149"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="149"/>
<source>Show contacts&apos; status changes</source> <source>Show contacts&apos; status changes</source>
<translation>Zeige Statusänderungen der Kontakte</translation> <translation>Zeigt Statusänderungen der Kontakte</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="156"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="156"/>
@ -626,7 +641,7 @@ Wollen Sie ein anderes probieren?</translation>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="163"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="163"/>
<source>Focus qTox when a message is received</source> <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>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="170"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="170"/>

128
translations/fr.ts vendored

@ -76,13 +76,13 @@
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="34"/> <location filename="../src/widget/form/addfriendform.cpp" line="34"/>
<source>Add Friends</source> <source>Add Friends</source>
<translation>Ajouter des amis</translation> <translation>Ajouter des contacts</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="37"/> <location filename="../src/widget/form/addfriendform.cpp" line="37"/>
<source>Tox ID</source> <source>Tox ID</source>
<comment>Tox ID of the person you&apos;re sending a friend request to</comment> <comment>Tox ID of the person you&apos;re sending a friend request to</comment>
<translation>ID Tox</translation> <translation>Tox ID</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="38"/> <location filename="../src/widget/form/addfriendform.cpp" line="38"/>
@ -93,25 +93,25 @@
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="39"/> <location filename="../src/widget/form/addfriendform.cpp" line="39"/>
<source>Send friend request</source> <source>Send friend request</source>
<translation>Envoyer la demande d&apos;ami</translation> <translation>Envoyer la demande de contact</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="40"/> <location filename="../src/widget/form/addfriendform.cpp" line="40"/>
<source>Tox me maybe?</source> <source>Tox me maybe?</source>
<comment>Default message in friend requests if the field is left blank. Write something appropriate!</comment> <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>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="89"/> <location filename="../src/widget/form/addfriendform.cpp" line="89"/>
<source>Please fill in a valid Tox ID</source> <source>Please fill in a valid Tox ID</source>
<comment>Tox ID of the friend you&apos;re sending a friend request to</comment> <comment>Tox ID of the friend you&apos;re sending a friend request to</comment>
<translation>Merci de remplir un ID Tox valide</translation> <translation>Merci d&apos;entrer un Tox ID valide</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="92"/> <location filename="../src/widget/form/addfriendform.cpp" line="92"/>
<source>You can&apos;t add yourself as a friend!</source> <source>You can&apos;t add yourself as a friend!</source>
<comment>When trying to add your own Tox ID as friend</comment> <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&apos;ami!</translation> <translation>Vous ne pouvez pas vous ajouter vous-même !</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="100"/> <location filename="../src/widget/form/addfriendform.cpp" line="100"/>
@ -123,19 +123,19 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
<message> <message>
<source>qTox needs to use the Tox DNS, but can&apos;t do it through a proxy <source>qTox needs to use the Tox DNS, but can&apos;t do it through a proxy
Ignore the proxy and connect to the Internet directly ?</source> Ignore the proxy and connect to the Internet directly ?</source>
<translation type="vanished">qTox as besoin d&apos;utiliser le DNS Tox, mais ne peut pas le faire avec un proxy <translation type="vanished">qTox a besoin d&apos;utiliser le DNS Tox, mais ne peut pas le faire avec un proxy
Ignorer le proxy et se connecter directement à Internet ?</translation> Ignorer le proxy et se connecter directement à Internet ?</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/addfriendform.cpp" line="110"/> <location filename="../src/widget/form/addfriendform.cpp" line="110"/>
<source>This Tox ID does not exist</source> <source>This Tox ID does not exist</source>
<comment>DNS error</comment> <comment>DNS error</comment>
<translation>Cet ID Tox n&apos;existe pas</translation> <translation>Ce Tox ID n&apos;existe pas</translation>
</message> </message>
<message> <message>
<source>This address does not exist</source> <source>This address does not exist</source>
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment> <comment>The DNS gives the Tox ID associated to toxme.se addresses</comment>
<translation type="vanished">Cette addresse n&apos;existe pas</translation> <translation type="vanished">Cette adresse n&apos;existe pas</translation>
</message> </message>
<message> <message>
<source>Error while looking up DNS</source> <source>Error while looking up DNS</source>
@ -178,17 +178,17 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
<message> <message>
<location filename="../src/widget/form/chatform.cpp" line="148"/> <location filename="../src/widget/form/chatform.cpp" line="148"/>
<source>Bad Idea</source> <source>Bad Idea</source>
<translation>Mauvaise Idée</translation> <translation>Mauvaise idée</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/chatform.cpp" line="148"/> <location filename="../src/widget/form/chatform.cpp" line="148"/>
<source>You&apos;re trying to send a special (sequential) file, that&apos;s not going to work!</source> <source>You&apos;re trying to send a special (sequential) file, that&apos;s not going to work!</source>
<translation>Vous êtes en train d&apos;essayer d&apos;envoyer un fichier spécial (sequentiel), ça ne marchera pas!</translation> <translation>Vous êtes en train d&apos;essayer d&apos;envoyer un fichier spécial (sequentiel), ça ne fonctionnera pas !</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/chatform.cpp" line="254"/> <location filename="../src/widget/form/chatform.cpp" line="254"/>
<source>%1 calling</source> <source>%1 calling</source>
<translation>%1 appelle</translation> <translation>%1 appel</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/chatform.cpp" line="323"/> <location filename="../src/widget/form/chatform.cpp" line="323"/>
@ -229,7 +229,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
<message> <message>
<location filename="../src/core.cpp" line="256"/> <location filename="../src/core.cpp" line="256"/>
<source>Toxing on qTox</source> <source>Toxing on qTox</source>
<translation>Toxer avec qTox</translation> <translation>Je Tox sur qTox</translation>
</message> </message>
<message> <message>
<location filename="../src/core.cpp" line="257"/> <location filename="../src/core.cpp" line="257"/>
@ -239,7 +239,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
<message> <message>
<location filename="../src/core.cpp" line="746"/> <location filename="../src/core.cpp" line="746"/>
<source>Friend is already added</source> <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>
<message> <message>
<location filename="../src/core.cpp" line="1176"/> <location filename="../src/core.cpp" line="1176"/>
@ -249,7 +249,7 @@ Ignorer le proxy et se connecter directement à Internet ?</translation>
<message> <message>
<location filename="../src/core.cpp" line="1176"/> <location filename="../src/core.cpp" line="1176"/>
<source>The .tox file is encrypted, but encryption was not checked, continuing regardless.</source> <source>The .tox file is encrypted, but encryption was not checked, continuing regardless.</source>
<translation>Le fichier .tox est chiffré, mais l&apos;encryption n&apos;as pas été activée. Le problème sera ignoré.</translation> <translation>Le fichier .tox est chiffré, mais le chiffrement n&apos;a pas été activé. Le problème sera ignoré.</translation>
</message> </message>
<message> <message>
<location filename="../src/core.cpp" line="1183"/> <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="1197"/>
<location filename="../src/core.cpp" line="1261"/> <location filename="../src/core.cpp" line="1261"/>
<source>Password error</source> <source>Password error</source>
<translation>Mod de passe invalide</translation> <translation>Mot de passe invalide</translation>
</message> </message>
<message> <message>
<location filename="../src/core.cpp" line="1185"/> <location filename="../src/core.cpp" line="1185"/>
<location filename="../src/core.cpp" line="1261"/> <location filename="../src/core.cpp" line="1261"/>
<source>Failed to setup password. <source>Failed to setup password.
Empty password.</source> 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> Le mot de passe est vide.</translation>
</message> </message>
<message> <message>
@ -289,7 +289,7 @@ Le mot de passe est vide.</translation>
<message> <message>
<location filename="../src/core.cpp" line="1198"/> <location filename="../src/core.cpp" line="1198"/>
<source>Wrong password has been entered</source> <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>
<message> <message>
<location filename="../src/core.cpp" line="1259"/> <location filename="../src/core.cpp" line="1259"/>
@ -316,7 +316,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/core.cpp" line="1277"/> <location filename="../src/core.cpp" line="1277"/>
<source>Due to incorret password logging will be disabled</source> <source>Due to incorret password logging will be disabled</source>
<translation>À cause d&apos;un mauvais mot de passe, l&apos;historique sera désactivé</translation> <translation>Due à l&apos;utilisation d&apos;un mauvais mot de passe, l&apos;historique sera désactivé</translation>
</message> </message>
<message> <message>
<location filename="../src/core.cpp" line="1350"/> <location filename="../src/core.cpp" line="1350"/>
@ -380,12 +380,12 @@ Voulez-vous essayer un mot de passe différent?</translation>
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="30"/> <location filename="../src/widget/tool/friendrequestdialog.cpp" line="30"/>
<source>Friend request</source> <source>Friend request</source>
<comment>Title of the window to aceept/deny a friend request</comment> <comment>Title of the window to aceept/deny a friend request</comment>
<translation>Demande d&apos;ami</translation> <translation>Demande de contact</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="32"/> <location filename="../src/widget/tool/friendrequestdialog.cpp" line="32"/>
<source>Someone wants to make friends with you</source> <source>Someone wants to make friends with you</source>
<translation>Quelqu&apos;un veut devenir votre ami</translation> <translation>Quelqu&apos;un vient de vous ajouter dans sa liste de contacts</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="33"/> <location filename="../src/widget/tool/friendrequestdialog.cpp" line="33"/>
@ -395,7 +395,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="37"/> <location filename="../src/widget/tool/friendrequestdialog.cpp" line="37"/>
<source>Friend request message:</source> <source>Friend request message:</source>
<translation>Message de demande d&apos;ami:</translation> <translation>Message au sujet de la demande:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/tool/friendrequestdialog.cpp" line="44"/> <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"/> <location filename="../src/widget/friendwidget.cpp" line="56"/>
<source>Copy friend ID</source> <source>Copy friend ID</source>
<comment>Menu to copy the Tox ID of that friend</comment> <comment>Menu to copy the Tox ID of that friend</comment>
<translation>Copier l&apos;ID ami</translation> <translation>Copier l&apos;ID du contact</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/friendwidget.cpp" line="68"/> <location filename="../src/widget/friendwidget.cpp" line="68"/>
@ -458,7 +458,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<source>Disable global auto accept</source> <source>Disable global auto accept</source>
<comment>context menu entry</comment> <comment>context menu entry</comment>
<translation type="vanished">Désactiver l&apos;acceptation automatique de fichier</translation> <translation type="vanished">Désactiver le téléchargement automatique de fichiers</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/friendwidget.cpp" line="109"/> <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"/> <location filename="../src/widget/friendwidget.cpp" line="76"/>
<source>Remove friend</source> <source>Remove friend</source>
<comment>Menu to remove the friend from our friendlist</comment> <comment>Menu to remove the friend from our friendlist</comment>
<translation>Supprimer ami</translation> <translation>Supprimer ce contact</translation>
</message> </message>
</context> </context>
<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="64"/>
<location filename="../src/widget/form/settings/generalsettings.ui" line="80"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="80"/>
<source>The translation may not load until qTox restarts.</source> <source>The translation may not load until qTox restarts.</source>
<translation>La translation peut ne pas se charger jusqu&apos;à ce que qTox redémarre.</translation> <translation>La traduction peut ne pas prendre effet immédiatement. Redémarrez qTox si ce n&apos;est pas le cas.</translation>
</message> </message>
<message> <message>
<source>Translation:</source> <source>Translation:</source>
@ -550,7 +550,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="133"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="133"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Minimizer dans la barre d&apos;état</translation> <translation>Minimiser dans la barre d&apos;état</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="142"/> <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>
<message> <message>
<source>Auto away after (0 to disable):</source> <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>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="191"/> <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"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="492"/>
<source>Reconnect</source> <source>Reconnect</source>
<comment>reconnect button</comment> <comment>reconnect button</comment>
<translation>Reconnection</translation> <translation>Se reconnecter</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="422"/> <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> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="156"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="156"/>
<source>Focus qTox when a message is received</source> <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>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="163"/> <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> <message>
<source>This allows, e.g., toxing over Tor. It adds load to the Tox network however, so use only when necessary.</source> <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> <extracomment>force tcp checkbox tooltip</extracomment>
<translation type="vanished">Permet par exemple d&apos;utiliser Tox à travers Tor, mais ce n&apos;est à utiliser que si nécessaire, car cela ralenti le réseau Tox.</translation> <translation type="vanished">Permet par exemple d&apos;utiliser Tox à travers Tor, mais ce n&apos;est à utiliser que si nécessaire car cela ralenti le réseau Tox.</translation>
</message> </message>
<message> <message>
<source>Disable UDP (not recommended)</source> <source>Disable UDP (not recommended)</source>
@ -748,7 +748,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="64"/> <location filename="../src/widget/form/genericchatform.cpp" line="64"/>
<source>Smileys</source> <source>Smileys</source>
<translation>Emoticones</translation> <translation>Émoticônes</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="68"/> <location filename="../src/widget/form/genericchatform.cpp" line="68"/>
@ -768,7 +768,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="77"/> <location filename="../src/widget/form/genericchatform.cpp" line="77"/>
<source>Toggle speakers volume</source> <source>Toggle speakers volume</source>
<translation>Couper les haut parleurs</translation> <translation>Couper les haut-parleurs</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="80"/> <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="44"/>
<location filename="../src/widget/groupwidget.cpp" line="66"/> <location filename="../src/widget/groupwidget.cpp" line="66"/>
<source>0 users in chat</source> <source>0 users in chat</source>
<translation>0 personnes</translation> <translation>Le groupe est vide</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/groupwidget.cpp" line="53"/> <location filename="../src/widget/groupwidget.cpp" line="53"/>
@ -894,7 +894,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/form/settings/identityform.cpp" line="186"/> <location filename="../src/widget/form/settings/identityform.cpp" line="186"/>
<source>The file you chose could not be written to.</source> <source>The file you chose could not be written to.</source>
<translation>Le fichier que vous avez choisi n&apos;as pas pu être écrit.</translation> <translation>Le fichier que vous avez choisi n&apos;es pas disponible en écriture.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/identityform.cpp" line="194"/> <location filename="../src/widget/form/settings/identityform.cpp" line="194"/>
@ -936,13 +936,13 @@ Voulez-vous essayer un mot de passe différent?</translation>
<location filename="../src/widget/form/settings/identityform.cpp" line="223"/> <location filename="../src/widget/form/settings/identityform.cpp" line="223"/>
<source>Ignoring non-Tox file</source> <source>Ignoring non-Tox file</source>
<comment>popup title</comment> <comment>popup title</comment>
<translation>Fichier non-Tox ignoré</translation> <translation>Fichier incompatible avec Tox ignoré</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/identityform.cpp" line="224"/> <location filename="../src/widget/form/settings/identityform.cpp" line="224"/>
<source>Warning: you&apos;ve chosen a file that is not a Tox save file; ignoring.</source> <source>Warning: you&apos;ve chosen a file that is not a Tox save file; ignoring.</source>
<comment>popup text</comment> <comment>popup text</comment>
<translation>Attention: Vous avez sélectionné un fichier qui n&apos;est pas une sauvegarde Tox: il sera ignoré.</translation> <translation>Attention: Vous avez sélectionné un fichier qui n&apos;est pas une sauvegarde Tox, il sera ignoré.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/identityform.cpp" line="230"/> <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> <message>
<location filename="../src/widget/form/settings/identitysettings.ui" line="88"/> <location filename="../src/widget/form/settings/identitysettings.ui" line="88"/>
<source>Your Tox ID (click to copy)</source> <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>
<message> <message>
<location filename="../src/widget/form/settings/identitysettings.ui" line="98"/> <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"/> <location filename="../src/widget/form/settings/identitysettings.ui" line="151"/>
<source>This is useful to remain safe on public computers</source> <source>This is useful to remain safe on public computers</source>
<comment>delete profile button tooltip</comment> <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>
<message> <message>
<location filename="../src/widget/form/settings/identitysettings.ui" line="165"/> <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"/> <location filename="../src/widget/form/settings/identitysettings.ui" line="175"/>
<source>New Tox ID</source> <source>New Tox ID</source>
<comment>new profile button</comment> <comment>new profile button</comment>
<translation>Nouvel ID Tox</translation> <translation>Nouvel Tox ID</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1093,12 +1093,12 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/mainwindow.ui" line="1101"/> <location filename="../src/mainwindow.ui" line="1101"/>
<source>Add friends</source> <source>Add friends</source>
<translation>Ajouter des amis</translation> <translation>Ajouter des contacts</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.ui" line="1139"/> <location filename="../src/mainwindow.ui" line="1139"/>
<source>Create a group chat</source> <source>Create a group chat</source>
<translation>Creer un groupe</translation> <translation>Créer un groupe</translation>
</message> </message>
<message> <message>
<location filename="../src/mainwindow.ui" line="1174"/> <location filename="../src/mainwindow.ui" line="1174"/>
@ -1125,7 +1125,7 @@ Voulez-vous essayer un mot de passe différent?</translation>
<message> <message>
<location filename="../src/widget/netcamview.cpp" line="28"/> <location filename="../src/widget/netcamview.cpp" line="28"/>
<source>Tox video</source> <source>Tox video</source>
<translation>Vidéo tox</translation> <translation>Vidéo Tox</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1192,7 +1192,7 @@ Voulez vous supprimer l&apos;ancien historique?</translation>
<location filename="../src/widget/toxsave.cpp" line="64"/> <location filename="../src/widget/toxsave.cpp" line="64"/>
<source>Warning: you&apos;ve chosen a file that is not a Tox save file; ignoring.</source> <source>Warning: you&apos;ve chosen a file that is not a Tox save file; ignoring.</source>
<comment>popup text</comment> <comment>popup text</comment>
<translation>Attention: Vous avez sélectionné un fichier qui n&apos;est pas une sauvegarde Tox: il sera ignoré.</translation> <translation>Attention: Vous avez sélectionné un fichier qui n&apos;est pas une sauvegarde Tox, il sera ignoré.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/toxsave.cpp" line="70"/> <location filename="../src/widget/toxsave.cpp" line="70"/>
@ -1233,12 +1233,12 @@ Voulez vous supprimer l&apos;ancien historique?</translation>
<source>An update is available, do you want to download it now ? <source>An update is available, do you want to download it now ?
It will be installed when qTox restarts.</source> It will be installed when qTox restarts.</source>
<translation>Une mise à jour est disponible, voulez vous la télécharger maintenant ? <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>
<message> <message>
<location filename="../src/main.cpp" line="68"/> <location filename="../src/main.cpp" line="68"/>
<source>Tox URI to parse</source> <source>Tox URI to parse</source>
<translation>URI Tox à utiliser</translation> <translation>URL Tox à utiliser</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1255,7 +1255,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/form/setpassworddialog.ui" line="37"/> <location filename="../src/widget/form/setpassworddialog.ui" line="37"/>
<source>Repeat Password</source> <source>Repeat Password</source>
<translation>Répetez le mot de passe</translation> <translation>Retapez le mot de passe</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1270,13 +1270,13 @@ Elle sera installée au prochain démarrage de qTox</translation>
<location filename="../src/toxdns.cpp" line="70"/> <location filename="../src/toxdns.cpp" line="70"/>
<source>This address does not exist</source> <source>This address does not exist</source>
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment> <comment>The DNS gives the Tox ID associated to toxme.se addresses</comment>
<translation>Cette addresse n&apos;existe pas</translation> <translation>Cette adresse n&apos;existe pas</translation>
</message> </message>
<message> <message>
<location filename="../src/toxdns.cpp" line="75"/> <location filename="../src/toxdns.cpp" line="75"/>
<source>Error while looking up DNS</source> <source>Error while looking up DNS</source>
<comment>The DNS gives the Tox ID associated to toxme.se addresses</comment> <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&apos;est produite en consultant le serveur DNS</translation>
</message> </message>
<message> <message>
<location filename="../src/toxdns.cpp" line="82"/> <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"/> <location filename="../src/widget/toxuri.cpp" line="80"/>
<source>Add a friend</source> <source>Add a friend</source>
<comment>Title of the window to add a friend through Tox URI</comment> <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>
<message> <message>
<location filename="../src/widget/toxuri.cpp" line="82"/> <location filename="../src/widget/toxuri.cpp" line="82"/>
<source>Do you want to add %1 as a friend ?</source> <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>
<message> <message>
<location filename="../src/widget/toxuri.cpp" line="83"/> <location filename="../src/widget/toxuri.cpp" line="83"/>
<source>User ID:</source> <source>User ID:</source>
<translation>ID utilisateur:</translation> <translation>ID d&apos;utilisateur:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/toxuri.cpp" line="87"/> <location filename="../src/widget/toxuri.cpp" line="87"/>
<source>Friend request message:</source> <source>Friend request message:</source>
<translation>Message de demande d&apos;ami:</translation> <translation>Associer un message à cette demande:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/toxuri.cpp" line="92"/> <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>
<message> <message>
<source>away</source> <source>away</source>
<translation type="vanished">indisponnible</translation> <translation type="vanished">absent</translation>
</message> </message>
<message> <message>
<source>busy</source> <source>busy</source>
@ -1368,7 +1368,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/widget.cpp" line="77"/> <location filename="../src/widget/widget.cpp" line="77"/>
<source>Away</source> <source>Away</source>
<translation>Indisponible</translation> <translation>Absent</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="80"/> <location filename="../src/widget/widget.cpp" line="80"/>
@ -1383,7 +1383,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/widget.cpp" line="86"/> <location filename="../src/widget/widget.cpp" line="86"/>
<source>Change status to:</source> <source>Change status to:</source>
<translation>Changer le status en:</translation> <translation>Changer le status par:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="155"/> <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"/> <location filename="../src/widget/widget.cpp" line="157"/>
<source>Away</source> <source>Away</source>
<comment>Button to set your status to &apos;Away&apos;</comment> <comment>Button to set your status to &apos;Away&apos;</comment>
<translation>Indisponible</translation> <translation>Absent</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="159"/> <location filename="../src/widget/widget.cpp" line="159"/>
@ -1443,18 +1443,18 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/widget.cpp" line="477"/> <location filename="../src/widget/widget.cpp" line="477"/>
<source>Toxcore failed to start, the application will terminate after you close this message.</source> <source>Toxcore failed to start, the application will terminate after you close this message.</source>
<translation>Toxcore n&apos;as pas pu démarrer correctement, l&apos;application va quitter quand vous fermerez ce message.</translation> <translation>ToxCore n&apos;as pas pu démarrer correctement, l&apos;application va s&apos;arrêter quand vous fermerez cette alerte.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="486"/> <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> <source>toxcore failed to start with your proxy settings. qTox cannot run; please modify your settings and restart.</source>
<comment>popup text</comment> <comment>popup text</comment>
<translation>Toxcore n&apos;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&apos;as pas pu démarrer avec ces paramètres proxy. Merci de modifier ou désactiver vos paramètres et redémarrer l&apos;application.</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="521"/> <location filename="../src/widget/widget.cpp" line="521"/>
<source>Add friend</source> <source>Add friend</source>
<translation>Ajouter un ami</translation> <translation>Ajouter un contact</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="533"/> <location filename="../src/widget/widget.cpp" line="533"/>
@ -1469,13 +1469,13 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/widget.cpp" line="656"/> <location filename="../src/widget/widget.cpp" line="656"/>
<source>Couldn&apos;t request friendship</source> <source>Couldn&apos;t request friendship</source>
<translation>Impossible de demander en ami</translation> <translation>Impossible d&apos;envoyer la demande de contact</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="684"/> <location filename="../src/widget/widget.cpp" line="684"/>
<source>away</source> <source>away</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>indisponnible</translation> <translation>absent</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="686"/> <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"/> <location filename="../src/widget/widget.cpp" line="688"/>
<source>offline</source> <source>offline</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>déconnecté</translation> <translation>hors ligne</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="690"/> <location filename="../src/widget/widget.cpp" line="690"/>
@ -1510,7 +1510,7 @@ Elle sera installée au prochain démarrage de qTox</translation>
<message> <message>
<location filename="../src/widget/widget.cpp" line="1091"/> <location filename="../src/widget/widget.cpp" line="1091"/>
<source>Message failed to send</source> <source>Message failed to send</source>
<translation>Le message n&apos;as pas pu être envoyé</translation> <translation>Le message n&apos;as pu être envoyé</translation>
</message> </message>
</context> </context>
</TS> </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> <source>Calling to %1</source>
<translation>Stai chiamando %1</translation> <translation>Stai chiamando %1</translation>
</message> </message>
<message>
<location filename="../src/widget/form/chatform.cpp" line="676"/>
<source>Failed to send file &quot;%1&quot;</source>
<translation>Invio del file &quot;%1&quot; fallito</translation>
</message>
<message> <message>
<location filename="../src/widget/form/chatform.cpp" line="810"/> <location filename="../src/widget/form/chatform.cpp" line="810"/>
<source>Call with %1 ended. %2</source> <source>Call with %1 ended. %2</source>
@ -538,17 +543,22 @@ Soprannome:</translation>
<translation>Mostra icona nella traybar</translation> <translation>Mostra icona nella traybar</translation>
</message> </message>
<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> <source>Set to 0 to disable</source>
<translation>Imposta 0 per disabilitare</translation> <translation>Imposta 0 per disabilitare</translation>
</message> </message>
<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> <source>Connection Settings</source>
<translation>Impostazioni Connessione</translation> <translation>Impostazioni Connessione</translation>
</message> </message>
<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> <source>Enable IPv6 (recommended)</source>
<extracomment>Text on a checkbox to enable IPv6</extracomment> <extracomment>Text on a checkbox to enable IPv6</extracomment>
<translation>Abilita IPv6 (consigliato)</translation> <translation>Abilita IPv6 (consigliato)</translation>
@ -590,143 +600,133 @@ Soprannome:</translation>
<translation>Minimizza nella traybar</translation> <translation>Minimizza nella traybar</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/settings/generalsettings.ui" line="164"/> <location filename="../src/widget/form/settings/generalsettings.ui" line="168"/>
<source>Tray icon displays user status</source>
<translation>Mostra lo stato nell&apos;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"/>
<source>Show contacts&apos; status changes</source> <source>Show contacts&apos; status changes</source>
<translation>Mostra quando i contatti cambiano stato</translation> <translation>Mostra quando i contatti cambiano stato</translation>
</message> </message>
<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> <source>Check for updates on startup (unstable)</source>
<translation>Controlla aggiornamenti all&apos;avvio (unstable)</translation> <translation>Controlla aggiornamenti all&apos;avvio (unstable)</translation>
</message> </message>
<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> <source>Focus qTox when a message is received</source>
<translation>Dai il focus a qTox quando arriva un messaggio</translation> <translation>Dai il focus a qTox quando arriva un messaggio</translation>
</message> </message>
<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> <source>Faux offline messaging</source>
<translation>Falsi messaggi offline</translation> <translation>Falsi messaggi offline</translation>
</message> </message>
<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> <source>Provided in minutes</source>
<translation>Espresso in minuti</translation> <translation>Espresso in minuti</translation>
</message> </message>
<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> <source>Auto away after (0 to disable)</source>
<translation>Imposta assenza dopo</translation> <translation>Imposta assenza dopo</translation>
</message> </message>
<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> <source> minutes</source>
<translation> minuti</translation> <translation> minuti</translation>
</message> </message>
<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> <source>You can set this on a per-friend basis by right clicking them.</source>
<comment>autoaccept cb tooltip</comment> <comment>autoaccept cb tooltip</comment>
<translation>Puoi impostare questa preferenza per ogni singolo contatto usando il click destro sul suo nome.</translation> <translation>Puoi impostare questa preferenza per ogni singolo contatto usando il click destro sul suo nome.</translation>
</message> </message>
<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> <source>Autoaccept files</source>
<translation>Accetta automaticamente i trasferimenti di files</translation> <translation>Accetta automaticamente i trasferimenti di files</translation>
</message> </message>
<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> <source>Save files in</source>
<translation>Salva i files in</translation> <translation>Salva i files in</translation>
</message> </message>
<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> <source>PushButton</source>
<translation>Sfoglia</translation> <translation>Sfoglia</translation>
</message> </message>
<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> <source>Theme</source>
<translation>Impostazioni Tema</translation> <translation>Impostazioni Tema</translation>
</message> </message>
<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> <source>Use emoticons</source>
<translation>Usa emoticons</translation> <translation>Usa emoticons</translation>
</message> </message>
<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> <source>Smiley Pack</source>
<extracomment>Text on smiley pack label</extracomment> <extracomment>Text on smiley pack label</extracomment>
<translation>Emoticons</translation> <translation>Emoticons</translation>
</message> </message>
<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> <source>Style</source>
<translation>Stile</translation> <translation>Stile</translation>
</message> </message>
<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> <source>Theme color</source>
<translation>Colore</translation> <translation>Colore</translation>
</message> </message>
<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> <source>Emoticon size</source>
<translation>Dimensione emoticons</translation> <translation>Dimensione emoticons</translation>
</message> </message>
<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> <source> px</source>
<translation> px</translation> <translation> px</translation>
</message> </message>
<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> <source>Timestamp format</source>
<translation>Formato data/ora</translation> <translation>Formato data/ora</translation>
</message> </message>
<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> <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> <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> <translation>Disabilitando questo sarà possibile usare qTox con Tor. Tuttavia verrà aggiunto carico alla rete Tox, quindi disabilitare solo se necessario.</translation>
</message> </message>
<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> <source>Enable UDP (recommended)</source>
<extracomment>Text on checkbox to disable UDP</extracomment> <extracomment>Text on checkbox to disable UDP</extracomment>
<translation>Abilita UDP (consigliato)</translation> <translation>Abilita UDP (consigliato)</translation>
</message> </message>
<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> <source>Use proxy (SOCKS5)</source>
<translation>Usa proxy (SOCKS5)</translation> <translation>Usa proxy (SOCKS5)</translation>
</message> </message>
<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> <source>Address</source>
<extracomment>Text on proxy addr label</extracomment> <extracomment>Text on proxy addr label</extracomment>
<translation>IP</translation> <translation>IP</translation>
</message> </message>
<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> <source>Port</source>
<extracomment>Text on proxy port label</extracomment> <extracomment>Text on proxy port label</extracomment>
<translation>Porta</translation> <translation>Porta</translation>
</message> </message>
<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> <source>Reconnect</source>
<comment>reconnect button</comment> <comment>reconnect button</comment>
<translation>Riconnetti</translation> <translation>Riconnetti</translation>
@ -771,7 +771,7 @@ Soprannome:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="149"/> <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> <source>Save chat log</source>
<translation>Salva il log della chat</translation> <translation>Salva il log della chat</translation>
</message> </message>
@ -781,7 +781,7 @@ Soprannome:</translation>
<translation>Rimuovi messaggi visualizzati</translation> <translation>Rimuovi messaggi visualizzati</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/form/genericchatform.cpp" line="290"/> <location filename="../src/widget/form/genericchatform.cpp" line="296"/>
<source>Cleared</source> <source>Cleared</source>
<translation>Pulito</translation> <translation>Pulito</translation>
</message> </message>
@ -1417,134 +1417,134 @@ Verrà installata al riavvio del programma.</translation>
<translation>Cambia stato in:</translation> <translation>Cambia stato in:</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="173"/> <location filename="../src/widget/widget.cpp" line="174"/>
<source>Online</source> <source>Online</source>
<comment>Button to set your status to &apos;Online&apos;</comment> <comment>Button to set your status to &apos;Online&apos;</comment>
<translation>Online</translation> <translation>Online</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="175"/> <location filename="../src/widget/widget.cpp" line="176"/>
<source>Away</source> <source>Away</source>
<comment>Button to set your status to &apos;Away&apos;</comment> <comment>Button to set your status to &apos;Away&apos;</comment>
<translation>Assente</translation> <translation>Assente</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="177"/> <location filename="../src/widget/widget.cpp" line="178"/>
<source>Busy</source> <source>Busy</source>
<comment>Button to set your status to &apos;Busy&apos;</comment> <comment>Button to set your status to &apos;Busy&apos;</comment>
<translation>Occupato</translation> <translation>Occupato</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="431"/> <location filename="../src/widget/widget.cpp" line="430"/>
<source>Choose a profile</source> <source>Choose a profile</source>
<translation>Scegli un profilo</translation> <translation>Scegli un profilo</translation>
</message> </message>
<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> <source>Please choose which identity to use</source>
<translation>Per favore scegli quale identità usare</translation> <translation>Per favore scegli quale identità usare</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="453"/> <location filename="../src/widget/widget.cpp" line="452"/>
<source>Choose a profile picture</source> <source>Choose a profile picture</source>
<translation>Scegli un&apos;immagine per il profilo</translation> <translation>Scegli un&apos;immagine per il profilo</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="460"/> <location filename="../src/widget/widget.cpp" line="459"/>
<location filename="../src/widget/widget.cpp" line="467"/> <location filename="../src/widget/widget.cpp" line="466"/>
<location filename="../src/widget/widget.cpp" line="488"/> <location filename="../src/widget/widget.cpp" line="487"/>
<source>Error</source> <source>Error</source>
<translation>Errore</translation> <translation>Errore</translation>
</message> </message>
<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> <source>Unable to open this file</source>
<translation>Impossibile aprire il file</translation> <translation>Impossibile aprire il file</translation>
</message> </message>
<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> <source>Unable to read this image</source>
<translation>Impossibile leggere l&apos;immagine</translation> <translation>Impossibile leggere l&apos;immagine</translation>
</message> </message>
<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> <source>This image is too big</source>
<translation>L&apos;immagine è troppo grande</translation> <translation>L&apos;immagine è troppo grande</translation>
</message> </message>
<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> <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> <translation>Impossibile avviare Toxcore.\nqTox terminerà dopo che avrai chiuso questo messaggio.</translation>
</message> </message>
<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> <source>toxcore failed to start with your proxy settings. qTox cannot run; please modify your settings and restart.</source>
<comment>popup text</comment> <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> <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>
<message> <message>
<location filename="../src/widget/widget.cpp" line="576"/> <location filename="../src/widget/widget.cpp" line="575"/>
<source>Add friend</source> <source>Add friend</source>
<translation>Aggiungi contatto</translation> <translation>Aggiungi contatto</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="588"/> <location filename="../src/widget/widget.cpp" line="587"/>
<source>File transfers</source> <source>File transfers</source>
<translation>Files trasferiti</translation> <translation>Files trasferiti</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="616"/> <location filename="../src/widget/widget.cpp" line="615"/>
<source>Settings</source> <source>Settings</source>
<translation>Impostazioni</translation> <translation>Impostazioni</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="716"/> <location filename="../src/widget/widget.cpp" line="715"/>
<source>Couldn&apos;t request friendship</source> <source>Couldn&apos;t request friendship</source>
<translation>Impossibile inviare la richiesta d&apos;amicizia</translation> <translation>Impossibile inviare la richiesta d&apos;amicizia</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="744"/> <location filename="../src/widget/widget.cpp" line="743"/>
<source>away</source> <source>away</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>assente</translation> <translation>assente</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="746"/> <location filename="../src/widget/widget.cpp" line="745"/>
<source>busy</source> <source>busy</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>occupato</translation> <translation>occupato</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="748"/> <location filename="../src/widget/widget.cpp" line="747"/>
<source>offline</source> <source>offline</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>offline</translation> <translation>offline</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="750"/> <location filename="../src/widget/widget.cpp" line="749"/>
<source>online</source> <source>online</source>
<comment>contact status</comment> <comment>contact status</comment>
<translation>online</translation> <translation>online</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="753"/> <location filename="../src/widget/widget.cpp" line="752"/>
<source>%1 is now %2</source> <source>%1 is now %2</source>
<comment>e.g. &quot;Dubslow is now online&quot;</comment> <comment>e.g. &quot;Dubslow is now online&quot;</comment>
<translation>%1 è ora %2</translation> <translation>%1 è ora %2</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="990"/> <location filename="../src/widget/widget.cpp" line="989"/>
<source>&lt;Unknown&gt;</source> <source>&lt;Unknown&gt;</source>
<comment>Placeholder when we don&apos;t know someone&apos;s name in a group chat</comment> <comment>Placeholder when we don&apos;t know someone&apos;s name in a group chat</comment>
<translation>&lt;Sconosciuto&gt;</translation> <translation>&lt;Sconosciuto&gt;</translation>
</message> </message>
<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> <source>%1 has set the title to %2</source>
<translation>%1 ha impostato il titolo in %2</translation> <translation>%1 ha impostato il titolo in %2</translation>
</message> </message>
<message> <message>
<location filename="../src/widget/widget.cpp" line="1166"/> <location filename="../src/widget/widget.cpp" line="1165"/>
<source>Message failed to send</source> <source>Message failed to send</source>
<translation>Impossibile inviare il messaggio</translation> <translation>Impossibile inviare il messaggio</translation>
</message> </message>

Loading…
Cancel
Save