diff --git a/INSTALL.md b/INSTALL.md
index 49fbb8b..4e96a30 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -3,10 +3,6 @@
* [OS X Notes](#deps_osx)
* [Compiling](#compiling)
* [Documentation](#docs)
-* [Translating](#langs)
- * [Create new translation 1: PO file](#new_lang_1)
- * [Create new translation 2: MO file](#new_lang_2)
- * [Update existing translation](#upd_lang)
* [Notes](#notes)
* [Compilation variables](#comp_vars)
* [Packaging](#packaging)
@@ -24,23 +20,20 @@
| [OpenALUT](http://openal.org) | SOUND NOTIFICATIONS | libalut-dev |
| [LibNotify](https://developer.gnome.org/libnotify) | DESKTOP NOTIFICATIONS | libnotify-dev |
| [AsciiDoc](http://asciidoc.org/index.html) | DOCUMENTATION1 | asciidoc |
-| [Gettext](https://www.gnu.org/software/gettext) | LOCALIZATION2 | gettext |
-1: see [Documentation](#docs)
-2: see [Translating](#langs)
+1: see [Documentation](#docs)
#### OS X Notes
Using [Homebrew](http://brew.sh):
```
-brew install openal-soft freealut libconfig gettext
+brew install openal-soft freealut libconfig
brew install https://raw.githubusercontent.com/Tox/homebrew-tox/master/Formula/libtoxcore.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-x11/master/libnotify.rb
-brew link gettext
```
You can omit `libnotify` if you intend to build without desktop notifications enabled.
-
+
## Compiling
```
make PREFIX="/where/to/install"
@@ -53,45 +46,6 @@ Run `make doc` in the build directory after editing the asciidoc files to regene
**NOTE FOR DEVELOPERS**: asciidoc files and generated manpages will need to be commited together.
**NOTE FOR EVERYONE**: [asciidoc](http://asciidoc.org/index.html) (and this step) is only required for regenerating manpages when you modify them.
-
-## Translating
-Toxic uses gettext to localize some strings in various languages.
-These notes are for people who want help translating toxic in new languages (or improve an existing translation).
-The following example shows how to create/update german translation (de).
-
-
-#### Create new translation 1: PO file
-To start a new translation, you can use the [provided script](translations/tools/create_po.sh):
-```
-cd toxic-src/translations/tools
-./create_po.sh
-Insert locale to create (for example "en"): de
-Created de.po.
-```
-Now you can proceed to translate `toxic-src/translations/de.po`.
-
-
-#### Create new translation 2: MO file
-When you fully translated the PO file, you are ready to create the MO (Machine Object) file.
-Again you can use the [provided script](translations/tools/create_mo.sh) to achieve this:
-```
-cd toxic-src/translations/tools
-./create_mo.sh
-Insert locale (for example "en"): de
-```
-
-
-#### Update existing translation
-When the toxic sources are updated, you probably need to update your translation as well.
-To do so use the [provided script](translations/tools/update_po.sh) to update the PO file:
-```
-cd toxic-src/translations/tools
-./update_po.sh
-Insert locale to update (for example "en"): de
-..................................... done.
-```
-Then you need to translate new/changed strings and after you fully updated the PO file, create the MO file as described [above](#new_lang_2).
-
## Notes
@@ -104,7 +58,6 @@ Then you need to translate new/changed strings and after you fully updated the P
* `DISABLE_AV=1` → build toxic without audio call support
* `DISABLE_SOUND_NOTIFY=1` → build toxic without sound notifications support
* `DISABLE_DESKTOP_NOTIFY=1` → build toxic without desktop notifications support
- * `DISABLE_LOCALIZATION=1` → build toxic without localization support
#### Packaging
diff --git a/README.md b/README.md
index 7861d74..dd78dae 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# Toxic [![Build Status](https://travis-ci.org/Tox/toxic.png?branch=master)](https://travis-ci.org/Tox/toxic)
-Toxic is a [Tox](https://tox.chat)-based instant messenging client which formerly resided in the [Tox core repository](https://github.com/irungentoo/toxcore), and is now available as a standalone application.
+Toxic is a [Tox](https://tox.im)-based instant messenging client which formerly resided in the [Tox core repository](https://github.com/irungentoo/toxcore), and is now available as a standalone application.
[![Toxic Screenshot](https://i.imgur.com/san99Z2.png "Home Screen")](https://i.imgur.com/san99Z2.png)
## Installation
-[Use our repositories](https://wiki.tox.chat/Binaries#Linux)
+[Use our repositories](https://wiki.tox.im/Binaries#Linux)
[Compile it yourself](/INSTALL.md)
## Downloads
diff --git a/cfg/checks/check_features.mk b/cfg/checks/check_features.mk
index d6bcc57..430d1af 100644
--- a/cfg/checks/check_features.mk
+++ b/cfg/checks/check_features.mk
@@ -24,12 +24,6 @@ ifneq ($(DESK_NOTIFY), disabled)
-include $(CHECKS_DIR)/desktop_notifications.mk
endif
-# Check if we want build localization support
-LOCALIZATION = $(shell if [ -z "$(DISABLE_LOCALIZATION)" ] || [ "$(DISABLE_LOCALIZATION)" = "0" ] ; then echo enabled ; else echo disabled ; fi)
-ifneq ($(LOCALIZATION), enabled)
- CFLAGS += -DNO_GETTEXT
-endif
-
# Check if we can build Toxic
CHECK_LIBS = $(shell pkg-config --exists $(LIBS) || echo -n "error")
ifneq ($(CHECK_LIBS), error)
diff --git a/cfg/global_vars.mk b/cfg/global_vars.mk
index 5d4a14c..d5c7b57 100644
--- a/cfg/global_vars.mk
+++ b/cfg/global_vars.mk
@@ -13,7 +13,6 @@ DOC_DIR = $(BASE_DIR)/doc
SRC_DIR = $(BASE_DIR)/src
SND_DIR = $(BASE_DIR)/sounds
MISC_DIR = $(BASE_DIR)/misc
-TRANSLATIONS_DIR = $(BASE_DIR)/translations
# Project files
MANFILES = toxic.1 toxic.conf.5
@@ -23,13 +22,9 @@ SNDFILES = ToxicContactOnline.wav ToxicContactOffline.wav ToxicError.wav
SNDFILES += ToxicRecvMessage.wav ToxicOutgoingCall.wav ToxicIncomingCall.wav
SNDFILES += ToxicTransferComplete.wav ToxicTransferStart.wav
-# Available languages (sorted alphabetically)
-LANGS = en it
-
# Install directories
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
DATADIR = $(PREFIX)/share/toxic
MANDIR = $(PREFIX)/share/man
APPDIR = $(PREFIX)/share/applications
-LOCALEDIR = ${PREFIX}/share/locale
diff --git a/cfg/systems/Darwin.mk b/cfg/systems/Darwin.mk
index b4c82ad..f33a4be 100644
--- a/cfg/systems/Darwin.mk
+++ b/cfg/systems/Darwin.mk
@@ -8,9 +8,3 @@ LIBS := $(filter-out ncursesw, $(LIBS))
# OS X ships a usable, recent version of ncurses, but calls it ncurses not ncursesw.
LDFLAGS += -lncurses -lalut -ltoxav -ltoxcore -ltoxdns -lresolv -lconfig -ltoxencryptsave -g
CFLAGS += -I/usr/local/opt/freealut/include/AL -I/usr/local/opt/glib/include/glib-2.0 -g
-
-# Check if we want build localization support
-LOCALIZATION = $(shell if [ -z "$(DISABLE_LOCALIZATION)" ] || [ "$(DISABLE_LOCALIZATION)" = "0" ] ; then echo enabled ; else echo disabled ; fi)
-ifneq ($(LOCALIZATION), disabled)
- LDFLAGS += -lintl
-endif
diff --git a/cfg/targets/help.mk b/cfg/targets/help.mk
index 4946b00..fba1c8f 100644
--- a/cfg/targets/help.mk
+++ b/cfg/targets/help.mk
@@ -14,7 +14,6 @@ help:
@echo " DISABLE_AV: Set to \"1\" to force building without audio call support"
@echo " DISABLE_SOUND_NOTIFY: Set to \"1\" to force building without sound notification support"
@echo " DISABLE_DESKTOP_NOTIFY: Set to \"1\" to force building without desktop notifications support"
- @echo " DISABLE_LOCALIZATION: Set to \"1\" to force building without localization support"
@echo " USER_CFLAGS: Add custom flags to default CFLAGS"
@echo " USER_LDFLAGS: Add custom flags to default LDFLAGS"
@echo " PREFIX: Specify a prefix directory for binaries, data files,... (default is \"$(abspath $(PREFIX))\")"
diff --git a/cfg/targets/install.mk b/cfg/targets/install.mk
index 3f9bf47..12050ff 100644
--- a/cfg/targets/install.mk
+++ b/cfg/targets/install.mk
@@ -8,17 +8,6 @@ install: $(BUILD_DIR)/toxic
@mkdir -p $(abspath $(DESTDIR)/$(APPDIR))
@install -m 0644 $(MISC_DIR)/$(DESKFILE) $(abspath $(DESTDIR)/$(APPDIR)/$(DESKFILE))
- @if [ -z "$(DISABLE_LOCALIZATION)" -o "$(DISABLE_LOCALIZATION)" = "0" ]; then \
- echo "Installing translations" ; \
- for i in $(LANGS) ; do \
- if [ ! -e $(TRANSLATIONS_DIR)/$$i.mo ]; then \
- continue ; \
- fi ; \
- mkdir -p $(abspath $(DESTDIR)/$(LOCALEDIR)/$$i/LC_MESSAGES) ; \
- install -m 0644 $(TRANSLATIONS_DIR)/$$i.mo $(abspath $(DESTDIR)/$(LOCALEDIR)/$$i/LC_MESSAGES/toxic.mo) ; \
- done ; \
- fi
-
@echo "Installing data files"
@mkdir -p $(abspath $(DESTDIR)/$(DATADIR))
@for f in $(DATAFILES) ; do \
diff --git a/src/audio_call.c b/src/audio_call.c
index 274b5bb..54b865b 100644
--- a/src/audio_call.c
+++ b/src/audio_call.c
@@ -37,12 +37,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#ifdef __APPLE__
#include
#include
@@ -130,7 +124,7 @@ ToxAv *init_audio(ToxWindow *self, Tox *tox)
}
if ( init_devices(ASettins.av) == de_InternalError ) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to init devices"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to init devices");
toxav_kill(ASettins.av);
return ASettins.av = NULL;
}
@@ -173,7 +167,7 @@ void read_device_callback (const int16_t* captured, uint32_t size, void* data)
uint8_t encoded_payload[RTP_PAYLOAD_SIZE];
int32_t payload_size = toxav_prepare_audio_frame(ASettins.av, call_index, encoded_payload, RTP_PAYLOAD_SIZE, captured, size);
if ( payload_size <= 0 || toxav_send_audio(ASettins.av, call_index, encoded_payload, payload_size) < 0 ) {
- /*fprintf(stderr, gettext("Could not encode audio packet\n"));*/
+ /*fprintf(stderr, "Could not encode audio packet\n");*/
}
}
@@ -192,13 +186,13 @@ void write_device_callback(void *agent, int32_t call_index, const int16_t* PCM,
int start_transmission(ToxWindow *self, Call *call)
{
if ( !self || !ASettins.av || self->call_idx == -1 ) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Could not prepare transmission"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Could not prepare transmission");
return -1;
}
/* Don't provide support for video */
if ( 0 != toxav_prepare_transmission(ASettins.av, self->call_idx, 0) ) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Could not prepare transmission"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Could not prepare transmission");
return -1;
}
@@ -214,16 +208,16 @@ int start_transmission(ToxWindow *self, Call *call)
if ( open_primary_device(input, &call->in_idx,
csettings.audio_sample_rate, csettings.audio_frame_duration, csettings.audio_channels) != de_None )
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to open input device!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to open input device!");
if ( register_device_callback(self->call_idx, call->in_idx,
read_device_callback, &self->call_idx, true) != de_None)
/* Set VAD as true for all; TODO: Make it more dynamic */
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to register input handler!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to register input handler!");
if ( open_primary_device(output, &call->out_idx,
csettings.audio_sample_rate, csettings.audio_frame_duration, csettings.audio_channels) != de_None ) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to open output device!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to open output device!");
call->has_output = 0;
}
@@ -281,7 +275,7 @@ void callback_recv_starting ( void* av, int32_t call_index, void* arg )
if (windows[i].onStarting != NULL && windows[i].call_idx == call_index) {
windows[i].onStarting(&windows[i], ASettins.av, call_index);
if ( 0 != start_transmission(&windows[i], &ASettins.calls[call_index])) {/* YEAH! */
- line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0 , gettext("Error starting transmission!"));
+ line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0 , "Error starting transmission!");
}
return;
}
@@ -300,7 +294,7 @@ void callback_call_started ( void* av, int32_t call_index, void* arg )
if (windows[i].onStart != NULL && windows[i].call_idx == call_index) {
windows[i].onStart(&windows[i], ASettins.av, call_index);
if ( 0 != start_transmission(&windows[i], &ASettins.calls[call_index]) ) {/* YEAH! */
- line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Error starting transmission!"));
+ line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, "Error starting transmission!");
return;
}
}
@@ -354,30 +348,30 @@ void cmd_call(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
const char *error_str;
if (argc != 0) {
- error_str = gettext("Unknown arguments.");
+ error_str = "Unknown arguments.";
goto on_error;
}
if ( !ASettins.av ) {
- error_str = gettext("Audio not supported!");
+ error_str = "Audio not supported!";
goto on_error;
}
if (!self->stb->connection) {
- error_str = gettext("Friend is offline.");
+ error_str = "Friend is offline.";
goto on_error;
}
ToxAvError error = toxav_call(ASettins.av, &self->call_idx, self->num, &ASettins.cs, 30);
if ( error != av_ErrorNone ) {
- if ( error == av_ErrorAlreadyInCallWithPeer ) error_str = gettext("Already in a call!");
- else error_str = gettext("Internal error!");
+ if ( error == av_ErrorAlreadyInCallWithPeer ) error_str = "Already in a call!";
+ else error_str = "Internal error!";
goto on_error;
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Calling... idx: %d"), self->call_idx);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Calling... idx: %d", self->call_idx);
return;
on_error:
@@ -389,21 +383,21 @@ void cmd_answer(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
const char *error_str;
if (argc != 0) {
- error_str = gettext("Unknown arguments.");
+ error_str = "Unknown arguments.";
goto on_error;
}
if ( !ASettins.av ) {
- error_str = gettext("Audio not supported!");
+ error_str = "Audio not supported!";
goto on_error;
}
ToxAvError error = toxav_answer(ASettins.av, self->call_idx, &ASettins.cs);
if ( error != av_ErrorNone ) {
- if ( error == av_ErrorInvalidState ) error_str = gettext("Cannot answer in invalid state!");
- else if ( error == av_ErrorNoCall ) error_str = gettext("No incoming call!");
- else error_str = gettext("Internal error!");
+ if ( error == av_ErrorInvalidState ) error_str = "Cannot answer in invalid state!";
+ else if ( error == av_ErrorNoCall ) error_str = "No incoming call!";
+ else error_str = "Internal error!";
goto on_error;
}
@@ -420,21 +414,21 @@ void cmd_reject(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
const char *error_str;
if (argc != 0) {
- error_str = gettext("Unknown arguments.");
+ error_str = "Unknown arguments.";
goto on_error;
}
if ( !ASettins.av ) {
- error_str = gettext("Audio not supported!");
+ error_str = "Audio not supported!";
goto on_error;
}
- ToxAvError error = toxav_reject(ASettins.av, self->call_idx, gettext("Why not?"));
+ ToxAvError error = toxav_reject(ASettins.av, self->call_idx, "Why not?");
if ( error != av_ErrorNone ) {
- if ( error == av_ErrorInvalidState ) error_str = gettext("Cannot reject in invalid state!");
- else if ( error == av_ErrorNoCall ) error_str = gettext("No incoming call!");
- else error_str = gettext("Internal error!");
+ if ( error == av_ErrorInvalidState ) error_str = "Cannot reject in invalid state!";
+ else if ( error == av_ErrorNoCall ) error_str = "No incoming call!";
+ else error_str = "Internal error!";
goto on_error;
}
@@ -451,12 +445,12 @@ void cmd_hangup(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
const char *error_str;
if (argc != 0) {
- error_str = gettext("Unknown arguments.");
+ error_str = "Unknown arguments.";
goto on_error;
}
if ( !ASettins.av ) {
- error_str = gettext("Audio not supported!");
+ error_str = "Audio not supported!";
goto on_error;
}
@@ -464,19 +458,19 @@ void cmd_hangup(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
if (toxav_get_call_state(ASettins.av, self->call_idx) == av_CallInviting) {
error = toxav_cancel(ASettins.av, self->call_idx, self->num,
- gettext("Only those who appreciate small things know the beauty that is life"));
+ "Only those who appreciate small things know the beauty that is life");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
#endif
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call canceled!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
} else {
error = toxav_hangup(ASettins.av, self->call_idx);
}
if ( error != av_ErrorNone ) {
- if ( error == av_ErrorInvalidState ) error_str = gettext("Cannot hangup in invalid state!");
- else if ( error == av_ErrorNoCall ) error_str = gettext("No call!");
- else error_str = gettext("Internal error!");
+ if ( error == av_ErrorInvalidState ) error_str = "Cannot hangup in invalid state!";
+ else if ( error == av_ErrorNoCall ) error_str = "No call!";
+ else error_str = "Internal error!";
goto on_error;
}
@@ -491,8 +485,8 @@ void cmd_list_devices(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*
const char *error_str;
if ( argc != 1 ) {
- if ( argc < 1 ) error_str = gettext("Type must be specified!");
- else error_str = gettext("Only one argument allowed!");
+ if ( argc < 1 ) error_str = "Type must be specified!";
+ else error_str = "Only one argument allowed!";
goto on_error;
}
@@ -506,7 +500,7 @@ void cmd_list_devices(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*
type = output;
else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid type: %s"), argv[1]);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid type: %s", argv[1]);
return;
}
@@ -523,9 +517,9 @@ void cmd_change_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (
const char *error_str;
if ( argc != 2 ) {
- if ( argc < 1 ) error_str = gettext("Type must be specified!");
- else if ( argc < 2 ) error_str = gettext("Must have id!");
- else error_str = gettext("Only two arguments allowed!");
+ if ( argc < 1 ) error_str = "Type must be specified!";
+ else if ( argc < 2 ) error_str = "Must have id!";
+ else error_str = "Only two arguments allowed!";
goto on_error;
}
@@ -539,7 +533,7 @@ void cmd_change_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (
type = output;
else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid type: %s"), argv[1]);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid type: %s", argv[1]);
return;
}
@@ -548,12 +542,12 @@ void cmd_change_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (
long int selection = strtol(argv[2], &end, 10);
if ( *end ) {
- error_str = gettext("Invalid input");
+ error_str = "Invalid input";
goto on_error;
}
if ( set_primary_device(type, selection) == de_InvalidSelection ) {
- error_str=gettext("Invalid selection!");
+ error_str="Invalid selection!";
goto on_error;
}
@@ -567,9 +561,9 @@ void cmd_ccur_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*a
const char *error_str;
if ( argc != 2 ) {
- if ( argc < 1 ) error_str = gettext("Type must be specified!");
- else if ( argc < 2 ) error_str = gettext("Must have id!");
- else error_str = gettext("Only two arguments allowed!");
+ if ( argc < 1 ) error_str = "Type must be specified!";
+ else if ( argc < 2 ) error_str = "Must have id!";
+ else error_str = "Only two arguments allowed!";
goto on_error;
}
@@ -583,7 +577,7 @@ void cmd_ccur_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*a
type = output;
else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid type: %s"), argv[1]);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid type: %s", argv[1]);
return;
}
@@ -592,12 +586,12 @@ void cmd_ccur_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*a
long int selection = strtol(argv[2], &end, 10);
if ( *end ) {
- error_str = gettext("Invalid input");
+ error_str = "Invalid input";
goto on_error;
}
if ( selection_valid(type, selection) == de_InvalidSelection ) {
- error_str=gettext("Invalid selection!");
+ error_str="Invalid selection!";
goto on_error;
}
@@ -640,8 +634,8 @@ void cmd_mute(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
const char *error_str;
if ( argc != 1 ) {
- if ( argc < 1 ) error_str = gettext("Type must be specified!");
- else error_str = gettext("Only two arguments allowed!");
+ if ( argc < 1 ) error_str = "Type must be specified!";
+ else error_str = "Only two arguments allowed!";
goto on_error;
}
@@ -655,7 +649,7 @@ void cmd_mute(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
type = output;
else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid type: %s"), argv[1]);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid type: %s", argv[1]);
return;
}
@@ -686,8 +680,8 @@ void cmd_sense(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[M
const char *error_str;
if ( argc != 1 ) {
- if ( argc < 1 ) error_str = gettext("Must have value!");
- else error_str = gettext("Only two arguments allowed!");
+ if ( argc < 1 ) error_str = "Must have value!";
+ else error_str = "Only two arguments allowed!";
goto on_error;
}
@@ -696,7 +690,7 @@ void cmd_sense(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[M
float value = strtof(argv[1], &end);
if ( *end ) {
- error_str = gettext("Invalid input");
+ error_str = "Invalid input";
goto on_error;
}
@@ -725,10 +719,10 @@ void stop_current_call(ToxWindow* self)
toxav_hangup(ASettins.av, self->call_idx);
break;
case av_CallInviting:
- toxav_cancel(ASettins.av, self->call_idx, 0, gettext("Not interested anymore"));
+ toxav_cancel(ASettins.av, self->call_idx, 0, "Not interested anymore");
break;
case av_CallStarting:
- toxav_reject(ASettins.av, self->call_idx, gettext("Not interested"));
+ toxav_reject(ASettins.av, self->call_idx, "Not interested");
break;
default:
break;
diff --git a/src/autocomplete.c b/src/autocomplete.c
index c500a03..8cf703c 100644
--- a/src/autocomplete.c
+++ b/src/autocomplete.c
@@ -24,12 +24,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#ifdef __APPLE__
#include
#include
@@ -123,7 +117,7 @@ int complete_line(ToxWindow *self, const void *list, int n_items, int size)
char *sub = malloc(strlen(ubuf) + 1);
if (sub == NULL)
- exit_toxic_err(gettext("failed in complete_line"), FATALERR_MEMORY);
+ exit_toxic_err("failed in complete_line", FATALERR_MEMORY);
if (!s && !dir_search) {
strcpy(sub, tmp);
diff --git a/src/avatars.c b/src/avatars.c
index d9c621a..a17c3be 100644
--- a/src/avatars.c
+++ b/src/avatars.c
@@ -24,12 +24,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "misc_tools.h"
#include "file_transfers.h"
#include "friendlist.h"
@@ -65,7 +59,7 @@ int avatar_send(Tox *m, uint32_t friendnum)
return 0;
if (err != TOX_ERR_FILE_SEND_OK) {
- fprintf(stderr, gettext("tox_file_send failed for friendnumber %d (error %d)\n"), friendnum, err);
+ fprintf(stderr, "tox_file_send failed for friendnumber %d (error %d)\n", friendnum, err);
return -1;
}
@@ -209,7 +203,7 @@ void on_avatar_chunk_request(Tox *m, struct FileTransfer *ft, uint64_t position,
tox_file_send_chunk(m, ft->friendnum, ft->filenum, position, send_data, send_length, &err);
if (err != TOX_ERR_FILE_SEND_CHUNK_OK)
- fprintf(stderr, gettext("tox_file_send_chunk failed in avatar callback (error %d)\n"), err);
+ fprintf(stderr, "tox_file_send_chunk failed in avatar callback (error %d)\n", err);
ft->position += send_length;
}
diff --git a/src/chat.c b/src/chat.c
index 4c8bbc7..f41958d 100644
--- a/src/chat.c
+++ b/src/chat.c
@@ -31,12 +31,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "execute.h"
@@ -53,9 +47,6 @@
#include "notify.h"
#include "message_queue.h"
-#define YES_STR gettext("yes")
-#define NO_STR gettext("no")
-
#ifdef AUDIO
#include "audio_call.h"
#endif /* AUDIO */
@@ -220,7 +211,7 @@ static void chat_onConnectionChange(ToxWindow *self, Tox *m, uint32_t num, TOX_C
? tox_friend_get_typing(m, num, NULL) : false;
chat_resume_file_transfers(m, num);
- msg = gettext("has come online");
+ msg = "has come online";
line_info_add(self, timefrmt, nick, NULL, CONNECTION, 0, GREEN, msg);
write_to_log(msg, nick, ctx->log, true);
} else if (connection_status == TOX_CONNECTION_NONE) {
@@ -231,7 +222,7 @@ static void chat_onConnectionChange(ToxWindow *self, Tox *m, uint32_t num, TOX_C
chat_stop_file_senders(m, num);
- msg = gettext("has gone offline");
+ msg = "has gone offline";
line_info_add(self, timefrmt, nick, NULL, DISCONNECTION, 0, RED, msg);
write_to_log(msg, nick, ctx->log, true);
}
@@ -316,21 +307,21 @@ static void chat_onFileChunkRequest(ToxWindow *self, Tox *m, uint32_t friendnum,
char msg[MAX_STR_SIZE];
if (length == 0) {
- snprintf(msg, sizeof(msg), gettext("File '%s' successfully sent."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File '%s' successfully sent.", ft->file_name);
print_progress_bar(self, ft->bps, 100.0, ft->line_id);
close_file_transfer(self, m, ft, -1, msg, transfer_completed);
return;
}
if (ft->file == NULL) {
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' failed: Null file pointer."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' failed: Null file pointer.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
if (ft->position != position) {
if (fseek(ft->file, position, SEEK_SET) == -1) {
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' failed: Seek fail."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' failed: Seek fail.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
@@ -342,7 +333,7 @@ static void chat_onFileChunkRequest(ToxWindow *self, Tox *m, uint32_t friendnum,
size_t send_length = fread(send_data, 1, sizeof(send_data), ft->file);
if (send_length != length) {
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' failed: Read fail."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' failed: Read fail.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
@@ -351,7 +342,7 @@ static void chat_onFileChunkRequest(ToxWindow *self, Tox *m, uint32_t friendnum,
tox_file_send_chunk(m, ft->friendnum, ft->filenum, position, send_data, send_length, &err);
if (err != TOX_ERR_FILE_SEND_CHUNK_OK)
- fprintf(stderr, gettext("tox_file_send_chunk failed in chat callback (error %d)\n"), err);
+ fprintf(stderr, "tox_file_send_chunk failed in chat callback (error %d)\n", err);
ft->position += send_length;
ft->bps += send_length;
@@ -374,20 +365,20 @@ static void chat_onFileRecvChunk(ToxWindow *self, Tox *m, uint32_t friendnum, ui
char msg[MAX_STR_SIZE];
if (length == 0) {
- snprintf(msg, sizeof(msg), gettext("File '%s' successfully received."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File '%s' successfully received.", ft->file_name);
print_progress_bar(self, ft->bps, 100.0, ft->line_id);
close_file_transfer(self, m, ft, -1, msg, transfer_completed);
return;
}
if (ft->file == NULL) {
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' failed: Invalid file pointer."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' failed: Invalid file pointer.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
if (fwrite(data, length, 1, ft->file) != 1) {
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' failed: Write fail."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' failed: Write fail.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
@@ -413,7 +404,7 @@ static void chat_onFileControl(ToxWindow *self, Tox *m, uint32_t friendnum, uint
/* transfer is accepted */
if (ft->state == FILE_TRANSFER_PENDING) {
ft->state = FILE_TRANSFER_STARTED;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer [%d] for '%s' accepted."),
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer [%d] for '%s' accepted.",
ft->index, ft->file_name);
char progline[MAX_STR_SIZE];
prep_prog_line(progline);
@@ -431,7 +422,7 @@ static void chat_onFileControl(ToxWindow *self, Tox *m, uint32_t friendnum, uint
break;
case TOX_FILE_CONTROL_CANCEL:
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' was aborted."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' was aborted.", ft->file_name);
close_file_transfer(self, m, ft, -1, msg, notif_error);
break;
}
@@ -447,13 +438,13 @@ static void chat_onFileRecv(ToxWindow *self, Tox *m, uint32_t friendnum, uint32_
if (!ft) {
tox_file_control(m, friendnum, filenum, TOX_FILE_CONTROL_CANCEL, NULL);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: Too many concurrent file transfers."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: Too many concurrent file transfers.");
return;
}
char sizestr[32];
bytes_convert_str(sizestr, sizeof(sizestr), file_size);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer request for '%s' (%s)"), filename, sizestr);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer request for '%s' (%s)", filename, sizestr);
char file_path[MAX_STR_SIZE];
size_t path_len = name_length;
@@ -468,7 +459,7 @@ static void chat_onFileRecv(ToxWindow *self, Tox *m, uint32_t friendnum, uint32_
if (path_len >= sizeof(ft->file_path) || name_length >= sizeof(ft->file_name)) {
tox_file_control(m, friendnum, filenum, TOX_FILE_CONTROL_CANCEL, NULL);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer faield: File path too long."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer faield: File path too long.");
return;
}
@@ -494,12 +485,12 @@ static void chat_onFileRecv(ToxWindow *self, Tox *m, uint32_t friendnum, uint32_
if (count > 999) {
tox_file_control(m, friendnum, filenum, TOX_FILE_CONTROL_CANCEL, NULL);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: invalid file path."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: invalid file path.");
return;
}
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Type '%s %d' to accept the file transfer."), "/savefile", ft->index);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type '/savefile %d' to accept the file transfer.", ft->index);
ft->state = FILE_TRANSFER_PENDING;
ft->direction = FILE_TRANSFER_RECV;
@@ -512,10 +503,10 @@ static void chat_onFileRecv(ToxWindow *self, Tox *m, uint32_t friendnum, uint32_
if (self->active_box != -1)
box_notify2(self, transfer_pending, NT_WNDALERT_0 | NT_NOFOCUS, self->active_box,
- gettext("Incoming file: %s"), filename );
+ "Incoming file: %s", filename );
else
box_notify(self, transfer_pending, NT_WNDALERT_0 | NT_NOFOCUS, &self->active_box, self->name,
- gettext("Incoming file: %s"), filename );
+ "Incoming file: %s", filename );
}
static void chat_onGroupInvite(ToxWindow *self, Tox *m, int32_t friendnumber, uint8_t type, const char *group_pub_key,
@@ -530,7 +521,7 @@ static void chat_onGroupInvite(ToxWindow *self, Tox *m, int32_t friendnumber, ui
char *k = malloc(length);
if (k == NULL)
- exit_toxic_err(gettext("Failed in chat_onGroupInvite"), FATALERR_MEMORY);
+ exit_toxic_err("Failed in chat_onGroupInvite", FATALERR_MEMORY);
memcpy(k, group_pub_key, length);
Friends.list[friendnumber].group_invite.key = k;
@@ -544,12 +535,12 @@ static void chat_onGroupInvite(ToxWindow *self, Tox *m, int32_t friendnumber, ui
get_nick_truncate(m, name, friendnumber);
if (self->active_box != -1)
- box_silent_notify2(self, NT_WNDALERT_2 | NT_NOFOCUS, self->active_box, gettext("invites you to join group chat"));
+ box_silent_notify2(self, NT_WNDALERT_2 | NT_NOFOCUS, self->active_box, "invites you to join group chat");
else
- box_silent_notify(self, NT_WNDALERT_2 | NT_NOFOCUS, &self->active_box, name, gettext("invites you to join group chat"));
+ box_silent_notify(self, NT_WNDALERT_2 | NT_NOFOCUS, &self->active_box, name, "invites you to join group chat");
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("%s has invited you to a group chat."), name);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Type \"%s\" to join the chat."), "/join");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "%s has invited you to a group chat.", name);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type \"/join\" to join the chat.");
}
/* Av Stuff */
@@ -563,16 +554,16 @@ void chat_onInvite (ToxWindow *self, ToxAv *av, int call_index)
/* call_index is set here and reset on call end */
self->call_idx = call_index;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Incoming audio call! Type: \"%s\" or \"%s\""), "/answer", "/reject");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Incoming audio call! Type: \"/answer\" or \"/reject\"");
if (self->ringing_sound == -1)
sound_notify(self, call_incoming, NT_LOOP, &self->ringing_sound);
if (self->active_box != -1)
- box_silent_notify2(self, NT_NOFOCUS | NT_WNDALERT_0, self->active_box, gettext("Incoming audio call!"));
+ box_silent_notify2(self, NT_NOFOCUS | NT_WNDALERT_0, self->active_box, "Incoming audio call!");
else
- box_silent_notify(self, NT_NOFOCUS | NT_WNDALERT_0, &self->active_box, self->name, gettext("Incoming audio call!"));
+ box_silent_notify(self, NT_NOFOCUS | NT_WNDALERT_0, &self->active_box, self->name, "Incoming audio call!");
}
void chat_onRinging (ToxWindow *self, ToxAv *av, int call_index)
@@ -580,7 +571,7 @@ void chat_onRinging (ToxWindow *self, ToxAv *av, int call_index)
if ( !self || self->call_idx != call_index || self->num != toxav_get_peer_id(av, call_index, 0))
return;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Ringing...type \"%s\" to cancel it."), "/hangup");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Ringing...type \"/hangup\" to cancel it.");
#ifdef SOUND_NOTIFY
if (self->ringing_sound == -1)
@@ -595,7 +586,7 @@ void chat_onStarting (ToxWindow *self, ToxAv *av, int call_index)
init_infobox(self);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call started! Type: \"%s\" to end it."), "/hangup");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -609,7 +600,7 @@ void chat_onEnding (ToxWindow *self, ToxAv *av, int call_index)
kill_infobox(self);
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call ended!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -622,7 +613,7 @@ void chat_onError (ToxWindow *self, ToxAv *av, int call_index)
return;
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Error!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Error!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -636,7 +627,7 @@ void chat_onStart (ToxWindow *self, ToxAv *av, int call_index)
init_infobox(self);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call started! Type: \"%s\" to end it."), "/hangup");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -650,7 +641,7 @@ void chat_onCancel (ToxWindow *self, ToxAv *av, int call_index)
kill_infobox(self);
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call canceled!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -663,7 +654,7 @@ void chat_onReject (ToxWindow *self, ToxAv *av, int call_index)
return;
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Rejected!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Rejected!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -677,7 +668,7 @@ void chat_onEnd (ToxWindow *self, ToxAv *av, int call_index)
kill_infobox(self);
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call ended!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -690,7 +681,7 @@ void chat_onRequestTimeout (ToxWindow *self, ToxAv *av, int call_index)
return;
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No answer!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No answer!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -704,7 +695,7 @@ void chat_onPeerTimeout (ToxWindow *self, ToxAv *av, int call_index)
kill_infobox(self);
self->call_idx = -1;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Peer disconnected; call ended!"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Peer disconnected; call ended!");
#ifdef SOUND_NOTIFY
stop_sound(self->ringing_sound);
@@ -761,31 +752,31 @@ static void draw_infobox(ToxWindow *self)
infobox->lastupdate = curtime;
- const char *in_is_muted = infobox->in_is_muted ? YES_STR : NO_STR;
- const char *out_is_muted = infobox->out_is_muted ? YES_STR : NO_STR;
+ const char *in_is_muted = infobox->in_is_muted ? "yes" : "no";
+ const char *out_is_muted = infobox->out_is_muted ? "yes" : "no";
wmove(infobox->win, 1, 1);
wattron(infobox->win, COLOR_PAIR(RED) | A_BOLD);
- wprintw(infobox->win, gettext(" Call Active\n"));
+ wprintw(infobox->win, " Call Active\n");
wattroff(infobox->win, COLOR_PAIR(RED) | A_BOLD);
wattron(infobox->win, A_BOLD);
- wprintw(infobox->win, gettext(" Duration: "));
+ wprintw(infobox->win, " Duration: ");
wattroff(infobox->win, A_BOLD);
wprintw(infobox->win, "%s\n", infobox->timestr);
wattron(infobox->win, A_BOLD);
- wprintw(infobox->win, gettext(" In muted: "));
+ wprintw(infobox->win, " In muted: ");
wattroff(infobox->win, A_BOLD);
wprintw(infobox->win, "%s\n", in_is_muted);
wattron(infobox->win, A_BOLD);
- wprintw(infobox->win, gettext(" Out muted: "));
+ wprintw(infobox->win, " Out muted: ");
wattroff(infobox->win, A_BOLD);
wprintw(infobox->win, "%s\n", out_is_muted);
wattron(infobox->win, A_BOLD);
- wprintw(infobox->win, gettext(" VAD level: "));
+ wprintw(infobox->win, " VAD level: ");
wattroff(infobox->win, A_BOLD);
wprintw(infobox->win, "%.2f\n", infobox->vad_lvl);
@@ -1080,7 +1071,7 @@ static void chat_onInit(ToxWindow *self, Tox *m)
ctx->cqueue = calloc(1, sizeof(struct chat_queue));
if (ctx->log == NULL || ctx->hst == NULL || ctx->cqueue == NULL)
- exit_toxic_err(gettext("failed in chat_onInit"), FATALERR_MEMORY);
+ exit_toxic_err("failed in chat_onInit", FATALERR_MEMORY);
line_info_init(ctx->hst);
@@ -1152,7 +1143,7 @@ ToxWindow new_chat(Tox *m, uint32_t friendnum)
Help *help = calloc(1, sizeof(Help));
if (stb == NULL || chatwin == NULL || help == NULL)
- exit_toxic_err(gettext("failed in new_chat"), FATALERR_MEMORY);
+ exit_toxic_err("failed in new_chat", FATALERR_MEMORY);
ret.chatwin = chatwin;
ret.stb = stb;
diff --git a/src/chat_commands.c b/src/chat_commands.c
index 63218e5..3352f47 100644
--- a/src/chat_commands.c
+++ b/src/chat_commands.c
@@ -23,12 +23,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "misc_tools.h"
@@ -45,7 +39,7 @@ extern FriendsList Friends;
void cmd_cancelfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 2) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Requires type %s and the file ID."), "in|out");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Requires type in|out and the file ID.");
return;
}
@@ -54,7 +48,7 @@ void cmd_cancelfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*ar
int idx = atoi(argv[2]);
if (idx >= MAX_FILES || idx < 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid file ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid file ID.");
return;
}
@@ -66,50 +60,50 @@ void cmd_cancelfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*ar
} else if (strcasecmp(inoutstr, "out") == 0) {
ft = get_file_transfer_struct_index(self->num, idx, FILE_TRANSFER_SEND);
} else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Type must be '%s' or '%s'."), "in", "out");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type must be 'in' or 'out'.");
return;
}
if (!ft) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid file ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid file ID.");
return;
}
if (ft->state == FILE_TRANSFER_INACTIVE) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid file ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid file ID.");
return;
}
- snprintf(msg, sizeof(msg), gettext("File transfer for '%s' aborted."), ft->file_name);
+ snprintf(msg, sizeof(msg), "File transfer for '%s' aborted.", ft->file_name);
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, silent);
}
void cmd_groupinvite(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group number required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group number required.");
return;
}
int groupnum = atoi(argv[1]);
if (groupnum == 0 && strcmp(argv[1], "0")) { /* atoi returns 0 value on invalid input */
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid group number."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid group number.");
return;
}
if (tox_invite_friend(m, self->num, groupnum) == -1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to invite contact to group."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to invite contact to group.");
return;
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invited contact to Group %d."), groupnum);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invited contact to Group %d.", groupnum);
}
void cmd_join_group(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (get_num_active_windows() >= MAX_WINDOWS_NUM) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext(" * Warning: Too many windows are open."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, " * Warning: Too many windows are open.");
return;
}
@@ -118,7 +112,7 @@ void cmd_join_group(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*ar
uint8_t type = Friends.list[self->num].group_invite.type;
if (!Friends.list[self->num].group_invite.pending) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending group chat invite."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending group chat invite.");
return;
}
@@ -133,12 +127,12 @@ void cmd_join_group(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*ar
#endif
if (groupnum == -1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group chat instance failed to initialize."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group chat instance failed to initialize.");
return;
}
if (init_groupchat_win(prompt, m, groupnum, type) == -1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group chat window failed to initialize."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group chat window failed to initialize.");
tox_del_groupchat(m, groupnum);
return;
}
@@ -148,31 +142,31 @@ void cmd_join_group(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*ar
void cmd_savefile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File ID required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File ID required.");
return;
}
int idx = atoi(argv[1]);
if ((idx == 0 && strcmp(argv[1], "0")) || idx >= MAX_FILES) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending file transfers with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending file transfers with that ID.");
return;
}
struct FileTransfer *ft = get_file_transfer_struct_index(self->num, idx, FILE_TRANSFER_RECV);
if (!ft) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending file transfers with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending file transfers with that ID.");
return;
}
if (ft->state != FILE_TRANSFER_PENDING) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending file transfers with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending file transfers with that ID.");
return;
}
if ((ft->file = fopen(ft->file_path, "a")) == NULL) {
- const char *msg = gettext("File transfer failed: Invalid file path.");
+ const char *msg = "File transfer failed: Invalid file path.";
close_file_transfer(self, m, ft, TOX_FILE_CONTROL_CANCEL, msg, notif_error);
return;
}
@@ -183,7 +177,7 @@ void cmd_savefile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv
if (err != TOX_ERR_FILE_CONTROL_OK)
goto on_recv_error;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Saving file [%d] as: '%s'"), idx, ft->file_path);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Saving file [%d] as: '%s'", idx, ft->file_path);
/* prep progress bar line */
char progline[MAX_STR_SIZE];
@@ -198,23 +192,23 @@ void cmd_savefile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv
on_recv_error:
switch (err) {
case TOX_ERR_FILE_CONTROL_FRIEND_NOT_FOUND:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: Friend not found."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: Friend not found.");
return;
case TOX_ERR_FILE_CONTROL_FRIEND_NOT_CONNECTED:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: Friend is not online."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: Friend is not online.");
return;
case TOX_ERR_FILE_CONTROL_NOT_FOUND:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: Invalid filenumber."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: Invalid filenumber.");
return;
case TOX_ERR_FILE_CONTROL_SENDQ:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed: Connection error."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed: Connection error.");
return;
default:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File transfer failed (error %d)\n"), err);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File transfer failed (error %d)\n", err);
return;
}
}
@@ -224,12 +218,12 @@ void cmd_sendfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv
const char *errmsg = NULL;
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File path required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File path required.");
return;
}
if (argv[1][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File path must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File path must be enclosed in quotes.");
return;
}
@@ -240,21 +234,21 @@ void cmd_sendfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv
path[path_len] = '\0';
if (path_len >= MAX_STR_SIZE) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File path exceeds character limit."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File path exceeds character limit.");
return;
}
FILE *file_to_send = fopen(path, "r");
if (file_to_send == NULL) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("File not found."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "File not found.");
return;
}
off_t filesize = file_size(path);
if (filesize == 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid file."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid file.");
fclose(file_to_send);
return;
}
@@ -287,30 +281,30 @@ void cmd_sendfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv
char sizestr[32];
bytes_convert_str(sizestr, sizeof(sizestr), filesize);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Sending file [%d]: '%s' (%s)"), filenum, file_name, sizestr);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Sending file [%d]: '%s' (%s)", filenum, file_name, sizestr);
return;
on_send_error:
switch (err) {
case TOX_ERR_FILE_SEND_FRIEND_NOT_FOUND:
- errmsg = gettext("File transfer failed: Invalid friend.");
+ errmsg = "File transfer failed: Invalid friend.";
break;
case TOX_ERR_FILE_SEND_FRIEND_NOT_CONNECTED:
- errmsg = gettext("File transfer failed: Friend is offline.");
+ errmsg = "File transfer failed: Friend is offline.";
break;
case TOX_ERR_FILE_SEND_NAME_TOO_LONG:
- errmsg = gettext("File transfer failed: Filename is too long.");
+ errmsg = "File transfer failed: Filename is too long.";
break;
case TOX_ERR_FILE_SEND_TOO_MANY:
- errmsg = gettext("File transfer failed: Too many concurrent file transfers.");
+ errmsg = "File transfer failed: Too many concurrent file transfers.";
break;
default:
- errmsg = gettext("File transfer failed.");
+ errmsg = "File transfer failed.";
break;
}
diff --git a/src/configdir.c b/src/configdir.c
index a6fda82..8a9f60c 100644
--- a/src/configdir.c
+++ b/src/configdir.c
@@ -29,12 +29,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "configdir.h"
@@ -122,7 +116,7 @@ int create_user_config_dirs(char *path)
char *logpath = malloc(strlen(path) + strlen(LOGDIR) + 1);
if (fullpath == NULL || logpath == NULL)
- exit_toxic_err(gettext("failed in load_data_structures"), FATALERR_MEMORY);
+ exit_toxic_err("failed in load_data_structures", FATALERR_MEMORY);
strcpy(fullpath, path);
strcat(fullpath, CONFIGDIR);
diff --git a/src/dns.c b/src/dns.c
index 8a7a6f3..ade723c 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -26,12 +26,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#ifdef __APPLE__
#include
#else
@@ -152,7 +146,7 @@ static int load_dns_domainlist(const char *path)
static int dns_error(ToxWindow *self, const char *errmsg)
{
pthread_mutex_lock(&Winthread.lock);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("User lookup failed: %s"), errmsg);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "User lookup failed: %s", errmsg);
pthread_mutex_unlock(&Winthread.lock);
return -1;
@@ -178,18 +172,18 @@ static int parse_dns_response(ToxWindow *self, u_char *answer, int ans_len, char
int len = dn_expand(answer, ans_end, ans_pt, exp_ans, sizeof(exp_ans));
if (len == -1)
- return dns_error(self, gettext("dn_expand failed."));
+ return dns_error(self, "dn_expand failed.");
ans_pt += len;
if (ans_pt > ans_end - 4)
- return dns_error(self, gettext("DNS reply was too short."));
+ return dns_error(self, "DNS reply was too short.");
int type;
GETSHORT(type, ans_pt);
if (type != T_TXT)
- return dns_error(self, gettext("Broken DNS reply."));
+ return dns_error(self, "Broken DNS reply.");
ans_pt += INT16SZ; /* class */
@@ -201,12 +195,12 @@ static int parse_dns_response(ToxWindow *self, u_char *answer, int ans_len, char
len = dn_expand(answer, ans_end, ans_pt, exp_ans, sizeof(exp_ans));
if (len == -1)
- return dns_error(self, gettext("Second dn_expand failed."));
+ return dns_error(self, "Second dn_expand failed.");
ans_pt += len;
if (ans_pt > ans_end - 10)
- return dns_error(self, gettext("DNS reply was too short."));
+ return dns_error(self, "DNS reply was too short.");
GETSHORT(type, ans_pt);
ans_pt += INT16SZ;
@@ -214,20 +208,20 @@ static int parse_dns_response(ToxWindow *self, u_char *answer, int ans_len, char
GETSHORT(size, ans_pt);
if (ans_pt + size < answer || ans_pt + size > ans_end)
- return dns_error(self, gettext("RR overflow."));
+ return dns_error(self, "RR overflow.");
} while (type == T_CNAME);
if (type != T_TXT)
- return dns_error(self, gettext("DNS response failed."));
+ return dns_error(self, "DNS response failed.");
uint32_t txt_len = *ans_pt;
if (!size || txt_len >= size || !txt_len)
- return dns_error(self, gettext("No record found."));
+ return dns_error(self, "No record found.");
if (txt_len > MAX_DNS_REQST_SIZE)
- return dns_error(self, gettext("Invalid DNS response."));
+ return dns_error(self, "Invalid DNS response.");
ans_pt++;
ans_pt[txt_len] = '\0';
@@ -304,7 +298,7 @@ void *dns3_lookup_thread(void *data)
int namelen = parse_addr(t_data.addr, name, inputdomain);
if (namelen == -1) {
- dns_error(self, gettext("Must be a Tox ID or an address in the form username@domain"));
+ dns_error(self, "Must be a Tox ID or an address in the form username@domain");
killdns_thread(NULL);
}
@@ -314,14 +308,14 @@ void *dns3_lookup_thread(void *data)
int match = get_domain_match(DNS_pubkey, domain, inputdomain);
if (match == -1) {
- dns_error(self, gettext("Domain not found."));
+ dns_error(self, "Domain not found.");
killdns_thread(NULL);
}
void *dns_obj = tox_dns3_new((uint8_t *) DNS_pubkey);
if (dns_obj == NULL) {
- dns_error(self, gettext("Core failed to create DNS object."));
+ dns_error(self, "Core failed to create DNS object.");
killdns_thread(NULL);
}
@@ -332,7 +326,7 @@ void *dns3_lookup_thread(void *data)
(uint8_t *) name, namelen);
if (str_len == -1) {
- dns_error(self, gettext("Core failed to generate DNS3 string."));
+ dns_error(self, "Core failed to generate DNS3 string.");
killdns_thread(dns_obj);
}
@@ -346,7 +340,7 @@ void *dns3_lookup_thread(void *data)
int ans_len = res_query(d_string, C_IN, T_TXT, answer, sizeof(answer));
if (ans_len <= 0) {
- dns_error(self, gettext("DNS query failed."));
+ dns_error(self, "DNS query failed.");
killdns_thread(dns_obj);
}
@@ -361,7 +355,7 @@ void *dns3_lookup_thread(void *data)
/* extract the encrypted ID from TXT response */
if (strncmp(ans_id, TOX_DNS3_TXT_PREFIX, prfx_len) != 0) {
- dns_error(self, gettext("Bad DNS3 TXT response."));
+ dns_error(self, "Bad DNS3 TXT response.");
killdns_thread(dns_obj);
}
@@ -369,7 +363,7 @@ void *dns3_lookup_thread(void *data)
if (tox_decrypt_dns3_TXT(dns_obj, (uint8_t *) t_data.id_bin, (uint8_t *) encrypted_id,
strlen(encrypted_id), request_id) == -1) {
- dns_error(self, gettext("Core failed to decrypt DNS response."));
+ dns_error(self, "Core failed to decrypt DNS response.");
killdns_thread(dns_obj);
}
@@ -385,12 +379,12 @@ void *dns3_lookup_thread(void *data)
void dns3_lookup(ToxWindow *self, Tox *m, const char *id_bin, const char *addr, const char *msg)
{
if (arg_opts.proxy_type != TOX_PROXY_TYPE_NONE && arg_opts.force_tcp) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("DNS lookups are disabled."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "DNS lookups are disabled.");
return;
}
if (t_data.busy) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Please wait for previous user lookup to finish."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Please wait for previous user lookup to finish.");
return;
}
@@ -400,7 +394,7 @@ void dns3_lookup(ToxWindow *self, Tox *m, const char *id_bin, const char *addr,
int ret = load_dns_domainlist(path);
if (ret < 0) {
- const char *errmsg = gettext("DNS server list failed to load with error code %d. Falling back to hard-coded list.");
+ const char *errmsg = "DNS server list failed to load with error code %d. Falling back to hard-coded list.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg, ret);
}
}
@@ -413,20 +407,20 @@ void dns3_lookup(ToxWindow *self, Tox *m, const char *id_bin, const char *addr,
t_data.busy = 1;
if (pthread_attr_init(&dns_thread.attr) != 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext("Error: DNS thread attr failed to init"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, "Error: DNS thread attr failed to init");
memset(&t_data, 0, sizeof(struct thread_data));
return;
}
if (pthread_attr_setdetachstate(&dns_thread.attr, PTHREAD_CREATE_DETACHED) != 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext("Error: DNS thread attr failed to set"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, "Error: DNS thread attr failed to set");
pthread_attr_destroy(&dns_thread.attr);
memset(&t_data, 0, sizeof(struct thread_data));
return;
}
if (pthread_create(&dns_thread.tid, &dns_thread.attr, dns3_lookup_thread, NULL) != 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext("Error: DNS thread failed to init"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, "Error: DNS thread failed to init");
pthread_attr_destroy(&dns_thread.attr);
memset(&t_data, 0, sizeof(struct thread_data));
return;
diff --git a/src/execute.c b/src/execute.c
index 81dfb70..9e83a83 100644
--- a/src/execute.c
+++ b/src/execute.c
@@ -24,12 +24,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "execute.h"
@@ -104,7 +98,7 @@ static int parse_command(WINDOW *w, ToxWindow *self, const char *input, char (*a
char *cmd = strdup(input);
if (cmd == NULL)
- exit_toxic_err(gettext("failed in parse_command"), FATALERR_MEMORY);
+ exit_toxic_err("failed in parse_command", FATALERR_MEMORY);
int num_args = 0;
int i = 0; /* index of last char in an argument */
@@ -118,7 +112,7 @@ static int parse_command(WINDOW *w, ToxWindow *self, const char *input, char (*a
i = char_find(1, cmd, '\"');
if (cmd[i] == '\0') {
- const char *errmsg = gettext("Invalid argument. Did you forget a closing \"?");
+ const char *errmsg = "Invalid argument. Did you forget a closing \"?";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg);
free(cmd);
return -1;
@@ -189,5 +183,5 @@ void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode)
if (do_command(w, self, m, num_args, global_commands, args) == 0)
return;
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid command."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid command.");
}
diff --git a/src/friendlist.c b/src/friendlist.c
index 45af2b2..c8df965 100644
--- a/src/friendlist.c
+++ b/src/friendlist.c
@@ -26,12 +26,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include
#include "toxic.h"
@@ -90,7 +84,7 @@ static void realloc_friends(int n)
uint32_t *f_idx = realloc(Friends.index, n * sizeof(uint32_t));
if (f == NULL || f_idx == NULL)
- exit_toxic_err(gettext("failed in realloc_friends"), FATALERR_MEMORY);
+ exit_toxic_err("failed in realloc_friends", FATALERR_MEMORY);
Friends.list = f;
Friends.index = f_idx;
@@ -110,7 +104,7 @@ static void realloc_blocklist(int n)
uint32_t *b_idx = realloc(Blocked.index, n * sizeof(uint32_t));
if (b == NULL || b_idx == NULL)
- exit_toxic_err(gettext("failed in realloc_blocklist"), FATALERR_MEMORY);
+ exit_toxic_err("failed in realloc_blocklist", FATALERR_MEMORY);
Blocked.list = b;
Blocked.index = b_idx;
@@ -138,7 +132,7 @@ static int save_blocklist(char *path)
char *data = malloc(len);
if (data == NULL)
- exit_toxic_err(gettext("Failed in save_blocklist"), FATALERR_MEMORY);
+ exit_toxic_err("Failed in save_blocklist", FATALERR_MEMORY);
int i;
@@ -205,7 +199,7 @@ int load_blocklist(char *path)
if (data == NULL) {
fclose(fp);
- exit_toxic_err(gettext("Failed in load_blocklist"), FATALERR_MEMORY);
+ exit_toxic_err("Failed in load_blocklist", FATALERR_MEMORY);
}
if (fread(data, len, 1, fp) != 1) {
@@ -328,7 +322,7 @@ static void friendlist_onMessage(ToxWindow *self, Tox *m, uint32_t num, TOX_MESS
get_time_str(timefrmt, sizeof(timefrmt));
line_info_add(prompt, timefrmt, nick, NULL, IN_MSG, 0, 0, "%s", str);
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext("* Warning: Too many windows are open."));
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, "* Warning: Too many windows are open.");
sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL);
}
@@ -343,7 +337,7 @@ static void friendlist_onConnectionChange(ToxWindow *self, Tox *m, uint32_t num,
++Friends.num_online;
if (avatar_send(m, num) == -1)
- fprintf(stderr, gettext("avatar_send failed for friend %d\n"), num);
+ fprintf(stderr, "avatar_send failed for friend %d\n", num);
}
Friends.list[num].connection_status = connection_status;
@@ -418,7 +412,7 @@ void friendlist_onFriendAdded(ToxWindow *self, Tox *m, uint32_t num, bool sort)
tox_friend_get_public_key(m, num, (uint8_t *) Friends.list[i].pub_key, &pkerr);
if (pkerr != TOX_ERR_FRIEND_GET_PUBLIC_KEY_OK)
- fprintf(stderr, gettext("tox_friend_get_public_key failed (error %d)\n"), pkerr);
+ fprintf(stderr, "tox_friend_get_public_key failed (error %d)\n", pkerr);
TOX_ERR_FRIEND_GET_LAST_ONLINE loerr;
uint64_t t = tox_friend_get_last_online(m, num, &loerr);
@@ -497,7 +491,7 @@ static void friendlist_onFileRecv(ToxWindow *self, Tox *m, uint32_t num, uint32_
get_nick_truncate(m, nick, num);
line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED,
- gettext("* File transfer from %s failed: too many windows are open."), nick);
+ "* File transfer from %s failed: too many windows are open.", nick);
sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL);
}
@@ -520,7 +514,7 @@ static void friendlist_onGroupInvite(ToxWindow *self, Tox *m, int32_t num, uint8
get_nick_truncate(m, nick, num);
line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED,
- gettext("* Group chat invite from %s failed: too many windows are open."), nick);
+ "* Group chat invite from %s failed: too many windows are open.", nick);
sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL);
}
@@ -543,7 +537,7 @@ static void delete_friend(Tox *m, uint32_t f_num)
{
TOX_ERR_FRIEND_DELETE err;
if (tox_friend_delete(m, f_num, &err) != true) {
- fprintf(stderr, gettext("tox_friend_delete failed with error %d\n"), err);
+ fprintf(stderr, "tox_friend_delete failed with error %d\n", err);
return;
}
@@ -623,7 +617,7 @@ static void draw_del_popup(void)
wattroff(PendingDelete.popup, A_BOLD);
wmove(PendingDelete.popup, 1, 1);
- wprintw(PendingDelete.popup, gettext("Delete contact "));
+ wprintw(PendingDelete.popup, "Delete contact ");
wattron(PendingDelete.popup, A_BOLD);
if (blocklist_view == 0)
@@ -704,7 +698,7 @@ static void unblock_friend(Tox *m, uint32_t bnum)
uint32_t friendnum = tox_friend_add_norequest(m, (uint8_t *) Blocked.list[bnum].pub_key, &err);
if (err != TOX_ERR_FRIEND_ADD_OK) {
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to unblock friend (error %d)\n"), err);
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to unblock friend (error %d)\n", err);
return;
}
@@ -763,7 +757,7 @@ static void friendlist_onKey(ToxWindow *self, Tox *m, wint_t key, bool ltr)
Friends.list[f].chatwin = add_window(m, new_chat(m, Friends.list[f].num));
set_active_window(Friends.list[f].chatwin);
} else {
- const char *msg = gettext("* Warning: Too many windows are open.");
+ const char *msg = "* Warning: Too many windows are open.";
line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, msg);
sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL);
}
@@ -800,7 +794,7 @@ static void friendlist_onKey(ToxWindow *self, Tox *m, wint_t key, bool ltr)
static void blocklist_onDraw(ToxWindow *self, Tox *m, int y2, int x2)
{
wattron(self->window, A_BOLD);
- wprintw(self->window, gettext(" Blocked: "));
+ wprintw(self->window, " Blocked: ");
wattroff(self->window, A_BOLD);
wprintw(self->window, "%d\n\n", Blocked.num_blocked);
@@ -852,7 +846,7 @@ static void blocklist_onDraw(ToxWindow *self, Tox *m, int y2, int x2)
wmove(self->window, y2 - 1, 1);
wattron(self->window, A_BOLD);
- wprintw(self->window, gettext("Key: "));
+ wprintw(self->window, "Key: ");
wattroff(self->window, A_BOLD);
int i;
@@ -878,11 +872,11 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
bool fix_statuses = x2 != self->x; /* true if window max x value has changed */
wattron(self->window, COLOR_PAIR(CYAN));
- wprintw(self->window, gettext(" Press the"));
+ wprintw(self->window, " Press the");
wattron(self->window, A_BOLD);
wprintw(self->window, " h ");
wattroff(self->window, A_BOLD);
- wprintw(self->window, gettext("key for help\n\n"));
+ wprintw(self->window, "key for help\n\n");
wattroff(self->window, COLOR_PAIR(CYAN));
if (blocklist_view == 1) {
@@ -894,7 +888,7 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
struct tm cur_loc_tm = *localtime((const time_t *) &cur_time);
wattron(self->window, A_BOLD);
- wprintw(self->window, gettext(" Online: "));
+ wprintw(self->window, " Online: ");
wattroff(self->window, A_BOLD);
wprintw(self->window, "%d/%d \n\n", Friends.num_online, Friends.num_friends);
@@ -1008,19 +1002,19 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
switch (day_dist) {
case 0:
- wprintw(self->window, gettext(" Last seen: Today %s\n"), hourmin);
+ wprintw(self->window, " Last seen: Today %s\n", hourmin);
break;
case 1:
- wprintw(self->window, gettext(" Last seen: Yesterday %s\n"), hourmin);
+ wprintw(self->window, " Last seen: Yesterday %s\n", hourmin);
break;
default:
- wprintw(self->window, gettext(" Last seen: %d days ago\n"), day_dist);
+ wprintw(self->window, " Last seen: %d days ago\n", day_dist);
break;
}
} else {
- wprintw(self->window, gettext(" Last seen: Never\n"));
+ wprintw(self->window, " Last seen: Never\n");
}
}
}
@@ -1032,7 +1026,7 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
wmove(self->window, y2 - 1, 1);
wattron(self->window, A_BOLD);
- wprintw(self->window, gettext("Key: "));
+ wprintw(self->window, "Key: ");
wattroff(self->window, A_BOLD);
int i;
@@ -1071,9 +1065,9 @@ static void friendlist_onAv(ToxWindow *self, ToxAv *av, int call_index)
} else {
char nick[TOX_MAX_NAME_LENGTH];
get_nick_truncate(m, nick, Friends.list[id].num);
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Audio action from: %s!"), nick);
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, "Audio action from: %s!", nick);
- const char *errmsg = gettext("* Warning: Too many windows are open.");
+ const char *errmsg = "* Warning: Too many windows are open.";
line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, errmsg);
sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL);
@@ -1123,9 +1117,9 @@ ToxWindow new_friendlist(void)
Help *help = calloc(1, sizeof(Help));
if (help == NULL)
- exit_toxic_err(gettext("failed in new_friendlist"), FATALERR_MEMORY);
+ exit_toxic_err("failed in new_friendlist", FATALERR_MEMORY);
ret.help = help;
- strcpy(ret.name, gettext("contacts"));
+ strcpy(ret.name, "contacts");
return ret;
}
diff --git a/src/global_commands.c b/src/global_commands.c
index 50e0eb2..fc7e3b8 100644
--- a/src/global_commands.c
+++ b/src/global_commands.c
@@ -24,12 +24,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "misc_tools.h"
@@ -52,19 +46,19 @@ extern FriendRequests FrndRequests;
void cmd_accept(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Request ID required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Request ID required.");
return;
}
int req = atoi(argv[1]);
if ((req == 0 && strcmp(argv[1], "0")) || req < 0 || req > MAX_FRIEND_REQUESTS) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending friend request with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
if (!FrndRequests.request[req].active) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending friend request with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
@@ -72,10 +66,10 @@ void cmd_accept(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
uint32_t friendnum = tox_friend_add_norequest(m, FrndRequests.request[req].key, &err);
if (err != TOX_ERR_FRIEND_ADD_OK) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to add friend (error %d)\n"), err);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to add friend (error %d\n)", err);
return;
} else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Friend request accepted."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Friend request accepted.");
on_friendadded(m, friendnum, true);
}
@@ -102,42 +96,42 @@ void cmd_add_helper(ToxWindow *self, Tox *m, const char *id_bin, const char *msg
switch (err) {
case TOX_ERR_FRIEND_ADD_TOO_LONG:
- errmsg = gettext("Message is too long.");
+ errmsg = "Message is too long.";
break;
case TOX_ERR_FRIEND_ADD_NO_MESSAGE:
- errmsg = gettext("Please add a message to your request.");
+ errmsg = "Please add a message to your request.";
break;
case TOX_ERR_FRIEND_ADD_OWN_KEY:
- errmsg = gettext("That appears to be your own ID.");
+ errmsg = "That appears to be your own ID.";
break;
case TOX_ERR_FRIEND_ADD_ALREADY_SENT:
- errmsg = gettext("Friend request has already been sent.");
+ errmsg = "Friend request has already been sent.";
break;
case TOX_ERR_FRIEND_ADD_BAD_CHECKSUM:
- errmsg = gettext("Bad checksum in address.");
+ errmsg = "Bad checksum in address.";
break;
case TOX_ERR_FRIEND_ADD_SET_NEW_NOSPAM:
- errmsg = gettext("Nospam was different.");
+ errmsg = "Nospam was different.";
break;
case TOX_ERR_FRIEND_ADD_MALLOC:
- errmsg = gettext("Core memory allocation failed.");
+ errmsg = "Core memory allocation failed.";
break;
case TOX_ERR_FRIEND_ADD_OK:
- errmsg = gettext("Friend request sent.");
+ errmsg = "Friend request sent.";
on_friendadded(m, f_num, true);
break;
case TOX_ERR_FRIEND_ADD_NULL:
/* fallthrough */
default:
- errmsg = gettext("Failed to add friend: Unknown error.");
+ errmsg = "Faile to add friend: Unknown error.";
break;
}
@@ -147,7 +141,7 @@ void cmd_add_helper(ToxWindow *self, Tox *m, const char *id_bin, const char *msg
void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Tox ID or address required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Tox ID or address required.");
return;
}
@@ -156,7 +150,7 @@ void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
if (argc > 1) {
if (argv[2][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Message must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Message must be enclosed in quotes.");
return;
}
@@ -172,7 +166,7 @@ void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
size_t n_len = tox_self_get_name_size(m);
selfname[n_len] = '\0';
- snprintf(msg, sizeof(msg), gettext("Hello, my name is %s. Care to Tox?"), selfname);
+ snprintf(msg, sizeof(msg), "Hello, my name is %s. Care to Tox?", selfname);
}
char id_bin[TOX_ADDRESS_SIZE] = {0};
@@ -190,7 +184,7 @@ void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
xx[2] = '\0';
if (sscanf(xx, "%02x", &x) != 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid Tox ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid Tox ID.");
return;
}
@@ -207,12 +201,12 @@ void cmd_avatar(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
{
if (argc < 2 || strlen(argv[1]) < 3) {
avatar_unset(m);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Avatar is not set."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Avatar is not set.");
return;
}
if (argv[1][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Path must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Path must be enclosed in quotes.");
return;
}
@@ -222,7 +216,7 @@ void cmd_avatar(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
int len = strlen(path) - 1;
if (len <= 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid path."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid path.");
return;
}
@@ -232,12 +226,12 @@ void cmd_avatar(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
if (avatar_set(m, path, len) == -1) {
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0,
- gettext("Failed to set avatar. Avatars must be in PNG format and may not exceed %d bytes."),
+ "Failed to set avatar. Avatars must be in PNG format and may not exceed %d bytes.",
MAX_AVATAR_FILE_SIZE);
return;
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Avatar set to '%s'"), filename);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Avatar set to '%s'", filename);
}
void cmd_clear(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
@@ -249,7 +243,7 @@ void cmd_clear(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[M
void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc != 3) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Require: "));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Require: ");
return;
}
@@ -258,7 +252,7 @@ void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
const char *key = argv[3];
if (atoi(port) == 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid port."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid port.");
return;
}
@@ -271,15 +265,15 @@ void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
switch (err) {
case TOX_ERR_BOOTSTRAP_BAD_HOST:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Bootstrap failed: Invalid IP."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Bootstrap failed: Invalid IP.");
break;
case TOX_ERR_BOOTSTRAP_BAD_PORT:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Bootstrap failed: Invalid port."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Bootstrap failed: Invalid port.");
break;
case TOX_ERR_BOOTSTRAP_NULL:
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Bootstrap failed."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Bootstrap failed.");
break;
default:
break;
@@ -289,19 +283,19 @@ void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
void cmd_decline(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Request ID required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Request ID required.");
return;
}
int req = atoi(argv[1]);
if ((req == 0 && strcmp(argv[1], "0")) || req < 0 || req > MAX_FRIEND_REQUESTS) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending friend request with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
if (!FrndRequests.request[req].active) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending friend request with that ID."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend request with that ID.");
return;
}
@@ -321,12 +315,12 @@ void cmd_decline(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (get_num_active_windows() >= MAX_WINDOWS_NUM) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext(" * Warning: Too many windows are open."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, " * Warning: Too many windows are open.");
return;
}
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Please specify group type: %s"), "text|audio");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Please specify group type: text | audio");
return;
}
@@ -337,7 +331,7 @@ void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg
else if (!strcasecmp(argv[1], "text"))
type = TOX_GROUPCHAT_TYPE_TEXT;
else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Valid group types are: %s"), "text|audio");
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Valid group types are: text | audio");
return;
}
@@ -351,17 +345,17 @@ void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg
#endif
if (groupnum == -1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group chat instance failed to initialize."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group chat instance failed to initialize.");
return;
}
if (init_groupchat_win(prompt, m, groupnum, type) == -1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group chat window failed to initialize."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group chat window failed to initialize.");
tox_del_groupchat(m, groupnum);
return;
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Group chat [%d] created."), groupnum);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Group chat [%d] created.", groupnum);
}
void cmd_log(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
@@ -371,9 +365,9 @@ void cmd_log(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
if (argc == 0) {
if (log->log_on)
- msg = gettext("Logging for this window is ON. Type \"/log off\" to disable.");
+ msg = "Logging for this window is ON. Type \"/log off\" to disable.";
else
- msg = gettext("Logging for this window is OFF. Type \"/log on\" to enable.");
+ msg = "Logging for this window is OFF. Type \"/log on\" to enable.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, msg);
return;
@@ -394,7 +388,7 @@ void cmd_log(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
log_enable(self->name, myid, NULL, log, LOG_GROUP);
}
- msg = gettext("Logging enabled");
+ msg = "Logging enabled";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, msg);
return;
} else if (!strcmp(swch, "0") || !strcmp(swch, "off")) {
@@ -403,13 +397,13 @@ void cmd_log(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
log_disable(log);
- msg = gettext("Logging disabled");
+ msg = "Logging disabled";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, msg);
return;
}
- msg = gettext("Invalid option. Use \"%s\" to toggle logging.");
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, msg, "/log on|off");
+ msg = "Invalid option. Use \"/log on\" and \"/log off\" to toggle logging.";
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, msg);
}
void cmd_myid(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
@@ -432,7 +426,7 @@ void cmd_myid(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
void cmd_nick(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Input required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Input required.");
return;
}
@@ -449,7 +443,7 @@ void cmd_nick(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
}
if (!valid_nick(nick)) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Invalid name."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid name.");
return;
}
@@ -465,12 +459,12 @@ void cmd_nick(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
void cmd_note(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (argc < 1) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Input required."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Input required.");
return;
}
if (argv[1][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Note must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Note must be enclosed in quotes.");
return;
}
@@ -496,7 +490,7 @@ void cmd_quit(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA
void cmd_requests(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])
{
if (FrndRequests.num_requests == 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("No pending friend requests."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No pending friend requests.");
return;
}
@@ -533,8 +527,8 @@ void cmd_status(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
if (argc >= 2) {
have_note = true;
} else if (argc < 1) {
- errmsg = gettext("Require a status. Statuses are: %s.");
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg, "online|busy|away");
+ errmsg = "Require a status. Statuses are: online, busy and away.";
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg);
goto finish;
}
@@ -548,8 +542,8 @@ void cmd_status(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
else if (!strcasecmp(status_str, "busy"))
status = TOX_USER_STATUS_BUSY;
else {
- errmsg = gettext("Invalid status. Valid statuses are: %s.");
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg, "online|busy|away");
+ errmsg = "Invalid status. Valid statuses are: online, busy and away.";
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg);
goto finish;
}
@@ -558,7 +552,7 @@ void cmd_status(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
if (have_note) {
if (argv[2][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Note must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Note must be enclosed in quotes.");
goto finish;
}
diff --git a/src/group_commands.c b/src/group_commands.c
index 2589370..fb73a0b 100644
--- a/src/group_commands.c
+++ b/src/group_commands.c
@@ -22,12 +22,6 @@
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "line_info.h"
@@ -43,16 +37,16 @@ void cmd_set_title(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg
if (tlen != -1) {
title[tlen] = '\0';
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Title is set to: %s"), title);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Title is set to: %s", title);
} else {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Title is not set"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Title is not set");
}
return;
}
if (argv[1][0] != '\"') {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Title must be enclosed in quotes."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Title must be enclosed in quotes.");
return;
}
@@ -62,7 +56,7 @@ void cmd_set_title(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg
title[len] = '\0';
if (tox_group_set_title(m, self->num, (uint8_t *) title, len) != 0) {
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to set title."));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to set title.");
return;
}
@@ -77,9 +71,9 @@ void cmd_set_title(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg
size_t sn_len = tox_self_get_name_size(m);
selfnick[sn_len] = '\0';
- line_info_add(self, timefrmt, selfnick, NULL, NAME_CHANGE, 0, 0, gettext(" set the group title to: %s"), title);
+ line_info_add(self, timefrmt, selfnick, NULL, NAME_CHANGE, 0, 0, " set the group title to: %s", title);
char tmp_event[MAX_STR_SIZE];
- snprintf(tmp_event, sizeof(tmp_event), gettext("set title to %s"), title);
+ snprintf(tmp_event, sizeof(tmp_event), "set title to %s", title);
write_to_log(tmp_event, selfnick, self->chatwin->log, true);
}
diff --git a/src/groupchat.c b/src/groupchat.c
index 8423497..751679e 100644
--- a/src/groupchat.c
+++ b/src/groupchat.c
@@ -31,12 +31,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#ifdef AUDIO
#ifdef __APPLE__
#include
@@ -140,15 +134,15 @@ int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum, uint8_t type)
if (groupchats[i].peer_names == NULL || groupchats[i].oldpeer_names == NULL
|| groupchats[i].peer_name_lengths == NULL || groupchats[i].oldpeer_name_lengths == NULL)
- exit_toxic_err(gettext("failed in init_groupchat_win"), FATALERR_MEMORY);
+ exit_toxic_err("failed in init_groupchat_win", FATALERR_MEMORY);
- memcpy(&groupchats[i].oldpeer_names[0], UNKNOWN_NAME, strlen(UNKNOWN_NAME));
+ memcpy(&groupchats[i].oldpeer_names[0], UNKNOWN_NAME, sizeof(UNKNOWN_NAME));
groupchats[i].oldpeer_name_lengths[0] = (uint16_t) strlen(UNKNOWN_NAME);
#ifdef AUDIO
if (type == TOX_GROUPCHAT_TYPE_AV)
if (group_audio_open_out_device(i) == -1)
- fprintf(stderr, gettext("Group Audio failed to init\n"));
+ fprintf(stderr, "Group Audio failed to init\n");
#endif /* AUDIO */
set_active_window(groupchats[i].chatwin);
@@ -334,10 +328,10 @@ static void groupchat_onGroupTitleChange(ToxWindow *self, Tox *m, int groupnum,
char nick[TOX_MAX_NAME_LENGTH];
get_group_nick_truncate(m, nick, peernum, groupnum);
- line_info_add(self, timefrmt, nick, NULL, NAME_CHANGE, 0, 0, gettext(" set the group title to: %s"), title);
+ line_info_add(self, timefrmt, nick, NULL, NAME_CHANGE, 0, 0, " set the group title to: %s", title);
char tmp_event[MAX_STR_SIZE];
- snprintf(tmp_event, sizeof(tmp_event), gettext("set title to %s"), title);
+ snprintf(tmp_event, sizeof(tmp_event), "set title to %s", title);
write_to_log(tmp_event, nick, ctx->log, true);
}
@@ -359,7 +353,7 @@ static void copy_peernames(int gnum, uint8_t peerlist[][TOX_MAX_NAME_LENGTH], ui
if (groupchats[gnum].peer_names == NULL || groupchats[gnum].oldpeer_names == NULL
|| groupchats[gnum].peer_name_lengths == NULL || groupchats[gnum].oldpeer_name_lengths == NULL) {
- exit_toxic_err(gettext("failed in copy_peernames"), FATALERR_MEMORY);
+ exit_toxic_err("failed in copy_peernames", FATALERR_MEMORY);
}
uint16_t u_len = strlen(UNKNOWN_NAME);
@@ -416,7 +410,7 @@ void *group_add_wait(void *data)
pthread_mutex_unlock(&Winthread.lock);
}
- const char *event = gettext("has joined the room");
+ const char *event = "has joined the room";
char timefrmt[TIME_STR_SIZE];
get_time_str(timefrmt, sizeof(timefrmt));
@@ -514,7 +508,7 @@ static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnu
break;
case TOX_CHAT_CHANGE_PEER_DEL:
- event = gettext("has left the room");
+ event = "has left the room";
line_info_add(self, timefrmt, (char *) oldpeername, NULL, DISCONNECTION, 0, RED, event);
if (groupchats[self->num].side_pos > 0)
@@ -531,11 +525,11 @@ static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnu
if (strcmp((char *) oldpeername, DEFAULT_TOX_NAME) == 0)
return;
- event = gettext(" is now known as ");
+ event = " is now known as ";
line_info_add(self, timefrmt, (char *) oldpeername, (char *) peername, NAME_CHANGE, 0, 0, event);
char tmp_event[TOXIC_MAX_NAME_LENGTH * 2 + 32];
- snprintf(tmp_event, sizeof(tmp_event), gettext("is now known as %s"), (char *) peername);
+ snprintf(tmp_event, sizeof(tmp_event), "is now known as %s", (char *) peername);
write_to_log(tmp_event, (char *) oldpeername, ctx->log, true);
break;
}
@@ -546,12 +540,12 @@ static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnu
static void send_group_action(ToxWindow *self, ChatContext *ctx, Tox *m, char *action)
{
if (action == NULL) {
- wprintw(ctx->history, gettext("Invalid syntax.\n"));
+ wprintw(ctx->history, "Invalid syntax.\n");
return;
}
if (tox_group_action_send(m, self->num, (uint8_t *) action, strlen(action)) == -1) {
- const char *errmsg = gettext(" * Failed to send action.");
+ const char *errmsg = " * Failed to send action.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, errmsg);
}
}
@@ -638,7 +632,7 @@ static void groupchat_onKey(ToxWindow *self, Tox *m, wint_t key, bool ltr)
}
} else if (!string_is_empty(line)) {
if (tox_group_message_send(m, self->num, (uint8_t *) line, strlen(line)) == -1) {
- const char *errmsg = gettext(" * Failed to send message.");
+ const char *errmsg = " * Failed to send message.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, errmsg);
}
}
@@ -678,7 +672,7 @@ static void groupchat_onDraw(ToxWindow *self, Tox *m)
wmove(ctx->sidebar, 0, 1);
wattron(ctx->sidebar, A_BOLD);
- wprintw(ctx->sidebar, gettext("Peers: %d\n"), num_peers);
+ wprintw(ctx->sidebar, "Peers: %d\n", num_peers);
wattroff(ctx->sidebar, A_BOLD);
mvwaddch(ctx->sidebar, 1, 0, ACS_LTEE);
@@ -728,7 +722,7 @@ static void groupchat_onInit(ToxWindow *self, Tox *m)
ctx->log = calloc(1, sizeof(struct chatlog));
if (ctx->log == NULL || ctx->hst == NULL)
- exit_toxic_err(gettext("failed in groupchat_onInit"), FATALERR_MEMORY);
+ exit_toxic_err("failed in groupchat_onInit", FATALERR_MEMORY);
line_info_init(ctx->hst);
@@ -813,7 +807,7 @@ static int group_audio_write(int peernum, int groupnum, const int16_t *pcm, unsi
alGetSourcei(groupchats[groupnum].audio.source, AL_BUFFERS_PROCESSED, &processed);
alGetSourcei(groupchats[groupnum].audio.source, AL_BUFFERS_QUEUED, &queued);
- fprintf(stderr, gettext("source: %d, queued: %d, processed: %d\n"), groupchats[groupnum].audio.source, queued, processed);
+ fprintf(stderr, "source: %d, queued: %d, processed: %d\n", groupchats[groupnum].audio.source, queued, processed);
if (processed) {
ALuint bufids[processed];
@@ -852,13 +846,13 @@ static void groupchat_onWriteDevice(ToxWindow *self, Tox *m, int groupnum, int p
return;
if (groupchats[groupnum].audio.dvhandle == NULL)
- fprintf(stderr, gettext("dvhandle is null)\n"));
+ fprintf(stderr, "dvhandle is null)\n");
if (groupchats[groupnum].audio.dvctx == NULL)
- fprintf(stderr, gettext("ctx is null\n"));
+ fprintf(stderr, "ctx is null\n");
int ret = group_audio_write(peernum, groupnum, pcm, samples, channels, sample_rate);
- fprintf(stderr, gettext("write: %d\n"), ret);
+ fprintf(stderr, "write: %d\n", ret);
}
#endif /* AUDIO */
@@ -882,13 +876,13 @@ ToxWindow new_group_chat(Tox *m, int groupnum)
ret.onWriteDevice = &groupchat_onWriteDevice;
#endif
- snprintf(ret.name, sizeof(ret.name), gettext("Group %d"), groupnum);
+ snprintf(ret.name, sizeof(ret.name), "Group %d", groupnum);
ChatContext *chatwin = calloc(1, sizeof(ChatContext));
Help *help = calloc(1, sizeof(Help));
if (chatwin == NULL || help == NULL)
- exit_toxic_err(gettext("failed in new_group_chat"), FATALERR_MEMORY);
+ exit_toxic_err("failed in new_group_chat", FATALERR_MEMORY);
ret.chatwin = chatwin;
ret.help = help;
diff --git a/src/help.c b/src/help.c
index 0838433..8989c11 100644
--- a/src/help.c
+++ b/src/help.c
@@ -22,12 +22,6 @@
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "windows.h"
#include "toxic.h"
#include "help.h"
@@ -145,50 +139,32 @@ static void help_draw_global(ToxWindow *self)
wmove(win, 1, 1);
wattron(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext("Global Commands:\n"));
+ wprintw(win, "Global Commands:\n");
wattroff(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, " /add : ");
- wprintw(win, gettext("Add contact with optional message\n"));
- wprintw(win, " /accept : ");
- wprintw(win, gettext("Accept friend request\n"));
- wprintw(win, " /avatar : ");
- wprintw(win, gettext("Set an avatar (leave path empty to unset)\n"));
- wprintw(win, " /decline : ");
- wprintw(win, gettext("Decline friend request\n"));
- wprintw(win, " /requests : ");
- wprintw(win, gettext("List pending friend requests\n"));
- wprintw(win, " /connect : ");
- wprintw(win, gettext("Manually connect to a DHT node\n"));
- wprintw(win, " /status : ");
- wprintw(win, gettext("Set status with optional note\n"));
- wprintw(win, " /note : ");
- wprintw(win, gettext("Set a personal note\n"));
- wprintw(win, " /nick : ");
- wprintw(win, gettext("Set your nickname\n"));
- wprintw(win, " /log or : ");
- wprintw(win, gettext("Enable/disable logging\n"));
- wprintw(win, " /group : ");
- wprintw(win, gettext("Create a group chat where type: text | audio\n"));
- wprintw(win, " /myid : ");
- wprintw(win, gettext("Print your Tox ID\n"));
- wprintw(win, " /clear : ");
- wprintw(win, gettext("Clear window history\n"));
- wprintw(win, " /close : ");
- wprintw(win, gettext("Close the current chat window\n"));
- wprintw(win, " /quit or /exit : ");
- wprintw(win, gettext("Exit Toxic\n"));
+ wprintw(win, " /add : Add contact with optional message\n");
+ wprintw(win, " /accept : Accept friend request\n");
+ wprintw(win, " /avatar : Set an avatar (leave path empty to unset)\n");
+ wprintw(win, " /decline : Decline friend request\n");
+ wprintw(win, " /requests : List pending friend requests\n");
+ wprintw(win, " /connect : Manually connect to a DHT node\n");
+ wprintw(win, " /status : Set status with optional note\n");
+ wprintw(win, " /note : Set a personal note\n");
+ wprintw(win, " /nick : Set your nickname\n");
+ wprintw(win, " /log or : Enable/disable logging\n");
+ wprintw(win, " /group : Create a group chat where type: text | audio\n");
+ wprintw(win, " /myid : Print your Tox ID\n");
+ wprintw(win, " /clear : Clear window history\n");
+ wprintw(win, " /close : Close the current chat window\n");
+ wprintw(win, " /quit or /exit : Exit Toxic\n");
#ifdef AUDIO
wattron(win, A_BOLD);
- wprintw(win, gettext("\n Audio:\n"));
+ wprintw(win, "\n Audio:\n");
wattroff(win, A_BOLD);
- wprintw(win, " /lsdev : ");
- wprintw(win, gettext("List devices where type:"));
- wprintw(win, " in|out\n");
- wprintw(win, " /sdev : ");
- wprintw(win, gettext("Set active device\n"));
+ wprintw(win, " /lsdev : List devices where type: in|out\n");
+ wprintw(win, " /sdev : Set active device\n");
#endif /* AUDIO */
help_draw_bottom_menu(win);
@@ -204,40 +180,27 @@ static void help_draw_chat(ToxWindow *self)
wmove(win, 1, 1);
wattron(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext("Chat Commands:\n"));
+ wprintw(win, "Chat Commands:\n");
wattroff(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, " /invite : ");
- wprintw(win, gettext("Invite contact to a group chat\n"));
- wprintw(win, " /join : ");
- wprintw(win, gettext("Join a pending group chat\n"));
- wprintw(win, " /sendfile : ");
- wprintw(win, gettext("Send a file\n"));
- wprintw(win, " /savefile : ");
- wprintw(win, gettext("Receive a file\n"));
- wprintw(win, " /cancel : ");
- wprintw(win, gettext("Cancel file transfer where type:"));
- wprintw(win, " in|out\n");
+ wprintw(win, " /invite : Invite contact to a group chat\n");
+ wprintw(win, " /join : Join a pending group chat\n");
+ wprintw(win, " /sendfile : Send a file\n");
+ wprintw(win, " /savefile : Receive a file\n");
+ wprintw(win, " /cancel : Cancel file transfer where type: in|out\n");
#ifdef AUDIO
wattron(win, A_BOLD);
- wprintw(win, gettext("\n Audio:\n"));
+ wprintw(win, "\n Audio:\n");
wattroff(win, A_BOLD);
- wprintw(win, " /call : ");
- wprintw(win, gettext("Audio call\n"));
- wprintw(win, " /answer : ");
- wprintw(win, gettext("Answer incoming call\n"));
- wprintw(win, " /reject : ");
- wprintw(win, gettext("Reject incoming call\n"));
- wprintw(win, " /hangup : ");
- wprintw(win, gettext("Hangup active call\n"));
- wprintw(win, " /sdev : ");
- wprintw(win, gettext("Change active device\n"));
- wprintw(win, " /mute : ");
- wprintw(win, gettext("Mute active device if in call\n"));
- wprintw(win, " /sense : ");
- wprintw(win, gettext("VAD sensitivity threshold\n"));
+ wprintw(win, " /call : Audio call\n");
+ wprintw(win, " /answer : Answer incoming call\n");
+ wprintw(win, " /reject : Reject incoming call\n");
+ wprintw(win, " /hangup : Hangup active call\n");
+ wprintw(win, " /sdev : Change active device\n");
+ wprintw(win, " /mute : Mute active device if in call\n");
+ wprintw(win, " /sense : VAD sensitivity threshold\n");
#endif /* AUDIO */
help_draw_bottom_menu(win);
@@ -253,22 +216,16 @@ static void help_draw_keys(ToxWindow *self)
wmove(win, 1, 1);
wattron(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext("Key bindings:\n"));
+ wprintw(win, "Key bindings:\n");
wattroff(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, " Ctrl+O -- Ctrl+P : ");
- wprintw(win, gettext("Navigate through the tabs\n"));
- wprintw(win, " Page Up -- Page Down : ");
- wprintw(win, gettext("Scroll window history one line\n"));
- wprintw(win, " Ctrl+F -- Ctrl+V : ");
- wprintw(win, gettext("Scroll window history half a page\n"));
- wprintw(win, " Ctrl+H : ");
- wprintw(win, gettext("Move to the bottom of window history\n"));
- wprintw(win, " Ctrl+[ -- Ctrl+] : ");
- wprintw(win, gettext("Scroll peer list in groupchats\n"));
- wprintw(win, " Ctrl+B : ");
- wprintw(win, gettext("Toggle the groupchat peerlist\n\n"));
- wprintw(win, gettext(" (Note: Custom keybindings override these defaults.)\n\n"));
+ wprintw(win, " Ctrl+O and Ctrl+P : Navigate through the tabs\n");
+ wprintw(win, " Page Up and Page Down : Scroll window history one line\n");
+ wprintw(win, " Ctrl+F and Ctrl+V : Scroll window history half a page\n");
+ wprintw(win, " Ctrl+H : Move to the bottom of window history\n");
+ wprintw(win, " Ctrl+[ and Ctrl+] : Scroll peer list in groupchats\n");
+ wprintw(win, " Ctrl+B : Toggle the groupchat peerlist\n\n");
+ wprintw(win, " (Note: Custom keybindings override these defaults.)\n\n");
help_draw_bottom_menu(win);
@@ -283,11 +240,10 @@ static void help_draw_group(ToxWindow *self)
wmove(win, 1, 1);
wattron(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext("Group commands:\n"));
+ wprintw(win, "Group commands:\n");
wattroff(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, " /title : ");
- wprintw(win, gettext("Set group title (show current title if no msg)\n\n"));
+ wprintw(win, " /title : Set group title (show current title if no msg)\n\n");
help_draw_bottom_menu(win);
@@ -302,15 +258,14 @@ static void help_draw_contacts(ToxWindow *self)
wmove(win, 1, 1);
wattron(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext("Friendlist controls:\n"));
+ wprintw(win, "Friendlist controls:\n");
wattroff(win, A_BOLD | COLOR_PAIR(RED));
- wprintw(win, gettext(" Up and Down arrows : Scroll through list\n"));
- wprintw(win, gettext(" Right and Left arrows : Switch between friendlist and blocked list\n"));
- wprintw(win, gettext(" Enter : Open a chat window with selected contact\n"));
- wprintw(win, gettext(" Delete : Permanently delete a contact\n"));
- wprintw(win, " B : ");
- wprintw(win, gettext("Block or unblock a contact\n"));
+ wprintw(win, " Up and Down arrows : Scroll through list\n");
+ wprintw(win, " Right and Left arrows : Switch between friendlist and blocked list\n");
+ wprintw(win, " Enter : Open a chat window with selected contact\n");
+ wprintw(win, " Delete : Permanently delete a contact\n");
+ wprintw(win, " B : Block or unblock a contact\n");
help_draw_bottom_menu(win);
diff --git a/src/line_info.c b/src/line_info.c
index 12eea6d..b645e8f 100644
--- a/src/line_info.c
+++ b/src/line_info.c
@@ -25,12 +25,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "line_info.h"
@@ -47,7 +41,7 @@ void line_info_init(struct history *hst)
hst->line_root = calloc(1, sizeof(struct line_info));
if (hst->line_root == NULL)
- exit_toxic_err(gettext("failed in line_info_init"), FATALERR_MEMORY);
+ exit_toxic_err("failed in line_info_init", FATALERR_MEMORY);
hst->line_start = hst->line_root;
hst->line_end = hst->line_start;
@@ -147,7 +141,7 @@ void line_info_add(ToxWindow *self, const char *timestr, const char *name1, cons
struct line_info *new_line = calloc(1, sizeof(struct line_info));
if (new_line == NULL)
- exit_toxic_err(gettext("failed in line_info_add"), FATALERR_MEMORY);
+ exit_toxic_err("failed in line_info_add", FATALERR_MEMORY);
char frmt_msg[MAX_LINE_INFO_MSG_SIZE] = {0};
diff --git a/src/log.c b/src/log.c
index a3331ef..f04c83d 100644
--- a/src/log.c
+++ b/src/log.c
@@ -25,12 +25,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "configdir.h"
#include "toxic.h"
#include "windows.h"
@@ -186,17 +180,17 @@ void load_chat_history(ToxWindow *self, struct chatlog *log)
char *hstbuf = malloc(sz);
if (hstbuf == NULL)
- exit_toxic_err(gettext("failed in load_chat_history"), FATALERR_MEMORY);
+ exit_toxic_err("failed in load_chat_history", FATALERR_MEMORY);
if (fseek(log->file, 0L, SEEK_SET) == -1) {
free(hstbuf);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext(" * Failed to read log file"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, " * Failed to read log file");
return;
}
if (fread(hstbuf, sz, 1, log->file) != 1) {
free(hstbuf);
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext(" * Failed to read log file"));
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, RED, " * Failed to read log file");
return;
}
diff --git a/src/message_queue.c b/src/message_queue.c
index 996e4eb..70ccadb 100644
--- a/src/message_queue.c
+++ b/src/message_queue.c
@@ -22,12 +22,6 @@
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "message_queue.h"
@@ -53,7 +47,7 @@ void cqueue_add(struct chat_queue *q, const char *msg, size_t len, uint8_t type,
struct cqueue_msg *new_m = malloc(sizeof(struct cqueue_msg));
if (new_m == NULL)
- exit_toxic_err(gettext("failed in cqueue_message"), FATALERR_MEMORY);
+ exit_toxic_err("failed in cqueue_message", FATALERR_MEMORY);
snprintf(new_m->message, sizeof(new_m->message), "%s", msg);
new_m->len = len;
diff --git a/src/misc_tools.c b/src/misc_tools.c
index 65114a1..0d0a749 100644
--- a/src/misc_tools.c
+++ b/src/misc_tools.c
@@ -28,12 +28,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "misc_tools.h"
@@ -237,7 +231,7 @@ size_t get_file_name(char *namebuf, size_t bufsize, const char *pathname)
char *path = strdup(pathname);
if (path == NULL)
- exit_toxic_err(gettext("failed in get_file_name"), FATALERR_MEMORY);
+ exit_toxic_err("failed in get_file_name", FATALERR_MEMORY);
while (len >= 0 && pathname[len] == '/')
path[len--] = '\0';
@@ -245,7 +239,7 @@ size_t get_file_name(char *namebuf, size_t bufsize, const char *pathname)
char *finalname = strdup(path);
if (finalname == NULL)
- exit_toxic_err(gettext("failed in get_file_name"), FATALERR_MEMORY);
+ exit_toxic_err("failed in get_file_name", FATALERR_MEMORY);
const char *basenm = strrchr(path, '/');
diff --git a/src/prompt.c b/src/prompt.c
index a3d2901..7a189b0 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -28,12 +28,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "toxic.h"
#include "windows.h"
#include "prompt.h"
@@ -136,7 +130,7 @@ void prompt_update_statusmessage(ToxWindow *prompt, Tox *m, const char *statusms
tox_self_set_status_message(m, (uint8_t *) statusmsg, len, &err);
if (err != TOX_ERR_SET_INFO_OK)
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Failed to set note (error %d)\n"), err);
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to set note (error %d)\n", err);
}
/* Updates own status in prompt statusbar */
@@ -271,19 +265,19 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
if (statusbar->connection != TOX_CONNECTION_NONE) {
int colour = MAGENTA;
- const char *status_text = gettext("ERROR");
+ const char *status_text = "ERROR";
switch (statusbar->status) {
case TOX_USER_STATUS_NONE:
- status_text = gettext("Online");
+ status_text = "Online";
colour = GREEN;
break;
case TOX_USER_STATUS_AWAY:
- status_text = gettext("Away");
+ status_text = "Away";
colour = YELLOW;
break;
case TOX_USER_STATUS_BUSY:
- status_text = gettext("Busy");
+ status_text = "Busy";
colour = RED;
break;
}
@@ -296,7 +290,7 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
wprintw(statusbar->topline, " %s", statusbar->nick);
wattroff(statusbar->topline, A_BOLD);
} else {
- wprintw(statusbar->topline, gettext(" [Offline]"));
+ wprintw(statusbar->topline, " [Offline]");
wattron(statusbar->topline, A_BOLD);
wprintw(statusbar->topline, " %s", statusbar->nick);
wattroff(statusbar->topline, A_BOLD);
@@ -360,28 +354,28 @@ static void prompt_onConnectionChange(ToxWindow *self, Tox *m, uint32_t friendnu
const char *msg;
if (connection_status != TOX_CONNECTION_NONE && Friends.list[friendnum].connection_status == TOX_CONNECTION_NONE) {
- msg = gettext("has come online");
+ msg = "has come online";
line_info_add(self, timefrmt, nick, NULL, CONNECTION, 0, GREEN, msg);
write_to_log(msg, nick, ctx->log, true);
if (self->active_box != -1)
box_notify2(self, user_log_in, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, self->active_box,
- gettext("%s has come online"), nick );
+ "%s has come online", nick );
else
box_notify(self, user_log_in, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, &self->active_box,
- "Toxic", gettext("%s has come online"), nick );
+ "Toxic", "%s has come online", nick );
}
else if (connection_status == TOX_CONNECTION_NONE) {
- msg = gettext("has gone offline");
+ msg = "has gone offline";
line_info_add(self, timefrmt, nick, NULL, DISCONNECTION, 0, RED, msg);
write_to_log(msg, nick, ctx->log, true);
if (self->active_box != -1)
box_notify2(self, user_log_out, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, self->active_box,
- gettext("%s has gone offline"), nick );
+ "%s has gone offline", nick );
else
box_notify(self, user_log_out, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, &self->active_box,
- "Toxic", gettext("%s has gone offline"), nick );
+ "Toxic", "%s has gone offline", nick );
}
}
@@ -392,18 +386,18 @@ static void prompt_onFriendRequest(ToxWindow *self, Tox *m, const char *key, con
char timefrmt[TIME_STR_SIZE];
get_time_str(timefrmt, sizeof(timefrmt));
- line_info_add(self, timefrmt, NULL, NULL, SYS_MSG, 0, 0, gettext("Friend request with the message '%s'"), data);
- write_to_log(gettext("Friend request with the message '%s'"), "", ctx->log, true);
+ line_info_add(self, timefrmt, NULL, NULL, SYS_MSG, 0, 0, "Friend request with the message '%s'", data);
+ write_to_log("Friend request with the message '%s'", "", ctx->log, true);
int n = add_friend_request(key, data);
if (n == -1) {
- const char *errmsg = gettext("Friend request queue is full. Discarding request.");
+ const char *errmsg = "Friend request queue is full. Discarding request.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg);
return;
}
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Type \"%s %d\" or \"%s %d\""), "/accept", n, "/decline", n);
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type \"/accept %d\" or \"/decline %d\"", n, n);
sound_notify(self, generic_message, NT_WNDALERT_1 | NT_NOTIFWND, NULL);
}
@@ -432,8 +426,8 @@ void prompt_init_statusbar(ToxWindow *self, Tox *m)
nick[n_len] = '\0';
statusmsg[s_len] = '\0';
- if (s_len == 0 || !strncmp(statusmsg, gettext("Toxing on Toxic"), strlen(gettext("Toxing on Toxic")))) {
- snprintf(statusmsg, sizeof(statusmsg), gettext("Toxing on Toxic"));
+ if (s_len == 0 || !strncmp(statusmsg, "Toxing on Toxic", strlen("Toxing on Toxic"))) {
+ snprintf(statusmsg, sizeof(statusmsg), "Toxing on Toxic");
s_len = strlen(statusmsg);
statusmsg[s_len] = '\0';
}
@@ -455,10 +449,10 @@ static void print_welcome_msg(ToxWindow *self)
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 1, BLUE, " |_| \\___/_/\\_\\___\\____| v." TOXICVER);
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "");
- const char *msg = gettext("Welcome to Toxic, a free, open source Tox-based instant messenging client.");
+ const char *msg = "Welcome to Toxic, a free, open source Tox-based instant messenging client.";
+ line_info_add(self, NULL, NULL, NULL, SYS_MSG, 1, CYAN, msg);
+ msg = "Type \"/help\" for assistance. Further help may be found via the man page.";
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 1, CYAN, msg);
- msg = gettext("Type \"%s\" for assistance. Further help may be found via the man page.");
- line_info_add(self, NULL, NULL, NULL, SYS_MSG, 1, CYAN, msg, "/help");
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "");
}
@@ -476,7 +470,7 @@ static void prompt_onInit(ToxWindow *self, Tox *m)
ctx->hst = calloc(1, sizeof(struct history));
if (ctx->log == NULL || ctx->hst == NULL)
- exit_toxic_err(gettext("failed in prompt_onInit"), FATALERR_MEMORY);
+ exit_toxic_err("failed in prompt_onInit", FATALERR_MEMORY);
line_info_init(ctx->hst);
@@ -514,7 +508,7 @@ ToxWindow new_prompt(void)
Help *help = calloc(1, sizeof(Help));
if (stb == NULL || chatwin == NULL || help == NULL)
- exit_toxic_err(gettext("failed in new_prompt"), FATALERR_MEMORY);
+ exit_toxic_err("failed in new_prompt", FATALERR_MEMORY);
ret.chatwin = chatwin;
ret.stb = stb;
diff --git a/src/toxic.c b/src/toxic.c
index c8d0c4f..9d14328 100644
--- a/src/toxic.c
+++ b/src/toxic.c
@@ -40,12 +40,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include
#include
@@ -109,7 +103,7 @@ static void catch_SIGSEGV(int sig)
{
freopen("/dev/tty", "w", stderr); // make sure stderr is enabled since we may have disabled it
endwin();
- fprintf(stderr, gettext("Caught SIGSEGV: Aborting toxic session.\n"));
+ fprintf(stderr, "Caught SIGSEGV: Aborting toxic session.\n");
exit(EXIT_FAILURE);
}
@@ -158,7 +152,7 @@ void exit_toxic_err(const char *errmsg, int errcode)
{
freopen("/dev/tty", "w", stderr);
endwin();
- fprintf(stderr, gettext("Toxic session aborted with error code %d (%s)\n"), errcode, errmsg);
+ fprintf(stderr, "Toxic session aborted with error code %d (%s)\n", errcode, errmsg);
exit(EXIT_FAILURE);
}
@@ -168,16 +162,12 @@ static void init_term(void)
if (!arg_opts.default_locale) {
if (setlocale(LC_ALL, "") == NULL)
- exit_toxic_err(gettext("Could not set your locale, please check your locale settings or "
- "disable unicode support with the -d flag."), FATALERR_LOCALE_NOT_SET);
+ exit_toxic_err("Could not set your locale, please check your locale settings or "
+ "disable unicode support with the -d flag.", FATALERR_LOCALE_NOT_SET);
}
#endif
-#ifndef NO_GETTEXT
- textdomain("toxic");
-#endif
-
initscr();
cbreak();
keypad(stdscr, 1);
@@ -228,12 +218,12 @@ static void queue_init_message(const char *msg, ...)
char **new_msgs = realloc(init_messages.msgs, sizeof(char *) * init_messages.num);
if (new_msgs == NULL)
- exit_toxic_err(gettext("Failed in queue_init_message"), FATALERR_MEMORY);
+ exit_toxic_err("Failed in queue_init_message", FATALERR_MEMORY);
new_msgs[i] = malloc(MAX_STR_SIZE);
if (new_msgs[i] == NULL)
- exit_toxic_err(gettext("Failed in queue_init_message"), FATALERR_MEMORY);
+ exit_toxic_err("Failed in queue_init_message", FATALERR_MEMORY);
snprintf(new_msgs[i], MAX_STR_SIZE, "%s", frmt_msg);
init_messages.msgs = new_msgs;
@@ -261,7 +251,7 @@ static void print_init_messages(ToxWindow *toxwin)
line_info_add(toxwin, NULL, NULL, NULL, SYS_MSG, 0, 0, init_messages.msgs[i]);
}
-#define MIN_NODE_LINE 50 /* IP: 7 + port: 5 + key: 38 + spaces: 2 = 70. ! (& e.g. tox.chat = 6) */
+#define MIN_NODE_LINE 50 /* IP: 7 + port: 5 + key: 38 + spaces: 2 = 70. ! (& e.g. tox.im = 6) */
#define MAX_NODE_LINE 256 /* Approx max number of chars in a sever line (name + port + key) */
#define MAXNODES 50
#define NODELEN (MAX_NODE_LINE - TOX_PUBLIC_KEY_SIZE - 7)
@@ -325,14 +315,14 @@ int init_connection_helper(Tox *m, int line)
tox_bootstrap(m, toxNodes.nodes[line], toxNodes.ports[line], (uint8_t *) toxNodes.keys[line], &err);
if (err != TOX_ERR_BOOTSTRAP_OK) {
- fprintf(stderr, gettext("Failed to bootstrap %s:%d\n"), toxNodes.nodes[line], toxNodes.ports[line]);
+ fprintf(stderr, "Failed to bootstrap %s:%d\n", toxNodes.nodes[line], toxNodes.ports[line]);
return -1;
}
tox_add_tcp_relay(m, toxNodes.nodes[line], toxNodes.ports[line], (uint8_t *) toxNodes.keys[line], &err);
if (err != TOX_ERR_BOOTSTRAP_OK) {
- fprintf(stderr, gettext("Failed to add TCP relay %s:%d\n"), toxNodes.nodes[line], toxNodes.ports[line]);
+ fprintf(stderr, "Failed to add TCP relay %s:%d\n", toxNodes.nodes[line], toxNodes.ports[line]);
return -1;
}
@@ -463,7 +453,7 @@ static void first_time_encrypt(const char *msg)
bool valid_password = false;
char passconfirm[MAX_PASSWORD_LEN + 1] = {0};
- printf(gettext("Enter a new password (must be at least %d characters) "), MIN_PASSWORD_LEN);
+ printf("Enter a new password (must be at least %d characters) ", MIN_PASSWORD_LEN);
while (valid_password == false) {
len = password_prompt(user_password.pass, sizeof(user_password.pass));
@@ -473,12 +463,12 @@ static void first_time_encrypt(const char *msg)
exit(0);
if (string_is_empty(passconfirm) && (len < MIN_PASSWORD_LEN || len > MAX_PASSWORD_LEN)) {
- printf(gettext("Password must be between %d and %d characters long. "), MIN_PASSWORD_LEN, MAX_PASSWORD_LEN);
+ printf("Password must be between %d and %d characters long. ", MIN_PASSWORD_LEN, MAX_PASSWORD_LEN);
continue;
}
if (string_is_empty(passconfirm)) {
- printf(gettext("Enter password again "));
+ printf("Enter password again ");
snprintf(passconfirm, sizeof(passconfirm), "%s", user_password.pass);
continue;
}
@@ -486,14 +476,14 @@ static void first_time_encrypt(const char *msg)
if (strcmp(user_password.pass, passconfirm) != 0) {
memset(passconfirm, 0, sizeof(passconfirm));
memset(user_password.pass, 0, sizeof(user_password.pass));
- printf(gettext("Passwords don't match. Try again. "));
+ printf("Passwords don't match. Try again. ");
continue;
}
valid_password = true;
}
- queue_init_message(gettext("Data file '%s' is encrypted"), DATA_FILE);
+ queue_init_message("Data file '%s' is encrypted", DATA_FILE);
memset(passconfirm, 0, sizeof(passconfirm));
user_password.data_is_encrypted = true;
}
@@ -530,7 +520,7 @@ int store_data(Tox *m, const char *path)
(uint8_t *) enc_data, &err);
if (err != TOX_ERR_ENCRYPTION_OK) {
- fprintf(stderr, gettext("tox_pass_encrypt() failed with error %d\n"), err);
+ fprintf(stderr, "tox_pass_encrypt() failed with error %d\n", err);
fclose(fp);
return -1;
}
@@ -581,7 +571,7 @@ static void init_tox_options(struct Tox_Options *tox_opts)
tox_opts->proxy_type = arg_opts.proxy_type;
if (!tox_opts->ipv6_enabled)
- queue_init_message(gettext("Forcing IPv4 connection"));
+ queue_init_message("Forcing IPv4 connection");
if (tox_opts->proxy_type != TOX_PROXY_TYPE_NONE) {
tox_opts->proxy_port = arg_opts.proxy_port;
@@ -589,16 +579,16 @@ static void init_tox_options(struct Tox_Options *tox_opts)
const char *ps = tox_opts->proxy_type == TOX_PROXY_TYPE_SOCKS5 ? "SOCKS5" : "HTTP";
char tmp[48];
- snprintf(tmp, sizeof(tmp), gettext("Using %s proxy %s : %d"), ps, arg_opts.proxy_address, arg_opts.proxy_port);
+ snprintf(tmp, sizeof(tmp), "Using %s proxy %s : %d", ps, arg_opts.proxy_address, arg_opts.proxy_port);
queue_init_message("%s", tmp);
}
if (!tox_opts->udp_enabled) {
- queue_init_message(gettext("UDP disabled"));
+ queue_init_message("UDP disabled");
} else if (tox_opts->proxy_type != TOX_PROXY_TYPE_NONE) {
- const char *msg = gettext("WARNING: Using a proxy without disabling UDP may leak your real IP address.");
+ const char *msg = "WARNING: Using a proxy without disabling UDP may leak your real IP address.";
queue_init_message("%s", msg);
- msg = gettext("Use the -t option to disable UDP.");
+ msg = "Use the -t option to disable UDP.";
queue_init_message("%s", msg);
}
}
@@ -617,14 +607,14 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
if (len == 0) {
fclose(fp);
- exit_toxic_err(gettext("failed in load_toxic"), FATALERR_FILEOP);
+ exit_toxic_err("failed in load_toxic", FATALERR_FILEOP);
}
char data[len];
if (fread(data, sizeof(data), 1, fp) != 1) {
fclose(fp);
- exit_toxic_err(gettext("failed in load_toxic"), FATALERR_FILEOP);
+ exit_toxic_err("failed in load_toxic", FATALERR_FILEOP);
}
bool is_encrypted = tox_is_data_encrypted((uint8_t *) data);
@@ -632,13 +622,13 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
/* attempt to encrypt an already encrypted data file */
if (arg_opts.encrypt_data && is_encrypted) {
fclose(fp);
- exit_toxic_err(gettext("failed in load_toxic"), FATALERR_ENCRYPT);
+ exit_toxic_err("failed in load_toxic", FATALERR_ENCRYPT);
}
if (arg_opts.unencrypt_data && is_encrypted)
- queue_init_message(gettext("Data file '%s' has been unencrypted"), data_path);
+ queue_init_message("Data file '%s' has been unencrypted", data_path);
else if (arg_opts.unencrypt_data)
- queue_init_message(gettext("Warning: passed --unencrypt-data option with unencrypted data file '%s'"), data_path);
+ queue_init_message("Warning: passed --unencrypt-data option with unencrypted data file '%s'", data_path);
if (is_encrypted) {
if (!arg_opts.unencrypt_data)
@@ -646,7 +636,7 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
size_t pwlen = 0;
system("clear"); // TODO: is this portable?
- printf(gettext("Enter password (\"%s\" to quit) "), "q");
+ printf("Enter password (q to quit) ");
size_t plain_len = len - TOX_PASS_ENCRYPTION_EXTRA_LENGTH;
char plain[plain_len];
@@ -663,7 +653,7 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
if (pwlen < MIN_PASSWORD_LEN) {
system("clear");
sleep(1);
- printf(gettext("Invalid password. Try again. "));
+ printf("Invalid password. Try again. ");
continue;
}
@@ -687,10 +677,10 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
} else if (pwerr == TOX_ERR_DECRYPTION_FAILED) {
system("clear");
sleep(1);
- printf(gettext("Invalid password. Try again. "));
+ printf("Invalid password. Try again. ");
} else {
fclose(fp);
- exit_toxic_err(gettext("tox_pass_decrypt() failed"), pwerr);
+ exit_toxic_err("tox_pass_decrypt() failed", pwerr);
}
}
} else { /* data is not encrypted */
@@ -709,7 +699,7 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
fclose(fp);
} else { /* Data file does not/should not exist */
if (file_exists(data_path))
- exit_toxic_err(gettext("failed in load_toxic"), FATALERR_FILEOP);
+ exit_toxic_err("failed in load_toxic", FATALERR_FILEOP);
tox_opts->savedata_type = TOX_SAVEDATA_TYPE_NONE;
@@ -719,7 +709,7 @@ static Tox *load_tox(char *data_path, struct Tox_Options *tox_opts, TOX_ERR_NEW
return NULL;
if (store_data(m, data_path) == -1)
- exit_toxic_err(gettext("failed in load_toxic"), FATALERR_FILEOP);
+ exit_toxic_err("failed in load_toxic", FATALERR_FILEOP);
}
return m;
@@ -734,23 +724,23 @@ static Tox *load_toxic(char *data_path)
Tox *m = load_tox(data_path, &tox_opts, &new_err);
if (new_err == TOX_ERR_NEW_PORT_ALLOC && tox_opts.ipv6_enabled) {
- queue_init_message(gettext("Falling back to ipv4"));
+ queue_init_message("Falling back to ipv4");
tox_opts.ipv6_enabled = false;
m = load_tox(data_path, &tox_opts, &new_err);
}
if (!m)
- exit_toxic_err(gettext("tox_new returned fatal error"), new_err);
+ exit_toxic_err("tox_new returned fatal error", new_err);
if (new_err != TOX_ERR_NEW_OK)
- queue_init_message(gettext("tox_new returned non-fatal error %d"), new_err);
+ queue_init_message("tox_new returned non-fatal error %d", new_err);
init_tox_callbacks(m);
load_friendlist(m);
load_blocklist(BLOCK_FILE);
if (tox_self_get_name_size(m) == 0)
- tox_self_set_name(m, (uint8_t *) gettext("Toxic User"), strlen(gettext("Toxic User")), NULL);
+ tox_self_set_name(m, (uint8_t *) "Toxic User", strlen("Toxic User"), NULL);
return m;
}
@@ -776,7 +766,7 @@ static void do_bootstrap(Tox *m)
conn_err = init_connection(m);
if (conn_err != 0)
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Auto-connect failed with error code %d"), conn_err);
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, 0, "Auto-connect failed with error code %d", conn_err);
}
static void do_toxic(Tox *m, ToxWindow *prompt)
@@ -857,35 +847,21 @@ void *thread_audio(void *data)
static void print_usage(void)
{
- fprintf(stderr, gettext("usage: toxic [OPTION] [FILE ...]\n"));
- fprintf(stderr, " -4, --ipv4 ");
- fprintf(stderr, gettext("Force IPv4 connection\n"));
- fprintf(stderr, " -b, --debug ");
- fprintf(stderr, gettext("Enable stderr for debugging\n"));
- fprintf(stderr, " -c, --config ");
- fprintf(stderr, gettext("Use specified config file\n"));
- fprintf(stderr, " -d, --default-locale ");
- fprintf(stderr, gettext("Use default POSIX locale\n"));
- fprintf(stderr, " -e, --encrypt-data ");
- fprintf(stderr, gettext("Encrypt an unencrypted data file\n"));
- fprintf(stderr, " -f, --file ");
- fprintf(stderr, gettext("Use specified data file\n"));
- fprintf(stderr, " -h, --help ");
- fprintf(stderr, gettext("Show this message and exit\n"));
- fprintf(stderr, " -n, --nodes ");
- fprintf(stderr, gettext("Use specified DHTnodes file\n"));
- fprintf(stderr, " -o, --noconnect ");
- fprintf(stderr, gettext("Do not connect to the DHT network\n"));
- fprintf(stderr, " -p, --SOCKS5-proxy ");
- fprintf(stderr, gettext("Use SOCKS5 proxy: Requires [IP] [port]\n"));
- fprintf(stderr, " -P, --HTTP-proxy ");
- fprintf(stderr, gettext("Use HTTP proxy: Requires [IP] [port]\n"));
- fprintf(stderr, " -r, --dnslist ");
- fprintf(stderr, gettext("Use specified DNSservers file\n"));
- fprintf(stderr, " -t, --force-tcp ");
- fprintf(stderr, gettext("Force TCP connection (use this with proxies)\n"));
- fprintf(stderr, " -u, --unencrypt-data ");
- fprintf(stderr, gettext("Unencrypt an encrypted data file\n"));
+ fprintf(stderr, "usage: toxic [OPTION] [FILE ...]\n");
+ fprintf(stderr, " -4, --ipv4 Force IPv4 connection\n");
+ fprintf(stderr, " -b, --debug Enable stderr for debugging\n");
+ fprintf(stderr, " -c, --config Use specified config file\n");
+ fprintf(stderr, " -d, --default-locale Use default POSIX locale\n");
+ fprintf(stderr, " -e, --encrypt-data Encrypt an unencrypted data file\n");
+ fprintf(stderr, " -f, --file Use specified data file\n");
+ fprintf(stderr, " -h, --help Show this message and exit\n");
+ fprintf(stderr, " -n, --nodes Use specified DHTnodes file\n");
+ fprintf(stderr, " -o, --noconnect Do not connect to the DHT network\n");
+ fprintf(stderr, " -p, --SOCKS5-proxy Use SOCKS5 proxy: Requires [IP] [port]\n");
+ fprintf(stderr, " -P, --HTTP-proxy Use HTTP proxy: Requires [IP] [port]\n");
+ fprintf(stderr, " -r, --dnslist Use specified DNSservers file\n");
+ fprintf(stderr, " -t, --force-tcp Force TCP connection (use this with proxies)\n");
+ fprintf(stderr, " -u, --unencrypt-data Unencrypt an encrypted data file\n");
}
static void set_default_opts(void)
@@ -929,20 +905,20 @@ static void parse_args(int argc, char *argv[])
case 'b':
arg_opts.debug = 1;
- queue_init_message(gettext("stderr enabled"));
+ queue_init_message("stderr enabled");
break;
case 'c':
snprintf(arg_opts.config_path, sizeof(arg_opts.config_path), "%s", optarg);
if (!file_exists(arg_opts.config_path))
- queue_init_message(gettext("Config file not found"));
+ queue_init_message("Config file not found");
break;
case 'd':
arg_opts.default_locale = 1;
- queue_init_message(gettext("Using default POSIX locale"));
+ queue_init_message("Using default POSIX locale");
break;
case 'e':
@@ -955,12 +931,12 @@ static void parse_args(int argc, char *argv[])
BLOCK_FILE = malloc(strlen(optarg) + strlen("-blocklist") + 1);
if (DATA_FILE == NULL || BLOCK_FILE == NULL)
- exit_toxic_err(gettext("failed in parse_args"), FATALERR_MEMORY);
+ exit_toxic_err("failed in parse_args", FATALERR_MEMORY);
strcpy(BLOCK_FILE, optarg);
strcat(BLOCK_FILE, "-blocklist");
- queue_init_message(gettext("Using '%s' data file"), DATA_FILE);
+ queue_init_message("Using '%s' data file", DATA_FILE);
break;
@@ -968,13 +944,13 @@ static void parse_args(int argc, char *argv[])
snprintf(arg_opts.nodes_path, sizeof(arg_opts.nodes_path), "%s", optarg);
if (!file_exists(arg_opts.nodes_path))
- queue_init_message(gettext("DHTnodes file not found"));
+ queue_init_message("DHTnodes file not found");
break;
case 'o':
arg_opts.no_connect = 1;
- queue_init_message(gettext("DHT disabled"));
+ queue_init_message("DHT disabled");
break;
case 'p':
@@ -982,7 +958,7 @@ static void parse_args(int argc, char *argv[])
snprintf(arg_opts.proxy_address, sizeof(arg_opts.proxy_address), "%s", optarg);
if (++optind > argc || argv[optind-1][0] == '-')
- exit_toxic_err(gettext("Proxy error"), FATALERR_PROXY);
+ exit_toxic_err("Proxy error", FATALERR_PROXY);
arg_opts.proxy_port = (uint16_t) atoi(argv[optind-1]);
break;
@@ -992,7 +968,7 @@ static void parse_args(int argc, char *argv[])
snprintf(arg_opts.proxy_address, sizeof(arg_opts.proxy_address), "%s", optarg);
if (++optind > argc || argv[optind-1][0] == '-')
- exit_toxic_err(gettext("Proxy error"), FATALERR_PROXY);
+ exit_toxic_err("Proxy error", FATALERR_PROXY);
arg_opts.proxy_port = (uint16_t) atoi(argv[optind-1]);
break;
@@ -1001,7 +977,7 @@ static void parse_args(int argc, char *argv[])
snprintf(arg_opts.dns_path, sizeof(arg_opts.dns_path), "%s", optarg);
if (!file_exists(arg_opts.dns_path))
- queue_init_message(gettext("DNSservers file not found"));
+ queue_init_message("DNSservers file not found");
break;
@@ -1036,13 +1012,13 @@ static int init_default_data_files(void)
BLOCK_FILE = strdup(BLOCKNAME);
if (DATA_FILE == NULL || BLOCK_FILE == NULL)
- exit_toxic_err(gettext("failed in load_data_structures"), FATALERR_MEMORY);
+ exit_toxic_err("failed in load_data_structures", FATALERR_MEMORY);
} else {
DATA_FILE = malloc(strlen(user_config_dir) + strlen(CONFIGDIR) + strlen(DATANAME) + 1);
BLOCK_FILE = malloc(strlen(user_config_dir) + strlen(CONFIGDIR) + strlen(BLOCKNAME) + 1);
if (DATA_FILE == NULL || BLOCK_FILE == NULL)
- exit_toxic_err(gettext("failed in load_data_structures"), FATALERR_MEMORY);
+ exit_toxic_err("failed in load_data_structures", FATALERR_MEMORY);
strcpy(DATA_FILE, user_config_dir);
strcat(DATA_FILE, CONFIGDIR);
@@ -1098,7 +1074,7 @@ int main(int argc, char *argv[])
if (arg_opts.encrypt_data && arg_opts.unencrypt_data) {
arg_opts.encrypt_data = 0;
arg_opts.unencrypt_data = 0;
- queue_init_message(gettext("Warning: Using \"%s\" and \"%s\" simultaneously has no effect"), "--unencrypt-data", "--encrypt-data");
+ queue_init_message("Warning: Using --unencrypt-data and --encrypt-data simultaneously has no effect");
}
/* Make sure all written files are read/writeable only by the current user. */
@@ -1111,23 +1087,23 @@ int main(int argc, char *argv[])
last_bootstrap_time = get_unix_time();
if (!datafile_exists && !arg_opts.unencrypt_data)
- first_time_encrypt(gettext("Creating new data file. Would you like to encrypt it? Y/n (q to quit)"));
+ first_time_encrypt("Creating new data file. Would you like to encrypt it? Y/n (q to quit)");
else if (arg_opts.encrypt_data)
- first_time_encrypt(gettext("Encrypt existing data file? Y/n (q to quit)"));
+ first_time_encrypt("Encrypt existing data file? Y/n (q to quit)");
/* init user_settings struct and load settings from conf file */
user_settings = calloc(1, sizeof(struct user_settings));
if (user_settings == NULL)
- exit_toxic_err(gettext("failed in main"), FATALERR_MEMORY);
+ exit_toxic_err("failed in main", FATALERR_MEMORY);
const char *p = arg_opts.config_path[0] ? arg_opts.config_path : NULL;
int settings_err = settings_load(user_settings, p);
#ifdef X11
if (init_xtra(DnD_callback) == -1)
- queue_init_message(gettext("X failed to initialize"));
+ queue_init_message("X failed to initialize");
#endif
Tox *m = load_toxic(DATA_FILE);
@@ -1143,14 +1119,14 @@ int main(int argc, char *argv[])
/* thread for ncurses stuff */
if (pthread_mutex_init(&Winthread.lock, NULL) != 0)
- exit_toxic_err(gettext("failed in main"), FATALERR_MUTEX_INIT);
+ exit_toxic_err("failed in main", FATALERR_MUTEX_INIT);
if (pthread_create(&Winthread.tid, NULL, thread_winref, (void *) m) != 0)
- exit_toxic_err(gettext("failed in main"), FATALERR_THREAD_CREATE);
+ exit_toxic_err("failed in main", FATALERR_THREAD_CREATE);
/* thread for message queue */
if (pthread_create(&cqueue_thread.tid, NULL, thread_cqueue, (void *) m) != 0)
- exit_toxic_err(gettext("failed in main"), FATALERR_THREAD_CREATE);
+ exit_toxic_err("failed in main", FATALERR_THREAD_CREATE);
#ifdef AUDIO
@@ -1158,14 +1134,14 @@ int main(int argc, char *argv[])
/* audio thread */
if (pthread_create(&audio_thread.tid, NULL, thread_audio, (void *) av) != 0)
- exit_toxic_err(gettext("failed in main"), FATALERR_THREAD_CREATE);
+ exit_toxic_err("failed in main", FATALERR_THREAD_CREATE);
set_primary_device(input, user_settings->audio_in_dev);
set_primary_device(output, user_settings->audio_out_dev);
#elif SOUND_NOTIFY
if ( init_devices() == de_InternalError )
- queue_init_message(gettext("Failed to init audio devices"));
+ queue_init_message("Failed to init audio devices");
#endif /* AUDIO */
@@ -1174,16 +1150,16 @@ int main(int argc, char *argv[])
const char *msg;
if (config_err) {
- msg = gettext("Unable to determine configuration directory. Defaulting to 'data' for data file...");
+ msg = "Unable to determine configuration directory. Defaulting to 'data' for data file...";
queue_init_message("%s", msg);
}
if (settings_err == -1)
- queue_init_message(gettext("Failed to load user settings"));
+ queue_init_message("Failed to load user settings");
/* screen/tmux auto-away timer */
if (init_mplex_away_timer(m) == -1)
- queue_init_message(gettext("Failed to init mplex auto-away."));
+ queue_init_message("Failed to init mplex auto-away.");
print_init_messages(prompt);
cleanup_init_messages();
@@ -1206,7 +1182,7 @@ int main(int argc, char *argv[])
if (timed_out(last_save, cur_time, AUTOSAVE_FREQ)) {
pthread_mutex_lock(&Winthread.lock);
if (store_data(m, DATA_FILE) != 0)
- line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, gettext("WARNING: Failed to save to data file"));
+ line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, "WARNING: Failed to save to data file");
pthread_mutex_unlock(&Winthread.lock);
last_save = cur_time;
diff --git a/src/toxic.h b/src/toxic.h
index 0adb759..6129fab 100644
--- a/src/toxic.h
+++ b/src/toxic.h
@@ -40,8 +40,8 @@
#include
-#define UNKNOWN_NAME gettext("Anonymous")
-#define DEFAULT_TOX_NAME gettext("Tox User") /* should always be the same as toxcore's default name */
+#define UNKNOWN_NAME "Anonymous"
+#define DEFAULT_TOX_NAME "Tox User" /* should always be the same as toxcore's default name */
#define MAX_STR_SIZE TOX_MAX_MESSAGE_LENGTH /* must be >= TOX_MAX_MESSAGE_LENGTH */
#define MAX_CMDNAME_SIZE 64
diff --git a/src/windows.c b/src/windows.c
index f50ff10..142bebc 100644
--- a/src/windows.c
+++ b/src/windows.c
@@ -25,12 +25,6 @@
#include
#include
-#ifdef NO_GETTEXT
-#define gettext(A) (A)
-#else
-#include
-#endif
-
#include "friendlist.h"
#include "prompt.h"
#include "toxic.h"
@@ -365,7 +359,7 @@ void set_next_window(int ch)
return;
if (active_window == inf) /* infinite loop check */
- exit_toxic_err(gettext("failed in set_next_window"), FATALERR_INFLOOP);
+ exit_toxic_err("failed in set_next_window", FATALERR_INFLOOP);
}
}
@@ -387,7 +381,7 @@ ToxWindow *init_windows(Tox *m)
int n_prompt = add_window(m, new_prompt());
if (n_prompt == -1 || add_window(m, new_friendlist()) == -1)
- exit_toxic_err(gettext("failed in init_windows"), FATALERR_WININIT);
+ exit_toxic_err("failed in init_windows", FATALERR_WININIT);
prompt = &windows[n_prompt];
active_window = prompt;
diff --git a/translations/en.mo b/translations/en.mo
deleted file mode 100644
index bc070ff..0000000
Binary files a/translations/en.mo and /dev/null differ
diff --git a/translations/en.po b/translations/en.po
deleted file mode 100644
index da78bd1..0000000
--- a/translations/en.po
+++ /dev/null
@@ -1,1600 +0,0 @@
-# English translations for Toxic package.
-# Copyright (C) 2015 Toxic Team
-# This file is distributed under the same license as the Toxic package.
-# Automatically generated, 2015.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Toxic 0.6.0\n"
-"Report-Msgid-Bugs-To: JFreegman@tox.chat\n"
-"POT-Creation-Date: 2015-06-30 23:49-0400\n"
-"PO-Revision-Date: 2015-05-30 11:30+0200\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../src/audio_call.c:133
-msgid "Failed to init devices"
-msgstr "Failed to init devices"
-
-#: ../src/audio_call.c:195 ../src/audio_call.c:201
-msgid "Could not prepare transmission"
-msgstr "Could not prepare transmission"
-
-#: ../src/audio_call.c:217
-msgid "Failed to open input device!"
-msgstr "Failed to open input device!"
-
-#: ../src/audio_call.c:222
-msgid "Failed to register input handler!"
-msgstr "Failed to register input handler!"
-
-#: ../src/audio_call.c:226
-msgid "Failed to open output device!"
-msgstr "Failed to open output device!"
-
-#: ../src/audio_call.c:284 ../src/audio_call.c:303
-msgid "Error starting transmission!"
-msgstr "Error starting transmission!"
-
-#: ../src/audio_call.c:357 ../src/audio_call.c:392 ../src/audio_call.c:423
-#: ../src/audio_call.c:454
-msgid "Unknown arguments."
-msgstr "Unknown arguments."
-
-#: ../src/audio_call.c:362 ../src/audio_call.c:397 ../src/audio_call.c:428
-#: ../src/audio_call.c:459
-msgid "Audio not supported!"
-msgstr "Audio not supported!"
-
-#: ../src/audio_call.c:367
-msgid "Friend is offline."
-msgstr "Friend is offline."
-
-#: ../src/audio_call.c:374
-msgid "Already in a call!"
-msgstr "Already in a call!"
-
-#: ../src/audio_call.c:375 ../src/audio_call.c:406 ../src/audio_call.c:437
-#: ../src/audio_call.c:479
-msgid "Internal error!"
-msgstr "Internal error!"
-
-#: ../src/audio_call.c:380
-#, c-format
-msgid "Calling... idx: %d"
-msgstr "Calling... idx: %d"
-
-#: ../src/audio_call.c:404
-msgid "Cannot answer in invalid state!"
-msgstr "Cannot answer in invalid state!"
-
-#: ../src/audio_call.c:405 ../src/audio_call.c:436
-msgid "No incoming call!"
-msgstr "No incoming call!"
-
-#: ../src/audio_call.c:432
-msgid "Why not?"
-msgstr "Why not?"
-
-#: ../src/audio_call.c:435
-msgid "Cannot reject in invalid state!"
-msgstr "Cannot reject in invalid state!"
-
-#: ../src/audio_call.c:467
-msgid "Only those who appreciate small things know the beauty that is life"
-msgstr "Only those who appreciate small things know the beauty that is life"
-
-#: ../src/audio_call.c:471 ../src/chat.c:653
-msgid "Call canceled!"
-msgstr "Call canceled!"
-
-#: ../src/audio_call.c:477
-msgid "Cannot hangup in invalid state!"
-msgstr "Cannot hangup in invalid state!"
-
-#: ../src/audio_call.c:478
-msgid "No call!"
-msgstr "No call!"
-
-#: ../src/audio_call.c:494 ../src/audio_call.c:526 ../src/audio_call.c:570
-#: ../src/audio_call.c:643
-msgid "Type must be specified!"
-msgstr "Type must be specified!"
-
-#: ../src/audio_call.c:495
-msgid "Only one argument allowed!"
-msgstr "Only one argument allowed!"
-
-#: ../src/audio_call.c:509 ../src/audio_call.c:542 ../src/audio_call.c:586
-#: ../src/audio_call.c:658
-#, c-format
-msgid "Invalid type: %s"
-msgstr "Invalid type: %s"
-
-#: ../src/audio_call.c:527 ../src/audio_call.c:571
-msgid "Must have id!"
-msgstr "Must have id!"
-
-#: ../src/audio_call.c:528 ../src/audio_call.c:572 ../src/audio_call.c:644
-#: ../src/audio_call.c:690
-msgid "Only two arguments allowed!"
-msgstr "Only two arguments allowed!"
-
-#: ../src/audio_call.c:551 ../src/audio_call.c:595 ../src/audio_call.c:699
-msgid "Invalid input"
-msgstr "Invalid input"
-
-#: ../src/audio_call.c:556 ../src/audio_call.c:600
-msgid "Invalid selection!"
-msgstr "Invalid selection!"
-
-#: ../src/audio_call.c:689
-msgid "Must have value!"
-msgstr "Must have value!"
-
-#: ../src/audio_call.c:728
-msgid "Not interested anymore"
-msgstr "Not interested anymore"
-
-#: ../src/audio_call.c:731
-msgid "Not interested"
-msgstr "Not interested"
-
-#: ../src/autocomplete.c:126
-msgid "failed in complete_line"
-msgstr "failed in complete_line"
-
-#: ../src/avatars.c:68
-#, c-format
-msgid "tox_file_send failed for friendnumber %d (error %d)\n"
-msgstr "tox_file_send failed for friendnumber %d (error %d)\n"
-
-#: ../src/avatars.c:212
-#, c-format
-msgid "tox_file_send_chunk failed in avatar callback (error %d)\n"
-msgstr "tox_file_send_chunk failed in avatar callback (error %d)\n"
-
-#: ../src/chat.c:56
-msgid "yes"
-msgstr "yes"
-
-#: ../src/chat.c:57
-msgid "no"
-msgstr "no"
-
-#: ../src/chat.c:223 ../src/prompt.c:363
-msgid "has come online"
-msgstr "has come online"
-
-#: ../src/chat.c:234 ../src/prompt.c:375
-msgid "has gone offline"
-msgstr "has gone offline"
-
-#: ../src/chat.c:319
-#, c-format
-msgid "File '%s' successfully sent."
-msgstr "File '%s' successfully sent."
-
-#: ../src/chat.c:326
-#, c-format
-msgid "File transfer for '%s' failed: Null file pointer."
-msgstr "File transfer for '%s' failed: Null file pointer."
-
-#: ../src/chat.c:333
-#, c-format
-msgid "File transfer for '%s' failed: Seek fail."
-msgstr "File transfer for '%s' failed: Seek fail."
-
-#: ../src/chat.c:345
-#, c-format
-msgid "File transfer for '%s' failed: Read fail."
-msgstr "File transfer for '%s' failed: Read fail."
-
-#: ../src/chat.c:354
-#, c-format
-msgid "tox_file_send_chunk failed in chat callback (error %d)\n"
-msgstr "tox_file_send_chunk failed in chat callback (error %d)\n"
-
-#: ../src/chat.c:377
-#, c-format
-msgid "File '%s' successfully received."
-msgstr "File '%s' successfully received."
-
-#: ../src/chat.c:384
-#, c-format
-msgid "File transfer for '%s' failed: Invalid file pointer."
-msgstr "File transfer for '%s' failed: Invalid file pointer."
-
-#: ../src/chat.c:390
-#, c-format
-msgid "File transfer for '%s' failed: Write fail."
-msgstr "File transfer for '%s' failed: Write fail."
-
-#: ../src/chat.c:416
-#, c-format
-msgid "File transfer [%d] for '%s' accepted."
-msgstr "File transfer [%d] for '%s' accepted."
-
-#: ../src/chat.c:434
-#, c-format
-msgid "File transfer for '%s' was aborted."
-msgstr "File transfer for '%s' was aborted."
-
-#: ../src/chat.c:450 ../src/chat_commands.c:309
-msgid "File transfer failed: Too many concurrent file transfers."
-msgstr "File transfer failed: Too many concurrent file transfers."
-
-#: ../src/chat.c:456
-#, c-format
-msgid "File transfer request for '%s' (%s)"
-msgstr "File transfer request for '%s' (%s)"
-
-#: ../src/chat.c:471
-msgid "File transfer faield: File path too long."
-msgstr "File transfer faield: File path too long."
-
-#: ../src/chat.c:497
-msgid "File transfer failed: invalid file path."
-msgstr "File transfer failed: invalid file path."
-
-#: ../src/chat.c:502
-#, c-format
-msgid "Type '%s %d' to accept the file transfer."
-msgstr "Type '%s %d' to accept the file transfer."
-
-#: ../src/chat.c:515 ../src/chat.c:518
-#, c-format
-msgid "Incoming file: %s"
-msgstr "Incoming file: %s"
-
-#: ../src/chat.c:533
-msgid "Failed in chat_onGroupInvite"
-msgstr "Failed in chat_onGroupInvite"
-
-#: ../src/chat.c:547 ../src/chat.c:549
-msgid "invites you to join group chat"
-msgstr "invites you to join group chat"
-
-#: ../src/chat.c:551
-#, c-format
-msgid "%s has invited you to a group chat."
-msgstr "%s has invited you to a group chat."
-
-#: ../src/chat.c:552
-#, c-format
-msgid "Type \"%s\" to join the chat."
-msgstr "Type \"%s\" to join the chat."
-
-#: ../src/chat.c:566
-#, c-format
-msgid "Incoming audio call! Type: \"%s\" or \"%s\""
-msgstr "Incoming audio call! Type: \"%s\" or \"%s\""
-
-#: ../src/chat.c:573 ../src/chat.c:575
-msgid "Incoming audio call!"
-msgstr "Incoming audio call!"
-
-#: ../src/chat.c:583
-#, c-format
-msgid "Ringing...type \"%s\" to cancel it."
-msgstr "Ringing...type \"%s\" to cancel it."
-
-#: ../src/chat.c:598 ../src/chat.c:639
-#, c-format
-msgid "Call started! Type: \"%s\" to end it."
-msgstr "Call started! Type: \"%s\" to end it."
-
-#: ../src/chat.c:612 ../src/chat.c:680
-msgid "Call ended!"
-msgstr "Call ended!"
-
-#: ../src/chat.c:625
-msgid "Error!"
-msgstr "Error!"
-
-#: ../src/chat.c:666
-msgid "Rejected!"
-msgstr "Rejected!"
-
-#: ../src/chat.c:693
-msgid "No answer!"
-msgstr "No answer!"
-
-#: ../src/chat.c:707
-msgid "Peer disconnected; call ended!"
-msgstr "Peer disconnected; call ended!"
-
-#: ../src/chat.c:769
-msgid " Call Active\n"
-msgstr " Call Active\n"
-
-#: ../src/chat.c:773
-msgid " Duration: "
-msgstr " Duration: "
-
-#: ../src/chat.c:778
-msgid " In muted: "
-msgstr " In muted: "
-
-#: ../src/chat.c:783
-msgid " Out muted: "
-msgstr " Out muted: "
-
-#: ../src/chat.c:788
-msgid " VAD level: "
-msgstr " VAD level: "
-
-#: ../src/chat.c:1083
-msgid "failed in chat_onInit"
-msgstr "failed in chat_onInit"
-
-#: ../src/chat.c:1155
-msgid "failed in new_chat"
-msgstr "failed in new_chat"
-
-#: ../src/chat_commands.c:48
-#, c-format
-msgid "Requires type %s and the file ID."
-msgstr "Requires type %s and the file ID."
-
-#: ../src/chat_commands.c:57 ../src/chat_commands.c:74
-#: ../src/chat_commands.c:79
-msgid "Invalid file ID."
-msgstr "Invalid file ID."
-
-#: ../src/chat_commands.c:69
-#, c-format
-msgid "Type must be '%s' or '%s'."
-msgstr "Type must be '%s' or '%s'."
-
-#: ../src/chat_commands.c:83
-#, c-format
-msgid "File transfer for '%s' aborted."
-msgstr "File transfer for '%s' aborted."
-
-#: ../src/chat_commands.c:90
-msgid "Group number required."
-msgstr "Group number required."
-
-#: ../src/chat_commands.c:97
-msgid "Invalid group number."
-msgstr "Invalid group number."
-
-#: ../src/chat_commands.c:102
-msgid "Failed to invite contact to group."
-msgstr "Failed to invite contact to group."
-
-#: ../src/chat_commands.c:106
-#, c-format
-msgid "Invited contact to Group %d."
-msgstr "Invited contact to Group %d."
-
-#: ../src/chat_commands.c:112 ../src/global_commands.c:324
-msgid " * Warning: Too many windows are open."
-msgstr " * Warning: Too many windows are open."
-
-#: ../src/chat_commands.c:121
-msgid "No pending group chat invite."
-msgstr "No pending group chat invite."
-
-#: ../src/chat_commands.c:136 ../src/global_commands.c:354
-msgid "Group chat instance failed to initialize."
-msgstr "Group chat instance failed to initialize."
-
-#: ../src/chat_commands.c:141 ../src/global_commands.c:359
-msgid "Group chat window failed to initialize."
-msgstr "Group chat window failed to initialize."
-
-#: ../src/chat_commands.c:151
-msgid "File ID required."
-msgstr "File ID required."
-
-#: ../src/chat_commands.c:158 ../src/chat_commands.c:165
-#: ../src/chat_commands.c:170
-msgid "No pending file transfers with that ID."
-msgstr "No pending file transfers with that ID."
-
-#: ../src/chat_commands.c:175
-msgid "File transfer failed: Invalid file path."
-msgstr "File transfer failed: Invalid file path."
-
-#: ../src/chat_commands.c:186
-#, c-format
-msgid "Saving file [%d] as: '%s'"
-msgstr "Saving file [%d] as: '%s'"
-
-#: ../src/chat_commands.c:201
-msgid "File transfer failed: Friend not found."
-msgstr "File transfer failed: Friend not found."
-
-#: ../src/chat_commands.c:205
-msgid "File transfer failed: Friend is not online."
-msgstr "File transfer failed: Friend is not online."
-
-#: ../src/chat_commands.c:209
-msgid "File transfer failed: Invalid filenumber."
-msgstr "File transfer failed: Invalid filenumber."
-
-#: ../src/chat_commands.c:213
-msgid "File transfer failed: Connection error."
-msgstr "File transfer failed: Connection error."
-
-#: ../src/chat_commands.c:217
-#, c-format
-msgid "File transfer failed (error %d)\n"
-msgstr "File transfer failed (error %d)\n"
-
-#: ../src/chat_commands.c:227
-msgid "File path required."
-msgstr "File path required."
-
-#: ../src/chat_commands.c:232
-msgid "File path must be enclosed in quotes."
-msgstr "File path must be enclosed in quotes."
-
-#: ../src/chat_commands.c:243
-msgid "File path exceeds character limit."
-msgstr "File path exceeds character limit."
-
-#: ../src/chat_commands.c:250
-msgid "File not found."
-msgstr "File not found."
-
-#: ../src/chat_commands.c:257
-msgid "Invalid file."
-msgstr "Invalid file."
-
-#: ../src/chat_commands.c:290
-#, c-format
-msgid "Sending file [%d]: '%s' (%s)"
-msgstr "Sending file [%d]: '%s' (%s)"
-
-#: ../src/chat_commands.c:297
-msgid "File transfer failed: Invalid friend."
-msgstr "File transfer failed: Invalid friend."
-
-#: ../src/chat_commands.c:301
-msgid "File transfer failed: Friend is offline."
-msgstr "File transfer failed: Friend is offline."
-
-#: ../src/chat_commands.c:305
-msgid "File transfer failed: Filename is too long."
-msgstr "File transfer failed: Filename is too long."
-
-#: ../src/chat_commands.c:313
-msgid "File transfer failed."
-msgstr "File transfer failed."
-
-#: ../src/configdir.c:125 ../src/toxic.c:1039 ../src/toxic.c:1045
-msgid "failed in load_data_structures"
-msgstr "failed in load_data_structures"
-
-#: ../src/dns.c:155
-#, c-format
-msgid "User lookup failed: %s"
-msgstr "User lookup failed: %s"
-
-#: ../src/dns.c:181
-msgid "dn_expand failed."
-msgstr "dn_expand failed."
-
-#: ../src/dns.c:186 ../src/dns.c:209
-msgid "DNS reply was too short."
-msgstr "DNS reply was too short."
-
-#: ../src/dns.c:192
-msgid "Broken DNS reply."
-msgstr "Broken DNS reply."
-
-#: ../src/dns.c:204
-msgid "Second dn_expand failed."
-msgstr "Second dn_expand failed."
-
-#: ../src/dns.c:217
-msgid "RR overflow."
-msgstr "RR overflow."
-
-#: ../src/dns.c:222
-msgid "DNS response failed."
-msgstr "DNS response failed."
-
-#: ../src/dns.c:227
-msgid "No record found."
-msgstr "No record found."
-
-#: ../src/dns.c:230
-msgid "Invalid DNS response."
-msgstr "Invalid DNS response."
-
-#: ../src/dns.c:307
-msgid "Must be a Tox ID or an address in the form username@domain"
-msgstr "Must be a Tox ID or an address in the form username@domain"
-
-#: ../src/dns.c:317
-msgid "Domain not found."
-msgstr "Domain not found."
-
-#: ../src/dns.c:324
-msgid "Core failed to create DNS object."
-msgstr "Core failed to create DNS object."
-
-#: ../src/dns.c:335
-msgid "Core failed to generate DNS3 string."
-msgstr "Core failed to generate DNS3 string."
-
-#: ../src/dns.c:349
-msgid "DNS query failed."
-msgstr "DNS query failed."
-
-#: ../src/dns.c:364
-msgid "Bad DNS3 TXT response."
-msgstr "Bad DNS3 TXT response."
-
-#: ../src/dns.c:372
-msgid "Core failed to decrypt DNS response."
-msgstr "Core failed to decrypt DNS response."
-
-#: ../src/dns.c:388
-msgid "DNS lookups are disabled."
-msgstr "DNS lookups are disabled."
-
-#: ../src/dns.c:393
-msgid "Please wait for previous user lookup to finish."
-msgstr "Please wait for previous user lookup to finish."
-
-#: ../src/dns.c:403
-#, c-format
-msgid ""
-"DNS server list failed to load with error code %d. Falling back to hard-"
-"coded list."
-msgstr ""
-"DNS server list failed to load with error code %d. Falling back to hard-"
-"coded list."
-
-#: ../src/dns.c:416
-msgid "Error: DNS thread attr failed to init"
-msgstr "Error: DNS thread attr failed to init"
-
-#: ../src/dns.c:422
-msgid "Error: DNS thread attr failed to set"
-msgstr "Error: DNS thread attr failed to set"
-
-#: ../src/dns.c:429
-msgid "Error: DNS thread failed to init"
-msgstr "Error: DNS thread failed to init"
-
-#: ../src/execute.c:107
-msgid "failed in parse_command"
-msgstr "failed in parse_command"
-
-#: ../src/execute.c:121
-msgid "Invalid argument. Did you forget a closing \"?"
-msgstr "Invalid argument. Did you forget a closing \"?"
-
-#: ../src/execute.c:192
-msgid "Invalid command."
-msgstr "Invalid command."
-
-#: ../src/friendlist.c:93
-msgid "failed in realloc_friends"
-msgstr "failed in realloc_friends"
-
-#: ../src/friendlist.c:113
-msgid "failed in realloc_blocklist"
-msgstr "failed in realloc_blocklist"
-
-#: ../src/friendlist.c:141
-msgid "Failed in save_blocklist"
-msgstr "Failed in save_blocklist"
-
-#: ../src/friendlist.c:208
-msgid "Failed in load_blocklist"
-msgstr "Failed in load_blocklist"
-
-#: ../src/friendlist.c:331 ../src/friendlist.c:766 ../src/friendlist.c:1076
-msgid "* Warning: Too many windows are open."
-msgstr "* Warning: Too many windows are open."
-
-#: ../src/friendlist.c:346
-#, c-format
-msgid "avatar_send failed for friend %d\n"
-msgstr "avatar_send failed for friend %d\n"
-
-#: ../src/friendlist.c:421
-#, c-format
-msgid "tox_friend_get_public_key failed (error %d)\n"
-msgstr "tox_friend_get_public_key failed (error %d)\n"
-
-#: ../src/friendlist.c:500
-#, c-format
-msgid "* File transfer from %s failed: too many windows are open."
-msgstr "* File transfer from %s failed: too many windows are open."
-
-#: ../src/friendlist.c:523
-#, c-format
-msgid "* Group chat invite from %s failed: too many windows are open."
-msgstr "* Group chat invite from %s failed: too many windows are open."
-
-#: ../src/friendlist.c:546
-#, c-format
-msgid "tox_friend_delete failed with error %d\n"
-msgstr "tox_friend_delete failed with error %d\n"
-
-#: ../src/friendlist.c:626
-msgid "Delete contact "
-msgstr "Delete contact "
-
-#: ../src/friendlist.c:707
-#, c-format
-msgid "Failed to unblock friend (error %d)\n"
-msgstr "Failed to unblock friend (error %d)\n"
-
-#: ../src/friendlist.c:803
-msgid " Blocked: "
-msgstr " Blocked: "
-
-#: ../src/friendlist.c:855 ../src/friendlist.c:1035
-msgid "Key: "
-msgstr "Key: "
-
-#: ../src/friendlist.c:881
-msgid " Press the"
-msgstr " Press the"
-
-#: ../src/friendlist.c:885
-msgid ""
-"key for help\n"
-"\n"
-msgstr ""
-"key for help\n"
-"\n"
-
-#: ../src/friendlist.c:897
-msgid " Online: "
-msgstr " Online: "
-
-#: ../src/friendlist.c:1011
-#, c-format
-msgid " Last seen: Today %s\n"
-msgstr " Last seen: Today %s\n"
-
-#: ../src/friendlist.c:1015
-#, c-format
-msgid " Last seen: Yesterday %s\n"
-msgstr " Last seen: Yesterday %s\n"
-
-#: ../src/friendlist.c:1019
-#, c-format
-msgid " Last seen: %d days ago\n"
-msgstr " Last seen: %d days ago\n"
-
-#: ../src/friendlist.c:1023
-msgid " Last seen: Never\n"
-msgstr " Last seen: Never\n"
-
-#: ../src/friendlist.c:1074
-#, c-format
-msgid "Audio action from: %s!"
-msgstr "Audio action from: %s!"
-
-#: ../src/friendlist.c:1126
-msgid "failed in new_friendlist"
-msgstr "failed in new_friendlist"
-
-#: ../src/friendlist.c:1129
-msgid "contacts"
-msgstr "contacts"
-
-#: ../src/global_commands.c:55 ../src/global_commands.c:292
-msgid "Request ID required."
-msgstr "Request ID required."
-
-#: ../src/global_commands.c:62 ../src/global_commands.c:67
-#: ../src/global_commands.c:299 ../src/global_commands.c:304
-msgid "No pending friend request with that ID."
-msgstr "No pending friend request with that ID."
-
-#: ../src/global_commands.c:75
-#, c-format
-msgid "Failed to add friend (error %d)\n"
-msgstr "Failed to add friend (error %d)\n"
-
-#: ../src/global_commands.c:78
-msgid "Friend request accepted."
-msgstr "Friend request accepted."
-
-#: ../src/global_commands.c:105
-msgid "Message is too long."
-msgstr "Message is too long."
-
-#: ../src/global_commands.c:109
-msgid "Please add a message to your request."
-msgstr "Please add a message to your request."
-
-#: ../src/global_commands.c:113
-msgid "That appears to be your own ID."
-msgstr "That appears to be your own ID."
-
-#: ../src/global_commands.c:117
-msgid "Friend request has already been sent."
-msgstr "Friend request has already been sent."
-
-#: ../src/global_commands.c:121
-msgid "Bad checksum in address."
-msgstr "Bad checksum in address."
-
-#: ../src/global_commands.c:125
-msgid "Nospam was different."
-msgstr "Nospam was different."
-
-#: ../src/global_commands.c:129
-msgid "Core memory allocation failed."
-msgstr "Core memory allocation failed."
-
-#: ../src/global_commands.c:133
-msgid "Friend request sent."
-msgstr "Friend request sent."
-
-#: ../src/global_commands.c:140
-msgid "Failed to add friend: Unknown error."
-msgstr "Failed to add friend: Unknown error."
-
-#: ../src/global_commands.c:150
-msgid "Tox ID or address required."
-msgstr "Tox ID or address required."
-
-#: ../src/global_commands.c:159
-msgid "Message must be enclosed in quotes."
-msgstr "Message must be enclosed in quotes."
-
-#: ../src/global_commands.c:175
-#, c-format
-msgid "Hello, my name is %s. Care to Tox?"
-msgstr "Hello, my name is %s. Care to Tox?"
-
-#: ../src/global_commands.c:193
-msgid "Invalid Tox ID."
-msgstr "Invalid Tox ID."
-
-#: ../src/global_commands.c:210
-msgid "Avatar is not set."
-msgstr "Avatar is not set."
-
-#: ../src/global_commands.c:215
-msgid "Path must be enclosed in quotes."
-msgstr "Path must be enclosed in quotes."
-
-#: ../src/global_commands.c:225
-msgid "Invalid path."
-msgstr "Invalid path."
-
-#: ../src/global_commands.c:235
-#, c-format
-msgid ""
-"Failed to set avatar. Avatars must be in PNG format and may not exceed %d "
-"bytes."
-msgstr ""
-"Failed to set avatar. Avatars must be in PNG format and may not exceed %d "
-"bytes."
-
-#: ../src/global_commands.c:240
-#, c-format
-msgid "Avatar set to '%s'"
-msgstr "Avatar set to '%s'"
-
-#: ../src/global_commands.c:252
-msgid "Require: "
-msgstr "Require: "
-
-#: ../src/global_commands.c:261
-msgid "Invalid port."
-msgstr "Invalid port."
-
-#: ../src/global_commands.c:274
-msgid "Bootstrap failed: Invalid IP."
-msgstr "Bootstrap failed: Invalid IP."
-
-#: ../src/global_commands.c:278
-msgid "Bootstrap failed: Invalid port."
-msgstr "Bootstrap failed: Invalid port."
-
-#: ../src/global_commands.c:282
-msgid "Bootstrap failed."
-msgstr "Bootstrap failed."
-
-#: ../src/global_commands.c:329
-#, c-format
-msgid "Please specify group type: %s"
-msgstr "Please specify group type: %s"
-
-#: ../src/global_commands.c:340
-#, c-format
-msgid "Valid group types are: %s"
-msgstr "Valid group types are: %s"
-
-#: ../src/global_commands.c:364
-#, c-format
-msgid "Group chat [%d] created."
-msgstr "Group chat [%d] created."
-
-#: ../src/global_commands.c:374
-msgid "Logging for this window is ON. Type \"/log off\" to disable."
-msgstr "Logging for this window is ON. Type \"/log off\" to disable."
-
-#: ../src/global_commands.c:376
-msgid "Logging for this window is OFF. Type \"/log on\" to enable."
-msgstr "Logging for this window is OFF. Type \"/log on\" to enable."
-
-#: ../src/global_commands.c:397
-msgid "Logging enabled"
-msgstr "Logging enabled"
-
-#: ../src/global_commands.c:406
-msgid "Logging disabled"
-msgstr "Logging disabled"
-
-#: ../src/global_commands.c:411
-#, c-format
-msgid "Invalid option. Use \"%s\" to toggle logging."
-msgstr "Invalid option. Use \"%s\" to toggle logging."
-
-#: ../src/global_commands.c:435 ../src/global_commands.c:468
-msgid "Input required."
-msgstr "Input required."
-
-#: ../src/global_commands.c:452
-msgid "Invalid name."
-msgstr "Invalid name."
-
-#: ../src/global_commands.c:473 ../src/global_commands.c:561
-msgid "Note must be enclosed in quotes."
-msgstr "Note must be enclosed in quotes."
-
-#: ../src/global_commands.c:499
-msgid "No pending friend requests."
-msgstr "No pending friend requests."
-
-#: ../src/global_commands.c:536
-#, c-format
-msgid "Require a status. Statuses are: %s."
-msgstr "Require a status. Statuses are: %s."
-
-#: ../src/global_commands.c:551
-#, c-format
-msgid "Invalid status. Valid statuses are: %s."
-msgstr "Invalid status. Valid statuses are: %s."
-
-#: ../src/groupchat.c:143
-msgid "failed in init_groupchat_win"
-msgstr "failed in init_groupchat_win"
-
-#: ../src/groupchat.c:151
-#, c-format
-msgid "Group Audio failed to init\n"
-msgstr "Group Audio failed to init\n"
-
-#: ../src/groupchat.c:337 ../src/group_commands.c:80
-#, c-format
-msgid " set the group title to: %s"
-msgstr " set the group title to: %s"
-
-#: ../src/groupchat.c:340 ../src/group_commands.c:83
-#, c-format
-msgid "set title to %s"
-msgstr "set title to %s"
-
-#: ../src/groupchat.c:362
-msgid "failed in copy_peernames"
-msgstr "failed in copy_peernames"
-
-#: ../src/groupchat.c:419
-msgid "has joined the room"
-msgstr "has joined the room"
-
-#: ../src/groupchat.c:517
-msgid "has left the room"
-msgstr "has left the room"
-
-#: ../src/groupchat.c:534
-msgid " is now known as "
-msgstr " is now known as "
-
-#: ../src/groupchat.c:538
-#, c-format
-msgid "is now known as %s"
-msgstr "is now known as %s"
-
-#: ../src/groupchat.c:549
-msgid "Invalid syntax.\n"
-msgstr "Invalid syntax.\n"
-
-#: ../src/groupchat.c:554
-msgid " * Failed to send action."
-msgstr " * Failed to send action."
-
-#: ../src/groupchat.c:641
-msgid " * Failed to send message."
-msgstr " * Failed to send message."
-
-#: ../src/groupchat.c:681
-#, c-format
-msgid "Peers: %d\n"
-msgstr "Peers: %d\n"
-
-#: ../src/groupchat.c:731
-msgid "failed in groupchat_onInit"
-msgstr "failed in groupchat_onInit"
-
-#: ../src/groupchat.c:816
-#, c-format
-msgid "source: %d, queued: %d, processed: %d\n"
-msgstr "source: %d, queued: %d, processed: %d\n"
-
-#: ../src/groupchat.c:855
-#, c-format
-msgid "dvhandle is null)\n"
-msgstr "dvhandle is null)\n"
-
-#: ../src/groupchat.c:858
-#, c-format
-msgid "ctx is null\n"
-msgstr "ctx is null\n"
-
-#: ../src/groupchat.c:861
-#, c-format
-msgid "write: %d\n"
-msgstr "write: %d\n"
-
-#: ../src/groupchat.c:885
-#, c-format
-msgid "Group %d"
-msgstr "Group %d"
-
-#: ../src/groupchat.c:891
-msgid "failed in new_group_chat"
-msgstr "failed in new_group_chat"
-
-#: ../src/group_commands.c:46
-#, c-format
-msgid "Title is set to: %s"
-msgstr "Title is set to: %s"
-
-#: ../src/group_commands.c:48
-msgid "Title is not set"
-msgstr "Title is not set"
-
-#: ../src/group_commands.c:55
-msgid "Title must be enclosed in quotes."
-msgstr "Title must be enclosed in quotes."
-
-#: ../src/group_commands.c:65
-msgid "Failed to set title."
-msgstr "Failed to set title."
-
-#: ../src/help.c:148
-msgid "Global Commands:\n"
-msgstr "Global Commands:\n"
-
-#: ../src/help.c:152
-msgid "Add contact with optional message\n"
-msgstr "Add contact with optional message\n"
-
-#: ../src/help.c:154
-msgid "Accept friend request\n"
-msgstr "Accept friend request\n"
-
-#: ../src/help.c:156
-msgid "Set an avatar (leave path empty to unset)\n"
-msgstr "Set an avatar (leave path empty to unset)\n"
-
-#: ../src/help.c:158
-msgid "Decline friend request\n"
-msgstr "Decline friend request\n"
-
-#: ../src/help.c:160
-msgid "List pending friend requests\n"
-msgstr "List pending friend requests\n"
-
-#: ../src/help.c:162
-msgid "Manually connect to a DHT node\n"
-msgstr "Manually connect to a DHT node\n"
-
-#: ../src/help.c:164
-msgid "Set status with optional note\n"
-msgstr "Set status with optional note\n"
-
-#: ../src/help.c:166
-msgid "Set a personal note\n"
-msgstr "Set a personal note\n"
-
-#: ../src/help.c:168
-msgid "Set your nickname\n"
-msgstr "Set your nickname\n"
-
-#: ../src/help.c:170
-msgid "Enable/disable logging\n"
-msgstr "Enable/disable logging\n"
-
-#: ../src/help.c:172
-msgid "Create a group chat where type: text | audio\n"
-msgstr "Create a group chat where type: text | audio\n"
-
-#: ../src/help.c:174
-msgid "Print your Tox ID\n"
-msgstr "Print your Tox ID\n"
-
-#: ../src/help.c:176
-msgid "Clear window history\n"
-msgstr "Clear window history\n"
-
-#: ../src/help.c:178
-msgid "Close the current chat window\n"
-msgstr "Close the current chat window\n"
-
-#: ../src/help.c:180
-msgid "Exit Toxic\n"
-msgstr "Exit Toxic\n"
-
-#: ../src/help.c:184 ../src/help.c:224
-msgid ""
-"\n"
-" Audio:\n"
-msgstr ""
-"\n"
-" Audio:\n"
-
-#: ../src/help.c:188
-msgid "List devices where type:"
-msgstr "List devices where type:"
-
-#: ../src/help.c:191
-msgid "Set active device\n"
-msgstr "Set active device\n"
-
-#: ../src/help.c:207
-msgid "Chat Commands:\n"
-msgstr "Chat Commands:\n"
-
-#: ../src/help.c:211
-msgid "Invite contact to a group chat\n"
-msgstr "Invite contact to a group chat\n"
-
-#: ../src/help.c:213
-msgid "Join a pending group chat\n"
-msgstr "Join a pending group chat\n"
-
-#: ../src/help.c:215
-msgid "Send a file\n"
-msgstr "Send a file\n"
-
-#: ../src/help.c:217
-msgid "Receive a file\n"
-msgstr "Receive a file\n"
-
-#: ../src/help.c:219
-msgid "Cancel file transfer where type:"
-msgstr "Cancel file transfer where type:"
-
-#: ../src/help.c:228
-msgid "Audio call\n"
-msgstr "Audio call\n"
-
-#: ../src/help.c:230
-msgid "Answer incoming call\n"
-msgstr "Answer incoming call\n"
-
-#: ../src/help.c:232
-msgid "Reject incoming call\n"
-msgstr "Reject incoming call\n"
-
-#: ../src/help.c:234
-msgid "Hangup active call\n"
-msgstr "Hangup active call\n"
-
-#: ../src/help.c:236
-msgid "Change active device\n"
-msgstr "Change active device\n"
-
-#: ../src/help.c:238
-msgid "Mute active device if in call\n"
-msgstr "Mute active device if in call\n"
-
-#: ../src/help.c:240
-msgid "VAD sensitivity threshold\n"
-msgstr "VAD sensitivity threshold\n"
-
-#: ../src/help.c:256
-msgid "Key bindings:\n"
-msgstr "Key bindings:\n"
-
-#: ../src/help.c:260
-msgid "Navigate through the tabs\n"
-msgstr "Navigate through the tabs\n"
-
-#: ../src/help.c:262
-msgid "Scroll window history one line\n"
-msgstr "Scroll window history one line\n"
-
-#: ../src/help.c:264
-msgid "Scroll window history half a page\n"
-msgstr "Scroll window history half a page\n"
-
-#: ../src/help.c:266
-msgid "Move to the bottom of window history\n"
-msgstr "Move to the bottom of window history\n"
-
-#: ../src/help.c:268
-msgid "Scroll peer list in groupchats\n"
-msgstr "Scroll peer list in groupchats\n"
-
-#: ../src/help.c:270
-msgid ""
-"Toggle the groupchat peerlist\n"
-"\n"
-msgstr ""
-"Toggle the groupchat peerlist\n"
-"\n"
-
-#: ../src/help.c:271
-msgid ""
-" (Note: Custom keybindings override these defaults.)\n"
-"\n"
-msgstr ""
-" (Note: Custom keybindings override these defaults.)\n"
-"\n"
-
-#: ../src/help.c:286
-msgid "Group commands:\n"
-msgstr "Group commands:\n"
-
-#: ../src/help.c:290
-msgid ""
-"Set group title (show current title if no msg)\n"
-"\n"
-msgstr ""
-"Set group title (show current title if no msg)\n"
-"\n"
-
-#: ../src/help.c:305
-msgid "Friendlist controls:\n"
-msgstr "Friendlist controls:\n"
-
-#: ../src/help.c:308
-msgid " Up and Down arrows : Scroll through list\n"
-msgstr " Up and Down arrows : Scroll through list\n"
-
-#: ../src/help.c:309
-msgid ""
-" Right and Left arrows : Switch between friendlist and blocked "
-"list\n"
-msgstr ""
-" Right and Left arrows : Switch between friendlist and blocked "
-"list\n"
-
-#: ../src/help.c:310
-msgid ""
-" Enter : Open a chat window with selected contact\n"
-msgstr ""
-" Enter : Open a chat window with selected contact\n"
-
-#: ../src/help.c:311
-msgid " Delete : Permanently delete a contact\n"
-msgstr " Delete : Permanently delete a contact\n"
-
-#: ../src/help.c:313
-msgid "Block or unblock a contact\n"
-msgstr "Block or unblock a contact\n"
-
-#: ../src/line_info.c:50
-msgid "failed in line_info_init"
-msgstr "failed in line_info_init"
-
-#: ../src/line_info.c:150
-msgid "failed in line_info_add"
-msgstr "failed in line_info_add"
-
-#: ../src/log.c:189
-msgid "failed in load_chat_history"
-msgstr "failed in load_chat_history"
-
-#: ../src/log.c:193 ../src/log.c:199
-msgid " * Failed to read log file"
-msgstr " * Failed to read log file"
-
-#: ../src/message_queue.c:56
-msgid "failed in cqueue_message"
-msgstr "failed in cqueue_message"
-
-#: ../src/misc_tools.c:240 ../src/misc_tools.c:248
-msgid "failed in get_file_name"
-msgstr "failed in get_file_name"
-
-#: ../src/prompt.c:139
-#, c-format
-msgid "Failed to set note (error %d)\n"
-msgstr "Failed to set note (error %d)\n"
-
-#: ../src/prompt.c:274
-msgid "ERROR"
-msgstr "ERROR"
-
-#: ../src/prompt.c:278
-msgid "Online"
-msgstr "Online"
-
-#: ../src/prompt.c:282
-msgid "Away"
-msgstr "Away"
-
-#: ../src/prompt.c:286
-msgid "Busy"
-msgstr "Busy"
-
-#: ../src/prompt.c:299
-msgid " [Offline]"
-msgstr " [Offline]"
-
-#: ../src/prompt.c:369 ../src/prompt.c:372
-#, c-format
-msgid "%s has come online"
-msgstr "%s has come online"
-
-#: ../src/prompt.c:381 ../src/prompt.c:384
-#, c-format
-msgid "%s has gone offline"
-msgstr "%s has gone offline"
-
-#: ../src/prompt.c:395 ../src/prompt.c:396
-#, c-format
-msgid "Friend request with the message '%s'"
-msgstr "Friend request with the message '%s'"
-
-#: ../src/prompt.c:401
-msgid "Friend request queue is full. Discarding request."
-msgstr "Friend request queue is full. Discarding request."
-
-#: ../src/prompt.c:406
-#, c-format
-msgid "Type \"%s %d\" or \"%s %d\""
-msgstr "Type \"%s %d\" or \"%s %d\""
-
-#: ../src/prompt.c:435 ../src/prompt.c:436
-#, c-format
-msgid "Toxing on Toxic"
-msgstr "Toxing on Toxic"
-
-#: ../src/prompt.c:458
-msgid ""
-"Welcome to Toxic, a free, open source Tox-based instant messenging client."
-msgstr ""
-"Welcome to Toxic, a free, open source Tox-based instant messenging client."
-
-#: ../src/prompt.c:460
-#, c-format
-msgid "Type \"%s\" for assistance. Further help may be found via the man page."
-msgstr ""
-"Type \"%s\" for assistance. Further help may be found via the man page."
-
-#: ../src/prompt.c:479
-msgid "failed in prompt_onInit"
-msgstr "failed in prompt_onInit"
-
-#: ../src/prompt.c:517
-msgid "failed in new_prompt"
-msgstr "failed in new_prompt"
-
-#: ../src/toxic.c:112
-#, c-format
-msgid "Caught SIGSEGV: Aborting toxic session.\n"
-msgstr "Caught SIGSEGV: Aborting toxic session.\n"
-
-#: ../src/toxic.c:161
-#, c-format
-msgid "Toxic session aborted with error code %d (%s)\n"
-msgstr "Toxic session aborted with error code %d (%s)\n"
-
-#: ../src/toxic.c:171
-msgid ""
-"Could not set your locale, please check your locale settings or disable "
-"unicode support with the -d flag."
-msgstr ""
-"Could not set your locale, please check your locale settings or disable "
-"unicode support with the -d flag."
-
-#: ../src/toxic.c:231 ../src/toxic.c:236
-msgid "Failed in queue_init_message"
-msgstr "Failed in queue_init_message"
-
-#: ../src/toxic.c:328
-#, c-format
-msgid "Failed to bootstrap %s:%d\n"
-msgstr "Failed to bootstrap %s:%d\n"
-
-#: ../src/toxic.c:335
-#, c-format
-msgid "Failed to add TCP relay %s:%d\n"
-msgstr "Failed to add TCP relay %s:%d\n"
-
-#: ../src/toxic.c:466
-#, c-format
-msgid "Enter a new password (must be at least %d characters) "
-msgstr "Enter a new password (must be at least %d characters) "
-
-#: ../src/toxic.c:476
-#, c-format
-msgid "Password must be between %d and %d characters long. "
-msgstr "Password must be between %d and %d characters long. "
-
-#: ../src/toxic.c:481
-#, c-format
-msgid "Enter password again "
-msgstr "Enter password again "
-
-#: ../src/toxic.c:489
-#, c-format
-msgid "Passwords don't match. Try again. "
-msgstr "Passwords don't match. Try again. "
-
-#: ../src/toxic.c:496
-#, c-format
-msgid "Data file '%s' is encrypted"
-msgstr "Data file '%s' is encrypted"
-
-#: ../src/toxic.c:533
-#, c-format
-msgid "tox_pass_encrypt() failed with error %d\n"
-msgstr "tox_pass_encrypt() failed with error %d\n"
-
-#: ../src/toxic.c:584
-msgid "Forcing IPv4 connection"
-msgstr "Forcing IPv4 connection"
-
-#: ../src/toxic.c:592
-#, c-format
-msgid "Using %s proxy %s : %d"
-msgstr "Using %s proxy %s : %d"
-
-#: ../src/toxic.c:597
-msgid "UDP disabled"
-msgstr "UDP disabled"
-
-#: ../src/toxic.c:599
-msgid ""
-"WARNING: Using a proxy without disabling UDP may leak your real IP address."
-msgstr ""
-"WARNING: Using a proxy without disabling UDP may leak your real IP address."
-
-#: ../src/toxic.c:601
-msgid "Use the -t option to disable UDP."
-msgstr "Use the -t option to disable UDP."
-
-#: ../src/toxic.c:620 ../src/toxic.c:627 ../src/toxic.c:635 ../src/toxic.c:712
-#: ../src/toxic.c:722
-msgid "failed in load_toxic"
-msgstr "failed in load_toxic"
-
-#: ../src/toxic.c:639
-#, c-format
-msgid "Data file '%s' has been unencrypted"
-msgstr "Data file '%s' has been unencrypted"
-
-#: ../src/toxic.c:641
-#, c-format
-msgid "Warning: passed --unencrypt-data option with unencrypted data file '%s'"
-msgstr ""
-"Warning: passed --unencrypt-data option with unencrypted data file '%s'"
-
-#: ../src/toxic.c:649
-#, c-format
-msgid "Enter password (\"%s\" to quit) "
-msgstr "Enter password (\"%s\" to quit) "
-
-#: ../src/toxic.c:666 ../src/toxic.c:690
-#, c-format
-msgid "Invalid password. Try again. "
-msgstr "Invalid password. Try again. "
-
-#: ../src/toxic.c:693
-msgid "tox_pass_decrypt() failed"
-msgstr "tox_pass_decrypt() failed"
-
-#: ../src/toxic.c:737
-msgid "Falling back to ipv4"
-msgstr "Falling back to ipv4"
-
-#: ../src/toxic.c:743
-msgid "tox_new returned fatal error"
-msgstr "tox_new returned fatal error"
-
-#: ../src/toxic.c:746
-#, c-format
-msgid "tox_new returned non-fatal error %d"
-msgstr "tox_new returned non-fatal error %d"
-
-#: ../src/toxic.c:753
-msgid "Toxic User"
-msgstr "Toxic User"
-
-#: ../src/toxic.c:779
-#, c-format
-msgid "Auto-connect failed with error code %d"
-msgstr "Auto-connect failed with error code %d"
-
-#: ../src/toxic.c:860
-#, c-format
-msgid "usage: toxic [OPTION] [FILE ...]\n"
-msgstr "usage: toxic [OPTION] [FILE ...]\n"
-
-#: ../src/toxic.c:862
-#, c-format
-msgid "Force IPv4 connection\n"
-msgstr "Force IPv4 connection\n"
-
-#: ../src/toxic.c:864
-#, c-format
-msgid "Enable stderr for debugging\n"
-msgstr "Enable stderr for debugging\n"
-
-#: ../src/toxic.c:866
-#, c-format
-msgid "Use specified config file\n"
-msgstr "Use specified config file\n"
-
-#: ../src/toxic.c:868
-#, c-format
-msgid "Use default POSIX locale\n"
-msgstr "Use default POSIX locale\n"
-
-#: ../src/toxic.c:870
-#, c-format
-msgid "Encrypt an unencrypted data file\n"
-msgstr "Encrypt an unencrypted data file\n"
-
-#: ../src/toxic.c:872
-#, c-format
-msgid "Use specified data file\n"
-msgstr "Use specified data file\n"
-
-#: ../src/toxic.c:874
-#, c-format
-msgid "Show this message and exit\n"
-msgstr "Show this message and exit\n"
-
-#: ../src/toxic.c:876
-#, c-format
-msgid "Use specified DHTnodes file\n"
-msgstr "Use specified DHTnodes file\n"
-
-#: ../src/toxic.c:878
-#, c-format
-msgid "Do not connect to the DHT network\n"
-msgstr "Do not connect to the DHT network\n"
-
-#: ../src/toxic.c:880
-#, c-format
-msgid "Use SOCKS5 proxy: Requires [IP] [port]\n"
-msgstr "Use SOCKS5 proxy: Requires [IP] [port]\n"
-
-#: ../src/toxic.c:882
-#, c-format
-msgid "Use HTTP proxy: Requires [IP] [port]\n"
-msgstr "Use HTTP proxy: Requires [IP] [port]\n"
-
-#: ../src/toxic.c:884
-#, c-format
-msgid "Use specified DNSservers file\n"
-msgstr "Use specified DNSservers file\n"
-
-#: ../src/toxic.c:886
-#, c-format
-msgid "Force TCP connection (use this with proxies)\n"
-msgstr "Force TCP connection (use this with proxies)\n"
-
-#: ../src/toxic.c:888
-#, c-format
-msgid "Unencrypt an encrypted data file\n"
-msgstr "Unencrypt an encrypted data file\n"
-
-#: ../src/toxic.c:932
-msgid "stderr enabled"
-msgstr "stderr enabled"
-
-#: ../src/toxic.c:939
-msgid "Config file not found"
-msgstr "Config file not found"
-
-#: ../src/toxic.c:945
-msgid "Using default POSIX locale"
-msgstr "Using default POSIX locale"
-
-#: ../src/toxic.c:958
-msgid "failed in parse_args"
-msgstr "failed in parse_args"
-
-#: ../src/toxic.c:963
-#, c-format
-msgid "Using '%s' data file"
-msgstr "Using '%s' data file"
-
-#: ../src/toxic.c:971
-msgid "DHTnodes file not found"
-msgstr "DHTnodes file not found"
-
-#: ../src/toxic.c:977
-msgid "DHT disabled"
-msgstr "DHT disabled"
-
-#: ../src/toxic.c:985 ../src/toxic.c:995
-msgid "Proxy error"
-msgstr "Proxy error"
-
-#: ../src/toxic.c:1004
-msgid "DNSservers file not found"
-msgstr "DNSservers file not found"
-
-#: ../src/toxic.c:1101
-#, c-format
-msgid "Warning: Using \"%s\" and \"%s\" simultaneously has no effect"
-msgstr "Warning: Using \"%s\" and \"%s\" simultaneously has no effect"
-
-#: ../src/toxic.c:1114
-msgid "Creating new data file. Would you like to encrypt it? Y/n (q to quit)"
-msgstr "Creating new data file. Would you like to encrypt it? Y/n (q to quit)"
-
-#: ../src/toxic.c:1116
-msgid "Encrypt existing data file? Y/n (q to quit)"
-msgstr "Encrypt existing data file? Y/n (q to quit)"
-
-#: ../src/toxic.c:1123 ../src/toxic.c:1146 ../src/toxic.c:1149
-#: ../src/toxic.c:1153 ../src/toxic.c:1161
-msgid "failed in main"
-msgstr "failed in main"
-
-#: ../src/toxic.c:1130
-msgid "X failed to initialize"
-msgstr "X failed to initialize"
-
-#: ../src/toxic.c:1168
-msgid "Failed to init audio devices"
-msgstr "Failed to init audio devices"
-
-#: ../src/toxic.c:1177
-msgid ""
-"Unable to determine configuration directory. Defaulting to 'data' for data "
-"file..."
-msgstr ""
-"Unable to determine configuration directory. Defaulting to 'data' for data "
-"file..."
-
-#: ../src/toxic.c:1182
-msgid "Failed to load user settings"
-msgstr "Failed to load user settings"
-
-#: ../src/toxic.c:1186
-msgid "Failed to init mplex auto-away."
-msgstr "Failed to init mplex auto-away."
-
-#: ../src/toxic.c:1209
-msgid "WARNING: Failed to save to data file"
-msgstr "WARNING: Failed to save to data file"
-
-#: ../src/toxic.h:43
-msgid "Anonymous"
-msgstr "Anonymous"
-
-#: ../src/toxic.h:44
-msgid "Tox User"
-msgstr "Tox User"
-
-#: ../src/windows.c:368
-msgid "failed in set_next_window"
-msgstr "failed in set_next_window"
-
-#: ../src/windows.c:390
-msgid "failed in init_windows"
-msgstr "failed in init_windows"
diff --git a/translations/it.mo b/translations/it.mo
deleted file mode 100644
index a7aaff1..0000000
Binary files a/translations/it.mo and /dev/null differ
diff --git a/translations/it.po b/translations/it.po
deleted file mode 100644
index d7d7190..0000000
--- a/translations/it.po
+++ /dev/null
@@ -1,1607 +0,0 @@
-# Italian translations for Toxic package.
-# Copyright (C) 2015 Toxic Team
-# This file is distributed under the same license as the Toxic package.
-# Automatically generated, 2015.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Toxic 0.6.0\n"
-"Report-Msgid-Bugs-To: JFreegman@tox.chat\n"
-"POT-Creation-Date: 2015-05-28 15:47+0200\n"
-"PO-Revision-Date: 2015-05-26 11:37+0200\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../src/audio_call.c:133
-msgid "Failed to init devices"
-msgstr "Errore durante l'inizializzazione del dispositivo"
-
-#: ../src/audio_call.c:195 ../src/audio_call.c:201
-msgid "Could not prepare transmission"
-msgstr "Impossibile preparare la trasmissione"
-
-#: ../src/audio_call.c:217
-msgid "Failed to open input device!"
-msgstr "Errore nell'apertura del dispositivo di input!"
-
-#: ../src/audio_call.c:222
-msgid "Failed to register input handler!"
-msgstr "Errore nel registrare l'input handler!"
-
-#: ../src/audio_call.c:226
-msgid "Failed to open output device!"
-msgstr "Errore nell'aperture del dispositivo di output!"
-
-#: ../src/audio_call.c:284 ../src/audio_call.c:303
-msgid "Error starting transmission!"
-msgstr "Errore durante l'avvio della trasmissione!"
-
-#: ../src/audio_call.c:357 ../src/audio_call.c:392 ../src/audio_call.c:423
-#: ../src/audio_call.c:454
-msgid "Unknown arguments."
-msgstr "Argomento sconosciuto."
-
-#: ../src/audio_call.c:362 ../src/audio_call.c:397 ../src/audio_call.c:428
-#: ../src/audio_call.c:459
-msgid "Audio not supported!"
-msgstr "Audio non supportato!"
-
-#: ../src/audio_call.c:367
-msgid "Friend is offline."
-msgstr "Contatto offline."
-
-#: ../src/audio_call.c:374
-msgid "Already in a call!"
-msgstr "Hai già una chiamata in corso!"
-
-#: ../src/audio_call.c:375 ../src/audio_call.c:406 ../src/audio_call.c:437
-#: ../src/audio_call.c:479
-msgid "Internal error!"
-msgstr "Errore interno!"
-
-#: ../src/audio_call.c:380
-#, c-format
-msgid "Calling... idx: %d"
-msgstr "Chiamata... idx: %d"
-
-#: ../src/audio_call.c:404
-msgid "Cannot answer in invalid state!"
-msgstr "Impossibile rispondere: stato non valido!"
-
-#: ../src/audio_call.c:405 ../src/audio_call.c:436
-msgid "No incoming call!"
-msgstr "Nessuna chiamata in arrivo!"
-
-#: ../src/audio_call.c:432
-msgid "Why not?"
-msgstr "Perché no?"
-
-#: ../src/audio_call.c:435
-msgid "Cannot reject in invalid state!"
-msgstr "Impossibile rifiutare: stato non valido!"
-
-#: ../src/audio_call.c:467
-msgid "Only those who appreciate small things know the beauty that is life"
-msgstr "Solo chi apprezza le piccole cose saprà vivere felice"
-
-#: ../src/audio_call.c:471 ../src/chat.c:653
-msgid "Call canceled!"
-msgstr "Chiamata annullata!"
-
-#: ../src/audio_call.c:477
-msgid "Cannot hangup in invalid state!"
-msgstr "Impossibile riagganciare: stato non valido!"
-
-#: ../src/audio_call.c:478
-msgid "No call!"
-msgstr "Nessuna chiamata!"
-
-#: ../src/audio_call.c:494 ../src/audio_call.c:526 ../src/audio_call.c:570
-#: ../src/audio_call.c:643
-msgid "Type must be specified!"
-msgstr "Devi specificare il tipo!"
-
-#: ../src/audio_call.c:495
-msgid "Only one argument allowed!"
-msgstr "Solo un argomento permesso!"
-
-#: ../src/audio_call.c:509 ../src/audio_call.c:542 ../src/audio_call.c:586
-#: ../src/audio_call.c:658
-#, c-format
-msgid "Invalid type: %s"
-msgstr "Tipo non valido: %s"
-
-#: ../src/audio_call.c:527 ../src/audio_call.c:571
-msgid "Must have id!"
-msgstr "Deve avere un ID!"
-
-#: ../src/audio_call.c:528 ../src/audio_call.c:572 ../src/audio_call.c:644
-#: ../src/audio_call.c:690
-msgid "Only two arguments allowed!"
-msgstr "Solo due argomenti permessi!"
-
-#: ../src/audio_call.c:551 ../src/audio_call.c:595 ../src/audio_call.c:699
-msgid "Invalid input"
-msgstr "Input non valido"
-
-#: ../src/audio_call.c:556 ../src/audio_call.c:600
-msgid "Invalid selection!"
-msgstr "Selezione non valida!"
-
-#: ../src/audio_call.c:689
-msgid "Must have value!"
-msgstr "Deve avere un valore!"
-
-#: ../src/audio_call.c:728
-msgid "Not interested anymore"
-msgstr "Non importante"
-
-#: ../src/audio_call.c:731
-msgid "Not interested"
-msgstr "Non importante"
-
-#: ../src/autocomplete.c:126
-msgid "failed in complete_line"
-msgstr "errore in \"complete_line\""
-
-#: ../src/avatars.c:68
-#, c-format
-msgid "tox_file_send failed for friendnumber %d (error %d)\n"
-msgstr "\"tox_file_send\" fallita per \"friendnumber\" %d (errore %d)\n"
-
-#: ../src/avatars.c:212
-#, c-format
-msgid "tox_file_send_chunk failed in avatar callback (error %d)\n"
-msgstr "\"tox_file_send_chunk\" fallita per \"avatar callback\" (errore %d)\n"
-
-#: ../src/chat.c:56
-msgid "yes"
-msgstr "sì"
-
-#: ../src/chat.c:57
-msgid "no"
-msgstr "no"
-
-#: ../src/chat.c:223 ../src/prompt.c:360
-msgid "has come online"
-msgstr "si è connesso"
-
-#: ../src/chat.c:234 ../src/prompt.c:372
-msgid "has gone offline"
-msgstr "si è disconnesso"
-
-#: ../src/chat.c:319
-#, c-format
-msgid "File '%s' successfully sent."
-msgstr "File '%s' inviato con successo."
-
-#: ../src/chat.c:326
-#, c-format
-msgid "File transfer for '%s' failed: Null file pointer."
-msgstr "Trasferimento file per '%s' fallito: null file pointer."
-
-#: ../src/chat.c:333
-#, c-format
-msgid "File transfer for '%s' failed: Seek fail."
-msgstr "Trasferimento file per '%s' fallito: seek fail."
-
-#: ../src/chat.c:345
-#, c-format
-msgid "File transfer for '%s' failed: Read fail."
-msgstr "Trasferimento file per '%s' fallito: read fail."
-
-#: ../src/chat.c:354
-#, c-format
-msgid "tox_file_send_chunk failed in chat callback (error %d)\n"
-msgstr "\"tox_file_send_chunk\" fallita per \"chat callback\" (errore %d)\n"
-
-#: ../src/chat.c:377
-#, c-format
-msgid "File '%s' successfully received."
-msgstr "File '%s' ricevuto con successo."
-
-#: ../src/chat.c:384
-#, c-format
-msgid "File transfer for '%s' failed: Invalid file pointer."
-msgstr "Trasferimento file per '%s' fallito: invalid file pointer."
-
-#: ../src/chat.c:390
-#, c-format
-msgid "File transfer for '%s' failed: Write fail."
-msgstr "Trasferimento file per '%s' fallito: write fail."
-
-#: ../src/chat.c:416
-#, c-format
-msgid "File transfer [%d] for '%s' accepted."
-msgstr "Trasferimento file [%d] per '%s' accettato."
-
-#: ../src/chat.c:434
-#, c-format
-msgid "File transfer for '%s' was aborted."
-msgstr "Trasferimento file per '%s' annullato."
-
-#: ../src/chat.c:450 ../src/chat_commands.c:309
-msgid "File transfer failed: Too many concurrent file transfers."
-msgstr "Trasferimento file fallito: troppi trasferimenti files contemporanei."
-
-#: ../src/chat.c:456
-#, c-format
-msgid "File transfer request for '%s' (%s)"
-msgstr "Richiesta traferimento file per '%s' (%s)"
-
-#: ../src/chat.c:471
-msgid "File transfer faield: File path too long."
-msgstr "Trasferimento file fallito: percorso troppo lungo."
-
-#: ../src/chat.c:497
-msgid "File transfer failed: invalid file path."
-msgstr "Traferimento file fallito: percorso non valido."
-
-#: ../src/chat.c:502
-#, c-format
-msgid "Type '%s %d' to accept the file transfer."
-msgstr "Usa '%s %d' per accettare il trasferimento file."
-
-#: ../src/chat.c:515 ../src/chat.c:518
-#, c-format
-msgid "Incoming file: %s"
-msgstr "Ricezione file: %s"
-
-#: ../src/chat.c:533
-msgid "Failed in chat_onGroupInvite"
-msgstr "errore in \"chat_onGroupInvite\""
-
-#: ../src/chat.c:547 ../src/chat.c:549
-msgid "invites you to join group chat"
-msgstr "ti ha invitato a una chat di gruppo"
-
-#: ../src/chat.c:551
-#, c-format
-msgid "%s has invited you to a group chat."
-msgstr "%s ti ha invitato a una chat di gruppo."
-
-#: ../src/chat.c:552
-#, c-format
-msgid "Type \"%s\" to join the chat."
-msgstr "Usa \"%s\" per unirti alla chat."
-
-#: ../src/chat.c:566
-#, c-format
-msgid "Incoming audio call! Type: \"%s\" or \"%s\""
-msgstr "Chiamata in arrivo! Scrivi: \"%s\" o \"%s\""
-
-#: ../src/chat.c:573 ../src/chat.c:575
-msgid "Incoming audio call!"
-msgstr "Chiamata in arrivo!"
-
-#: ../src/chat.c:583
-#, c-format
-msgid "Ringing...type \"%s\" to cancel it."
-msgstr "Sta squillando... Usa \"%s\" per annullare."
-
-#: ../src/chat.c:598 ../src/chat.c:639
-#, c-format
-msgid "Call started! Type: \"%s\" to end it."
-msgstr "Chiamata iniziata! Usa \"%s\" per terminare la chiamata."
-
-#: ../src/chat.c:612 ../src/chat.c:680
-msgid "Call ended!"
-msgstr "Chiamata terminata!"
-
-#: ../src/chat.c:625
-msgid "Error!"
-msgstr "Errore!"
-
-#: ../src/chat.c:666
-msgid "Rejected!"
-msgstr "Rifiutata!"
-
-#: ../src/chat.c:693
-msgid "No answer!"
-msgstr "Nessuna risposta!"
-
-#: ../src/chat.c:707
-msgid "Peer disconnected; call ended!"
-msgstr "Contatto disconnesso. Chiamata terminata!"
-
-#: ../src/chat.c:769
-msgid " Call Active\n"
-msgstr " Chiamata Attiva\n"
-
-#: ../src/chat.c:773
-msgid " Duration: "
-msgstr " Durata: "
-
-#: ../src/chat.c:778
-msgid " In muted: "
-msgstr ""
-
-#: ../src/chat.c:783
-msgid " Out muted: "
-msgstr ""
-
-#: ../src/chat.c:788
-msgid " VAD level: "
-msgstr " Livello VAD: "
-
-#: ../src/chat.c:1080
-msgid "failed in chat_onInit"
-msgstr "errore in \"chat_onInit\""
-
-#: ../src/chat.c:1152
-msgid "failed in new_chat"
-msgstr "errore in \"new_chat\""
-
-#: ../src/chat_commands.c:48
-#, c-format
-msgid "Requires type %s and the file ID."
-msgstr "Richiede tipo %s e il file ID."
-
-#: ../src/chat_commands.c:57 ../src/chat_commands.c:74
-#: ../src/chat_commands.c:79
-msgid "Invalid file ID."
-msgstr "File ID non valido."
-
-#: ../src/chat_commands.c:69
-#, c-format
-msgid "Type must be '%s' or '%s'."
-msgstr "Il tipo deve essere '%s' o '%s'."
-
-#: ../src/chat_commands.c:83
-#, c-format
-msgid "File transfer for '%s' aborted."
-msgstr "Trasferimento file per '%s' annullato."
-
-#: ../src/chat_commands.c:90
-msgid "Group number required."
-msgstr "Numero della chat di gruppo richiesto."
-
-#: ../src/chat_commands.c:97
-msgid "Invalid group number."
-msgstr "Numero della chat di gruppo non valido."
-
-#: ../src/chat_commands.c:102
-msgid "Failed to invite contact to group."
-msgstr "Errore nell'invitare il contatto alla chat di gruppo."
-
-#: ../src/chat_commands.c:106
-#, c-format
-msgid "Invited contact to Group %d."
-msgstr "Contatto invitato alla chat di gruppo %d."
-
-#: ../src/chat_commands.c:112 ../src/global_commands.c:324
-msgid " * Warning: Too many windows are open."
-msgstr " * Attenzione: troppe finestre aperte."
-
-#: ../src/chat_commands.c:121
-msgid "No pending group chat invite."
-msgstr "Nessun invito in sospeso."
-
-#: ../src/chat_commands.c:136 ../src/global_commands.c:354
-msgid "Group chat instance failed to initialize."
-msgstr "Errore nell'inizializzazione dell'istanza della chat di gruppo."
-
-#: ../src/chat_commands.c:141 ../src/global_commands.c:359
-msgid "Group chat window failed to initialize."
-msgstr "Errore nell'inizializzazione della finestra della chat di gruppo."
-
-#: ../src/chat_commands.c:151
-msgid "File ID required."
-msgstr "Richiesto file ID"
-
-#: ../src/chat_commands.c:158 ../src/chat_commands.c:165
-#: ../src/chat_commands.c:170
-msgid "No pending file transfers with that ID."
-msgstr "Nessun trasferimento file in sospeso con questo ID."
-
-#: ../src/chat_commands.c:175
-msgid "File transfer failed: Invalid file path."
-msgstr "Trasferimento file fallito: percorso non valido."
-
-#: ../src/chat_commands.c:186
-#, c-format
-msgid "Saving file [%d] as: '%s'"
-msgstr "Salvataggio file [%d] come: '%s'"
-
-#: ../src/chat_commands.c:201
-msgid "File transfer failed: Friend not found."
-msgstr "Trasferimento file fallito: contatto non trovato."
-
-#: ../src/chat_commands.c:205
-msgid "File transfer failed: Friend is not online."
-msgstr "Trasferimento file fallito: contatto offline."
-
-#: ../src/chat_commands.c:209
-msgid "File transfer failed: Invalid filenumber."
-msgstr "Trasferimento file fallito: invalid filenumber."
-
-#: ../src/chat_commands.c:213
-msgid "File transfer failed: Connection error."
-msgstr "Trasferimento file fallito: errore di connessione."
-
-#: ../src/chat_commands.c:217
-#, c-format
-msgid "File transfer failed (error %d)\n"
-msgstr "Trasferimento file fallito (errore %d)\n"
-
-#: ../src/chat_commands.c:227
-msgid "File path required."
-msgstr "Percorso del file richiesto."
-
-#: ../src/chat_commands.c:232
-msgid "File path must be enclosed in quotes."
-msgstr "Il percorso del file deve essere tra virgolette."
-
-#: ../src/chat_commands.c:243
-msgid "File path exceeds character limit."
-msgstr "La lunghezza del percorso del file eccede il limite consentito."
-
-#: ../src/chat_commands.c:250
-msgid "File not found."
-msgstr "File non trovato."
-
-#: ../src/chat_commands.c:257
-msgid "Invalid file."
-msgstr "File non valido."
-
-#: ../src/chat_commands.c:290
-#, c-format
-msgid "Sending file [%d]: '%s' (%s)"
-msgstr "Invio file [%d]: '%s' (%s)"
-
-#: ../src/chat_commands.c:297
-msgid "File transfer failed: Invalid friend."
-msgstr "Trasferimento file fallito: contatto non valido."
-
-#: ../src/chat_commands.c:301
-msgid "File transfer failed: Friend is offline."
-msgstr "Trasferimento file fallito: contatto offline."
-
-#: ../src/chat_commands.c:305
-msgid "File transfer failed: Filename is too long."
-msgstr "Trasferimento file fallito: nome del file troppo lungo."
-
-#: ../src/chat_commands.c:313
-msgid "File transfer failed."
-msgstr "Trasferimento file fallito."
-
-#: ../src/configdir.c:125 ../src/toxic.c:1039 ../src/toxic.c:1045
-msgid "failed in load_data_structures"
-msgstr "errore in \"load_data_structures\""
-
-#: ../src/dns.c:155
-#, c-format
-msgid "User lookup failed: %s"
-msgstr "Ricerca dell'utente fallita: %s"
-
-#: ../src/dns.c:181
-msgid "dn_expand failed."
-msgstr "errore \"dn_expand\"."
-
-#: ../src/dns.c:186 ../src/dns.c:209
-msgid "DNS reply was too short."
-msgstr "La risposta DNS è troppo corta."
-
-#: ../src/dns.c:192
-msgid "Broken DNS reply."
-msgstr "Risposta DNS errata."
-
-#: ../src/dns.c:204
-msgid "Second dn_expand failed."
-msgstr "Secondo \"dn_expand\" fallito."
-
-#: ../src/dns.c:217
-msgid "RR overflow."
-msgstr "Overflow RR."
-
-#: ../src/dns.c:222
-msgid "DNS response failed."
-msgstr "Errore risposta DNS."
-
-#: ../src/dns.c:227
-msgid "No record found."
-msgstr "Nessun record trovato."
-
-#: ../src/dns.c:230
-msgid "Invalid DNS response."
-msgstr "Risposta DNS non valida."
-
-#: ../src/dns.c:307
-msgid "Must be a Tox ID or an address in the form username@domain"
-msgstr "Deve essere un Tox ID o un indirizzo nella forma \"username@doman\""
-
-#: ../src/dns.c:317
-msgid "Domain not found."
-msgstr "Dominio non trovato."
-
-#: ../src/dns.c:324
-msgid "Core failed to create DNS object."
-msgstr "Il core ha fallito nella creazione dell'oggetto DNS."
-
-#: ../src/dns.c:335
-msgid "Core failed to generate DNS3 string."
-msgstr "Il core ha fallito nella generazione di una stringa DNS3."
-
-#: ../src/dns.c:349
-msgid "DNS query failed."
-msgstr "Errore richiesta DNS."
-
-#: ../src/dns.c:364
-msgid "Bad DNS3 TXT response."
-msgstr "Risposta DNS3 TXT errata."
-
-#: ../src/dns.c:372
-msgid "Core failed to decrypt DNS response."
-msgstr "Il core ha fallito nel decriptare la risposta DNS."
-
-#: ../src/dns.c:388
-msgid "DNS lookups are disabled."
-msgstr "Ricerca DNS disabilitata."
-
-#: ../src/dns.c:393
-msgid "Please wait for previous user lookup to finish."
-msgstr "Aspetta che la precedente ricerca sia finita."
-
-#: ../src/dns.c:403
-#, c-format
-msgid ""
-"DNS server list failed to load with error code %d. Falling back to hard-"
-"coded list."
-msgstr ""
-"Errore nel caricamento della lista dei server DNS (%d). Verrà usata la lista "
-"hardcoded."
-
-#: ../src/dns.c:416
-msgid "Error: DNS thread attr failed to init"
-msgstr "Errore: inizializzazione attributi del thread DNS fallita"
-
-#: ../src/dns.c:422
-msgid "Error: DNS thread attr failed to set"
-msgstr "Errore: configurazione thread DNS fallita"
-
-#: ../src/dns.c:429
-msgid "Error: DNS thread failed to init"
-msgstr "Errore: inizializzazione thread DNS fallita"
-
-#: ../src/execute.c:107
-msgid "failed in parse_command"
-msgstr "errore in \"parse_command\""
-
-#: ../src/execute.c:121
-msgid "Invalid argument. Did you forget a closing \"?"
-msgstr "Argomento non valido. Hai dimenticato un \"?"
-
-#: ../src/execute.c:192
-msgid "Invalid command."
-msgstr "Comando non valido."
-
-#: ../src/friendlist.c:93
-msgid "failed in realloc_friends"
-msgstr "errore in \"realloc_friends\""
-
-#: ../src/friendlist.c:113
-msgid "failed in realloc_blocklist"
-msgstr "errore in \"realloc_blocklist\""
-
-#: ../src/friendlist.c:141
-msgid "Failed in save_blocklist"
-msgstr "errore in \"save_blocklist\""
-
-#: ../src/friendlist.c:208
-msgid "Failed in load_blocklist"
-msgstr "errore in \"load_blocklist\""
-
-#: ../src/friendlist.c:331 ../src/friendlist.c:766 ../src/friendlist.c:1076
-msgid "* Warning: Too many windows are open."
-msgstr "* Attenzione: troppe finestre aperte."
-
-#: ../src/friendlist.c:346
-#, c-format
-msgid "avatar_send failed for friend %d\n"
-msgstr "\"avatar_send\" fallita per il contatto %d\n"
-
-#: ../src/friendlist.c:421
-#, c-format
-msgid "tox_friend_get_public_key failed (error %d)\n"
-msgstr "\"tox_friend_get_public_key\" fallita (errore %d)\n"
-
-#: ../src/friendlist.c:500
-#, c-format
-msgid "* File transfer from %s failed: too many windows are open."
-msgstr "Trasferimento file da %s fallito: troppe finestre aperte."
-
-#: ../src/friendlist.c:523
-#, c-format
-msgid "* Group chat invite from %s failed: too many windows are open."
-msgstr "* Invito alla chat di gruppo da %s fallito: troppe finestre aperte."
-
-#: ../src/friendlist.c:546
-#, c-format
-msgid "tox_friend_delete failed with error %d\n"
-msgstr "\"tox_friend_delete\" fallita (errore %d)\n"
-
-#: ../src/friendlist.c:626
-msgid "Delete contact "
-msgstr "Elimina contatto "
-
-#: ../src/friendlist.c:707
-#, c-format
-msgid "Failed to unblock friend (error %d)\n"
-msgstr "Errore nello sbloccare il contatto (errore %d)\n"
-
-#: ../src/friendlist.c:803
-msgid " Blocked: "
-msgstr " Bloccato: "
-
-#: ../src/friendlist.c:855 ../src/friendlist.c:1035
-msgid "Key: "
-msgstr "Tox ID: "
-
-#: ../src/friendlist.c:881
-msgid " Press the"
-msgstr " Premi "
-
-#: ../src/friendlist.c:885
-msgid ""
-"key for help\n"
-"\n"
-msgstr ""
-"per l'auito\n"
-"\n"
-
-#: ../src/friendlist.c:897
-msgid " Online: "
-msgstr " Online: "
-
-#: ../src/friendlist.c:1011
-#, c-format
-msgid " Last seen: Today %s\n"
-msgstr " Ultimo login: Oggi %s\n"
-
-#: ../src/friendlist.c:1015
-#, c-format
-msgid " Last seen: Yesterday %s\n"
-msgstr " Ultimo login: Ieri %s\n"
-
-#: ../src/friendlist.c:1019
-#, c-format
-msgid " Last seen: %d days ago\n"
-msgstr " Ultimo login: %d giorni fa\n"
-
-#: ../src/friendlist.c:1023
-msgid " Last seen: Never\n"
-msgstr " Ultimo login: Mai\n"
-
-#: ../src/friendlist.c:1074
-#, c-format
-msgid "Audio action from: %s!"
-msgstr "Azione audio da: %s!"
-
-#: ../src/friendlist.c:1126
-msgid "failed in new_friendlist"
-msgstr "errore in \"new_friendlist\""
-
-#: ../src/friendlist.c:1129
-msgid "contacts"
-msgstr "contatti"
-
-#: ../src/global_commands.c:55 ../src/global_commands.c:292
-msgid "Request ID required."
-msgstr "Tox ID richiesto."
-
-#: ../src/global_commands.c:62 ../src/global_commands.c:67
-#: ../src/global_commands.c:299 ../src/global_commands.c:304
-msgid "No pending friend request with that ID."
-msgstr "Nessuna richiesta d'amicizia in sospeso per questo Tox ID."
-
-#: ../src/global_commands.c:75
-#, c-format
-msgid "Failed to add friend (error %d)\n"
-msgstr "Errore nell'aggiungere il contatto (errore %d)\n"
-
-#: ../src/global_commands.c:78
-msgid "Friend request accepted."
-msgstr "Richiesta d'amicizia accettata."
-
-#: ../src/global_commands.c:105
-msgid "Message is too long."
-msgstr "Il messaggio è troppo lungo."
-
-#: ../src/global_commands.c:109
-msgid "Please add a message to your request."
-msgstr "Per favore aggiungi un messaggio alla tua richiesta."
-
-#: ../src/global_commands.c:113
-msgid "That appears to be your own ID."
-msgstr "Questo sembra essere il tuo Tox ID."
-
-#: ../src/global_commands.c:117
-msgid "Friend request has already been sent."
-msgstr "Richiesta d'amicizia già inviata."
-
-#: ../src/global_commands.c:121
-msgid "Bad checksum in address."
-msgstr "Checksum non corretto nel Tox ID."
-
-#: ../src/global_commands.c:125
-msgid "Nospam was different."
-msgstr "Valore nospam diverso."
-
-#: ../src/global_commands.c:129
-msgid "Core memory allocation failed."
-msgstr "il core ha fallito nell'allocazione di memoria."
-
-#: ../src/global_commands.c:133
-msgid "Friend request sent."
-msgstr "Richiesta d'amicizia inviata."
-
-#: ../src/global_commands.c:140
-msgid "Failed to add friend: Unknown error."
-msgstr "Errore nell'aggiungere il contatto: errore sconosciuto."
-
-#: ../src/global_commands.c:150
-msgid "Tox ID or address required."
-msgstr "Tox ID o indirizzo richiesto."
-
-#: ../src/global_commands.c:159
-msgid "Message must be enclosed in quotes."
-msgstr "Il messaggio deve essere tra virgolette."
-
-#: ../src/global_commands.c:175
-#, c-format
-msgid "Hello, my name is %s. Care to Tox?"
-msgstr "Ciao, sono %s. Per favore aggiungimi alla tua lista contatti."
-
-#: ../src/global_commands.c:193
-msgid "Invalid Tox ID."
-msgstr "Tox ID non valido."
-
-#: ../src/global_commands.c:210
-msgid "Avatar is not set."
-msgstr "Avatar non impostato."
-
-#: ../src/global_commands.c:215
-msgid "Path must be enclosed in quotes."
-msgstr "Il percorso deve essere tra virgolette."
-
-#: ../src/global_commands.c:225
-msgid "Invalid path."
-msgstr "Percorso non valido."
-
-#: ../src/global_commands.c:235
-#, c-format
-msgid ""
-"Failed to set avatar. Avatars must be in PNG format and may not exceed %d "
-"bytes."
-msgstr ""
-"Errore nell'impostare l'avatar. L'avatar deve essere in formato PNG e non "
-"eccedere %d bytes."
-
-#: ../src/global_commands.c:240
-#, c-format
-msgid "Avatar set to '%s'"
-msgstr "Avatar impostato (%s)"
-
-#: ../src/global_commands.c:252
-msgid "Require: "
-msgstr "Richiede: "
-
-#: ../src/global_commands.c:261
-msgid "Invalid port."
-msgstr "Porta non valida."
-
-#: ../src/global_commands.c:274
-msgid "Bootstrap failed: Invalid IP."
-msgstr "Bootstrap fallito: IP non valido."
-
-#: ../src/global_commands.c:278
-msgid "Bootstrap failed: Invalid port."
-msgstr "Bootstrap fallito: porta non valida."
-
-#: ../src/global_commands.c:282
-msgid "Bootstrap failed."
-msgstr "Bootstrap fallito."
-
-#: ../src/global_commands.c:329
-#, c-format
-msgid "Please specify group type: %s"
-msgstr "Specifica il tipo di chat di gruppo: %s"
-
-#: ../src/global_commands.c:340
-#, c-format
-msgid "Valid group types are: %s"
-msgstr "I tipi di chat di gruppo permessi sono: %s"
-
-#: ../src/global_commands.c:364
-#, c-format
-msgid "Group chat [%d] created."
-msgstr "Chat di gruppo [%d] creata."
-
-#: ../src/global_commands.c:374
-msgid "Logging for this window is ON. Type \"/log off\" to disable."
-msgstr ""
-"La cronologia chat per questa finestra è ON. Usa \"/log off\" per "
-"disabilitarla."
-
-#: ../src/global_commands.c:376
-msgid "Logging for this window is OFF. Type \"/log on\" to enable."
-msgstr ""
-"La cronologia chat per questa finestra è OFF. Usa \"/log on\" per abilitarla."
-
-#: ../src/global_commands.c:397
-msgid "Logging enabled"
-msgstr "Cronologia chat abilitata"
-
-#: ../src/global_commands.c:406
-msgid "Logging disabled"
-msgstr "Cronologia chat disabilitata"
-
-#: ../src/global_commands.c:411
-#, c-format
-msgid "Invalid option. Use \"%s\" to toggle logging."
-msgstr "Opzione non valida. Usa \"%s\" per impostare la cronologia chat."
-
-#: ../src/global_commands.c:435 ../src/global_commands.c:468
-msgid "Input required."
-msgstr "Input richiesto."
-
-#: ../src/global_commands.c:452
-msgid "Invalid name."
-msgstr "Nome non valido."
-
-#: ../src/global_commands.c:473 ../src/global_commands.c:561
-msgid "Note must be enclosed in quotes."
-msgstr "Il messaggio di stato deve essere tra virgolette."
-
-#: ../src/global_commands.c:499
-msgid "No pending friend requests."
-msgstr "Nessuna richiesta d'amicizia in sospeso."
-
-#: ../src/global_commands.c:536
-#, c-format
-msgid "Require a status. Statuses are: %s."
-msgstr "Richiede uno stato. Gli stati sono: %s."
-
-#: ../src/global_commands.c:551
-#, c-format
-msgid "Invalid status. Valid statuses are: %s."
-msgstr "Stato non valido. Gli stati disponibilit sono: %s."
-
-#: ../src/group_commands.c:46
-#, c-format
-msgid "Title is set to: %s"
-msgstr "Titolo impostato a: \"%s\""
-
-#: ../src/group_commands.c:48
-msgid "Title is not set"
-msgstr "Titolo non impostato"
-
-#: ../src/group_commands.c:55
-msgid "Title must be enclosed in quotes."
-msgstr "Il titolo deve essere tra virgolette."
-
-#: ../src/group_commands.c:65
-msgid "Failed to set title."
-msgstr "Errore nell'impostare il titolo."
-
-#: ../src/group_commands.c:80 ../src/groupchat.c:337
-#, c-format
-msgid " set the group title to: %s"
-msgstr " ha impostato il titolo a: \"%s\""
-
-#: ../src/group_commands.c:83 ../src/groupchat.c:340
-#, c-format
-msgid "set title to %s"
-msgstr "ha impostato il titolo a \"%s\""
-
-#: ../src/groupchat.c:143
-msgid "failed in init_groupchat_win"
-msgstr "errore in \"init_groupchat_win\""
-
-#: ../src/groupchat.c:151
-#, c-format
-msgid "Group Audio failed to init\n"
-msgstr "Inizializzazione fallita delle chat di gruppo audio\n"
-
-#: ../src/groupchat.c:362
-msgid "failed in copy_peernames"
-msgstr "errore in \"copy_peernames\""
-
-#: ../src/groupchat.c:419
-msgid "has joined the room"
-msgstr "è entrato nella chat"
-
-#: ../src/groupchat.c:517
-msgid "has left the room"
-msgstr "ha lasciato la chat"
-
-#: ../src/groupchat.c:534
-msgid " is now known as "
-msgstr " è ora conosciuto come "
-
-#: ../src/groupchat.c:538
-#, c-format
-msgid "is now known as %s"
-msgstr "è ora conosciuto come %s"
-
-#: ../src/groupchat.c:549
-msgid "Invalid syntax.\n"
-msgstr "Sintassi non valida.\n"
-
-#: ../src/groupchat.c:554
-msgid " * Failed to send action."
-msgstr " * Errore nell'inviare l'azione."
-
-#: ../src/groupchat.c:641
-msgid " * Failed to send message."
-msgstr " * Errore nell'inviare il messaggio."
-
-#: ../src/groupchat.c:678
-#, c-format
-msgid "Peers: %d\n"
-msgstr "Utenti: %d\n"
-
-#: ../src/groupchat.c:728
-msgid "failed in groupchat_onInit"
-msgstr "errore in \"groupchat_onInit\""
-
-#: ../src/groupchat.c:813
-#, c-format
-msgid "source: %d, queued: %d, processed: %d\n"
-msgstr "sorgente: %d, coda: %d, processati: %d\n"
-
-#: ../src/groupchat.c:852
-#, c-format
-msgid "dvhandle is null)\n"
-msgstr "\"dvhandle\" è null)\n"
-
-#: ../src/groupchat.c:855
-#, c-format
-msgid "ctx is null\n"
-msgstr "\"ctx\" è null\n"
-
-#: ../src/groupchat.c:858
-#, c-format
-msgid "write: %d\n"
-msgstr "scritto: %d\n"
-
-#: ../src/groupchat.c:882
-#, c-format
-msgid "Group %d"
-msgstr "Chat di gruppo %d"
-
-#: ../src/groupchat.c:888
-msgid "failed in new_group_chat"
-msgstr "errore in \"new_group_chat\""
-
-#: ../src/help.c:148
-msgid "Global Commands:\n"
-msgstr "Comandi Globali:\n"
-
-#: ../src/help.c:152
-msgid "Add contact with optional message\n"
-msgstr "Aggiungi contatto con un messaggio opzionale\n"
-
-#: ../src/help.c:154
-msgid "Accept friend request\n"
-msgstr "Accetta richiesta d'amicizia\n"
-
-#: ../src/help.c:156
-msgid "Set an avatar (leave path empty to unset)\n"
-msgstr "Imposta un avatar (lascia vuoto per resettare)\n"
-
-#: ../src/help.c:158
-msgid "Decline friend request\n"
-msgstr "Rifiuta richiesta d'amicizia\n"
-
-#: ../src/help.c:160
-msgid "List pending friend requests\n"
-msgstr "Mostra le richieste d'amicizia in sospeso\n"
-
-#: ../src/help.c:162
-msgid "Manually connect to a DHT node\n"
-msgstr "Connettiti manualmente ad un nodo DHT\n"
-
-#: ../src/help.c:164
-msgid "Set status with optional note\n"
-msgstr "Imposta lo stato con un messaggio opzionale\n"
-
-#: ../src/help.c:166
-msgid "Set a personal note\n"
-msgstr "Imposta il messaggio di stato\n"
-
-#: ../src/help.c:168
-msgid "Set your nickname\n"
-msgstr "Imposta il nickname\n"
-
-#: ../src/help.c:170
-msgid "Enable/disable logging\n"
-msgstr "Abilita/disabilita cronologia chat\n"
-
-#: ../src/help.c:172
-msgid "Create a group chat where type: text | audio\n"
-msgstr "Crea una caht di gruppo di tipo: text|audio\n"
-
-#: ../src/help.c:174
-msgid "Print your Tox ID\n"
-msgstr "Mostra il tuo Tox ID\n"
-
-#: ../src/help.c:176
-msgid "Clear window history\n"
-msgstr "Pulisce la cronologia della finestra\n"
-
-#: ../src/help.c:178
-msgid "Close the current chat window\n"
-msgstr "Chiude la fiestra di chat corrente\n"
-
-#: ../src/help.c:180
-msgid "Exit Toxic\n"
-msgstr "Esce da Toxic\n"
-
-#: ../src/help.c:184 ../src/help.c:224
-msgid ""
-"\n"
-" Audio:\n"
-msgstr ""
-"\n"
-" Audio:\n"
-
-#: ../src/help.c:188
-msgid "List devices where type:"
-msgstr "Mostra i dispositivi di tipo:"
-
-#: ../src/help.c:191
-msgid "Set active device\n"
-msgstr "Imposta il device attivo\n"
-
-#: ../src/help.c:207
-msgid "Chat Commands:\n"
-msgstr "Comandi Chat:\n"
-
-#: ../src/help.c:211
-msgid "Invite contact to a group chat\n"
-msgstr "Invita un contatto ad una chat di gruppo\n"
-
-#: ../src/help.c:213
-msgid "Join a pending group chat\n"
-msgstr "Unisciti ad una chat di gruppo a cui sei stato invitato\n"
-
-#: ../src/help.c:215
-msgid "Send a file\n"
-msgstr "Invia un file\n"
-
-#: ../src/help.c:217
-msgid "Receive a file\n"
-msgstr "Accetta la ricezione di un file\n"
-
-#: ../src/help.c:219
-msgid "Cancel file transfer where type:"
-msgstr "Annulla trasferimento file di tipo:"
-
-#: ../src/help.c:228
-msgid "Audio call\n"
-msgstr "Chiamata audio\n"
-
-#: ../src/help.c:230
-msgid "Answer incoming call\n"
-msgstr "Rispondi ad una chiamata\n"
-
-#: ../src/help.c:232
-msgid "Reject incoming call\n"
-msgstr "Rifiuta una chiamata\n"
-
-#: ../src/help.c:234
-msgid "Hangup active call\n"
-msgstr "Termina una chiamata attiva\n"
-
-#: ../src/help.c:236
-msgid "Change active device\n"
-msgstr "Cambia il dispositivo attivo\n"
-
-#: ../src/help.c:238
-msgid "Mute active device if in call\n"
-msgstr "Disabilita il dispositivo attivo mentre sei in una chiamata\n"
-
-#: ../src/help.c:240
-msgid "VAD sensitivity threshold\n"
-msgstr "Sensibilità VAD\n"
-
-#: ../src/help.c:256
-msgid "Key bindings:\n"
-msgstr "Mappatura tasti:\n"
-
-#: ../src/help.c:260
-msgid "Navigate through the tabs\n"
-msgstr "Naviga tra le schede\n"
-
-#: ../src/help.c:262
-msgid "Scroll window history one line\n"
-msgstr "Scorri la cronologia della finestra di una riga\n"
-
-#: ../src/help.c:264
-msgid "Scroll window history half a page\n"
-msgstr "Scorri la cronologia della finestra di metà pagina\n"
-
-#: ../src/help.c:266
-msgid "Move to the bottom of window history\n"
-msgstr "Vai in fondo alla finestra\n"
-
-#: ../src/help.c:268
-msgid "Scroll peer list in groupchats\n"
-msgstr "Scorre la lista utenti nelle chat di gruppo\n"
-
-#: ../src/help.c:270
-msgid ""
-"Toggle the groupchat peerlist\n"
-"\n"
-msgstr ""
-"Mostra/nasconde la lista degli utenti nelle chat di gruppo\n"
-"\n"
-
-#: ../src/help.c:271
-msgid ""
-" (Note: Custom keybindings override these defaults.)\n"
-"\n"
-msgstr ""
-" (Nota: mappature personalizzate sovrascrivono i defaults.)\n"
-"\n"
-
-#: ../src/help.c:286
-msgid "Group commands:\n"
-msgstr "Comandi chat di gruppo:\n"
-
-#: ../src/help.c:290
-msgid ""
-"Set group title (show current title if no msg)\n"
-"\n"
-msgstr ""
-"Imposta il titolo (mostra il titolo corrente se non è specificato niente)\n"
-"\n"
-
-#: ../src/help.c:305
-msgid "Friendlist controls:\n"
-msgstr "Controllo lista contatti:\n"
-
-#: ../src/help.c:308
-msgid " Up and Down arrows : Scroll through list\n"
-msgstr " Frecce Su e Giù : Scorri la lista\n"
-
-#: ../src/help.c:309
-msgid ""
-" Right and Left arrows : Switch between friendlist and blocked "
-"list\n"
-msgstr ""
-" Frecce Destra e Sinistra : Cambia tra lista contatti e lista "
-"bloccati\n"
-
-#: ../src/help.c:310
-msgid ""
-" Enter : Open a chat window with selected contact\n"
-msgstr ""
-" Invio : Apre una finestra di chat con il contatto "
-"selezionato\n"
-
-#: ../src/help.c:311
-msgid " Delete : Permanently delete a contact\n"
-msgstr ""
-" Canc : Elimina un contatto definitivamente\n"
-
-#: ../src/help.c:313
-msgid "Block or unblock a contact\n"
-msgstr "Blocca o sblocca un contatto\n"
-
-#: ../src/line_info.c:50
-msgid "failed in line_info_init"
-msgstr "errore in \"line_info_init\""
-
-#: ../src/line_info.c:150
-msgid "failed in line_info_add"
-msgstr "errore in \"line_info_add\""
-
-#: ../src/log.c:189
-msgid "failed in load_chat_history"
-msgstr "errore in \"load_chat_history\""
-
-#: ../src/log.c:193 ../src/log.c:199
-msgid " * Failed to read log file"
-msgstr " * Errore nel leggere il file della cronologia chat"
-
-#: ../src/message_queue.c:56
-msgid "failed in cqueue_message"
-msgstr "errore in \"cqueue_message\""
-
-#: ../src/misc_tools.c:240 ../src/misc_tools.c:248
-msgid "failed in get_file_name"
-msgstr "errore in \"get_file_name\""
-
-#: ../src/prompt.c:139
-#, c-format
-msgid "Failed to set note (error %d)\n"
-msgstr "Errore nell'impostare il messaggio di stato (errore %d)\n"
-
-#: ../src/prompt.c:271
-msgid "ERROR"
-msgstr "ERRORE"
-
-#: ../src/prompt.c:275
-msgid "Online"
-msgstr "Online"
-
-#: ../src/prompt.c:279
-msgid "Away"
-msgstr "Assente"
-
-#: ../src/prompt.c:283
-msgid "Busy"
-msgstr "Occupato"
-
-#: ../src/prompt.c:296
-msgid " [Offline]"
-msgstr " [Offline]"
-
-#: ../src/prompt.c:366 ../src/prompt.c:369
-#, c-format
-msgid "%s has come online"
-msgstr "%s si è connesso"
-
-#: ../src/prompt.c:378 ../src/prompt.c:381
-#, c-format
-msgid "%s has gone offline"
-msgstr "%s si è disconnesso"
-
-#: ../src/prompt.c:392 ../src/prompt.c:393
-#, c-format
-msgid "Friend request with the message '%s'"
-msgstr "Richiesta d'amicizia con il messaggio '%s'"
-
-#: ../src/prompt.c:398
-msgid "Friend request queue is full. Discarding request."
-msgstr "Coda delle richieste d'amicizia piena. Richiesta scartata."
-
-#: ../src/prompt.c:403
-#, c-format
-msgid "Type \"%s %d\" or \"%s %d\""
-msgstr "Scrivi \"%s %d\" o \"%s %d\""
-
-#: ../src/prompt.c:432 ../src/prompt.c:433
-#, c-format
-msgid "Toxing on Toxic"
-msgstr "Toxing on Toxic"
-
-#: ../src/prompt.c:455
-msgid ""
-"Welcome to Toxic, a free, open source Tox-based instant messenging client."
-msgstr "Benvenuto in Toxic, un client gratis e open source per la rete Tox."
-
-#: ../src/prompt.c:457
-#, c-format
-msgid "Type \"%s\" for assistance. Further help may be found via the man page."
-msgstr ""
-"Usa \"%s\" per ricevere assistenza. Ulteriori aiuto può essere ottenuto "
-"attraverso la pagina di manuale."
-
-#: ../src/prompt.c:476
-msgid "failed in prompt_onInit"
-msgstr "errore in \"prompt_onInit\""
-
-#: ../src/prompt.c:514
-msgid "failed in new_prompt"
-msgstr "errore in \"new_prompt\""
-
-#: ../src/toxic.c:112
-#, c-format
-msgid "Caught SIGSEGV: Aborting toxic session.\n"
-msgstr "Ricevuto segnale SIGSEGV: chiudo sessione.\n"
-
-#: ../src/toxic.c:161
-#, c-format
-msgid "Toxic session aborted with error code %d (%s)\n"
-msgstr "Sessio ciusa con errore %d (%s)\n"
-
-#: ../src/toxic.c:171
-msgid ""
-"Could not set your locale, please check your locale settings or disable "
-"unicode support with the -d flag."
-msgstr ""
-"Impossibile impostare la localizzazione, controlla le impostazione o "
-"disabilita il supporto unicode con l'opzione \"-d\"."
-
-#: ../src/toxic.c:231 ../src/toxic.c:236
-msgid "Failed in queue_init_message"
-msgstr "errore in \"queue_init_message\""
-
-#: ../src/toxic.c:328
-#, c-format
-msgid "Failed to bootstrap %s:%d\n"
-msgstr "Bootstrap fallito %s:%d\n"
-
-#: ../src/toxic.c:335
-#, c-format
-msgid "Failed to add TCP relay %s:%d\n"
-msgstr "Errore aggiungendo relay TCP %s:%d\n"
-
-#: ../src/toxic.c:466
-#, c-format
-msgid "Enter a new password (must be at least %d characters) "
-msgstr "Inserisci una nuova password (deve contenere almeno %d caratteri) "
-
-#: ../src/toxic.c:476
-#, c-format
-msgid "Password must be between %d and %d characters long. "
-msgstr "La password deve essere lunga tra %d e %d caratteri. "
-
-#: ../src/toxic.c:481
-#, c-format
-msgid "Enter password again "
-msgstr "Reinserisci password "
-
-#: ../src/toxic.c:489
-#, c-format
-msgid "Passwords don't match. Try again. "
-msgstr "Le passwords non corrispondono. Riprova. "
-
-#: ../src/toxic.c:496
-#, c-format
-msgid "Data file '%s' is encrypted"
-msgstr "Il file dati '%s' è criptato"
-
-#: ../src/toxic.c:533
-#, c-format
-msgid "tox_pass_encrypt() failed with error %d\n"
-msgstr "\"tox_pass_encrypt()\" fallita con errore %d\n"
-
-#: ../src/toxic.c:584
-msgid "Forcing IPv4 connection"
-msgstr "Forzata connessione IPv4"
-
-#: ../src/toxic.c:592
-#, c-format
-msgid "Using %s proxy %s : %d"
-msgstr "Uso %s proxy %s:%d"
-
-#: ../src/toxic.c:597
-msgid "UDP disabled"
-msgstr "UDP disabilitato"
-
-#: ../src/toxic.c:599
-msgid ""
-"WARNING: Using a proxy without disabling UDP may leak your real IP address."
-msgstr ""
-"ATTENZIONE: usare un proxy senza disabilitare UDP potrebbe portare alla "
-"rivelazione del tuo vero IP."
-
-#: ../src/toxic.c:601
-msgid "Use the -t option to disable UDP."
-msgstr "Usa l'optione \"-t\" per disabilitare UDP."
-
-#: ../src/toxic.c:620 ../src/toxic.c:627 ../src/toxic.c:635 ../src/toxic.c:712
-#: ../src/toxic.c:722
-msgid "failed in load_toxic"
-msgstr "errore in \"load_toxic\""
-
-#: ../src/toxic.c:639
-#, c-format
-msgid "Data file '%s' has been unencrypted"
-msgstr "Il file di dati '%s' è stato decriptato"
-
-#: ../src/toxic.c:641
-#, c-format
-msgid "Warning: passed --unencrypt-data option with unencrypted data file '%s'"
-msgstr ""
-"Attenzione: opzione \"--unencrypt-data\" usata con un file di dati non "
-"criptato (%s)"
-
-#: ../src/toxic.c:649
-#, c-format
-msgid "Enter password (\"%s\" to quit) "
-msgstr "Inserisci password (\"%s\" per uscire) "
-
-#: ../src/toxic.c:666 ../src/toxic.c:690
-#, c-format
-msgid "Invalid password. Try again. "
-msgstr "Password errata. Riprova. "
-
-#: ../src/toxic.c:693
-msgid "tox_pass_decrypt() failed"
-msgstr "\"tox_pass_decrypt()\" fallita"
-
-#: ../src/toxic.c:737
-msgid "Falling back to ipv4"
-msgstr "Ritorno a IPv4"
-
-#: ../src/toxic.c:743
-msgid "tox_new returned fatal error"
-msgstr "\"tox_new\" ha ritornato un errore fatale"
-
-#: ../src/toxic.c:746
-#, c-format
-msgid "tox_new returned non-fatal error %d"
-msgstr "\"tox_new\" ha ritornato un errore non fatale %d"
-
-#: ../src/toxic.c:753
-msgid "Toxic User"
-msgstr "Utente Toxic"
-
-#: ../src/toxic.c:779
-#, c-format
-msgid "Auto-connect failed with error code %d"
-msgstr "Connessione automatica fallita con errore %d"
-
-#: ../src/toxic.c:860
-#, c-format
-msgid "usage: toxic [OPTION] [FILE ...]\n"
-msgstr "uso: toxic [OPZIONE] [FILE...]\n"
-
-#: ../src/toxic.c:862
-#, c-format
-msgid "Force IPv4 connection\n"
-msgstr "Forza connessioni IPv4\n"
-
-#: ../src/toxic.c:864
-#, c-format
-msgid "Enable stderr for debugging\n"
-msgstr "Abilita stderr per il debugging\n"
-
-#: ../src/toxic.c:866
-#, c-format
-msgid "Use specified config file\n"
-msgstr "Usa il file di configurazione specificato\n"
-
-#: ../src/toxic.c:868
-#, c-format
-msgid "Use default POSIX locale\n"
-msgstr "Usa localizzazione POSIX di default\n"
-
-#: ../src/toxic.c:870
-#, c-format
-msgid "Encrypt an unencrypted data file\n"
-msgstr "Cripta un file di dati non criptato\n"
-
-#: ../src/toxic.c:872
-#, c-format
-msgid "Use specified data file\n"
-msgstr "Usa il file di dati specificato\n"
-
-#: ../src/toxic.c:874
-#, c-format
-msgid "Show this message and exit\n"
-msgstr "Mostra questo messaggio ed esce\n"
-
-#: ../src/toxic.c:876
-#, c-format
-msgid "Use specified DHTnodes file\n"
-msgstr "Usa il file DHTnodes specificato\n"
-
-#: ../src/toxic.c:878
-#, c-format
-msgid "Do not connect to the DHT network\n"
-msgstr "Non si connette alla rete DHT\n"
-
-#: ../src/toxic.c:880
-#, c-format
-msgid "Use SOCKS5 proxy: Requires [IP] [port]\n"
-msgstr "Usa proxy SOCKS5: richiede [IP] [porta]\n"
-
-#: ../src/toxic.c:882
-#, c-format
-msgid "Use HTTP proxy: Requires [IP] [port]\n"
-msgstr "Usa proxy HTTP: richiede [IP] [porta]\n"
-
-#: ../src/toxic.c:884
-#, c-format
-msgid "Use specified DNSservers file\n"
-msgstr "Usa il file DNSservers specificato\n"
-
-#: ../src/toxic.c:886
-#, c-format
-msgid "Force TCP connection (use this with proxies)\n"
-msgstr "Forza connessioni TCP (usa questa opzione per i proxies)\n"
-
-#: ../src/toxic.c:888
-#, c-format
-msgid "Unencrypt an encrypted data file\n"
-msgstr "Decripta un file di dati criptato\n"
-
-#: ../src/toxic.c:932
-msgid "stderr enabled"
-msgstr "stderr abilitato"
-
-#: ../src/toxic.c:939
-msgid "Config file not found"
-msgstr "File di configurazione non trovato"
-
-#: ../src/toxic.c:945
-msgid "Using default POSIX locale"
-msgstr "Uso localizzazione POSIX di default"
-
-#: ../src/toxic.c:958
-msgid "failed in parse_args"
-msgstr "erorre in \"parse_args\""
-
-#: ../src/toxic.c:963
-#, c-format
-msgid "Using '%s' data file"
-msgstr "Uso il file di dati '%s'"
-
-#: ../src/toxic.c:971
-msgid "DHTnodes file not found"
-msgstr "File DHTnodes non trovato"
-
-#: ../src/toxic.c:977
-msgid "DHT disabled"
-msgstr "DHT disabilitato"
-
-#: ../src/toxic.c:985 ../src/toxic.c:995
-msgid "Proxy error"
-msgstr "Errore proxy"
-
-#: ../src/toxic.c:1004
-msgid "DNSservers file not found"
-msgstr "File DNSservers non trovato"
-
-#: ../src/toxic.c:1101
-#, c-format
-msgid "Warning: Using \"%s\" and \"%s\" simultaneously has no effect"
-msgstr "Attenzione: usando \"%s\" e \"%s\" simultaneamente non avrà effetto"
-
-#: ../src/toxic.c:1114
-msgid "Creating new data file. Would you like to encrypt it? Y/n (q to quit)"
-msgstr ""
-"Creazione di un nuovo file di dati. Vuoi criptarlo? Y/n (\"q\" per uscire)"
-
-#: ../src/toxic.c:1116
-msgid "Encrypt existing data file? Y/n (q to quit)"
-msgstr "Criptare il file di dati esistente? Y/n (\"q\" per uscire)"
-
-#: ../src/toxic.c:1123 ../src/toxic.c:1146 ../src/toxic.c:1149
-#: ../src/toxic.c:1153 ../src/toxic.c:1161
-msgid "failed in main"
-msgstr "errore in \"main\""
-
-#: ../src/toxic.c:1130
-msgid "X failed to initialize"
-msgstr "Errore inizializzazione X"
-
-#: ../src/toxic.c:1168
-msgid "Failed to init audio devices"
-msgstr "Inizializzazione dispositivi audio fallita"
-
-#: ../src/toxic.c:1177
-msgid ""
-"Unable to determine configuration directory. Defaulting to 'data' for data "
-"file..."
-msgstr ""
-"Impossibile determinare la directory delle configurazioni. Uso 'data' come "
-"file di dati..."
-
-#: ../src/toxic.c:1182
-msgid "Failed to load user settings"
-msgstr "Errore nel caricamento delle impostazioni utente"
-
-#: ../src/toxic.c:1186
-msgid "Failed to init mplex auto-away."
-msgstr "Errore nell'inizializzazione di mplex auto-away."
-
-#: ../src/toxic.c:1209
-msgid "WARNING: Failed to save to data file"
-msgstr "ATTENZIONE: salvataggio file di dati fallito"
-
-#: ../src/toxic.h:43
-msgid "Anonymous"
-msgstr "Anonimo"
-
-#: ../src/toxic.h:44
-msgid "Tox User"
-msgstr "Utente Toxic"
-
-#: ../src/windows.c:368
-msgid "failed in set_next_window"
-msgstr "errore in \"set_next_window\""
-
-#: ../src/windows.c:390
-msgid "failed in init_windows"
-msgstr "errore in \"init_windows\""
diff --git a/translations/tools/create_mo.sh b/translations/tools/create_mo.sh
deleted file mode 100755
index b0de40c..0000000
--- a/translations/tools/create_mo.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-cd $(dirname $0)
-
-loc="$1"
-while [ -z "$1" -a -z "$loc" ]; do
- echo -n "Insert locale (for example \"en\"): "
- read loc
-done
-
-cd ..
-
-if [ ! -e "$loc.po" ]; then
- echo "File \"$loc.po\" not found"
- echo "The translation file must exist"
- exit 1
-else
- msgfmt -c -o $loc.mo $loc.po
-fi
diff --git a/translations/tools/create_po.sh b/translations/tools/create_po.sh
deleted file mode 100755
index 6a884a6..0000000
--- a/translations/tools/create_po.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-cd $(dirname $0)
-
-loc="$1"
-while [ -z "$1" -a -z "$loc" ]; do
- echo -n "Insert locale to create (for example \"en\"): "
- read loc
-done
-
-cd ..
-
-if [ -e "$loc.po" ]; then
- echo "File \"$loc.po\" found"
- echo "The translation file must not exist"
- exit 1
-else
- v=$(grep TOXIC_VERSION ../cfg/global_vars.mk | head -1 | cut -d "=" -f 2 | tr -d " ")
- echo "PACKAGE_NAME=Toxic" > configure
- echo "PACKAGE_VERSION=$v" >> configure
- msginit --no-translator -l $loc -o $loc.po -i toxic.pot
- rm -f configure
-fi
diff --git a/translations/tools/update_po.sh b/translations/tools/update_po.sh
deleted file mode 100755
index ee352ff..0000000
--- a/translations/tools/update_po.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-cd $(dirname $0)
-
-loc="$1"
-while [ -z "$1" -a -z "$loc" ]; do
- echo -n "Insert locale to update (for example \"en\"): "
- read loc
-done
-
-cd ..
-
-if [ ! -e "$loc.po" ]; then
- echo "File \"$loc.po\" not found"
- echo "The translation file must exist"
- exit 1
-else
- msgmerge -U --backup=none --previous $loc.po toxic.pot
-fi
diff --git a/translations/tools/update_pot.sh b/translations/tools/update_pot.sh
deleted file mode 100755
index 3b595f4..0000000
--- a/translations/tools/update_pot.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-cd $(dirname $0)/..
-v=$(grep TOXIC_VERSION ../cfg/global_vars.mk | head -1 | cut -d "=" -f 2 | tr -d " ")
-xgettext --default-domain="toxic" \
- --from-code="UTF-8" \
- --copyright-holder="Toxic Team" \
- --msgid-bugs-address="JFreegman@tox.chat" \
- --package-name="Toxic" \
- --package-version="$v" \
- --output="toxic.pot" \
- ../src/*
diff --git a/translations/toxic.pot b/translations/toxic.pot
deleted file mode 100644
index 0c0f461..0000000
--- a/translations/toxic.pot
+++ /dev/null
@@ -1,1575 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Toxic Team
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Toxic 0.6.0\n"
-"Report-Msgid-Bugs-To: JFreegman@tox.chat\n"
-"POT-Creation-Date: 2015-06-30 23:49-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/audio_call.c:133
-msgid "Failed to init devices"
-msgstr ""
-
-#: ../src/audio_call.c:195 ../src/audio_call.c:201
-msgid "Could not prepare transmission"
-msgstr ""
-
-#: ../src/audio_call.c:217
-msgid "Failed to open input device!"
-msgstr ""
-
-#: ../src/audio_call.c:222
-msgid "Failed to register input handler!"
-msgstr ""
-
-#: ../src/audio_call.c:226
-msgid "Failed to open output device!"
-msgstr ""
-
-#: ../src/audio_call.c:284 ../src/audio_call.c:303
-msgid "Error starting transmission!"
-msgstr ""
-
-#: ../src/audio_call.c:357 ../src/audio_call.c:392 ../src/audio_call.c:423
-#: ../src/audio_call.c:454
-msgid "Unknown arguments."
-msgstr ""
-
-#: ../src/audio_call.c:362 ../src/audio_call.c:397 ../src/audio_call.c:428
-#: ../src/audio_call.c:459
-msgid "Audio not supported!"
-msgstr ""
-
-#: ../src/audio_call.c:367
-msgid "Friend is offline."
-msgstr ""
-
-#: ../src/audio_call.c:374
-msgid "Already in a call!"
-msgstr ""
-
-#: ../src/audio_call.c:375 ../src/audio_call.c:406 ../src/audio_call.c:437
-#: ../src/audio_call.c:479
-msgid "Internal error!"
-msgstr ""
-
-#: ../src/audio_call.c:380
-#, c-format
-msgid "Calling... idx: %d"
-msgstr ""
-
-#: ../src/audio_call.c:404
-msgid "Cannot answer in invalid state!"
-msgstr ""
-
-#: ../src/audio_call.c:405 ../src/audio_call.c:436
-msgid "No incoming call!"
-msgstr ""
-
-#: ../src/audio_call.c:432
-msgid "Why not?"
-msgstr ""
-
-#: ../src/audio_call.c:435
-msgid "Cannot reject in invalid state!"
-msgstr ""
-
-#: ../src/audio_call.c:467
-msgid "Only those who appreciate small things know the beauty that is life"
-msgstr ""
-
-#: ../src/audio_call.c:471 ../src/chat.c:653
-msgid "Call canceled!"
-msgstr ""
-
-#: ../src/audio_call.c:477
-msgid "Cannot hangup in invalid state!"
-msgstr ""
-
-#: ../src/audio_call.c:478
-msgid "No call!"
-msgstr ""
-
-#: ../src/audio_call.c:494 ../src/audio_call.c:526 ../src/audio_call.c:570
-#: ../src/audio_call.c:643
-msgid "Type must be specified!"
-msgstr ""
-
-#: ../src/audio_call.c:495
-msgid "Only one argument allowed!"
-msgstr ""
-
-#: ../src/audio_call.c:509 ../src/audio_call.c:542 ../src/audio_call.c:586
-#: ../src/audio_call.c:658
-#, c-format
-msgid "Invalid type: %s"
-msgstr ""
-
-#: ../src/audio_call.c:527 ../src/audio_call.c:571
-msgid "Must have id!"
-msgstr ""
-
-#: ../src/audio_call.c:528 ../src/audio_call.c:572 ../src/audio_call.c:644
-#: ../src/audio_call.c:690
-msgid "Only two arguments allowed!"
-msgstr ""
-
-#: ../src/audio_call.c:551 ../src/audio_call.c:595 ../src/audio_call.c:699
-msgid "Invalid input"
-msgstr ""
-
-#: ../src/audio_call.c:556 ../src/audio_call.c:600
-msgid "Invalid selection!"
-msgstr ""
-
-#: ../src/audio_call.c:689
-msgid "Must have value!"
-msgstr ""
-
-#: ../src/audio_call.c:728
-msgid "Not interested anymore"
-msgstr ""
-
-#: ../src/audio_call.c:731
-msgid "Not interested"
-msgstr ""
-
-#: ../src/autocomplete.c:126
-msgid "failed in complete_line"
-msgstr ""
-
-#: ../src/avatars.c:68
-#, c-format
-msgid "tox_file_send failed for friendnumber %d (error %d)\n"
-msgstr ""
-
-#: ../src/avatars.c:212
-#, c-format
-msgid "tox_file_send_chunk failed in avatar callback (error %d)\n"
-msgstr ""
-
-#: ../src/chat.c:56
-msgid "yes"
-msgstr ""
-
-#: ../src/chat.c:57
-msgid "no"
-msgstr ""
-
-#: ../src/chat.c:223 ../src/prompt.c:363
-msgid "has come online"
-msgstr ""
-
-#: ../src/chat.c:234 ../src/prompt.c:375
-msgid "has gone offline"
-msgstr ""
-
-#: ../src/chat.c:319
-#, c-format
-msgid "File '%s' successfully sent."
-msgstr ""
-
-#: ../src/chat.c:326
-#, c-format
-msgid "File transfer for '%s' failed: Null file pointer."
-msgstr ""
-
-#: ../src/chat.c:333
-#, c-format
-msgid "File transfer for '%s' failed: Seek fail."
-msgstr ""
-
-#: ../src/chat.c:345
-#, c-format
-msgid "File transfer for '%s' failed: Read fail."
-msgstr ""
-
-#: ../src/chat.c:354
-#, c-format
-msgid "tox_file_send_chunk failed in chat callback (error %d)\n"
-msgstr ""
-
-#: ../src/chat.c:377
-#, c-format
-msgid "File '%s' successfully received."
-msgstr ""
-
-#: ../src/chat.c:384
-#, c-format
-msgid "File transfer for '%s' failed: Invalid file pointer."
-msgstr ""
-
-#: ../src/chat.c:390
-#, c-format
-msgid "File transfer for '%s' failed: Write fail."
-msgstr ""
-
-#: ../src/chat.c:416
-#, c-format
-msgid "File transfer [%d] for '%s' accepted."
-msgstr ""
-
-#: ../src/chat.c:434
-#, c-format
-msgid "File transfer for '%s' was aborted."
-msgstr ""
-
-#: ../src/chat.c:450 ../src/chat_commands.c:309
-msgid "File transfer failed: Too many concurrent file transfers."
-msgstr ""
-
-#: ../src/chat.c:456
-#, c-format
-msgid "File transfer request for '%s' (%s)"
-msgstr ""
-
-#: ../src/chat.c:471
-msgid "File transfer faield: File path too long."
-msgstr ""
-
-#: ../src/chat.c:497
-msgid "File transfer failed: invalid file path."
-msgstr ""
-
-#: ../src/chat.c:502
-#, c-format
-msgid "Type '%s %d' to accept the file transfer."
-msgstr ""
-
-#: ../src/chat.c:515 ../src/chat.c:518
-#, c-format
-msgid "Incoming file: %s"
-msgstr ""
-
-#: ../src/chat.c:533
-msgid "Failed in chat_onGroupInvite"
-msgstr ""
-
-#: ../src/chat.c:547 ../src/chat.c:549
-msgid "invites you to join group chat"
-msgstr ""
-
-#: ../src/chat.c:551
-#, c-format
-msgid "%s has invited you to a group chat."
-msgstr ""
-
-#: ../src/chat.c:552
-#, c-format
-msgid "Type \"%s\" to join the chat."
-msgstr ""
-
-#: ../src/chat.c:566
-#, c-format
-msgid "Incoming audio call! Type: \"%s\" or \"%s\""
-msgstr ""
-
-#: ../src/chat.c:573 ../src/chat.c:575
-msgid "Incoming audio call!"
-msgstr ""
-
-#: ../src/chat.c:583
-#, c-format
-msgid "Ringing...type \"%s\" to cancel it."
-msgstr ""
-
-#: ../src/chat.c:598 ../src/chat.c:639
-#, c-format
-msgid "Call started! Type: \"%s\" to end it."
-msgstr ""
-
-#: ../src/chat.c:612 ../src/chat.c:680
-msgid "Call ended!"
-msgstr ""
-
-#: ../src/chat.c:625
-msgid "Error!"
-msgstr ""
-
-#: ../src/chat.c:666
-msgid "Rejected!"
-msgstr ""
-
-#: ../src/chat.c:693
-msgid "No answer!"
-msgstr ""
-
-#: ../src/chat.c:707
-msgid "Peer disconnected; call ended!"
-msgstr ""
-
-#: ../src/chat.c:769
-msgid " Call Active\n"
-msgstr ""
-
-#: ../src/chat.c:773
-msgid " Duration: "
-msgstr ""
-
-#: ../src/chat.c:778
-msgid " In muted: "
-msgstr ""
-
-#: ../src/chat.c:783
-msgid " Out muted: "
-msgstr ""
-
-#: ../src/chat.c:788
-msgid " VAD level: "
-msgstr ""
-
-#: ../src/chat.c:1083
-msgid "failed in chat_onInit"
-msgstr ""
-
-#: ../src/chat.c:1155
-msgid "failed in new_chat"
-msgstr ""
-
-#: ../src/chat_commands.c:48
-#, c-format
-msgid "Requires type %s and the file ID."
-msgstr ""
-
-#: ../src/chat_commands.c:57 ../src/chat_commands.c:74
-#: ../src/chat_commands.c:79
-msgid "Invalid file ID."
-msgstr ""
-
-#: ../src/chat_commands.c:69
-#, c-format
-msgid "Type must be '%s' or '%s'."
-msgstr ""
-
-#: ../src/chat_commands.c:83
-#, c-format
-msgid "File transfer for '%s' aborted."
-msgstr ""
-
-#: ../src/chat_commands.c:90
-msgid "Group number required."
-msgstr ""
-
-#: ../src/chat_commands.c:97
-msgid "Invalid group number."
-msgstr ""
-
-#: ../src/chat_commands.c:102
-msgid "Failed to invite contact to group."
-msgstr ""
-
-#: ../src/chat_commands.c:106
-#, c-format
-msgid "Invited contact to Group %d."
-msgstr ""
-
-#: ../src/chat_commands.c:112 ../src/global_commands.c:324
-msgid " * Warning: Too many windows are open."
-msgstr ""
-
-#: ../src/chat_commands.c:121
-msgid "No pending group chat invite."
-msgstr ""
-
-#: ../src/chat_commands.c:136 ../src/global_commands.c:354
-msgid "Group chat instance failed to initialize."
-msgstr ""
-
-#: ../src/chat_commands.c:141 ../src/global_commands.c:359
-msgid "Group chat window failed to initialize."
-msgstr ""
-
-#: ../src/chat_commands.c:151
-msgid "File ID required."
-msgstr ""
-
-#: ../src/chat_commands.c:158 ../src/chat_commands.c:165
-#: ../src/chat_commands.c:170
-msgid "No pending file transfers with that ID."
-msgstr ""
-
-#: ../src/chat_commands.c:175
-msgid "File transfer failed: Invalid file path."
-msgstr ""
-
-#: ../src/chat_commands.c:186
-#, c-format
-msgid "Saving file [%d] as: '%s'"
-msgstr ""
-
-#: ../src/chat_commands.c:201
-msgid "File transfer failed: Friend not found."
-msgstr ""
-
-#: ../src/chat_commands.c:205
-msgid "File transfer failed: Friend is not online."
-msgstr ""
-
-#: ../src/chat_commands.c:209
-msgid "File transfer failed: Invalid filenumber."
-msgstr ""
-
-#: ../src/chat_commands.c:213
-msgid "File transfer failed: Connection error."
-msgstr ""
-
-#: ../src/chat_commands.c:217
-#, c-format
-msgid "File transfer failed (error %d)\n"
-msgstr ""
-
-#: ../src/chat_commands.c:227
-msgid "File path required."
-msgstr ""
-
-#: ../src/chat_commands.c:232
-msgid "File path must be enclosed in quotes."
-msgstr ""
-
-#: ../src/chat_commands.c:243
-msgid "File path exceeds character limit."
-msgstr ""
-
-#: ../src/chat_commands.c:250
-msgid "File not found."
-msgstr ""
-
-#: ../src/chat_commands.c:257
-msgid "Invalid file."
-msgstr ""
-
-#: ../src/chat_commands.c:290
-#, c-format
-msgid "Sending file [%d]: '%s' (%s)"
-msgstr ""
-
-#: ../src/chat_commands.c:297
-msgid "File transfer failed: Invalid friend."
-msgstr ""
-
-#: ../src/chat_commands.c:301
-msgid "File transfer failed: Friend is offline."
-msgstr ""
-
-#: ../src/chat_commands.c:305
-msgid "File transfer failed: Filename is too long."
-msgstr ""
-
-#: ../src/chat_commands.c:313
-msgid "File transfer failed."
-msgstr ""
-
-#: ../src/configdir.c:125 ../src/toxic.c:1039 ../src/toxic.c:1045
-msgid "failed in load_data_structures"
-msgstr ""
-
-#: ../src/dns.c:155
-#, c-format
-msgid "User lookup failed: %s"
-msgstr ""
-
-#: ../src/dns.c:181
-msgid "dn_expand failed."
-msgstr ""
-
-#: ../src/dns.c:186 ../src/dns.c:209
-msgid "DNS reply was too short."
-msgstr ""
-
-#: ../src/dns.c:192
-msgid "Broken DNS reply."
-msgstr ""
-
-#: ../src/dns.c:204
-msgid "Second dn_expand failed."
-msgstr ""
-
-#: ../src/dns.c:217
-msgid "RR overflow."
-msgstr ""
-
-#: ../src/dns.c:222
-msgid "DNS response failed."
-msgstr ""
-
-#: ../src/dns.c:227
-msgid "No record found."
-msgstr ""
-
-#: ../src/dns.c:230
-msgid "Invalid DNS response."
-msgstr ""
-
-#: ../src/dns.c:307
-msgid "Must be a Tox ID or an address in the form username@domain"
-msgstr ""
-
-#: ../src/dns.c:317
-msgid "Domain not found."
-msgstr ""
-
-#: ../src/dns.c:324
-msgid "Core failed to create DNS object."
-msgstr ""
-
-#: ../src/dns.c:335
-msgid "Core failed to generate DNS3 string."
-msgstr ""
-
-#: ../src/dns.c:349
-msgid "DNS query failed."
-msgstr ""
-
-#: ../src/dns.c:364
-msgid "Bad DNS3 TXT response."
-msgstr ""
-
-#: ../src/dns.c:372
-msgid "Core failed to decrypt DNS response."
-msgstr ""
-
-#: ../src/dns.c:388
-msgid "DNS lookups are disabled."
-msgstr ""
-
-#: ../src/dns.c:393
-msgid "Please wait for previous user lookup to finish."
-msgstr ""
-
-#: ../src/dns.c:403
-#, c-format
-msgid ""
-"DNS server list failed to load with error code %d. Falling back to hard-"
-"coded list."
-msgstr ""
-
-#: ../src/dns.c:416
-msgid "Error: DNS thread attr failed to init"
-msgstr ""
-
-#: ../src/dns.c:422
-msgid "Error: DNS thread attr failed to set"
-msgstr ""
-
-#: ../src/dns.c:429
-msgid "Error: DNS thread failed to init"
-msgstr ""
-
-#: ../src/execute.c:107
-msgid "failed in parse_command"
-msgstr ""
-
-#: ../src/execute.c:121
-msgid "Invalid argument. Did you forget a closing \"?"
-msgstr ""
-
-#: ../src/execute.c:192
-msgid "Invalid command."
-msgstr ""
-
-#: ../src/friendlist.c:93
-msgid "failed in realloc_friends"
-msgstr ""
-
-#: ../src/friendlist.c:113
-msgid "failed in realloc_blocklist"
-msgstr ""
-
-#: ../src/friendlist.c:141
-msgid "Failed in save_blocklist"
-msgstr ""
-
-#: ../src/friendlist.c:208
-msgid "Failed in load_blocklist"
-msgstr ""
-
-#: ../src/friendlist.c:331 ../src/friendlist.c:766 ../src/friendlist.c:1076
-msgid "* Warning: Too many windows are open."
-msgstr ""
-
-#: ../src/friendlist.c:346
-#, c-format
-msgid "avatar_send failed for friend %d\n"
-msgstr ""
-
-#: ../src/friendlist.c:421
-#, c-format
-msgid "tox_friend_get_public_key failed (error %d)\n"
-msgstr ""
-
-#: ../src/friendlist.c:500
-#, c-format
-msgid "* File transfer from %s failed: too many windows are open."
-msgstr ""
-
-#: ../src/friendlist.c:523
-#, c-format
-msgid "* Group chat invite from %s failed: too many windows are open."
-msgstr ""
-
-#: ../src/friendlist.c:546
-#, c-format
-msgid "tox_friend_delete failed with error %d\n"
-msgstr ""
-
-#: ../src/friendlist.c:626
-msgid "Delete contact "
-msgstr ""
-
-#: ../src/friendlist.c:707
-#, c-format
-msgid "Failed to unblock friend (error %d)\n"
-msgstr ""
-
-#: ../src/friendlist.c:803
-msgid " Blocked: "
-msgstr ""
-
-#: ../src/friendlist.c:855 ../src/friendlist.c:1035
-msgid "Key: "
-msgstr ""
-
-#: ../src/friendlist.c:881
-msgid " Press the"
-msgstr ""
-
-#: ../src/friendlist.c:885
-msgid ""
-"key for help\n"
-"\n"
-msgstr ""
-
-#: ../src/friendlist.c:897
-msgid " Online: "
-msgstr ""
-
-#: ../src/friendlist.c:1011
-#, c-format
-msgid " Last seen: Today %s\n"
-msgstr ""
-
-#: ../src/friendlist.c:1015
-#, c-format
-msgid " Last seen: Yesterday %s\n"
-msgstr ""
-
-#: ../src/friendlist.c:1019
-#, c-format
-msgid " Last seen: %d days ago\n"
-msgstr ""
-
-#: ../src/friendlist.c:1023
-msgid " Last seen: Never\n"
-msgstr ""
-
-#: ../src/friendlist.c:1074
-#, c-format
-msgid "Audio action from: %s!"
-msgstr ""
-
-#: ../src/friendlist.c:1126
-msgid "failed in new_friendlist"
-msgstr ""
-
-#: ../src/friendlist.c:1129
-msgid "contacts"
-msgstr ""
-
-#: ../src/global_commands.c:55 ../src/global_commands.c:292
-msgid "Request ID required."
-msgstr ""
-
-#: ../src/global_commands.c:62 ../src/global_commands.c:67
-#: ../src/global_commands.c:299 ../src/global_commands.c:304
-msgid "No pending friend request with that ID."
-msgstr ""
-
-#: ../src/global_commands.c:75
-#, c-format
-msgid "Failed to add friend (error %d)\n"
-msgstr ""
-
-#: ../src/global_commands.c:78
-msgid "Friend request accepted."
-msgstr ""
-
-#: ../src/global_commands.c:105
-msgid "Message is too long."
-msgstr ""
-
-#: ../src/global_commands.c:109
-msgid "Please add a message to your request."
-msgstr ""
-
-#: ../src/global_commands.c:113
-msgid "That appears to be your own ID."
-msgstr ""
-
-#: ../src/global_commands.c:117
-msgid "Friend request has already been sent."
-msgstr ""
-
-#: ../src/global_commands.c:121
-msgid "Bad checksum in address."
-msgstr ""
-
-#: ../src/global_commands.c:125
-msgid "Nospam was different."
-msgstr ""
-
-#: ../src/global_commands.c:129
-msgid "Core memory allocation failed."
-msgstr ""
-
-#: ../src/global_commands.c:133
-msgid "Friend request sent."
-msgstr ""
-
-#: ../src/global_commands.c:140
-msgid "Failed to add friend: Unknown error."
-msgstr ""
-
-#: ../src/global_commands.c:150
-msgid "Tox ID or address required."
-msgstr ""
-
-#: ../src/global_commands.c:159
-msgid "Message must be enclosed in quotes."
-msgstr ""
-
-#: ../src/global_commands.c:175
-#, c-format
-msgid "Hello, my name is %s. Care to Tox?"
-msgstr ""
-
-#: ../src/global_commands.c:193
-msgid "Invalid Tox ID."
-msgstr ""
-
-#: ../src/global_commands.c:210
-msgid "Avatar is not set."
-msgstr ""
-
-#: ../src/global_commands.c:215
-msgid "Path must be enclosed in quotes."
-msgstr ""
-
-#: ../src/global_commands.c:225
-msgid "Invalid path."
-msgstr ""
-
-#: ../src/global_commands.c:235
-#, c-format
-msgid ""
-"Failed to set avatar. Avatars must be in PNG format and may not exceed %d "
-"bytes."
-msgstr ""
-
-#: ../src/global_commands.c:240
-#, c-format
-msgid "Avatar set to '%s'"
-msgstr ""
-
-#: ../src/global_commands.c:252
-msgid "Require: "
-msgstr ""
-
-#: ../src/global_commands.c:261
-msgid "Invalid port."
-msgstr ""
-
-#: ../src/global_commands.c:274
-msgid "Bootstrap failed: Invalid IP."
-msgstr ""
-
-#: ../src/global_commands.c:278
-msgid "Bootstrap failed: Invalid port."
-msgstr ""
-
-#: ../src/global_commands.c:282
-msgid "Bootstrap failed."
-msgstr ""
-
-#: ../src/global_commands.c:329
-#, c-format
-msgid "Please specify group type: %s"
-msgstr ""
-
-#: ../src/global_commands.c:340
-#, c-format
-msgid "Valid group types are: %s"
-msgstr ""
-
-#: ../src/global_commands.c:364
-#, c-format
-msgid "Group chat [%d] created."
-msgstr ""
-
-#: ../src/global_commands.c:374
-msgid "Logging for this window is ON. Type \"/log off\" to disable."
-msgstr ""
-
-#: ../src/global_commands.c:376
-msgid "Logging for this window is OFF. Type \"/log on\" to enable."
-msgstr ""
-
-#: ../src/global_commands.c:397
-msgid "Logging enabled"
-msgstr ""
-
-#: ../src/global_commands.c:406
-msgid "Logging disabled"
-msgstr ""
-
-#: ../src/global_commands.c:411
-#, c-format
-msgid "Invalid option. Use \"%s\" to toggle logging."
-msgstr ""
-
-#: ../src/global_commands.c:435 ../src/global_commands.c:468
-msgid "Input required."
-msgstr ""
-
-#: ../src/global_commands.c:452
-msgid "Invalid name."
-msgstr ""
-
-#: ../src/global_commands.c:473 ../src/global_commands.c:561
-msgid "Note must be enclosed in quotes."
-msgstr ""
-
-#: ../src/global_commands.c:499
-msgid "No pending friend requests."
-msgstr ""
-
-#: ../src/global_commands.c:536
-#, c-format
-msgid "Require a status. Statuses are: %s."
-msgstr ""
-
-#: ../src/global_commands.c:551
-#, c-format
-msgid "Invalid status. Valid statuses are: %s."
-msgstr ""
-
-#: ../src/groupchat.c:143
-msgid "failed in init_groupchat_win"
-msgstr ""
-
-#: ../src/groupchat.c:151
-#, c-format
-msgid "Group Audio failed to init\n"
-msgstr ""
-
-#: ../src/groupchat.c:337 ../src/group_commands.c:80
-#, c-format
-msgid " set the group title to: %s"
-msgstr ""
-
-#: ../src/groupchat.c:340 ../src/group_commands.c:83
-#, c-format
-msgid "set title to %s"
-msgstr ""
-
-#: ../src/groupchat.c:362
-msgid "failed in copy_peernames"
-msgstr ""
-
-#: ../src/groupchat.c:419
-msgid "has joined the room"
-msgstr ""
-
-#: ../src/groupchat.c:517
-msgid "has left the room"
-msgstr ""
-
-#: ../src/groupchat.c:534
-msgid " is now known as "
-msgstr ""
-
-#: ../src/groupchat.c:538
-#, c-format
-msgid "is now known as %s"
-msgstr ""
-
-#: ../src/groupchat.c:549
-msgid "Invalid syntax.\n"
-msgstr ""
-
-#: ../src/groupchat.c:554
-msgid " * Failed to send action."
-msgstr ""
-
-#: ../src/groupchat.c:641
-msgid " * Failed to send message."
-msgstr ""
-
-#: ../src/groupchat.c:681
-#, c-format
-msgid "Peers: %d\n"
-msgstr ""
-
-#: ../src/groupchat.c:731
-msgid "failed in groupchat_onInit"
-msgstr ""
-
-#: ../src/groupchat.c:816
-#, c-format
-msgid "source: %d, queued: %d, processed: %d\n"
-msgstr ""
-
-#: ../src/groupchat.c:855
-#, c-format
-msgid "dvhandle is null)\n"
-msgstr ""
-
-#: ../src/groupchat.c:858
-#, c-format
-msgid "ctx is null\n"
-msgstr ""
-
-#: ../src/groupchat.c:861
-#, c-format
-msgid "write: %d\n"
-msgstr ""
-
-#: ../src/groupchat.c:885
-#, c-format
-msgid "Group %d"
-msgstr ""
-
-#: ../src/groupchat.c:891
-msgid "failed in new_group_chat"
-msgstr ""
-
-#: ../src/group_commands.c:46
-#, c-format
-msgid "Title is set to: %s"
-msgstr ""
-
-#: ../src/group_commands.c:48
-msgid "Title is not set"
-msgstr ""
-
-#: ../src/group_commands.c:55
-msgid "Title must be enclosed in quotes."
-msgstr ""
-
-#: ../src/group_commands.c:65
-msgid "Failed to set title."
-msgstr ""
-
-#: ../src/help.c:148
-msgid "Global Commands:\n"
-msgstr ""
-
-#: ../src/help.c:152
-msgid "Add contact with optional message\n"
-msgstr ""
-
-#: ../src/help.c:154
-msgid "Accept friend request\n"
-msgstr ""
-
-#: ../src/help.c:156
-msgid "Set an avatar (leave path empty to unset)\n"
-msgstr ""
-
-#: ../src/help.c:158
-msgid "Decline friend request\n"
-msgstr ""
-
-#: ../src/help.c:160
-msgid "List pending friend requests\n"
-msgstr ""
-
-#: ../src/help.c:162
-msgid "Manually connect to a DHT node\n"
-msgstr ""
-
-#: ../src/help.c:164
-msgid "Set status with optional note\n"
-msgstr ""
-
-#: ../src/help.c:166
-msgid "Set a personal note\n"
-msgstr ""
-
-#: ../src/help.c:168
-msgid "Set your nickname\n"
-msgstr ""
-
-#: ../src/help.c:170
-msgid "Enable/disable logging\n"
-msgstr ""
-
-#: ../src/help.c:172
-msgid "Create a group chat where type: text | audio\n"
-msgstr ""
-
-#: ../src/help.c:174
-msgid "Print your Tox ID\n"
-msgstr ""
-
-#: ../src/help.c:176
-msgid "Clear window history\n"
-msgstr ""
-
-#: ../src/help.c:178
-msgid "Close the current chat window\n"
-msgstr ""
-
-#: ../src/help.c:180
-msgid "Exit Toxic\n"
-msgstr ""
-
-#: ../src/help.c:184 ../src/help.c:224
-msgid ""
-"\n"
-" Audio:\n"
-msgstr ""
-
-#: ../src/help.c:188
-msgid "List devices where type:"
-msgstr ""
-
-#: ../src/help.c:191
-msgid "Set active device\n"
-msgstr ""
-
-#: ../src/help.c:207
-msgid "Chat Commands:\n"
-msgstr ""
-
-#: ../src/help.c:211
-msgid "Invite contact to a group chat\n"
-msgstr ""
-
-#: ../src/help.c:213
-msgid "Join a pending group chat\n"
-msgstr ""
-
-#: ../src/help.c:215
-msgid "Send a file\n"
-msgstr ""
-
-#: ../src/help.c:217
-msgid "Receive a file\n"
-msgstr ""
-
-#: ../src/help.c:219
-msgid "Cancel file transfer where type:"
-msgstr ""
-
-#: ../src/help.c:228
-msgid "Audio call\n"
-msgstr ""
-
-#: ../src/help.c:230
-msgid "Answer incoming call\n"
-msgstr ""
-
-#: ../src/help.c:232
-msgid "Reject incoming call\n"
-msgstr ""
-
-#: ../src/help.c:234
-msgid "Hangup active call\n"
-msgstr ""
-
-#: ../src/help.c:236
-msgid "Change active device\n"
-msgstr ""
-
-#: ../src/help.c:238
-msgid "Mute active device if in call\n"
-msgstr ""
-
-#: ../src/help.c:240
-msgid "VAD sensitivity threshold\n"
-msgstr ""
-
-#: ../src/help.c:256
-msgid "Key bindings:\n"
-msgstr ""
-
-#: ../src/help.c:260
-msgid "Navigate through the tabs\n"
-msgstr ""
-
-#: ../src/help.c:262
-msgid "Scroll window history one line\n"
-msgstr ""
-
-#: ../src/help.c:264
-msgid "Scroll window history half a page\n"
-msgstr ""
-
-#: ../src/help.c:266
-msgid "Move to the bottom of window history\n"
-msgstr ""
-
-#: ../src/help.c:268
-msgid "Scroll peer list in groupchats\n"
-msgstr ""
-
-#: ../src/help.c:270
-msgid ""
-"Toggle the groupchat peerlist\n"
-"\n"
-msgstr ""
-
-#: ../src/help.c:271
-msgid ""
-" (Note: Custom keybindings override these defaults.)\n"
-"\n"
-msgstr ""
-
-#: ../src/help.c:286
-msgid "Group commands:\n"
-msgstr ""
-
-#: ../src/help.c:290
-msgid ""
-"Set group title (show current title if no msg)\n"
-"\n"
-msgstr ""
-
-#: ../src/help.c:305
-msgid "Friendlist controls:\n"
-msgstr ""
-
-#: ../src/help.c:308
-msgid " Up and Down arrows : Scroll through list\n"
-msgstr ""
-
-#: ../src/help.c:309
-msgid ""
-" Right and Left arrows : Switch between friendlist and blocked "
-"list\n"
-msgstr ""
-
-#: ../src/help.c:310
-msgid ""
-" Enter : Open a chat window with selected contact\n"
-msgstr ""
-
-#: ../src/help.c:311
-msgid " Delete : Permanently delete a contact\n"
-msgstr ""
-
-#: ../src/help.c:313
-msgid "Block or unblock a contact\n"
-msgstr ""
-
-#: ../src/line_info.c:50
-msgid "failed in line_info_init"
-msgstr ""
-
-#: ../src/line_info.c:150
-msgid "failed in line_info_add"
-msgstr ""
-
-#: ../src/log.c:189
-msgid "failed in load_chat_history"
-msgstr ""
-
-#: ../src/log.c:193 ../src/log.c:199
-msgid " * Failed to read log file"
-msgstr ""
-
-#: ../src/message_queue.c:56
-msgid "failed in cqueue_message"
-msgstr ""
-
-#: ../src/misc_tools.c:240 ../src/misc_tools.c:248
-msgid "failed in get_file_name"
-msgstr ""
-
-#: ../src/prompt.c:139
-#, c-format
-msgid "Failed to set note (error %d)\n"
-msgstr ""
-
-#: ../src/prompt.c:274
-msgid "ERROR"
-msgstr ""
-
-#: ../src/prompt.c:278
-msgid "Online"
-msgstr ""
-
-#: ../src/prompt.c:282
-msgid "Away"
-msgstr ""
-
-#: ../src/prompt.c:286
-msgid "Busy"
-msgstr ""
-
-#: ../src/prompt.c:299
-msgid " [Offline]"
-msgstr ""
-
-#: ../src/prompt.c:369 ../src/prompt.c:372
-#, c-format
-msgid "%s has come online"
-msgstr ""
-
-#: ../src/prompt.c:381 ../src/prompt.c:384
-#, c-format
-msgid "%s has gone offline"
-msgstr ""
-
-#: ../src/prompt.c:395 ../src/prompt.c:396
-#, c-format
-msgid "Friend request with the message '%s'"
-msgstr ""
-
-#: ../src/prompt.c:401
-msgid "Friend request queue is full. Discarding request."
-msgstr ""
-
-#: ../src/prompt.c:406
-#, c-format
-msgid "Type \"%s %d\" or \"%s %d\""
-msgstr ""
-
-#: ../src/prompt.c:435 ../src/prompt.c:436
-#, c-format
-msgid "Toxing on Toxic"
-msgstr ""
-
-#: ../src/prompt.c:458
-msgid ""
-"Welcome to Toxic, a free, open source Tox-based instant messenging client."
-msgstr ""
-
-#: ../src/prompt.c:460
-#, c-format
-msgid "Type \"%s\" for assistance. Further help may be found via the man page."
-msgstr ""
-
-#: ../src/prompt.c:479
-msgid "failed in prompt_onInit"
-msgstr ""
-
-#: ../src/prompt.c:517
-msgid "failed in new_prompt"
-msgstr ""
-
-#: ../src/toxic.c:112
-#, c-format
-msgid "Caught SIGSEGV: Aborting toxic session.\n"
-msgstr ""
-
-#: ../src/toxic.c:161
-#, c-format
-msgid "Toxic session aborted with error code %d (%s)\n"
-msgstr ""
-
-#: ../src/toxic.c:171
-msgid ""
-"Could not set your locale, please check your locale settings or disable "
-"unicode support with the -d flag."
-msgstr ""
-
-#: ../src/toxic.c:231 ../src/toxic.c:236
-msgid "Failed in queue_init_message"
-msgstr ""
-
-#: ../src/toxic.c:328
-#, c-format
-msgid "Failed to bootstrap %s:%d\n"
-msgstr ""
-
-#: ../src/toxic.c:335
-#, c-format
-msgid "Failed to add TCP relay %s:%d\n"
-msgstr ""
-
-#: ../src/toxic.c:466
-#, c-format
-msgid "Enter a new password (must be at least %d characters) "
-msgstr ""
-
-#: ../src/toxic.c:476
-#, c-format
-msgid "Password must be between %d and %d characters long. "
-msgstr ""
-
-#: ../src/toxic.c:481
-#, c-format
-msgid "Enter password again "
-msgstr ""
-
-#: ../src/toxic.c:489
-#, c-format
-msgid "Passwords don't match. Try again. "
-msgstr ""
-
-#: ../src/toxic.c:496
-#, c-format
-msgid "Data file '%s' is encrypted"
-msgstr ""
-
-#: ../src/toxic.c:533
-#, c-format
-msgid "tox_pass_encrypt() failed with error %d\n"
-msgstr ""
-
-#: ../src/toxic.c:584
-msgid "Forcing IPv4 connection"
-msgstr ""
-
-#: ../src/toxic.c:592
-#, c-format
-msgid "Using %s proxy %s : %d"
-msgstr ""
-
-#: ../src/toxic.c:597
-msgid "UDP disabled"
-msgstr ""
-
-#: ../src/toxic.c:599
-msgid ""
-"WARNING: Using a proxy without disabling UDP may leak your real IP address."
-msgstr ""
-
-#: ../src/toxic.c:601
-msgid "Use the -t option to disable UDP."
-msgstr ""
-
-#: ../src/toxic.c:620 ../src/toxic.c:627 ../src/toxic.c:635 ../src/toxic.c:712
-#: ../src/toxic.c:722
-msgid "failed in load_toxic"
-msgstr ""
-
-#: ../src/toxic.c:639
-#, c-format
-msgid "Data file '%s' has been unencrypted"
-msgstr ""
-
-#: ../src/toxic.c:641
-#, c-format
-msgid "Warning: passed --unencrypt-data option with unencrypted data file '%s'"
-msgstr ""
-
-#: ../src/toxic.c:649
-#, c-format
-msgid "Enter password (\"%s\" to quit) "
-msgstr ""
-
-#: ../src/toxic.c:666 ../src/toxic.c:690
-#, c-format
-msgid "Invalid password. Try again. "
-msgstr ""
-
-#: ../src/toxic.c:693
-msgid "tox_pass_decrypt() failed"
-msgstr ""
-
-#: ../src/toxic.c:737
-msgid "Falling back to ipv4"
-msgstr ""
-
-#: ../src/toxic.c:743
-msgid "tox_new returned fatal error"
-msgstr ""
-
-#: ../src/toxic.c:746
-#, c-format
-msgid "tox_new returned non-fatal error %d"
-msgstr ""
-
-#: ../src/toxic.c:753
-msgid "Toxic User"
-msgstr ""
-
-#: ../src/toxic.c:779
-#, c-format
-msgid "Auto-connect failed with error code %d"
-msgstr ""
-
-#: ../src/toxic.c:860
-#, c-format
-msgid "usage: toxic [OPTION] [FILE ...]\n"
-msgstr ""
-
-#: ../src/toxic.c:862
-#, c-format
-msgid "Force IPv4 connection\n"
-msgstr ""
-
-#: ../src/toxic.c:864
-#, c-format
-msgid "Enable stderr for debugging\n"
-msgstr ""
-
-#: ../src/toxic.c:866
-#, c-format
-msgid "Use specified config file\n"
-msgstr ""
-
-#: ../src/toxic.c:868
-#, c-format
-msgid "Use default POSIX locale\n"
-msgstr ""
-
-#: ../src/toxic.c:870
-#, c-format
-msgid "Encrypt an unencrypted data file\n"
-msgstr ""
-
-#: ../src/toxic.c:872
-#, c-format
-msgid "Use specified data file\n"
-msgstr ""
-
-#: ../src/toxic.c:874
-#, c-format
-msgid "Show this message and exit\n"
-msgstr ""
-
-#: ../src/toxic.c:876
-#, c-format
-msgid "Use specified DHTnodes file\n"
-msgstr ""
-
-#: ../src/toxic.c:878
-#, c-format
-msgid "Do not connect to the DHT network\n"
-msgstr ""
-
-#: ../src/toxic.c:880
-#, c-format
-msgid "Use SOCKS5 proxy: Requires [IP] [port]\n"
-msgstr ""
-
-#: ../src/toxic.c:882
-#, c-format
-msgid "Use HTTP proxy: Requires [IP] [port]\n"
-msgstr ""
-
-#: ../src/toxic.c:884
-#, c-format
-msgid "Use specified DNSservers file\n"
-msgstr ""
-
-#: ../src/toxic.c:886
-#, c-format
-msgid "Force TCP connection (use this with proxies)\n"
-msgstr ""
-
-#: ../src/toxic.c:888
-#, c-format
-msgid "Unencrypt an encrypted data file\n"
-msgstr ""
-
-#: ../src/toxic.c:932
-msgid "stderr enabled"
-msgstr ""
-
-#: ../src/toxic.c:939
-msgid "Config file not found"
-msgstr ""
-
-#: ../src/toxic.c:945
-msgid "Using default POSIX locale"
-msgstr ""
-
-#: ../src/toxic.c:958
-msgid "failed in parse_args"
-msgstr ""
-
-#: ../src/toxic.c:963
-#, c-format
-msgid "Using '%s' data file"
-msgstr ""
-
-#: ../src/toxic.c:971
-msgid "DHTnodes file not found"
-msgstr ""
-
-#: ../src/toxic.c:977
-msgid "DHT disabled"
-msgstr ""
-
-#: ../src/toxic.c:985 ../src/toxic.c:995
-msgid "Proxy error"
-msgstr ""
-
-#: ../src/toxic.c:1004
-msgid "DNSservers file not found"
-msgstr ""
-
-#: ../src/toxic.c:1101
-#, c-format
-msgid "Warning: Using \"%s\" and \"%s\" simultaneously has no effect"
-msgstr ""
-
-#: ../src/toxic.c:1114
-msgid "Creating new data file. Would you like to encrypt it? Y/n (q to quit)"
-msgstr ""
-
-#: ../src/toxic.c:1116
-msgid "Encrypt existing data file? Y/n (q to quit)"
-msgstr ""
-
-#: ../src/toxic.c:1123 ../src/toxic.c:1146 ../src/toxic.c:1149
-#: ../src/toxic.c:1153 ../src/toxic.c:1161
-msgid "failed in main"
-msgstr ""
-
-#: ../src/toxic.c:1130
-msgid "X failed to initialize"
-msgstr ""
-
-#: ../src/toxic.c:1168
-msgid "Failed to init audio devices"
-msgstr ""
-
-#: ../src/toxic.c:1177
-msgid ""
-"Unable to determine configuration directory. Defaulting to 'data' for data "
-"file..."
-msgstr ""
-
-#: ../src/toxic.c:1182
-msgid "Failed to load user settings"
-msgstr ""
-
-#: ../src/toxic.c:1186
-msgid "Failed to init mplex auto-away."
-msgstr ""
-
-#: ../src/toxic.c:1209
-msgid "WARNING: Failed to save to data file"
-msgstr ""
-
-#: ../src/toxic.h:43
-msgid "Anonymous"
-msgstr ""
-
-#: ../src/toxic.h:44
-msgid "Tox User"
-msgstr ""
-
-#: ../src/windows.c:368
-msgid "failed in set_next_window"
-msgstr ""
-
-#: ../src/windows.c:390
-msgid "failed in init_windows"
-msgstr ""