# HG changeset patch # User Aleksej Bobylev # Date 1361988940 0 # Node ID a8d926c59509f015993671773c83c3ea58b05c1c # Parent c9e4365230ecef3cc8e1eb20648e5c21f0241a0a Add i18n to src, Makefile & README; BSD license from Wikipedia; add comment to .desktop file; add Russian translation to .po and .desktop file diff -r c9e4365230ec -r a8d926c59509 COPYING --- a/COPYING Sun Feb 17 12:49:50 2013 +0100 +++ b/COPYING Wed Feb 27 18:15:40 2013 +0000 @@ -2,26 +2,25 @@ =============================================================================== -Copyright (C) 2011-2013 SliTaz GNU/Linux - BSD License - +Copyright (c) 2011-2013, SliTaz GNU/Linux - BSD License +All rights reserved. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. +modification, are permitted provided that the following conditions are met: -THIS SOFTWARE IS PROVIDED BY SLITAZ GNU/LINUX. ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SLITAZ GNU/LINUX. OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -r c9e4365230ec -r a8d926c59509 Makefile --- a/Makefile Sun Feb 17 12:49:50 2013 +0100 +++ b/Makefile Wed Feb 27 18:15:40 2013 +0000 @@ -5,13 +5,36 @@ DESTDIR?= PACKAGE=tazweb -VERSION=1.5 +VERSION=1.6.4 +LINGUAS?=ru all: gcc src/main.c -o $(PACKAGE) \ `pkg-config --cflags --libs gtk+-2.0 webkit-1.0` @du -sh $(PACKAGE) +# i18n + +pot: + xgettext -o po/$(PACKAGE).pot -L C -k_ \ + --package-name="TazWeb" \ + --package-version="$(VERSION)" \ + ./src/main.c + +msgmerge: + @for l in $(LINGUAS); do \ + echo -n "Updating $$l po file."; \ + msgmerge -U po/$$l.po po/$(PACKAGE).pot; \ + done; + +msgfmt: + @for l in $(LINGUAS); do \ + echo "Compiling $$l mo file..."; \ + mkdir -p po/mo/$$l/LC_MESSAGES; \ + msgfmt -o po/mo/$$l/LC_MESSAGES/$(PACKAGE).mo po/$$l.po; \ + done; + + install: mkdir -p \ $(DESTDIR)$(DOCDIR)/$(PACKAGE) \ @@ -28,6 +51,13 @@ cp -a data/*.html $(DESTDIR)$(PREFIX)/share/tazweb install -m 0644 data/style.css \ $(DESTDIR)$(PREFIX)/share/tazweb + cp -a po/mo/* $(DESTDIR)$(PREFIX)/share/locale clean: rm -f $(PACKAGE) + rm -rf po/mo + rm -f po/*.mo + rm -f po/*.*~ + +help: + @echo "make [ pot | msgmerge | msgfmt | install | clean ]" diff -r c9e4365230ec -r a8d926c59509 README --- a/README Sun Feb 17 12:49:50 2013 +0100 +++ b/README Wed Feb 27 18:15:40 2013 +0000 @@ -34,11 +34,15 @@ $ make $ ./tazweb -Install with 'make install' (PREFIX and DESTDIR are supported for packaging) +Generate translation files: + +$ make msgfmt + +Install with 'make install' (PREFIX and DESTDIR are supported for packaging). + Coding notes ------------ - * To get the filename of a WebKitDownload: file = webkit_download_get_suggested_filename (download); @@ -61,8 +65,35 @@ * Append a string g_string_append(string, " - TazWeb"); - * Editable webview - webkit_web_view_set_editable (webview, TRUE); - + * Editable webview + webkit_web_view_set_editable (webview, TRUE); + + +i18n +---- +Internationalization of TazWeb was introduced since version 1.6.4. +It's standard GLib technique described in developer notes: +http://developer.gnome.org/glib/2.32/glib-I18N.html + +Translation template (tazweb.pot) and all translations (xx.po) contained +in the po/ folder. To start a new translation use msginit from the +po/ directory. Example for French/France locale (fr_FR): + +$ msginit -l fr_FR -o fr.po -i tazpanel.pot + +If you run msginit directly without any parameters, locale settings of your +system will be used. + +To update pot file from a newly updated sources: + +$ make pot + +To update all translations from a newly updated pot file: + +$ make msgmerge + +To clear the distro from temporary compiled and generated files: + +$ make clean ================================================================================ diff -r c9e4365230ec -r a8d926c59509 data/tazweb.desktop --- a/data/tazweb.desktop Sun Feb 17 12:49:50 2013 +0100 +++ b/data/tazweb.desktop Wed Feb 27 18:15:40 2013 +0000 @@ -2,7 +2,9 @@ Type=Application Name=TazWeb Browser Name[ru]=Браузер TazWeb +Comment=SliTaz simple, fast and small Web Browser +Comment[ru]=Простой, быстрый и маленький браузер SliTaz Icon=tazweb Exec=tazweb %u -Categories=Network; +Categories=Network;WebBrowser; MimeType=text/html;text/xml;text/plain;application/xhtml+xml;application/xml; diff -r c9e4365230ec -r a8d926c59509 doc/tazweb.ru.html --- a/doc/tazweb.ru.html Sun Feb 17 12:49:50 2013 +0100 +++ b/doc/tazweb.ru.html Wed Feb 27 18:15:40 2013 +0000 @@ -22,7 +22,7 @@ в любом месте окна браузера или с помощью панели инструментов. Он также может работать с закладками на личной странице, показывать исходный код, масштабировать и печатать страницы. В TazWeb вы можете быстро найти что-нибудь -в Интернете при помощи Google и других средств поиска. Данный файл документации +в Интернете при помощи DuckDuckGo и других средств поиска. Данный файл документации всегда доступен через контекстное меню на странице.

