From 035420e5c758fdc504475c76d1a5b19519ed3962 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Sat, 4 Jul 2015 01:19:16 -0400 Subject: [PATCH] Revert commit 312d0c3 (localization/gettext) There were serious problems with branch merging that need to be resolved first --- INSTALL.md | 53 +- README.md | 4 +- cfg/checks/check_features.mk | 6 - cfg/global_vars.mk | 5 - cfg/systems/Darwin.mk | 6 - cfg/targets/help.mk | 1 - cfg/targets/install.mk | 11 - src/audio_call.c | 118 ++- src/autocomplete.c | 8 +- src/avatars.c | 10 +- src/chat.c | 101 +- src/chat_commands.c | 78 +- src/configdir.c | 8 +- src/dns.c | 52 +- src/execute.c | 12 +- src/friendlist.c | 60 +- src/global_commands.c | 112 +-- src/group_commands.c | 18 +- src/groupchat.c | 48 +- src/help.c | 143 +-- src/line_info.c | 10 +- src/log.c | 12 +- src/message_queue.c | 8 +- src/misc_tools.c | 10 +- src/prompt.c | 52 +- src/toxic.c | 178 ++-- src/toxic.h | 4 +- src/windows.c | 10 +- translations/en.mo | Bin 28646 -> 0 bytes translations/en.po | 1600 ----------------------------- translations/it.mo | Bin 30657 -> 0 bytes translations/it.po | 1607 ------------------------------ translations/tools/create_mo.sh | 19 - translations/tools/create_po.sh | 23 - translations/tools/update_po.sh | 19 - translations/tools/update_pot.sh | 12 - translations/toxic.pot | 1575 ----------------------------- 37 files changed, 441 insertions(+), 5552 deletions(-) delete mode 100644 translations/en.mo delete mode 100644 translations/en.po delete mode 100644 translations/it.mo delete mode 100644 translations/it.po delete mode 100755 translations/tools/create_mo.sh delete mode 100755 translations/tools/create_po.sh delete mode 100755 translations/tools/update_po.sh delete mode 100755 translations/tools/update_pot.sh delete mode 100644 translations/toxic.pot 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 bc070ff8f499dac6ad89c8dcc545ca7de6f7f1a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28646 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 " -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 a7aaff16b0085e79ff2c15ad3b6dfc55088ae8ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30657 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 OOaNQsrhNZ " -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 ""