From 737d29864b5eef571a9843eec88238c3b8b33175 Mon Sep 17 00:00:00 2001 From: Ansa89 Date: Mon, 25 May 2015 16:38:52 +0200 Subject: [PATCH] Add localization system (gettext) --- src/chat.c | 3 ++- translations/en.mo | Bin 28476 -> 28644 bytes translations/en.po | 25 +++++++++++-------------- translations/it.po | 7 ++++++- translations/tools/create_po.sh | 7 ++++--- translations/tools/update_pot.sh | 10 +++++++++- translations/toxic.pot | 8 ++++---- 7 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/chat.c b/src/chat.c index 6a6b45a..4567a0d 100644 --- a/src/chat.c +++ b/src/chat.c @@ -596,7 +596,8 @@ void chat_onStarting (ToxWindow *self, ToxAV *av, uint32_t friend_number, int st self->is_call = true; init_infobox(self); - line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it."); + + line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, gettext("Call started! Type: \"%s\" to end it."), "/hangup"); #ifdef SOUND_NOTIFY stop_sound(self->ringing_sound); diff --git a/translations/en.mo b/translations/en.mo index 568b7c36e9ce8476974e819892c4bcf7bf981402..6079848c20d044e3fe11495bd258059afc346da0 100644 GIT binary patch delta 7861 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 RzD1R78Ey9dzvJ!q`ya5OUk3mH delta 7748 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 CWkXE> diff --git a/translations/en.po b/translations/en.po index d30b394..e9dc748 100644 --- a/translations/en.po +++ b/translations/en.po @@ -1,10 +1,14 @@ +# English translations for Toxic package. +# Copyright (C) 2015 Toxic Team +# This file is distributed under the same license as the Toxic package. +# Automatically generated, 2015. # msgid "" msgstr "" "Project-Id-Version: Toxic 0.6.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-28 15:47+0200\n" -"PO-Revision-Date: 2015-05-26 11:37+0200\n" +"Report-Msgid-Bugs-To: JFreegman@tox.im\n" +"POT-Creation-Date: 2015-05-30 11:30+0200\n" +"PO-Revision-Date: 2015-05-30 11:30+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "MIME-Version: 1.0\n" @@ -695,14 +699,9 @@ msgid "No pending friend request with that ID." msgstr "No pending friend request with that ID." #: ../src/global_commands.c:75 -#, fuzzy, c-format -#| msgid "" -#| "Failed to add friend (error %d\n" -#| ")" +#, c-format msgid "Failed to add friend (error %d)\n" -msgstr "" -"Failed to add friend (error %d\n" -")" +msgstr "Failed to add friend (error %d)\n" #: ../src/global_commands.c:78 msgid "Friend request accepted." @@ -1585,13 +1584,11 @@ msgstr "WARNING: Failed to save to data file" #: ../src/toxic.h:43 msgid "Anonymous" -msgstr "" +msgstr "Anonymous" #: ../src/toxic.h:44 -#, fuzzy -#| msgid "Toxic User" msgid "Tox User" -msgstr "Toxic User" +msgstr "Tox User" #: ../src/windows.c:368 msgid "failed in set_next_window" diff --git a/translations/it.po b/translations/it.po index 57f305e..e8ff5a2 100644 --- a/translations/it.po +++ b/translations/it.po @@ -1,7 +1,12 @@ +# Italian translations for Toxic package. +# Copyright (C) 2015 Toxic Team +# This file is distributed under the same license as the Toxic package. +# Automatically generated, 2015. +# msgid "" msgstr "" "Project-Id-Version: Toxic 0.6.0\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: JFreegman@tox.im\n" "POT-Creation-Date: 2015-05-28 15:47+0200\n" "PO-Revision-Date: 2015-05-26 11:37+0200\n" "Last-Translator: Automatically generated\n" diff --git a/translations/tools/create_po.sh b/translations/tools/create_po.sh index 05b8747..6a884a6 100755 --- a/translations/tools/create_po.sh +++ b/translations/tools/create_po.sh @@ -15,8 +15,9 @@ if [ -e "$loc.po" ]; then echo "The translation file must not exist" exit 1 else - msginit --no-translator -l $loc -o $loc.po -i toxic.pot v=$(grep TOXIC_VERSION ../cfg/global_vars.mk | head -1 | cut -d "=" -f 2 | tr -d " ") - sed -e '1,5{/^#/d;}' $loc.po > $loc.po.tmp && mv $loc.po.tmp $loc.po - sed -e 's/.*Project-Id-Version:.*/"Project-Id-Version: Toxic '"$v"'\\n"/' $loc.po > $loc.po.tmp && mv $loc.po.tmp $loc.po + 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_pot.sh b/translations/tools/update_pot.sh index c9acc2b..e182ea9 100755 --- a/translations/tools/update_pot.sh +++ b/translations/tools/update_pot.sh @@ -1,4 +1,12 @@ #!/bin/bash cd $(dirname $0)/.. -xgettext -d toxic -o toxic.pot ../src/* +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.im" \ + --package-name="Toxic" \ + --package-version="$v" \ + --output="toxic.pot" \ + ../src/* diff --git a/translations/toxic.pot b/translations/toxic.pot index f7fa00d..278d575 100644 --- a/translations/toxic.pot +++ b/translations/toxic.pot @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# 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: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-28 15:47+0200\n" +"Project-Id-Version: Toxic 0.6.0\n" +"Report-Msgid-Bugs-To: JFreegman@tox.im\n" +"POT-Creation-Date: 2015-05-30 11:30+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"