Браузер быстр, чертовски быстр и мал, его программный файл занимает около @@ -111,19 +111,19 @@ будет перезаписан при обновлении пакета slitaz-configs.

Когда вы запускаете TazWeb из командной строки с URL в качестве аргумента, -вам не нужно писать http://, т.к. TazWeb преобразует адрес для вас.

+вам можно не писать http://, т.к. TazWeb умеет преобразовывать адрес.

URL и средства поиска

Поле ввода адреса в панели инструментов позволяет вам вводить адрес сайта и видеть текущий адрес сайта. Вы можете выделять, копировать и вставлять в поле -ввода адреса, и вам не нужно писать http:// в начале, Tazweb -преобразует адрес для вас. Для перехода по вновь введенному адресу, нажмите +ввода адреса, и вам можно не писать http:// в начале, Tazweb +умеет преобразовывать адрес. Для перехода по вновь введенному адресу, нажмите клавишу ВВОД.

Средство поиска позволяет вам в любое время проводить поиск в интернете -с помощью Google. Просто введите запрос и нажмите клавишу ВВОД или нажмите +с помощью DuckDuckGo. Просто введите запрос и нажмите клавишу ВВОД или нажмите на значок поиска для того, чтобы отправить запрос.

@@ -151,8 +151,7 @@ управления кодом. Обсуждение и поддержка осуществляются на форуме сообщества SliTaz. Вам не хватает каких-либо функций в TazWeb или вы обнаружили ошибку? Опишите проблему на нашем -баг-трекере Roundup по адресу -bugs.slitaz.org.

+баг-трекере по адресу bugs.slitaz.org.

Если вы хотите помочь и принять участие в разработке, сначала клонируйте репозиторий TazWeb, а затем отправьте ваш патч, улучшенную документацию или @@ -173,4 +172,3 @@ - diff -r c9e4365230ec -r a8d926c59509 po/ru.po --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/po/ru.po Wed Feb 27 18:15:40 2013 +0000 @@ -0,0 +1,42 @@ +# Russian translations for TazWeb package +# Copyright (C) 2011-2013 SliTazWeb +# This file is distributed under the same license as the TazWeb package. +# Aleksej Bobylev , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: TazWeb 1.6.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-19 18:17+0000\n" +"PO-Revision-Date: 2013-02-19 18:21-0000\n" +"Last-Translator: Aleksej Bobylev \n" +"Language-Team: Russian\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/main.c:278 +msgid "Zoom in" +msgstr "Увеличить" + +#: src/main.c:285 +msgid "Zoom out" +msgstr "Уменьшить" + +#: src/main.c:296 +msgid "Add a bookmark" +msgstr "Добавить закладку" + +#: src/main.c:307 +msgid "View source mode" +msgstr "Исходный код" + +#: src/main.c:314 +msgid "Print this page" +msgstr "Печать страницы" + +#: src/main.c:325 +msgid "TazWeb manual" +msgstr "Руководство TazWeb" + diff -r c9e4365230ec -r a8d926c59509 src/main.c --- a/src/main.c Sun Feb 17 12:49:50 2013 +0100 +++ b/src/main.c Wed Feb 27 18:15:40 2013 +0000 @@ -9,6 +9,10 @@ * */ +#include +#include +#define GETTEXT_PACKAGE "tazweb" + #include #include @@ -271,14 +275,14 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); /* Zoom in */ - item = gtk_image_menu_item_new_with_label("Zoom in"); + item = gtk_image_menu_item_new_with_label(_("Zoom in")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); g_signal_connect(item, "activate", G_CALLBACK(zoom_in_cb), webview); /* Zoom out */ - item = gtk_image_menu_item_new_with_label("Zoom out"); + item = gtk_image_menu_item_new_with_label(_("Zoom out")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_ZOOM_OUT, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -289,7 +293,7 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); /* Add to bookmarks */ - item = gtk_image_menu_item_new_with_label("Add a bookmark"); + item = gtk_image_menu_item_new_with_label(_("Add a bookmark")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -300,14 +304,14 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); /* View source mode */ - item = gtk_image_menu_item_new_with_label("View source mode"); + item = gtk_image_menu_item_new_with_label(_("View source mode")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); g_signal_connect(item, "activate", G_CALLBACK(view_source_cb), webview); /* Printing */ - item = gtk_image_menu_item_new_with_label("Print this page"); + item = gtk_image_menu_item_new_with_label(_("Print this page")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_PRINT, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -318,7 +322,7 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); /* TazWeb documentation */ - item = gtk_image_menu_item_new_with_label("TazWeb manual"); + item = gtk_image_menu_item_new_with_label(_("TazWeb manual")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -472,6 +476,8 @@ int main(int argc, char* argv[]) { + textdomain (GETTEXT_PACKAGE); + while (argc > 1) { if (!strcmp(argv[1],"--notoolbar")) { notoolbar++;