linterna-magica-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linterna-magica-commit] [206] Closes tasks #11386.


From: Ivaylo Valkov
Subject: [linterna-magica-commit] [206] Closes tasks #11386.
Date: Sun, 09 Oct 2011 15:22:39 +0000

Revision: 206
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=linterna-magica&revision=206
Author:   valkov
Date:     2011-10-09 15:22:38 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
Closes tasks #11386. Seems stable enough.

Ticket Links:
------------
    http://savannah.gnu.org/task/?11386

Modified Paths:
--------------
    trunk/Makefile
    trunk/README
    trunk/README.bg
    trunk/common.mk
    trunk/doc/Makefile
    trunk/doc/linterna_magica.texi
    trunk/doc/po/bg.po
    trunk/doc/po/linterna_magica.texi.pot
    trunk/doc/version.texi
    trunk/src/lm_about.js
    trunk/src/lm_constructors.js
    trunk/src/lm_detect_object_in_remote_site.js
    trunk/src/lm_interface_player_web_buttons.js
    trunk/src/lm_interface_toggle_plugin.js
    trunk/src/lm_localisation.js
    trunk/src/lm_run.js

Added Paths:
-----------
    trunk/po/
    trunk/po/LINGUAS
    trunk/po/Makefile
    trunk/po/bg.po
    trunk/src/lm_locale_userscript_template.js

Removed Paths:
-------------
    trunk/locale/

Modified: trunk/Makefile
===================================================================
--- trunk/Makefile      2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/Makefile      2011-10-09 15:22:38 UTC (rev 206)
@@ -17,29 +17,12 @@
 
 SHELL = /bin/bash
 
-GREP = /bin/grep
-RM = /bin/rm
-SED = /bin/sed
-BASE64=/usr/bin/base64
-MAKE=/usr/bin/make
-CAT=/bin/cat
-TAC=/usr/bin/tac
-CUT=/usr/bin/cut
-CP=/bin/cp
-HEAD=/usr/bin/head
-TAIL=/usr/bin/tail
-SORT=/usr/bin/sort
-UNIQ=/usr/bin/uniq
-TR=/usr/bin/tr
-BASENAME=/usr/bin/basename
-MKTEMP=/bin/mktemp
-CHMOD=/bin/chmod
-
 topdir=.
 srcdir=$(topdir)/src
 builddir=$(topdir)
 styledir=$(topdir)/data/style
 docsdir=$(topdir)/doc
+podir=$(topdir)/po
 
 include $(topdir)/common.mk
 
@@ -58,7 +41,7 @@
 
 LASTJSFILES="$(srcdir)/lm_run.js"
 
-EXCLUDEJSFILES=
+EXCLUDEJSFILES="$(srcdir)/lm_locale_userscript_template.js"
 
 JSFILES=$(shell files="`ls $(srcdir)/*.js | $(GREP) -E \`echo          \
        $(FIRSTJSFILES) $(LASTJSFILES) $(EXCLUDEJSFILES) | $(TR) ' '    \
@@ -209,10 +192,18 @@
        @cd $(docsdir); \
        $(MAKE) all-docs;
 
+locales:
+       @cd $(podir);\
+       $(MAKE) generate-scripts
+
 docs-clean:
        @cd $(docsdir); \
        $(MAKE) clean
 
+po-distclean:
+       @cd $(podir); \
+       $(MAKE) distclean;
+
 update-readme:
        @cd $(docsdir); \
        $(MAKE) update-readme;
@@ -240,10 +231,10 @@
 # Clean without warnings for missing files. Sends errors in /dev/null
 # and returns 0 always.
 clean:
-       @$(RM) $(STRIPCOMMENTS) $(STRIPHEADERS) $(BASE64FILES) $(CSSINJSFILES) 
$(STYLEFILE).js userscript-header.js 2> /dev/null; exit 0
+       @$(RM) $(STRIPCOMMENTS) $(STRIPHEADERS) $(BASE64FILES) $(CSSINJSFILES) 
$(STYLEFILE).js userscript-header.js 2>/dev/null; exit 0
 
 # See comments for clean:
-distclean: clean docs-clean
+distclean: clean docs-clean po-distclean
        @$(RM) $(PACKAGE).user.js 2> /dev/null; exit 0
 
 strip-js-headers: $(STRIPHEADERS)

Modified: trunk/README
===================================================================
--- trunk/README        2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/README        2011-10-09 15:22:38 UTC (rev 206)
@@ -1,7 +1,7 @@
 Linterna Mágica
 *****************
 
-This manual (updated 19 September 2011) is for Linterna Mágica (version
+This manual (updated 09 October 2011) is for Linterna Mágica (version
 svn-trunk), a userscript for watching web video clips inside a browser
 without the proprietary flash technology.
 
@@ -80,7 +80,7 @@
 The name Linterna Mágica is in Spanish. The pronunciation in IPA is
 /lintˈɛrna maxˈika/.  You can also find the answer to that question by
 playing the Ogg Vorbis file `linterna mágica - pronounce.ogg' located
-in the data directory.
+in the `data' directory.
 
 2 Installation and building
 ***************************
@@ -438,14 +438,36 @@
 3.5 Localisation
 ================
 
-Since version 0.0.10 translations are split from the main userscript.
-Every localisation is a separate userscript located in the `locale'
-directory, that has special structure. If there is translation for your
-language and you want to use it, you will have to install the
-userscript for it. By default Linterna Mágica tries to use the language
-of the browser interface if available. You could also set a custom
-locale by the "locale" config option.
+In version 0.0.10 translations were split from the main userscript.
+Every localisation was a separate userscript with special structure. In
+version 0.0.11 userscript files are automatically generated form PO
+files. If there is translation for your language and you want to use
+it, you will have to build and install it. Compiled userscripts are
+also available at Linterna Mágica website.
 
+   By default Linterna Mágica tries to use the language of the browser
+interface if available. You could also set a custom locale by the
+"locale" config option.
+
+   To build all the localisation userscripts in the top source directory
+type:
+
+   `make locales'
+
+   You could also build the scripts from the `po' directory:
+
+   `cd po'
+   `make'
+
+   Compilation of userscript for single language is possible. To do so,
+type:
+
+   `cd po'
+   `make linternamagica_l10n_LANGCODE.user.js'
+
+   Replace LANGCODE in the example above with the code of the desired
+supported language.
+
 3.6 Stop execution on every site
 ================================
 

Modified: trunk/README.bg
===================================================================
--- trunk/README.bg     2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/README.bg     2011-10-09 15:22:38 UTC (rev 206)
@@ -1,9 +1,9 @@
 Linterna Mágica
 *****************
 
-Това ръководство (обновено на 19 September 2011) е за версия svn-trunk
-на Linterna Mágica, потребителски скрипт за гледане на уеб видео
-клипове чрез уеб браузър без собственическата технология flash.
+Това ръководство (обновено на 09 October 2011) е за версия svn-trunk на
+Linterna Mágica, потребителски скрипт за гледане на уеб видео клипове
+чрез уеб браузър без собственическата технология flash.
 
    Гледайте уеб видео клипове по напълно нов начин: „Не се нуждаете от
 проблясъци, вълшебният фенер е разпален!“
@@ -462,15 +462,36 @@
 3.5 Превод на интерфейса
 ==========================================
 
-От версия 0.0.10 нататък преводите са разделени от основния
-потребителски скрипт в самостоятелни файлове. Преводите са отделни
-потребителски скриптове със специална структура и се намират в папката
-`locale'. Ако съществува превод за Вашият език и желаете да го
-използвате, трябва да инсталирате потребителския скрипт за него.
-Стандартно Linterna Mágica се опитва да използва езикът на интерфейса
-на браузъра, ако преводът е наличен. Също така, можете да използвате
-превод по Ваш избор, чрез настройката „locale“.
+Във версия 0.0.10 преводите бяха разделени от основния потребителски
+скрипт в самостоятелни файлове. Преводите бяха отделни потребителски
+скриптове със специална структура. Във версия 0.0.11 файловете с
+потребителските скриптове се създават автоматично от PO файлове. Ако
+съществува превод за Вашият език и желаете да го използвате, трябва да
+го компилирате и инсталирате. Компилирани потребителски скриптове може
+да намерите и на уеб страницата на Linterna Mágica.
 
+   Стандартно Linterna Mágica се опитва да използва езикът на
+интерфейса на браузъра, ако преводът е наличен. Също така, можете да
+използвате превод по Ваш избор, чрез настройката „locale“.
+
+   За да компилирате всички потребителски скриптове с преводи, в
+папката с изходния код въведете:
+
+   `make locales'
+
+   Също така, можете да компилирате скриптовете от папката `po':
+
+   `cd po'
+   `make'
+
+   Компилиране на потребителски скрипт само за един език също е
+възможно. За да го направите въведете:
+
+   `cd po'
+   `make linternamagica_l10n_LANGCODE.user.js'
+
+   Заменете LANGCODE в горния пример с кода на желания поддържан език.
+
 3.6 Спиране на изпълнението на всяка страница
 
=================================================================================
 

Modified: trunk/common.mk
===================================================================
--- trunk/common.mk     2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/common.mk     2011-10-09 15:22:38 UTC (rev 206)
@@ -17,4 +17,32 @@
 
 VERSION = svn-trunk
 PACKAGE = linternamagica
-GETTEXT_PACKAGE = linterna_magica
\ No newline at end of file
+GETTEXT_PACKAGE = linterna_magica
+
+GREP = /bin/grep
+RM = /bin/rm
+LS=/bin/ls
+SED = /bin/sed
+BASE64=/usr/bin/base64
+MAKE=/usr/bin/make
+CAT=/bin/cat
+TAC=/usr/bin/tac
+CUT=/usr/bin/cut
+CP=/bin/cp
+HEAD=/usr/bin/head
+TAIL=/usr/bin/tail
+SORT=/usr/bin/sort
+UNIQ=/usr/bin/uniq
+TR=/usr/bin/tr
+BASENAME=/usr/bin/basename
+MKTEMP=/bin/mktemp
+CHMOD=/bin/chmod
+MAKEINFO=/usr/bin/makeinfo
+PO4A-UPDATEPO=/usr/bin/po4a-updatepo
+PO4A-GETTEXTIZE=/usr/bin/po4a-gettextize
+PO4A-TRANSLATE=/usr/bin/po4a-translate
+TEXI2PDF=/usr/bin/texi2pdf
+TEXI2HTML=/usr/bin/texi2html
+DATE=/bin/date
+INTLTOOL_UPDATE=/usr/bin/intltool-update
+MSGATTRIB=/usr/bin/msgattrib

Modified: trunk/doc/Makefile
===================================================================
--- trunk/doc/Makefile  2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/doc/Makefile  2011-10-09 15:22:38 UTC (rev 206)
@@ -15,25 +15,13 @@
 # You should have received a copy of the GNU General Public License
 # along with Linterna Mágica.  If not, see <http://www.gnu.org/licenses/>.
 
-topdir=../
 
-include $(topdir)/common.mk
-
 SHELL=/bin/bash
 
-MAKEINFO=/usr/bin/makeinfo
-MAKE=/usr/bin/make
-LS=/bin/ls
-SED=/bin/sed
-PO4A-UPDATEPO=/usr/bin/po4a-updatepo
-PO4A-GETTEXTIZE=/usr/bin/po4a-gettextize
-PO4A-TRANSLATE=/usr/bin/po4a-translate
-TEXI2PDF=/usr/bin/texi2pdf
-TEXI2HTML=/usr/bin/texi2html
-RM=/bin/rm
-DATE=/bin/date
-CP=/bin/cp
+topdir=../
 
+include $(topdir)/common.mk
+
 .SUFIXES:
 .SUFFIXES: .info .texi .pdf .html .po .txt
 .PHONY: all clean distclean
@@ -53,7 +41,7 @@
        $(MAKEINFO) $(^F) -o $@; \
        echo "done";
 
-$(MASTERDOC_FILENAME).%.texi: %.po
+$(MASTERDOC_FILENAME).%.texi: $(PODIR)/%.po
        @echo -n "Updating address@hidden"; \
        $(PO4A-TRANSLATE) -f texinfo -m $(MASTERDOC) -M UTF-8 -L UTF-8 -p 
$(PODIR)/$(^F) -l $@; \
        sed -i -e "s/@setfilename $(MASTERDOC_FILENAME).info/@setfilename 
$(MASTERDOC_FILENAME).$*.info/g" $@; \
@@ -93,7 +81,7 @@
 
 update-pot: $(PODIR)/$(MASTERDOC).pot Makefile
 
-update-po: $(POFILES) Makefile
+update-po: $(POFILES) Makefile $(MASTEDCOC)
 
 update-texi:
        @for i in `$(LS) $(POFILES) | $(SED) -e "s/\.po/.texi/" -e 
"s/^po\//$(MASTERDOC_FILENAME)./"`; \
@@ -132,6 +120,8 @@
         $(CP) $$i $(topdir)/$$readme ; \
        done;
 
+texinfo: update-texi
+texi: texinfo
 info: update-info
 pdf: update-pdf
 html: update-html

Modified: trunk/doc/linterna_magica.texi
===================================================================
--- trunk/doc/linterna_magica.texi      2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/doc/linterna_magica.texi      2011-10-09 15:22:38 UTC (rev 206)
@@ -197,9 +197,9 @@
 @cindex pronounce, linterna address@hidden
 
 The name Linterna address@hidden is in Spanish. The pronunciation
-in @acronym{IPA} is @value{pronouncelm}.  You can also
-find the answer to that question by playing the Ogg Vorbis file
address@hidden address@hidden - pronounce.ogg} located in the data
+in @acronym{IPA} is @value{pronouncelm}.  You can also find the answer
+to that question by playing the Ogg Vorbis file @file{linterna
address@hidden - pronounce.ogg} located in the @file{data}
 directory.
 
 
@@ -665,14 +665,41 @@
 @section Localisation
 @cindex localisation
 
-Since version 0.0.10 translations are split from the main
-userscript. Every localisation is a separate userscript located in the
address@hidden directory, that has special structure. If there is
-translation for your language and you want to use it, you will have to
-install the userscript for it. By default Linterna address@hidden
-tries to use the language of the browser interface if available. You
-could also set a custom locale by the ``locale'' config option.
+In version 0.0.10 translations were split from the main
+userscript. Every localisation was a separate userscript with special
+structure. In version 0.0.11 userscript files are automatically
+generated form PO files. If there is translation for your language and
+you want to use it, you will have to build and install it. Compiled
+userscripts are also available at Linterna address@hidden
+website.
 
+By default Linterna address@hidden tries to use the
+language of the browser interface if available. You could also set a
+custom locale by the ``locale'' config option.
+
+To build all the localisation userscripts in the top source directory
+type:
address@hidden 1
address@hidden locales}
address@hidden 1
+
+
+You could also build the scripts from the @file{po} directory:
address@hidden 1
address@hidden address@hidden
address@hidden @samp{make}
address@hidden 1
+
+Compilation of userscript for single language is possible. To do so,
+type:
address@hidden 1
address@hidden address@hidden
address@hidden @samp{make address@hidden
address@hidden 1
+
+Replace @var{langcode} in the example above with the code of the
+desired supported language.
+
 @node Stop execution on every site
 @section Stop execution on every site
 @cindex exclude site

Modified: trunk/doc/po/bg.po
===================================================================
--- trunk/doc/po/bg.po  2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/doc/po/bg.po  2011-10-09 15:22:38 UTC (rev 206)
@@ -8,8 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: linterna magica 0.0.10\n"
-"POT-Creation-Date: 2011-09-19 18:30+0400\n"
-"PO-Revision-Date: 2011-09-19 18:30+0300\n"
+"POT-Creation-Date: 2011-10-09 18:06+0400\n"
+"PO-Revision-Date: 2011-10-09 18:08+0300\n"
 "Last-Translator: Ivaylo Valkov <address@hidden>\n"
 "Language-Team: Bulgarian <address@hidden>\n"
 "Language: bg\n"
@@ -200,7 +200,7 @@
 msgstr "Потребителски настройки."
 
 #. type: chapter
-#: linterna_magica.texi:121 linterna_magica.texi:696 linterna_magica.texi:697
+#: linterna_magica.texi:121 linterna_magica.texi:723 linterna_magica.texi:724
 #, no-wrap
 msgid "What is supported?"
 msgstr "Какво се поддържа?"
@@ -211,7 +211,7 @@
 msgstr "(Не) Поддържани браузъри, пристави и т.н."
 
 #. type: chapter
-#: linterna_magica.texi:121 linterna_magica.texi:814 linterna_magica.texi:815
+#: linterna_magica.texi:121 linterna_magica.texi:841 linterna_magica.texi:842
 #, no-wrap
 msgid "Bugs"
 msgstr "Грешки"
@@ -222,7 +222,7 @@
 msgstr "Докладване на грешки."
 
 #. type: appendix
-#: linterna_magica.texi:121 linterna_magica.texi:825 linterna_magica.texi:826
+#: linterna_magica.texi:121 linterna_magica.texi:852 linterna_magica.texi:853
 #, no-wrap
 msgid "Copying this manual"
 msgstr "Копиране и разпространение на това ръководство"
@@ -233,7 +233,7 @@
 msgstr "GNU GPL, GNU FDL"
 
 #. type: unnumbered
-#: linterna_magica.texi:121 linterna_magica.texi:847 linterna_magica.texi:848
+#: linterna_magica.texi:121 linterna_magica.texi:874 linterna_magica.texi:875
 #, no-wrap
 msgid "Index"
 msgstr "Индекс"
@@ -458,7 +458,7 @@
 "The name Linterna address@hidden is in Spanish. The pronunciation in "
 "@acronym{IPA} is @value{pronouncelm}.  You can also find the answer to that "
 "question by playing the Ogg Vorbis file @file{linterna address@hidden - "
-"pronounce.ogg} located in the data directory."
+"pronounce.ogg} located in the @file{data} directory."
 msgstr ""
 "Името Linterna address@hidden е на испански език. Произношението "
 "изразено чрез @acronym{IPA} е @value{pronouncelm}. Можете също да изслушате "
@@ -815,7 +815,7 @@
 msgstr "Превод на интерфейса::"
 
 #. type: section
-#: linterna_magica.texi:379 linterna_magica.texi:676 linterna_magica.texi:677
+#: linterna_magica.texi:379 linterna_magica.texi:703 linterna_magica.texi:704
 #, no-wrap
 msgid "Stop execution on every site"
 msgstr "Спиране на изпълнението на всяка страница"
@@ -1607,42 +1607,98 @@
 #. type: Plain text
 #: linterna_magica.texi:675
 msgid ""
-"Since version 0.0.10 translations are split from the main userscript. Every "
-"localisation is a separate userscript located in the @file{locale} "
-"directory, that has special structure. If there is translation for your "
-"language and you want to use it, you will have to install the userscript for "
-"it. By default Linterna address@hidden tries to use the language of the "
+"In version 0.0.10 translations were split from the main userscript. Every "
+"localisation was a separate userscript with special structure. In version "
+"0.0.11 userscript files are automatically generated form PO files. If there "
+"is translation for your language and you want to use it, you will have to "
+"build and install it. Compiled userscripts are also available at Linterna "
+"address@hidden website."
+msgstr ""
+"Във версия 0.0.10 преводите бяха разделени от основния потребителски скрипт "
+"в самостоятелни файлове. Преводите бяха отделни потребителски скриптове със "
+"специална структура. Във версия 0.0.11 файловете с потребителските скриптове "
+"се създават автоматично от PO файлове. Ако съществува превод за Вашият език "
+"и желаете да го използвате, трябва да го компилирате и инсталирате. "
+"Компилирани потребителски скриптове може да намерите и на уеб страницата на "
+"Linterna address@hidden"
+
+#. type: Plain text
+#: linterna_magica.texi:679
+msgid ""
+"By default Linterna address@hidden tries to use the language of the "
 "browser interface if available. You could also set a custom locale by the "
 "``locale'' config option."
 msgstr ""
-"От версия 0.0.10 нататък преводите са разделени от основния потребителски "
-"скрипт в самостоятелни файлове. Преводите са отделни потребителски скриптове "
-"със специална структура и се намират в папката @file{locale}. Ако съществува "
-"превод за Вашият език и желаете да го използвате, трябва да инсталирате "
-"потребителския скрипт за него. Стандартно Linterna Mágica се опитва да "
-"използва езикът на интерфейса на браузъра, ако преводът е наличен. Също "
-"така, можете да използвате превод по Ваш избор, чрез настройката „locale“."
+"Стандартно Linterna address@hidden се опитва да използва езикът на "
+"интерфейса на браузъра, ако преводът е наличен. Също така, можете да "
+"използвате превод по Ваш избор, чрез настройката „locale“."
 
+#. type: Plain text
+#: linterna_magica.texi:682
+msgid ""
+"To build all the localisation userscripts in the top source directory type:"
+msgstr ""
+"За да компилирате всички потребителски скриптове с преводи, в папката с "
+"изходния код въведете:"
+
+#. type: samp{#1}
+#: linterna_magica.texi:684
+msgid "make locales"
+msgstr "make locales"
+
+#. type: Plain text
+#: linterna_magica.texi:688
+msgid "You could also build the scripts from the @file{po} directory:"
+msgstr "Също така, можете да компилирате скриптовете от папката @file{po}:"
+
+#. type: Plain text
+#: linterna_magica.texi:691
+msgid "@samp{cd address@hidden @indent @samp{make}"
+msgstr "@samp{cd address@hidden @indent @samp{make}"
+
+#. type: Plain text
+#: linterna_magica.texi:695
+msgid ""
+"Compilation of userscript for single language is possible. To do so, type:"
+msgstr ""
+"Компилиране на потребителски скрипт само за един език също е възможно. За да "
+"го направите въведете:"
+
+#. type: Plain text
+#: linterna_magica.texi:698
+msgid ""
+"@samp{cd address@hidden @indent @samp{make address@hidden"
+msgstr ""
+"@samp{cd address@hidden @indent @samp{make address@hidden"
+
+#. type: Plain text
+#: linterna_magica.texi:702
+msgid ""
+"Replace @var{langcode} in the example above with the code of the desired "
+"supported language."
+msgstr ""
+"Заменете @var{langcode} в горния пример с кода на желания поддържан език."
+
 #. type: cindex
-#: linterna_magica.texi:678
+#: linterna_magica.texi:705
 #, no-wrap
 msgid "exclude site"
 msgstr "изключване на уеб страница"
 
 #. type: cindex
-#: linterna_magica.texi:679
+#: linterna_magica.texi:706
 #, no-wrap
 msgid "include site"
 msgstr "включване на уеб страница"
 
 #. type: cindex
-#: linterna_magica.texi:680
+#: linterna_magica.texi:707
 #, no-wrap
 msgid "stop execution on specific site"
 msgstr "спиране на изпълнението на определена уеб страница"
 
 #. type: Plain text
-#: linterna_magica.texi:687
+#: linterna_magica.texi:714
 msgid ""
 "By default Linterna address@hidden will run on every site. This is "
 "something that you might not like. You can configure it to run only on some "
@@ -1657,7 +1713,7 @@
 "фрагмент за всяка страница, на която искате да използвате Linterna Mágica:"
 
 #. type: example
-#: linterna_magica.texi:693
+#: linterna_magica.texi:720
 #, no-wrap
 msgid ""
 " // @@include http://example.org\n";
@@ -1673,13 +1729,13 @@
 "\n"
 
 #. type: cindex
-#: linterna_magica.texi:698
+#: linterna_magica.texi:725
 #, no-wrap
 msgid "support"
 msgstr "поддържани"
 
 #. type: Plain text
-#: linterna_magica.texi:702
+#: linterna_magica.texi:729
 msgid ""
 "Linterna address@hidden explicitly supports only free software browsers "
 "and plugins."
@@ -1688,100 +1744,100 @@
 "са свободен софтуер."
 
 #. type: menuentry
-#: linterna_magica.texi:708
+#: linterna_magica.texi:735
 msgid "Supported browsers::"
 msgstr "Поддържани браузъри::"
 
 #. type: menuentry
-#: linterna_magica.texi:708
+#: linterna_magica.texi:735
 msgid "Supported plugins::"
 msgstr "Поддържани приставки::"
 
 #. type: menuentry
-#: linterna_magica.texi:708
+#: linterna_magica.texi:735
 msgid "Supported websites::"
 msgstr "Поддържани уеб страници::"
 
 #. type: section
-#: linterna_magica.texi:708 linterna_magica.texi:793 linterna_magica.texi:794
+#: linterna_magica.texi:735 linterna_magica.texi:820 linterna_magica.texi:821
 #, no-wrap
 msgid "Not supported"
 msgstr "Какво не се поддържа?"
 
 #. type: section
-#: linterna_magica.texi:710 linterna_magica.texi:711
+#: linterna_magica.texi:737 linterna_magica.texi:738
 #, no-wrap
 msgid "Supported browsers"
 msgstr "Поддържани браузъри"
 
 #. type: cindex
-#: linterna_magica.texi:712
+#: linterna_magica.texi:739
 #, no-wrap
 msgid "browser list"
 msgstr "браузъри, списък"
 
 #. type: cindex
-#: linterna_magica.texi:713
+#: linterna_magica.texi:740
 #, no-wrap
 msgid "supported browsers"
 msgstr "поддържани браузъри"
 
 #. type: cindex
-#: linterna_magica.texi:714
+#: linterna_magica.texi:741
 #, no-wrap
 msgid "browsers"
 msgstr "браузъри"
 
 #. type: cindex
-#: linterna_magica.texi:715
+#: linterna_magica.texi:742
 #, no-wrap
 msgid "Epiphany, browser"
 msgstr "Epiphany, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:716
+#: linterna_magica.texi:743
 #, no-wrap
 msgid "IceCat, browser"
 msgstr "IceCat, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:717
+#: linterna_magica.texi:744
 #, no-wrap
 msgid "GNU IceCat, browser"
 msgstr "GNU IceCat, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:718
+#: linterna_magica.texi:745
 #, no-wrap
 msgid "Iceweasel, browser"
 msgstr "Iceweasel, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:719
+#: linterna_magica.texi:746
 #, no-wrap
 msgid "Web browser, browser"
 msgstr "Web browser, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:720
+#: linterna_magica.texi:747
 #, no-wrap
 msgid "Abrowser, browser"
 msgstr "Abrowser, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:721
+#: linterna_magica.texi:748
 #, no-wrap
 msgid "Firefox, browser"
 msgstr "Firefox, браузър"
 
 #. type: cindex
-#: linterna_magica.texi:722
+#: linterna_magica.texi:749
 #, no-wrap
 msgid "Midori, browser"
 msgstr "Midori, браузър"
 
 #. type: Plain text
-#: linterna_magica.texi:726
+#: linterna_magica.texi:753
 msgid ""
 "In this release (@value{VERSION}) Linterna address@hidden is tested and "
 "kept up to date with the following browsers:"
@@ -1790,13 +1846,13 @@
 "поддържат следните браузъри:"
 
 #. type: item
-#: linterna_magica.texi:728
+#: linterna_magica.texi:755
 #, no-wrap
 msgid "Epiphany"
 msgstr "Epiphany"
 
 #. type: table
-#: linterna_magica.texi:731
+#: linterna_magica.texi:758
 msgid ""
 "Epiphany versions older than 2.30 might have problems with Greasemonkey."
 msgstr ""
@@ -1804,13 +1860,13 @@
 "Greasemonkey."
 
 #. type: item
-#: linterna_magica.texi:732
+#: linterna_magica.texi:759
 #, no-wrap
 msgid "Free software versions of Firefox"
 msgstr "Свободни версии на Firefox"
 
 #. type: table
-#: linterna_magica.texi:736
+#: linterna_magica.texi:763
 msgid ""
 "Free software versions of Firefox that support the Greasemonkey extension "
 "should work. Only GNU IceCat, Web Browser/ABrowser and Iceweasel are tested."
@@ -1820,13 +1876,13 @@
 "Browser/ABrowser и Iceweasel."
 
 #. type: item
-#: linterna_magica.texi:737
+#: linterna_magica.texi:764
 #, no-wrap
 msgid "Midori"
 msgstr "Midori"
 
 #. type: table
-#: linterna_magica.texi:740
+#: linterna_magica.texi:767
 msgid ""
 "Only versions 0.2.2 and 0.2.4 are tested. There are reports from users that "
 "0.3.2 works too."
@@ -1835,55 +1891,55 @@
 "0.3.2 също работи."
 
 #. type: section
-#: linterna_magica.texi:742 linterna_magica.texi:743
+#: linterna_magica.texi:769 linterna_magica.texi:770
 #, no-wrap
 msgid "Supported plugins"
 msgstr "Поддържани приставки"
 
 #. type: cindex
-#: linterna_magica.texi:744
+#: linterna_magica.texi:771
 #, no-wrap
 msgid "plugin list"
 msgstr "приставки, списък"
 
 #. type: cindex
-#: linterna_magica.texi:745
+#: linterna_magica.texi:772
 #, no-wrap
 msgid "supported plugin"
 msgstr "поддържани приставки"
 
 #. type: cindex
-#: linterna_magica.texi:746
+#: linterna_magica.texi:773
 #, no-wrap
 msgid "plugins"
 msgstr "приставки"
 
 #. type: cindex
-#: linterna_magica.texi:747
+#: linterna_magica.texi:774
 #, no-wrap
 msgid "Xine, plugin"
 msgstr "Xine, приставка"
 
 #. type: cindex
-#: linterna_magica.texi:748
+#: linterna_magica.texi:775
 #, no-wrap
 msgid "Totem, plugin"
 msgstr "Totem, приставка"
 
 #. type: cindex
-#: linterna_magica.texi:749
+#: linterna_magica.texi:776
 #, no-wrap
 msgid "VLC, plugin"
 msgstr "VLC, приставка"
 
 #. type: cindex
-#: linterna_magica.texi:750
+#: linterna_magica.texi:777
 #, no-wrap
 msgid "gecko-mediaplayer, plugin"
 msgstr "gecko-mediaplayer, приставка"
 
 #. type: Plain text
-#: linterna_magica.texi:758
+#: linterna_magica.texi:785
 msgid ""
 "Supported video plugins that can handle \"video/flv\" and \"video/mp4\" "
 "should work right away.  Some plugins provide an API which is used in "
@@ -1900,18 +1956,18 @@
 "бутоните ще използвате – от приставката или от Linterna Mágica."
 
 #. type: Plain text
-#: linterna_magica.texi:760
+#: linterna_magica.texi:787
 msgid "These plugins are known to work:"
 msgstr "Linterna Mágica е изпробвана и работи със следните приставки:"
 
 #. type: item
-#: linterna_magica.texi:761
+#: linterna_magica.texi:788
 #, no-wrap
 msgid "Totem plugin"
 msgstr "Totem"
 
 #. type: table
-#: linterna_magica.texi:765
+#: linterna_magica.texi:792
 msgid ""
 "Versions older and equal to 2.30 does not have full API support for web "
 "controls. Newer versions of Totem have been patched and should work."
@@ -1920,24 +1976,24 @@
 "управление на клипа. По-новите версии са поправени и би трябвало да работят."
 
 #. type: item
-#: linterna_magica.texi:765
+#: linterna_magica.texi:792
 #, no-wrap
 msgid "VLC plugin"
 msgstr "VLC"
 
 #. type: table
-#: linterna_magica.texi:767 linterna_magica.texi:774
+#: linterna_magica.texi:794 linterna_magica.texi:801
 msgid "No known problems."
 msgstr "Не са известни проблеми с тази приставка."
 
 #. type: item
-#: linterna_magica.texi:767
+#: linterna_magica.texi:794
 #, no-wrap
 msgid "gecko-mediaplayer plugin"
 msgstr "gecko-mediaplayer"
 
 #. type: table
-#: linterna_magica.texi:772
+#: linterna_magica.texi:799
 msgid ""
 "Note: Have in mind that gecko-mediaplayer depends on mplayer for playback. "
 "Mplayer is free software by itself, but it can load and recommends binary "
@@ -1951,31 +2007,31 @@
 "предоставя изчистена версия на mplayer."
 
 #. type: item
-#: linterna_magica.texi:772
+#: linterna_magica.texi:799
 #, no-wrap
 msgid "Xine plugin"
 msgstr "Xine"
 
 #. type: section
-#: linterna_magica.texi:776 linterna_magica.texi:777
+#: linterna_magica.texi:803 linterna_magica.texi:804
 #, no-wrap
 msgid "Supported websites"
 msgstr "Поддържани уеб страници"
 
 #. type: cindex
-#: linterna_magica.texi:778
+#: linterna_magica.texi:805
 #, no-wrap
 msgid "supported websites"
 msgstr "поддържани уеб страници"
 
 #. type: cindex
-#: linterna_magica.texi:779
+#: linterna_magica.texi:806
 #, no-wrap
 msgid "websites"
 msgstr "уеб страници"
 
 #. type: Plain text
-#: linterna_magica.texi:788
+#: linterna_magica.texi:815
 msgid ""
 "Linterna address@hidden is programmed in such a way that it might work "
 "(and it does) with web sites not specifically tested and supported. This is "
@@ -1993,7 +2049,7 @@
 "извлече видео клипа и т.н."
 
 #. type: Plain text
-#: linterna_magica.texi:792
+#: linterna_magica.texi:819
 msgid ""
 "There are more than 30 web sites, found with random web searches that are "
 "known to work. See the @file{WEBSITES} file for all known working sites and "
@@ -2004,32 +2060,32 @@
 "да видите всички известни работещи страници и по-подробна информация."
 
 #. type: cindex
-#: linterna_magica.texi:795
+#: linterna_magica.texi:822
 #, no-wrap
 msgid "not supported"
 msgstr "неподдържани"
 
 #. type: cindex
-#: linterna_magica.texi:796
+#: linterna_magica.texi:823
 #, no-wrap
 msgid "RTMP"
 msgstr "RTMP"
 
 #. type: cindex
-#: linterna_magica.texi:797
+#: linterna_magica.texi:824
 #, no-wrap
 msgid "proprietary software, not supported"
 msgstr "собственически софтуер, не се поддържа"
 
 #. type: Plain text
-#: linterna_magica.texi:800
+#: linterna_magica.texi:827
 msgid "Web sites that use RTMP to transfer clips @strong{do not} work."
 msgstr ""
 "Уеб страници, които използват RTMP за предаване на видео клиповете @strong"
 "{не} работят."
 
 #. type: Plain text
-#: linterna_magica.texi:805
+#: linterna_magica.texi:832
 msgid ""
 "Web sites that use clips and players from remote site @strong{do not} work. "
 "For example YouTube video placed in a blog or a news article. Since version "
@@ -2043,7 +2099,7 @@
 "клипа."
 
 #. type: Plain text
-#: linterna_magica.texi:808
+#: linterna_magica.texi:835
 msgid ""
 "Linterna address@hidden is not working with specific browser or plugin "
 "or operating system. Is it possible to support it?"
@@ -2052,7 +2108,7 @@
 "работи с Linterna Mágica. Възможно ли е да бъдат поддържани?"
 
 #. type: Plain text
-#: linterna_magica.texi:813
+#: linterna_magica.texi:840
 msgid ""
 "Only free software will be supported. Explicit support for non-free software "
 "will not be provided. If Linterna address@hidden is working with non-"
@@ -2063,19 +2119,19 @@
 "несвободни програми, Вие сигурно сте голям „късметлия“. Да, това е сарказъм!"
 
 #. type: cindex
-#: linterna_magica.texi:816
+#: linterna_magica.texi:843
 #, no-wrap
 msgid "bugs, reporting"
 msgstr "грешки, докладване"
 
 #. type: cindex
-#: linterna_magica.texi:817
+#: linterna_magica.texi:844
 #, no-wrap
 msgid "reporting bugs"
 msgstr "докладване на грешки"
 
 #. type: Plain text
-#: linterna_magica.texi:824
+#: linterna_magica.texi:851
 msgid ""
 "If you encounter bugs, or have suggestions of any kind, please report them "
 "at Linterna address@hidden project page at Savannah @url{https://";
@@ -2088,66 +2144,74 @@
 "„Support“. Разделът „Bugs“ е само за разработчици."
 
 #. type: cindex
-#: linterna_magica.texi:827
+#: linterna_magica.texi:854
 #, no-wrap
 msgid "copying, copying this manual"
 msgstr "копиране, разпространение на това ръководство"
 
 #. type: cindex
-#: linterna_magica.texi:828
+#: linterna_magica.texi:855
 #, no-wrap
 msgid "license, license of this manual"
 msgstr "лиценз, лиценз на ръководството"
 
 #. type: cindex
-#: linterna_magica.texi:829
+#: linterna_magica.texi:856
 #, no-wrap
 msgid "gpl, license"
 msgstr "gpl, лиценз"
 
 #. type: cindex
-#: linterna_magica.texi:830
+#: linterna_magica.texi:857
 #, no-wrap
 msgid "fdl, license"
 msgstr "fdl, лиценз"
 
 #. type: menuentry
-#: linterna_magica.texi:835
+#: linterna_magica.texi:862
 msgid "GNU General Public License::"
 msgstr "GNU General Public License::"
 
 #. type: appendixsec
-#: linterna_magica.texi:835 linterna_magica.texi:842 linterna_magica.texi:843
+#: linterna_magica.texi:862 linterna_magica.texi:869 linterna_magica.texi:870
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "GNU Free Documentation License"
 
 #. type: appendixsec
-#: linterna_magica.texi:837 linterna_magica.texi:838
+#: linterna_magica.texi:864 linterna_magica.texi:865
 #, no-wrap
 msgid "GNU General Public License"
 msgstr "GNU General Public License"
 
 #. type: cindex
-#: linterna_magica.texi:839
+#: linterna_magica.texi:866
 #, no-wrap
 msgid "gpl, gnu general public license"
 msgstr "gpl, gnu general public license"
 
 #. type: include
-#: linterna_magica.texi:840
+#: linterna_magica.texi:867
 #, no-wrap
 msgid "gpl.texi"
 msgstr "gpl.texi"
 
 #. type: cindex
-#: linterna_magica.texi:844
+#: linterna_magica.texi:871
 #, no-wrap
 msgid "fdl, gnu free documentation license"
 msgstr "fdl, gnu free documentation license"
 
 #. type: include
-#: linterna_magica.texi:845
+#: linterna_magica.texi:872
 #, no-wrap
 msgid "fdl.texi"
 msgstr "fdl.texi"
+
+#~ msgid "in the top source directory."
+#~ msgstr "в папката с изходния код на Linterna address@hidden"
+
+#~ msgid "To generate the localisation userscript for a single language, use:"
+#~ msgstr ""
+#~ "За да компилирате потребителския скрипт с превод само за един език, "
+#~ "въведете:"

Modified: trunk/doc/po/linterna_magica.texi.pot
===================================================================
--- trunk/doc/po/linterna_magica.texi.pot       2011-10-05 19:50:14 UTC (rev 
205)
+++ trunk/doc/po/linterna_magica.texi.pot       2011-10-09 15:22:38 UTC (rev 
206)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: linterna_magica svn-trunk\n"
-"POT-Creation-Date: 2011-09-19 16:55+0400\n"
+"POT-Creation-Date: 2011-10-09 17:12+0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -39,7 +39,7 @@
 msgstr ""
 
 #. type: top
-#: linterna_magica.texi:41 linterna_magica.texi:86 linterna_magica.texi:108
+#: linterna_magica.texi:41 linterna_magica.texi:87 linterna_magica.texi:109
 #, no-wrap
 msgid "Linterna address@hidden"
 msgstr ""
@@ -65,33 +65,33 @@
 msgstr ""
 
 #. type: copying
-#: linterna_magica.texi:57
+#: linterna_magica.texi:58
 msgid ""
 "Copyright @copyright{} 2010, 2011 Ivaylo Valkov "
 "<@email{ivaylo@@e-valkov.org}>@*"
 msgstr ""
 
 #. type: copying
-#: linterna_magica.texi:59
+#: linterna_magica.texi:60
 msgid "Copyright @copyright{} 2010 Anton Katsarov 
<@email{anton@@katsarov.org}>@*"
 msgstr ""
 
 #. type: quotation
-#: linterna_magica.texi:63
+#: linterna_magica.texi:64
 msgid ""
 "Permission is granted to copy, distribute and/or modify this document under "
 "the terms address@hidden"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:71
+#: linterna_magica.texi:72
 msgid ""
 "the GNU General Public License as published by the Free Software Foundation; "
 "either version 3 of the License, or (at your option) any later version, or"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:76
+#: linterna_magica.texi:77
 msgid ""
 "the @acronym{GNU} Free Documentation License, Version 1.3 or any later "
 "version published by the Free Software Foundation; with no Invariant "
@@ -99,7 +99,7 @@
 msgstr ""
 
 #. type: quotation
-#: linterna_magica.texi:81
+#: linterna_magica.texi:82
 msgid ""
 "Copies of the licenses are included in the sections entitled address@hidden "
 "General Public License'' and address@hidden Free Documentation License'' "
@@ -107,7 +107,7 @@
 msgstr ""
 
 #. type: i{#1}
-#: linterna_magica.texi:87
+#: linterna_magica.texi:88
 #, no-wrap
 msgid ""
 "A userscript for watching web video clips without the proprietary flash "
@@ -115,159 +115,159 @@
 msgstr ""
 
 #. type: i{#1}
-#: linterna_magica.texi:90
+#: linterna_magica.texi:91
 msgid ""
 "Watch video on the web in a brand new way: ``You don't need a glint, the "
 "magic lantern is ignited!''"
 msgstr ""
 
 #. type: b{#1}
-#: linterna_magica.texi:90
+#: linterna_magica.texi:91
 #, no-wrap
 msgid "by Ivaylo Valkov and Anton Katsarov"
 msgstr ""
 
 #. type: dircategory
-#: linterna_magica.texi:101
+#: linterna_magica.texi:102
 #, no-wrap
 msgid "Internet applications"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:104
+#: linterna_magica.texi:105
 msgid "Linterna Mágica (lm). Watch web video clips without flash."
 msgstr ""
 
 #. type: node
-#: linterna_magica.texi:107
+#: linterna_magica.texi:108
 #, no-wrap
 msgid "Top"
 msgstr ""
 
 #. type: node
-#: linterna_magica.texi:120 linterna_magica.texi:122
+#: linterna_magica.texi:121 linterna_magica.texi:123
 #, no-wrap
 msgid "Introduction"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "Overview of Linterna address@hidden"
 msgstr ""
 
 #. type: chapter
-#: linterna_magica.texi:120 linterna_magica.texi:205 linterna_magica.texi:206
+#: linterna_magica.texi:121 linterna_magica.texi:206 linterna_magica.texi:207
 #, no-wrap
 msgid "Installation and building"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "How to build and install."
 msgstr ""
 
 #. type: chapter
-#: linterna_magica.texi:120 linterna_magica.texi:364 linterna_magica.texi:365
+#: linterna_magica.texi:121 linterna_magica.texi:365 linterna_magica.texi:366
 #, no-wrap
 msgid "Configuration"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "Customizations."
 msgstr ""
 
 #. type: chapter
-#: linterna_magica.texi:120 linterna_magica.texi:695 linterna_magica.texi:696
+#: linterna_magica.texi:121 linterna_magica.texi:721 linterna_magica.texi:722
 #, no-wrap
 msgid "What is supported?"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "(Not) Supported browsers, plugins etc."
 msgstr ""
 
 #. type: chapter
-#: linterna_magica.texi:120 linterna_magica.texi:813 linterna_magica.texi:814
+#: linterna_magica.texi:121 linterna_magica.texi:839 linterna_magica.texi:840
 #, no-wrap
 msgid "Bugs"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "How to report bugs."
 msgstr ""
 
 #. type: appendix
-#: linterna_magica.texi:120 linterna_magica.texi:824 linterna_magica.texi:825
+#: linterna_magica.texi:121 linterna_magica.texi:850 linterna_magica.texi:851
 #, no-wrap
 msgid "Copying this manual"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:120
+#: linterna_magica.texi:121
 msgid "GNU GPL, GNU FDL"
 msgstr ""
 
 #. type: unnumbered
-#: linterna_magica.texi:120 linterna_magica.texi:846 linterna_magica.texi:847
+#: linterna_magica.texi:121 linterna_magica.texi:872 linterna_magica.texi:873
 #, no-wrap
 msgid "Index"
 msgstr ""
 
 #. type: chapter
-#: linterna_magica.texi:123
+#: linterna_magica.texi:124
 #, no-wrap
 msgid "Introduction to Linterna address@hidden"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:130
+#: linterna_magica.texi:131
 msgid "What is Linterna address@hidden::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:130
+#: linterna_magica.texi:131
 msgid "Why it exists?::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:130
+#: linterna_magica.texi:131
 msgid "Who made it?::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:130
+#: linterna_magica.texi:131
 msgid "How to pronounce Linterna address@hidden"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:132 linterna_magica.texi:133
+#: linterna_magica.texi:133 linterna_magica.texi:134
 #, no-wrap
 msgid "What is Linterna address@hidden"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:134
+#: linterna_magica.texi:135
 #, no-wrap
 msgid "linterna address@hidden, what is"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:135
+#: linterna_magica.texi:136
 #, no-wrap
 msgid "userscript"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:136
+#: linterna_magica.texi:137
 #, no-wrap
 msgid "how it works"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:144
+#: linterna_magica.texi:145
 msgid ""
 "Linterna address@hidden is ``tiny'' (at least it started that way)  "
 "script written in JavaScript for the Greasemonkey extension. It searches web "
@@ -277,82 +277,82 @@
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:145 linterna_magica.texi:146
+#: linterna_magica.texi:146 linterna_magica.texi:147
 #, no-wrap
 msgid "Why it exists?"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:147
+#: linterna_magica.texi:148
 #, no-wrap
 msgid "why it is needed"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:148
+#: linterna_magica.texi:149
 #, no-wrap
-msgid "flash disadvatages"
+msgid "flash disadvantages"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:149
+#: linterna_magica.texi:150
 #, no-wrap
 msgid "free software flash plugins"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:150
+#: linterna_magica.texi:151
 #, no-wrap
 msgid "html, video"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:151
+#: linterna_magica.texi:152
 #, no-wrap
 msgid "HTML5"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:155
+#: linterna_magica.texi:156
 msgid "The short answer: I had spare time and was curious is it going to 
address@hidden"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:161
+#: linterna_magica.texi:162
 msgid ""
 "The long answer: Free software flash plugins like Gnash and Swfdec do not "
 "work well with video flash players on every site. On top of that:"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:166
+#: linterna_magica.texi:167
 msgid ""
 "Even with free software plugin you run a lot of proprietary software as "
 "ActionScript"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:168
+#: linterna_magica.texi:169
 msgid "Even the free software plugins use too much resources"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:170
+#: linterna_magica.texi:171
 msgid "Flash is proprietary technology"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:172
+#: linterna_magica.texi:173
 msgid "Flash is not a web standard"
 msgstr ""
 
 #. type: itemize
-#: linterna_magica.texi:174
+#: linterna_magica.texi:175
 msgid "Most of the flash objects in a page contain useless stuff"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:180
+#: linterna_magica.texi:181
 msgid ""
 "Playback of video clips in a browser is technically possible since the "
 "existence of the <object> tag (around 1999; maybe even before that?!). To "
@@ -361,7 +361,7 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:185
+#: linterna_magica.texi:186
 msgid ""
 "Most of the time I do not have Gnash or Swfdec installed. I do not care "
 "about flash except, sometimes for video clips. I got tired of using "
@@ -370,70 +370,70 @@
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:186 linterna_magica.texi:187
+#: linterna_magica.texi:187 linterna_magica.texi:188
 #, no-wrap
 msgid "Who made it?"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:188
+#: linterna_magica.texi:189
 #, no-wrap
 msgid "authors"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:192
+#: linterna_magica.texi:193
 msgid ""
 "Original idea and programming by Ivaylo address@hidden Interface design by 
Anton "
 "Katsarov."
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:193 linterna_magica.texi:194
+#: linterna_magica.texi:194 linterna_magica.texi:195
 #, no-wrap
 msgid "How to pronounce  Linterna address@hidden"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:195
+#: linterna_magica.texi:196
 #, no-wrap
 msgid "pronounce, name"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:196
+#: linterna_magica.texi:197
 #, no-wrap
 msgid "pronounce, linterna address@hidden"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:203
+#: linterna_magica.texi:204
 msgid ""
-"The name Linterna address@hidden is in Spanish. The prononciation in "
+"The name Linterna address@hidden is in Spanish. The pronunciation in "
 "@acronym{IPA} is @value{pronouncelm}.  You can also find the answer to that "
 "question by playing the Ogg Vorbis file @file{linterna address@hidden - "
 "pronounce.ogg} located in the data directory."
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:211
+#: linterna_magica.texi:212
 msgid "Building the userscript::"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:211 linterna_magica.texi:270 linterna_magica.texi:271
+#: linterna_magica.texi:212 linterna_magica.texi:271 linterna_magica.texi:272
 #, no-wrap
 msgid "Installation"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:213 linterna_magica.texi:214
+#: linterna_magica.texi:214 linterna_magica.texi:215
 #, no-wrap
 msgid "Building the userscript"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:222
+#: linterna_magica.texi:223
 msgid ""
 "Since version 0.0.9 of Linterna address@hidden the userscript have to "
 "be build, if you have downloaded the source code tarball. If you do not want "
@@ -443,37 +443,37 @@
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:224
+#: linterna_magica.texi:225
 #, no-wrap
 msgid "GNU make"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:225
+#: linterna_magica.texi:226
 #, no-wrap
 msgid "GNU sed"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:226
+#: linterna_magica.texi:227
 #, no-wrap
 msgid "GNU grep"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:227
+#: linterna_magica.texi:228
 #, no-wrap
 msgid "GNU bash"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:228
+#: linterna_magica.texi:229
 #, no-wrap
 msgid "GNU Coreutils"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:246
+#: linterna_magica.texi:247
 msgid ""
 "@command{ls}, @command{cp}, @command{rm}, @command{cat}, @command{tac}, "
 "@command{head}, @command{tail}, @command{cut}, @command{tr}, @command{sort}, "
@@ -482,52 +482,52 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:250
+#: linterna_magica.texi:251
 msgid ""
 "To build the userscript, inside a terminal change the directory to the "
 "source code directory of Linterna address@hidden and type:"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:252
+#: linterna_magica.texi:253
 msgid "make"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:255
+#: linterna_magica.texi:256
 msgid ""
 "If everything went fine, at the end of the building process you should see "
 "the following message:"
 msgstr ""
 
 #. type: example
-#: linterna_magica.texi:258
+#: linterna_magica.texi:259
 #, no-wrap
 msgid "  linternamagica.user.js is ready.\n"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:262
+#: linterna_magica.texi:263
 msgid "To remove all the generated files without the userscript, type:"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:264
+#: linterna_magica.texi:265
 msgid "make clean"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:266
+#: linterna_magica.texi:267
 msgid "To remove all the generated files and the userscript file, type:"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:268
+#: linterna_magica.texi:269
 msgid "make distclean"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:277
+#: linterna_magica.texi:278
 msgid ""
 "First of all, install the Greasemonkey extension for your browser and "
 "activate it. For Epiphany it is part of the Epiphany-extensions package. For "
@@ -536,14 +536,14 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:280 linterna_magica.texi:288
+#: linterna_magica.texi:281 linterna_magica.texi:289
 msgid ""
 "Probably these extensions are available in your GNU/Linux distribution as a "
 "package."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:285
+#: linterna_magica.texi:286
 msgid ""
 "First of all install the Greasemonkey extension for your browser and "
 "activate it. For Epiphany it is part of the Epiphany-extensions package. For "
@@ -552,286 +552,286 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:290
+#: linterna_magica.texi:291
 msgid "Second, install the video plugin that you prefer."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:294
+#: linterna_magica.texi:295
 msgid ""
 "If you have downloaded compressed with gzip or bzip2 version of the "
 "userscript, decompress it to get a copy of the file ready for installation."
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:298
+#: linterna_magica.texi:299
 msgid "Installation from a browser::"
 msgstr ""
 
 #. type: subsection
-#: linterna_magica.texi:298 linterna_magica.texi:336 linterna_magica.texi:337
+#: linterna_magica.texi:299 linterna_magica.texi:337 linterna_magica.texi:338
 #, no-wrap
 msgid "Installation from a terminal"
 msgstr ""
 
 #. type: subsection
-#: linterna_magica.texi:300 linterna_magica.texi:301
+#: linterna_magica.texi:301 linterna_magica.texi:302
 #, no-wrap
 msgid "Installation from a browser"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:304
+#: linterna_magica.texi:305
 msgid ""
 "Load the path where you downloaded Linterna address@hidden in your "
 "browser:"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:306
+#: linterna_magica.texi:307
 msgid "file:///home/user/linterna-magica/"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:309
+#: linterna_magica.texi:310
 msgid "You can also start it from a terminal:"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:311
+#: linterna_magica.texi:312
 msgid "epiphany file:///home/user/linterna-magica/"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:313 linterna_magica.texi:317
+#: linterna_magica.texi:314 linterna_magica.texi:318
 msgid "or"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:315
+#: linterna_magica.texi:316
 msgid "abrowser file:///home/user/linterna-magica/"
 msgstr ""
 
 #. type: samp{#1}
-#: linterna_magica.texi:319
+#: linterna_magica.texi:320
 msgid "icecat file:///home/user/linterna-magica/"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:322
+#: linterna_magica.texi:323
 msgid "Right-click the user script and from the menu select"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:324
+#: linterna_magica.texi:325
 #, no-wrap
 msgid "For Epiphany"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:326
+#: linterna_magica.texi:327
 msgid "``Install userscript''"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:327
+#: linterna_magica.texi:328
 #, no-wrap
 msgid "For GNU IceCat and other free software versions of Firefox"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:330
+#: linterna_magica.texi:331
 msgid ""
 "``View User Script Source''. In the new window click the Greasemonkey "
 "``Install'' button."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:331
+#: linterna_magica.texi:332
 #, no-wrap
 msgid "For Midori"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:334
+#: linterna_magica.texi:335
 msgid ""
 "Midori versions 0.2.2 and 0.2.4 do not support installation of userscripts "
 "from the browser."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:341
+#: linterna_magica.texi:342
 msgid "Another option to install the userscript is to copy it from a terminal."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:343
+#: linterna_magica.texi:344
 msgid "For Epiphany:"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:348
+#: linterna_magica.texi:349
 msgid "For GNU IceCat:"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:354
+#: linterna_magica.texi:355
 msgid "For other free software versions of Firefox:"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:359
+#: linterna_magica.texi:360
 msgid "For Midori:"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:366
+#: linterna_magica.texi:367
 #, no-wrap
 msgid "configuration"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:370
+#: linterna_magica.texi:371
 msgid ""
 "Linterna address@hidden has some configuration options. The only way "
 "(for now) to configure it, is to edit the code of the userscript."
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:378
+#: linterna_magica.texi:379
 msgid "Configuration options::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:378
+#: linterna_magica.texi:379
 msgid "Automatic check for updates::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:378
+#: linterna_magica.texi:379
 msgid "Disadvantages of the cookies hack::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:378
+#: linterna_magica.texi:379
 msgid "Timed-out background requests::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:378
+#: linterna_magica.texi:379
 msgid "Localisation::"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:378 linterna_magica.texi:675 linterna_magica.texi:676
+#: linterna_magica.texi:379 linterna_magica.texi:701 linterna_magica.texi:702
 #, no-wrap
 msgid "Stop execution on every site"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:380 linterna_magica.texi:381
+#: linterna_magica.texi:381 linterna_magica.texi:382
 #, no-wrap
 msgid "Configuration options"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:382
+#: linterna_magica.texi:383
 #, no-wrap
-msgid "configruarion, options"
+msgid "configuration, options"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:383
+#: linterna_magica.texi:384
 #, no-wrap
 msgid "configure"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:384
+#: linterna_magica.texi:385
 #, no-wrap
 msgid "debug, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:385
+#: linterna_magica.texi:386
 #, no-wrap
 msgid "log_to, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:386
+#: linterna_magica.texi:387
 #, no-wrap
 msgid "updates, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:387
+#: linterna_magica.texi:388
 #, no-wrap
 msgid "priority, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:388
+#: linterna_magica.texi:389
 #, no-wrap
 msgid "autostart, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:389
+#: linterna_magica.texi:390
 #, no-wrap
 msgid "controls, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:390
+#: linterna_magica.texi:391
 #, no-wrap
 msgid "web controls, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:391
+#: linterna_magica.texi:392
 #, no-wrap
 msgid "interface, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:392
+#: linterna_magica.texi:393
 #, no-wrap
 msgid "buttons, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:393
+#: linterna_magica.texi:394
 #, no-wrap
 msgid "locale, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:394
+#: linterna_magica.texi:395
 #, no-wrap
 msgid "cookies, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:395
+#: linterna_magica.texi:396
 #, no-wrap
 msgid "wait_xhr, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:396
+#: linterna_magica.texi:397
 #, no-wrap
 msgid "quality, config option"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:397
+#: linterna_magica.texi:398
 #, no-wrap
 msgid "clip quality, config option"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:403
+#: linterna_magica.texi:404
 msgid ""
 "To change the configuration of Linterna address@hidden open the "
 "userscript file and look for @code{var linterna_magica_options}. This is a "
@@ -840,7 +840,7 @@
 msgstr ""
 
 #. type: example
-#: linterna_magica.texi:417
+#: linterna_magica.texi:418
 #, no-wrap
 msgid ""
 " var linterna_magica_options =\n"
@@ -859,7 +859,7 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:431
+#: linterna_magica.texi:432
 msgid ""
 "Since version 0.0.10 it is possible to keep your configuration in separate "
 "userscript file. This way your preferences will stay intact when new version "
@@ -875,173 +875,173 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:434
+#: linterna_magica.texi:435
 msgid "Available options are:"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:436
+#: linterna_magica.texi:437
 #, no-wrap
 msgid "debug"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:439
+#: linterna_magica.texi:440
 msgid ""
 "This option sets the debug level. The debug information is printed in the "
 "console."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:442 linterna_magica.texi:490
+#: linterna_magica.texi:443 linterna_magica.texi:491
 #, no-wrap
 msgid "0"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:444
+#: linterna_magica.texi:445
 msgid "Do not print anything (default)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:445
+#: linterna_magica.texi:446
 #, no-wrap
 msgid "1..5"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:447
+#: linterna_magica.texi:448
 msgid "Print debug information"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:450
+#: linterna_magica.texi:451
 #, no-wrap
 msgid "log_to"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:452
+#: linterna_magica.texi:453
 msgid "Where to print the debugging information when debug is not zero."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:455
+#: linterna_magica.texi:456
 #, no-wrap
 msgid "web"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:457
+#: linterna_magica.texi:458
 msgid "Print messages in the web page (default)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:458
+#: linterna_magica.texi:459
 #, no-wrap
 msgid "console"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:460
+#: linterna_magica.texi:461
 msgid "Use the debugging console of the browser"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:463
+#: linterna_magica.texi:464
 #, no-wrap
 msgid "updates"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:466
+#: linterna_magica.texi:467
 msgid ""
 "Should Linterna address@hidden automatically check and notify for "
 "updates. @xref{Automatic check for updates}."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:469
+#: linterna_magica.texi:470
 #, no-wrap
 msgid "<time><type>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:471
+#: linterna_magica.texi:472
 msgid "Check at interval. (default 1w)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:474
+#: linterna_magica.texi:475
 #, no-wrap
 msgid "<time>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:476
+#: linterna_magica.texi:477
 msgid "positive integer"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:477
+#: linterna_magica.texi:478
 #, no-wrap
 msgid "<type>"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:479 linterna_magica.texi:480
+#: linterna_magica.texi:480 linterna_magica.texi:481
 #, no-wrap
 msgid "d/w/m/y"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:482
+#: linterna_magica.texi:483
 msgid "d = day, w = week, m = month, y = year"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:485
+#: linterna_magica.texi:486
 #, no-wrap
 msgid "off"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:486
+#: linterna_magica.texi:487
 #, no-wrap
 msgid "disabled"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:487
+#: linterna_magica.texi:488
 #, no-wrap
 msgid "no"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:488
+#: linterna_magica.texi:489
 #, no-wrap
 msgid "never"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:489
+#: linterna_magica.texi:490
 #, no-wrap
 msgid "false"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:492
+#: linterna_magica.texi:493
 msgid "Do not check"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:496
+#: linterna_magica.texi:497
 #, no-wrap
 msgid "priority"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:501
+#: linterna_magica.texi:502
 msgid ""
 "This options determines how objects found by Linterna address@hidden "
 "should be played. You can set multiple values separated by ``,'', without "
@@ -1049,196 +1049,196 @@
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:504 linterna_magica.texi:536
+#: linterna_magica.texi:505 linterna_magica.texi:537
 #, no-wrap
 msgid "self"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:506
+#: linterna_magica.texi:507
 msgid "Replace flash and HTML5 objects"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:507 linterna_magica.texi:539
+#: linterna_magica.texi:508 linterna_magica.texi:540
 #, no-wrap
 msgid "plugin"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:510
+#: linterna_magica.texi:511
 msgid ""
 "Use Gnash/Swfdec. A button next to the flash object switches to Linterna "
 "address@hidden"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:511
+#: linterna_magica.texi:512
 #, no-wrap
 msgid "html5"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:514
+#: linterna_magica.texi:515
 msgid ""
 "Use HTML5 player if the site provides one. A button next to the player "
 "switches to Linterna address@hidden"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:517
+#: linterna_magica.texi:518
 #, no-wrap
 msgid "autostart"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:520
+#: linterna_magica.texi:521
 msgid ""
 "Auto start playback. If more than one object is found, only the first one "
 "will start playback."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:523
+#: linterna_magica.texi:524
 #, no-wrap
 msgid "on/enabled/true"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:525
+#: linterna_magica.texi:526
 msgid "Auto start the clip (default)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:526
+#: linterna_magica.texi:527
 #, no-wrap
 msgid "off/disabled/false"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:528
+#: linterna_magica.texi:529
 msgid "Do not start the clip"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:531
+#: linterna_magica.texi:532
 #, no-wrap
 msgid "controls"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:533
+#: linterna_magica.texi:534
 msgid "Buttons for controlling the video"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:538
+#: linterna_magica.texi:539
 msgid "Use controls provided by Linterna address@hidden (default)"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:541
+#: linterna_magica.texi:542
 msgid "Use controls provided by the video plugin."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:544
+#: linterna_magica.texi:545
 #, no-wrap
 msgid "locale"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:546
+#: linterna_magica.texi:547
 msgid "Interface language"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:549
+#: linterna_magica.texi:550
 #, no-wrap
 msgid "auto"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:552
+#: linterna_magica.texi:553
 msgid ""
 "Use the language of the browser interface if translation is available "
 "(default)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:553
+#: linterna_magica.texi:554
 #, no-wrap
 msgid "<lc>_<CC>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:555
+#: linterna_magica.texi:556
 msgid "Set language to lc_CC, where"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:558
+#: linterna_magica.texi:559
 #, no-wrap
 msgid "<lc>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:560
+#: linterna_magica.texi:561
 msgid "language code (lowercase)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:561
+#: linterna_magica.texi:562
 #, no-wrap
 msgid "<CC>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:564
+#: linterna_magica.texi:565
 msgid "country code (uppercase)  Example: en_US, en_UK, bg_BG"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:569
+#: linterna_magica.texi:570
 #, no-wrap
 msgid "cookies"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:571
+#: linterna_magica.texi:572
 msgid "The way cookies are processed. @xref{Disadvantages of the cookies 
hack}."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:574
+#: linterna_magica.texi:575
 #, no-wrap
 msgid "delete"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:576
+#: linterna_magica.texi:577
 msgid "Just delete the cookies."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:577
+#: linterna_magica.texi:578
 #, no-wrap
 msgid "restore"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:579
+#: linterna_magica.texi:580
 msgid "Extract and restore cookies."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:582
+#: linterna_magica.texi:583
 #, no-wrap
 msgid "wait_xhr"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:586
+#: linterna_magica.texi:587
 msgid ""
 "Timeout before background processing (XHR) starts in milliseconds. 1 s = "
 "1000 ms. If you have problems increase the value. @xref{Timed-out background "
@@ -1246,114 +1246,114 @@
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:589
+#: linterna_magica.texi:590
 #, no-wrap
 msgid "off/no/disabled/false/0"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:591
+#: linterna_magica.texi:592
 msgid "Don't wait (default)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:592
+#: linterna_magica.texi:593
 #, no-wrap
 msgid "<integer>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:594
+#: linterna_magica.texi:595
 msgid "Wait for <integer> milliseconds."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:597
+#: linterna_magica.texi:598
 #, no-wrap
 msgid "quality"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:599
+#: linterna_magica.texi:600
 msgid "Preferred video quality."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:602
+#: linterna_magica.texi:603
 #, no-wrap
 msgid "low/medium/high"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:605
+#: linterna_magica.texi:606
 msgid "Auto-select a link for low/medium/high from the list of links (default 
low)"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:606
+#: linterna_magica.texi:607
 #, no-wrap
 msgid "<number>"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:609
+#: linterna_magica.texi:610
 msgid ""
 "Start the <number> link from the list. If not available the highest "
 "quality. Use \"1\" for lowest quality."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:610
+#: linterna_magica.texi:611
 #, no-wrap
 msgid "<number>%"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:613
+#: linterna_magica.texi:614
 msgid ""
 "Start the link that equals to <number>% in the list. Fractions are accepted "
 "- 34.56%, 18,6%."
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:618 linterna_magica.texi:619
+#: linterna_magica.texi:619 linterna_magica.texi:620
 #, no-wrap
 msgid "Automatic check for updates"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:620
+#: linterna_magica.texi:621
 #, no-wrap
 msgid "updates, check for"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:621
+#: linterna_magica.texi:622
 #, no-wrap
 msgid "automatic updates, check for"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:625
+#: linterna_magica.texi:626
 msgid ""
 "Linterna address@hidden checks for updates every time the configured "
 "interval is reached and at the first and second day after the exact match."
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:626 linterna_magica.texi:627
+#: linterna_magica.texi:627 linterna_magica.texi:628
 #, no-wrap
 msgid "Disadvantages of the cookies hack"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:628
+#: linterna_magica.texi:629
 #, no-wrap
-msgid "cookies, disadvatages"
+msgid "cookies, disadvantages"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:633
+#: linterna_magica.texi:634
 msgid ""
 "A weird hack to get data from YouTube and Dailymotion without cookies is "
 "used. With cookies the video link data is garbage for Linterna "
@@ -1361,7 +1361,7 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:644
+#: linterna_magica.texi:645
 msgid ""
 "First the cookies are removed by setting their expiration dates in the "
 "past. A request on the background (XMLHttpRequest) for the video page (for "
@@ -1375,37 +1375,37 @@
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:645 linterna_magica.texi:646
+#: linterna_magica.texi:646 linterna_magica.texi:647
 #, no-wrap
 msgid "Timed-out background requests"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:647
+#: linterna_magica.texi:648
 #, no-wrap
 msgid "timeout, xhr"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:648
+#: linterna_magica.texi:649
 #, no-wrap
 msgid "delay"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:649
+#: linterna_magica.texi:650
 #, no-wrap
 msgid "XHR, delay"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:650
+#: linterna_magica.texi:651
 #, no-wrap
 msgid "background request"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:658
+#: linterna_magica.texi:659
 msgid ""
 "For Dailymotion you could use a timeout option. During the first tests of "
 "this fix there were some problems if the background request was made too "
@@ -1416,56 +1416,103 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:661
+#: linterna_magica.texi:662
 msgid ""
 "The wait_xhr option is effective for every site that is supported with "
 "background requests."
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:663 linterna_magica.texi:664
+#: linterna_magica.texi:664 linterna_magica.texi:665
 #, no-wrap
 msgid "Localisation"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:665
+#: linterna_magica.texi:666
 #, no-wrap
 msgid "localisation"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:674
+#: linterna_magica.texi:675
 msgid ""
-"Since version 0.0.10 translations are split from the main userscript. Every "
-"localisation is a separate userscript located in the @file{locale} "
-"directory, that has special structure. If there is translation for your "
-"language and you want to use it, you will have to install the userscript for "
-"it. By default Linterna address@hidden tries to use the language of the "
+"In version 0.0.10 translations were split from the main userscript. Every "
+"localisation was a separate userscript with special structure. In version "
+"0.0.11 userscript files are automatically generated form PO files. If there "
+"is translation for your language and you want to use it, you will have to "
+"build and install it. Compiled userscripts are also available at Linterna "
+"address@hidden website."
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:679
+msgid ""
+"By default Linterna address@hidden tries to use the language of the "
 "browser interface if available. You could also set a custom locale by the "
 "``locale'' config option."
 msgstr ""
 
+#. type: Plain text
+#: linterna_magica.texi:681
+msgid "To build all the localisation userscripts type:"
+msgstr ""
+
+#. type: samp{#1}
+#: linterna_magica.texi:683
+msgid "make locales"
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:686
+msgid "in the top source directory."
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:688
+msgid "You could also build the scripts from the @file{po} directory:"
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:691
+msgid "@samp{cd address@hidden @samp{make}"
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:694
+msgid "To generate the localisation userscript for a single language, use:"
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:697
+msgid "@samp{cd po} @samp{make address@hidden"
+msgstr ""
+
+#. type: Plain text
+#: linterna_magica.texi:700
+msgid "where @var{langcode} is the code for the desired supported language."
+msgstr ""
+
 #. type: cindex
-#: linterna_magica.texi:677
+#: linterna_magica.texi:703
 #, no-wrap
 msgid "exclude site"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:678
+#: linterna_magica.texi:704
 #, no-wrap
 msgid "include site"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:679
+#: linterna_magica.texi:705
 #, no-wrap
 msgid "stop execution on specific site"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:686
+#: linterna_magica.texi:712
 msgid ""
 "By default Linterna address@hidden will run on every site. This is "
 "something that you might not like. You can configure it to run only on some "
@@ -1475,7 +1522,7 @@
 msgstr ""
 
 #. type: example
-#: linterna_magica.texi:692
+#: linterna_magica.texi:718
 #, no-wrap
 msgid ""
 " // @@include http://example.org\n";
@@ -1486,205 +1533,205 @@
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:697
+#: linterna_magica.texi:723
 #, no-wrap
 msgid "support"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:701
+#: linterna_magica.texi:727
 msgid ""
 "Linterna address@hidden explicitly supports only free software browsers "
 "and plugins."
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:707
+#: linterna_magica.texi:733
 msgid "Supported browsers::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:707
+#: linterna_magica.texi:733
 msgid "Supported plugins::"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:707
+#: linterna_magica.texi:733
 msgid "Supported websites::"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:707 linterna_magica.texi:792 linterna_magica.texi:793
+#: linterna_magica.texi:733 linterna_magica.texi:818 linterna_magica.texi:819
 #, no-wrap
 msgid "Not supported"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:709 linterna_magica.texi:710
+#: linterna_magica.texi:735 linterna_magica.texi:736
 #, no-wrap
 msgid "Supported browsers"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:711
+#: linterna_magica.texi:737
 #, no-wrap
 msgid "browser list"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:712
+#: linterna_magica.texi:738
 #, no-wrap
 msgid "supported browsers"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:713
+#: linterna_magica.texi:739
 #, no-wrap
 msgid "browsers"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:714
+#: linterna_magica.texi:740
 #, no-wrap
 msgid "Epiphany, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:715
+#: linterna_magica.texi:741
 #, no-wrap
 msgid "IceCat, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:716
+#: linterna_magica.texi:742
 #, no-wrap
 msgid "GNU IceCat, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:717
+#: linterna_magica.texi:743
 #, no-wrap
 msgid "Iceweasel, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:718
+#: linterna_magica.texi:744
 #, no-wrap
-msgid "Webrowser, browser"
+msgid "Web browser, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:719
+#: linterna_magica.texi:745
 #, no-wrap
 msgid "Abrowser, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:720
+#: linterna_magica.texi:746
 #, no-wrap
 msgid "Firefox, browser"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:721
+#: linterna_magica.texi:747
 #, no-wrap
 msgid "Midori, browser"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:725
+#: linterna_magica.texi:751
 msgid ""
 "In this release (@value{VERSION}) Linterna address@hidden is tested and "
 "kept up to date with the following browsers:"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:727
+#: linterna_magica.texi:753
 #, no-wrap
 msgid "Epiphany"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:730
+#: linterna_magica.texi:756
 msgid "Epiphany versions older than 2.30 might have problems with 
Greasemonkey."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:731
+#: linterna_magica.texi:757
 #, no-wrap
 msgid "Free software versions of Firefox"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:735
+#: linterna_magica.texi:761
 msgid ""
 "Free software versions of Firefox that support the Greasemonkey extension "
 "should work. Only GNU IceCat, Web Browser/ABrowser and Iceweasel are tested."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:736
+#: linterna_magica.texi:762
 #, no-wrap
 msgid "Midori"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:739
+#: linterna_magica.texi:765
 msgid ""
 "Only versions 0.2.2 and 0.2.4 are tested. There are reports from users that "
 "0.3.2 works too."
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:741 linterna_magica.texi:742
+#: linterna_magica.texi:767 linterna_magica.texi:768
 #, no-wrap
 msgid "Supported plugins"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:743
+#: linterna_magica.texi:769
 #, no-wrap
 msgid "plugin list"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:744
+#: linterna_magica.texi:770
 #, no-wrap
 msgid "supported plugin"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:745
+#: linterna_magica.texi:771
 #, no-wrap
 msgid "plugins"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:746
+#: linterna_magica.texi:772
 #, no-wrap
 msgid "Xine, plugin"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:747
+#: linterna_magica.texi:773
 #, no-wrap
 msgid "Totem, plugin"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:748
+#: linterna_magica.texi:774
 #, no-wrap
 msgid "VLC, plugin"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:749
+#: linterna_magica.texi:775
 #, no-wrap
 msgid "gecko-mediaplayer, plugin"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:757
+#: linterna_magica.texi:783
 msgid ""
 "Supported video plugins that can handle \"video/flv\" and \"video/mp4\" "
 "should work right away.  Some plugins provide an API which is used in "
@@ -1695,42 +1742,42 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:759
+#: linterna_magica.texi:785
 msgid "These plugins are known to work:"
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:760
+#: linterna_magica.texi:786
 #, no-wrap
 msgid "Totem plugin"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:764
+#: linterna_magica.texi:790
 msgid ""
 "Versions older and equal to 2.30 does not have full API support for web "
 "controls. Newer versions of Totem have been patched and should work."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:764
+#: linterna_magica.texi:790
 #, no-wrap
 msgid "VLC plugin"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:766 linterna_magica.texi:773
+#: linterna_magica.texi:792 linterna_magica.texi:799
 msgid "No known problems."
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:766
+#: linterna_magica.texi:792
 #, no-wrap
 msgid "gecko-mediaplayer plugin"
 msgstr ""
 
 #. type: table
-#: linterna_magica.texi:771
+#: linterna_magica.texi:797
 msgid ""
 "Note: Have in mind that gecko-mediaplayer depends on mplayer for "
 "playback. Mplayer is free software by itself, but it can load and recommends "
@@ -1739,31 +1786,31 @@
 msgstr ""
 
 #. type: item
-#: linterna_magica.texi:771
+#: linterna_magica.texi:797
 #, no-wrap
 msgid "Xine plugin"
 msgstr ""
 
 #. type: section
-#: linterna_magica.texi:775 linterna_magica.texi:776
+#: linterna_magica.texi:801 linterna_magica.texi:802
 #, no-wrap
 msgid "Supported websites"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:777
+#: linterna_magica.texi:803
 #, no-wrap
 msgid "supported websites"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:778
+#: linterna_magica.texi:804
 #, no-wrap
 msgid "websites"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:787
+#: linterna_magica.texi:813
 msgid ""
 "Linterna address@hidden is programmed in such a way that it might work "
 "(and it does) with web sites not specifically tested and supported. This is "
@@ -1774,7 +1821,7 @@
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:791
+#: linterna_magica.texi:817
 msgid ""
 "There are more than 30 web sites, found with random web searches that are "
 "known to work. See the @file{WEBSITES} file for all known working sites and "
@@ -1782,46 +1829,46 @@
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:794
+#: linterna_magica.texi:820
 #, no-wrap
 msgid "not supported"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:795
+#: linterna_magica.texi:821
 #, no-wrap
 msgid "RTMP"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:796
+#: linterna_magica.texi:822
 #, no-wrap
 msgid "proprietary software, not supported"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:799
+#: linterna_magica.texi:825
 msgid "Web sites that use RTMP to transfer clips @strong{do not} work."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:804
+#: linterna_magica.texi:830
 msgid ""
 "Web sites that use clips and players from remote site @strong{do not} "
-"work. For example youtube video placed in a blog or a news article. Since "
+"work. For example YouTube video placed in a blog or a news article. Since "
 "version 0.0.9 some remote objects are detected and a link to the web page of "
 "the video is provided."
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:807
+#: linterna_magica.texi:833
 msgid ""
 "Linterna address@hidden is not working with specific browser or plugin "
 "or operating system. Is it possible to support it?"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:812
+#: linterna_magica.texi:838
 msgid ""
 "Only free software will be supported. Explicit support for non-free software "
 "will not be provided. If Linterna address@hidden is working with "
@@ -1829,19 +1876,19 @@
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:815
+#: linterna_magica.texi:841
 #, no-wrap
 msgid "bugs, reporting"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:816
+#: linterna_magica.texi:842
 #, no-wrap
 msgid "reporting bugs"
 msgstr ""
 
 #. type: Plain text
-#: linterna_magica.texi:823
+#: linterna_magica.texi:849
 msgid ""
 "If you encounter bugs, or have suggestions of any kind, please report them "
 "at Linterna address@hidden project page at Savannah "
@@ -1851,66 +1898,66 @@
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:826
+#: linterna_magica.texi:852
 #, no-wrap
 msgid "copying, copying this manual"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:827
+#: linterna_magica.texi:853
 #, no-wrap
 msgid "license, license of this manual"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:828
+#: linterna_magica.texi:854
 #, no-wrap
 msgid "gpl, license"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:829
+#: linterna_magica.texi:855
 #, no-wrap
 msgid "fdl, license"
 msgstr ""
 
 #. type: menuentry
-#: linterna_magica.texi:834
+#: linterna_magica.texi:860
 msgid "GNU General Public License::"
 msgstr ""
 
 #. type: appendixsec
-#: linterna_magica.texi:834 linterna_magica.texi:841 linterna_magica.texi:842
+#: linterna_magica.texi:860 linterna_magica.texi:867 linterna_magica.texi:868
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr ""
 
 #. type: appendixsec
-#: linterna_magica.texi:836 linterna_magica.texi:837
+#: linterna_magica.texi:862 linterna_magica.texi:863
 #, no-wrap
 msgid "GNU General Public License"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:838
+#: linterna_magica.texi:864
 #, no-wrap
 msgid "gpl, gnu general public license"
 msgstr ""
 
 #. type: include
-#: linterna_magica.texi:839
+#: linterna_magica.texi:865
 #, no-wrap
 msgid "gpl.texi"
 msgstr ""
 
 #. type: cindex
-#: linterna_magica.texi:843
+#: linterna_magica.texi:869
 #, no-wrap
 msgid "fdl, gnu free documentation license"
 msgstr ""
 
 #. type: include
-#: linterna_magica.texi:844
+#: linterna_magica.texi:870
 #, no-wrap
 msgid "fdl.texi"
 msgstr ""

Modified: trunk/doc/version.texi
===================================================================
--- trunk/doc/version.texi      2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/doc/version.texi      2011-10-09 15:22:38 UTC (rev 206)
@@ -19,5 +19,5 @@
 
 @set VERSION svn-trunk
 @set EDITION svn-trunk
address@hidden UPDATED 19 September 2011
address@hidden UPDATED-MONTH September
address@hidden UPDATED 09 October 2011
address@hidden UPDATED-MONTH October

Added: trunk/po/LINGUAS
===================================================================
--- trunk/po/LINGUAS                            (rev 0)
+++ trunk/po/LINGUAS    2011-10-09 15:22:38 UTC (rev 206)
@@ -0,0 +1 @@
+bg

Added: trunk/po/Makefile
===================================================================
--- trunk/po/Makefile                           (rev 0)
+++ trunk/po/Makefile   2011-10-09 15:22:38 UTC (rev 206)
@@ -0,0 +1,134 @@
+# This Makefile is part of  Linterna Mágica
+#
+# Copyright (C) 2011  Ivaylo Valkov <address@hidden>
+#
+# Linterna Mágica is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# Linterna Mágica is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Linterna Mágica.  If not, see <http://www.gnu.org/licenses/>.
+
+
+SHELL=/bin/bash
+
+topdir=../
+srcdir=$(topdir)/src
+
+include $(topdir)/common.mk
+
+JSFILES=$(shell for file in `ls $(srcdir)/*.js`; do printf "$$file "; done)
+
+.SUFFIXES:
+.SUFFIXES: .json .po .pot .in .user.js
+
+.PHONY: all clean distclean update-pot update-po generate-scripts
+
+all: generate-scripts
+
+%.po: $(GETTEXT_PACKAGE).pot
+       @echo "Updating $@";\
+       if test ! -e $@ ; then \
+               echo "No rule to make $@";\
+               exit 1;\
+       fi;\
+       $(INTLTOOL_UPDATE) -g $(GETTEXT_PACKAGE) -d $(*F)
+
+%.json: %.po
+       @locale=`echo $(*F)`; \
+       result=`echo $$locale | $(GREP) _ `;\
+       if test ! $$result ; then\
+               locale=`echo $$locale | $(SED) -e "s/\(.*\)/\1_\1/"`;\
+       fi;\
+       locale=`echo $$locale | $(SED) -e "s/_\(.*\)/_\U\1/"`; \
+       $(MSGATTRIB) --no-wrap -s --translated --no-obsolete \
+       --no-fuzzy $< | $(SED) -e '/^#/d'  -e "s/msgid//g" \
+       -e "s/msgstr\(.*\)/:\1/g" -e "/^$$/d" | $(SED) \
+       -e '$$!N;s/\n/ /' | $(SED) \
+       -e "/Project-Id/,/Content-Trans/{s/$$/,/; \
+               s/\:\s\+/\":\"/g; s/\(.*Content-Trans.*\),/\1,\},/g }" \
+       -e "s/\"\{2\}\s*:\s*\"\{2\}/\"__PO_HEADER\":\{/" | $(SED) -e :a \
+       -e "/\"\{2\}$$/N; s/\\n//; ta" -e "s/\"\+/\"/g" -e "s/\\\n//g" \
+       -e "/\"\s\+\"/{s/\s\+:\s\+\"/: \[\"/g; s/\"\s\+\"/\", \"/g ;\
+                s/\([^,]\)$$/\1,]/g }" \
+       -e "s/\([^,\{]\)$$/\1,/g"  \
+       -e "1{s/^/var LM_L10N=\{\"$$locale\":\{/}" \
+       -e "\$${s/$$/\},\};/g}" > $@;
+
+$(PACKAGE)_l10n_%.user.js: %.json $(srcdir)/lm_locale_userscript_template.js
+       @echo "Making $(PACKAGE)_l10n_$*.user.js";\
+       tmp=`$(MKTEMP)`;\
+       locale=$*;\
+       result=`echo $$locale | $(GREP) _ `;\
+       if test ! $$result ; then\
+               locale=`echo $$locale | $(SED) -e "s/\(.*\)/\1_\1/"`;\
+       fi;\
+       locale=`echo $$locale | $(SED) -e "s/_\(.*\)/_\U\1/"`; \
+       locale_name=`$(GREP) -E "Language-Team\":\"[A-Za-z]+" -o $< | \
+               $(CUT) -d ":" -f2 | $(CUT) -d "\"" -f2`;\
+       $(CP) $(srcdir)/lm_locale_userscript_template.js $$tmp; \
+       $(SED) -i -e "s/@LOCALE@/$$locale/" \
+       -e "s/@LOCALE_NAME@/$$locale_name/" \
+       -e "s/@VERSION@/$(VERSION)/g" $$tmp;\
+       l10n_up_cut=`$(GREP) -B1 -n "var LM_L10N;" $$tmp | \
+               $(HEAD) -n1 | $(CUT) -d'-' -f1`;\
+       l10n_down_cut=`$(TAC) $$tmp | $(GREP) -B1 -n "var LM_L10N;" \
+               | $(HEAD) -n1 | $(CUT) -d'-' -f1`;\
+       $(HEAD) -n $$l10n_up_cut $$tmp > $@;\
+       $(CAT) $< >> $@;\
+       $(TAIL) -n $$l10n_down_cut $$tmp >>$@;\
+       $(CP) $@ $$tmp;\
+       up_cut=`$(GREP) -n -B1 Copyright $$tmp |$(HEAD) -n 1| \
+               $(CUT) -d'-' -f1 `;\
+       down_cut=`$(TAC) $$tmp | $(GREP) -n -B1 Copyright | \
+               $(HEAD) -n 1| $(CUT) -d'-' -f1`;\
+       $(HEAD) -n $$up_cut $$tmp > $@;\
+       authors=`$(GREP) "Copyright" $< $(JSFILES) | \
+               $(CUT) -d':' -f2 | \
+               $(SED) -e "s/\/\/\s\+\|#\s\+/\/\/ /g" \
+               -e "s/\s\+/ /g"|$(SORT) |$(UNIQ)|$(TR) -d '\n' `;\
+       echo $$authors | $(SED) -e "s/\/\/ /\n\/\/ /g" | $(GREP) -E "^$$" -v >> 
$@;\
+       $(TAIL) -n $$down_cut $$tmp >>$@;\
+       $(RM) $$tmp;
+
+POTFILES.in: $(JSFILES)
+       @$(LS) $(srcdir)/*.js | $(SED) -e "s/\.\.\/*//g" > $@
+
+$(GETTEXT_PACKAGE).pot: POTFILES.in
+       @$(INTLTOOL_UPDATE) -p -g $(GETTEXT_PACKAGE); \
+       year=`$(DATE) +"%Y"` ; \
+       $(SED) -i -e "s/VERSION/$(VERSION)/g" \
+       -e "s/THE PACKAGE/PACKAGE/" \
+       -e "s/'S COPYRIGHT HOLDER/'s copyright holders/g" \
+       -e "s/PACKAGE/$(GETTEXT_PACKAGE)/g" \
+       -e "s/SOME DESCR.*/Linterna Mágica PO file template./" $@
+
+update-po: LINGUAS $(GETTEXT_PACKAGE).pot
+       @linguas=`$(CAT) LINGUAS`;\
+       for lang in $$linguas;\
+       do\
+               $(MAKE) $$lang.po;\
+       done\
+
+update-pot: $(GETTEXT_PACKAGE).pot
+
+generate-scripts: LINGUAS $(GETTEXT_PACKAGE).pot
+       @linguas=`$(CAT) LINGUAS`;\
+       for lang in $$linguas;\
+       do\
+               $(MAKE) $(PACKAGE)_l10n_$$lang.user.js;\
+       done
+
+locales: generate-scripts
+
+clean:
+       @$(RM) *.user.js *.json 2> /dev/null; exit 0
+
+distclean: clean
+       @$(RM) $(GETTEXT_PACKAGE).pot POTFILES.in *.json 2> /dev/null ; exit 0

Added: trunk/po/bg.po
===================================================================
--- trunk/po/bg.po                              (rev 0)
+++ trunk/po/bg.po      2011-10-09 15:22:38 UTC (rev 206)
@@ -0,0 +1,379 @@
+# Bulgarian translation of linterna_magica.pot file
+# Copyright (C) 2010, 2011 Ivaylo Valkov <address@hidden>
+# Copyright (C) 2010 Anton Katsarov <address@hidden> 
+# This file is distributed under the same license as the linterna_magica 
package.
+# Ivaylo Valkov <address@hidden>, 2010, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: linterna_magica svn-trunk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-09 18:19+0300\n"
+"PO-Revision-Date: 2011-10-09 16:36+0300\n"
+"Last-Translator: Ivaylo Valkov <address@hidden>\n"
+"Language-Team: Bulgarian <address@hidden>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/lm_about.js:40
+msgid " version: "
+msgstr " версия: "
+
+#. Translated by
+#: ../src/lm_about.js:72
+msgid "Translation"
+msgstr "Превод"
+
+#: ../src/lm_about.js:107
+msgid "Linterna Mágica Home page"
+msgstr "Уеб страница на Linterna Mágica"
+
+#: ../src/lm_about.js:117
+msgid "Linterna Mágica project page at Savannah"
+msgstr "Страница на проекта Linterna Mágica в Savannah"
+
+#: ../src/lm_about.js:127
+msgid "Report a bug at our Savannah project page"
+msgstr "Подайте доклад за грешка на страницата на проекта в Savannah"
+
+#: ../src/lm_about.js:137
+msgid "Linterna Mágica microbloging group at Identi.ca"
+msgstr "Микроблог групата на Linterna Mágicа в Identi.ca"
+
+#: ../src/lm_check_for_updates.js:186
+msgid "New version"
+msgstr "Нова версия"
+
+#: ../src/lm_check_for_updates.js:187
+msgid "Date"
+msgstr "Дата"
+
+#: ../src/lm_check_for_updates.js:197
+msgid "Update"
+msgstr "Обновление"
+
+#: ../src/lm_check_for_updates.js:217
+msgid "New version is available."
+msgstr "Налична е нова версия."
+
+#: ../src/lm_check_for_updates.js:224
+msgid "released at"
+msgstr "публикувана на"
+
+#: ../src/lm_check_for_updates.js:231
+msgid "Read the news section at the home page"
+msgstr "Прочетете новините на уеб страницата"
+
+#: ../src/lm_constructors.js:206
+msgid "Watch video on the web "
+msgstr "Гледайте уеб видео клипове "
+
+#: ../src/lm_constructors.js:207
+msgid "in a brand new way: "
+msgstr "по напълно нов начин: "
+
+#: ../src/lm_constructors.js:208
+msgid "You don't need a glint, "
+msgstr "Нямате нужда от проблясъци, "
+
+#: ../src/lm_constructors.js:209
+msgid "the magic lantern is ignited!"
+msgstr "вълшебният фенер е разпален!"
+
+#: ../src/lm_constructors.js:217
+msgid "This program is free software; "
+msgstr "Тази програма е свободен софтуер. "
+
+#: ../src/lm_constructors.js:218
+msgid "you can redistribute it and/or "
+msgstr "Можете да я разпространявате и/или "
+
+#: ../src/lm_constructors.js:219
+msgid "modify it under the terms of the "
+msgstr "променяте под условията на "
+
+#: ../src/lm_constructors.js:220
+msgid "GNU  General Public License (GNU GPL)"
+msgstr "Общия публичен лиценз на GNU (GNU GPL)"
+
+#: ../src/lm_constructors.js:221
+msgid " version 3 (or later). "
+msgstr " — версия 3 на лиценза или по-късна. "
+
+#: ../src/lm_constructors.js:222
+msgid "A copy of the license can be downloaded from "
+msgstr "Копие на лиценза можете да изтеглите от "
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "01/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Jan 2012.
+#: ../src/lm_constructors.js:356
+msgid "Jan"
+msgstr "яну"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "02/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Feb 2012.
+#: ../src/lm_constructors.js:361
+msgid "Feb"
+msgstr "фев"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "03/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Mar 2012.
+#: ../src/lm_constructors.js:366
+msgid "Mar"
+msgstr "мар"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "04/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Apr 2012.
+#: ../src/lm_constructors.js:371
+msgid "Apr"
+msgstr "апр"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "05/28/2012" +"%b". It is part of a
+#. release date. For example: 28 May 2012.
+#: ../src/lm_constructors.js:376
+msgid "May"
+msgstr "май"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "06/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Jun 2012.
+#: ../src/lm_constructors.js:381
+msgid "Jun"
+msgstr "юни"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "07/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Jul 2012.
+#: ../src/lm_constructors.js:386
+msgid "Jul"
+msgstr "юли"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "08/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Aug 2012.
+#: ../src/lm_constructors.js:391
+msgid "Aug"
+msgstr "авг"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "09/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Sep 2012.
+#: ../src/lm_constructors.js:396
+msgid "Sep"
+msgstr "сеп"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "10/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Oct 2012.
+#: ../src/lm_constructors.js:401
+msgid "Oct"
+msgstr "окт"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "11/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Noe 2012.
+#: ../src/lm_constructors.js:406
+msgid "Noe"
+msgstr "ное"
+
+#. TRANSLATORS: This is abbreviated month name. The same as
+#. the output of date --date "12/28/2012" +"%b". It is part of a
+#. release date. For example: 28 Dec 2012.
+#: ../src/lm_constructors.js:411
+msgid "Dec"
+msgstr "дек"
+
+#. TRANSLATORS: Add your name here and it will be visible in
+#. the about box. One person per line.
+#: ../src/lm_constructors.js:415
+msgid "__translators"
+msgstr "Ивайло Вълков <address@hidden>"
+
+#. TRANSLATORS: This is the direction of the language you are
+#. translating. It should be translated as "ltr" for left-to-right
+#. languages and "rtl" for right-to-left languages. If you don't know
+#. it is probably "ltr".
+#: ../src/lm_constructors.js:421
+msgid "__direction"
+msgstr "ltr"
+
+#: ../src/lm_create_video_object.js:98
+msgid "About"
+msgstr "Относно"
+
+#: ../src/lm_create_video_object.js:126
+msgid "Download"
+msgstr "Запазване"
+
+#: ../src/lm_create_video_object.js:127
+msgid "Save the video clip"
+msgstr "Запазване на видео клипа"
+
+#: ../src/lm_create_video_object.js:156
+msgid "HQ"
+msgstr "ВК"
+
+#: ../src/lm_create_video_object.js:157
+msgid "Higher quality"
+msgstr "Високо качество"
+
+#: ../src/lm_create_video_object.js:239
+msgid "Loading video..."
+msgstr "Зареждане на клипа…"
+
+#: ../src/lm_create_video_object.js:266
+msgid "Waiting for video plugin..."
+msgstr "Изчакване на приставката за видео клипове…"
+
+#: ../src/lm_detect_object_in_remote_site.js:176
+msgid "Watch this video at it's original site with Linterna Mágica"
+msgstr "Гледайте този видео клип на неговата уеб страница с Linterna Mágica"
+
+#: ../src/lm_detect_object_in_remote_site.js:187
+msgid "Remove this button, if it overlaps images or text in the page."
+msgstr "Премахнете този бутон, ако скрива изображения или текст от страницата."
+
+#. TRANSLATORS: This showed as tooltip when the mouse cursor is
+#. above the play button.
+#: ../src/lm_interface_player_web_buttons.js:197
+msgid "Play"
+msgstr "Изпълнение"
+
+#. TRANSLATORS: This is showed as tooltip when the mouse cursor is
+#. above the pause button.
+#: ../src/lm_interface_player_web_buttons.js:244
+msgid "Pause"
+msgstr "Пауза"
+
+#. TRANSLATORS: This is showed as a tooltip when the mouse cursor
+#. is above the stop button.
+#: ../src/lm_interface_player_web_buttons.js:284
+msgid "Stop"
+msgstr "Спиране"
+
+#: ../src/lm_interface_player_web_buttons.js:328
+#: ../src/lm_interface_player_web_buttons.js:361
+msgid "Time"
+msgstr "Време"
+
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the volume slider and the sound is *not*
+#. muted.
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the volume slider knob and the sound is
+#. *not* muted.
+#: ../src/lm_interface_player_web_buttons.js:455
+#: ../src/lm_interface_player_web_buttons.js:490
+#: ../src/lm_interface_player_web_buttons.js:642
+#: ../src/lm_interface_player_web_buttons.js:647
+msgid "Volume control"
+msgstr "Сила на звука"
+
+#. TRANSLATORS: This is showed as a tooltip when the mouse cursor
+#. is above the mute button.
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the mute button and the sound is *not*
+#. muted.
+#: ../src/lm_interface_player_web_buttons.js:565
+#: ../src/lm_interface_player_web_buttons.js:630
+msgid "Mute"
+msgstr "Заглушаване"
+
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the mute button and the sound is muted.
+#: ../src/lm_interface_player_web_buttons.js:602
+msgid "Unmute"
+msgstr "Премахване на заглушаването"
+
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the text in volume slider and the sound is
+#. muted.
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the volume slider and the sound is muted.
+#. TRANSLATORS: This is showed as tooltip when the mouse
+#. cursor is above the volume slider knob and the sound is
+#. muted.
+#: ../src/lm_interface_player_web_buttons.js:613
+#: ../src/lm_interface_player_web_buttons.js:617
+#: ../src/lm_interface_player_web_buttons.js:622
+msgid "Muted"
+msgstr "Заглушен"
+
+#. TRANSLATORS: This is showed as a tooltip when the mouse cursor
+#. is above the fullscreen button.
+#: ../src/lm_interface_player_web_buttons.js:666
+msgid "Fullscreen"
+msgstr "На цял екран"
+
+#: ../src/lm_interface_toggle_plugin.js:70
+msgid "HTML5"
+msgstr "HTML5"
+
+#: ../src/lm_interface_toggle_plugin.js:74
+msgid "Plugin"
+msgstr "Приставка"
+
+#: ../src/lm_interface_toggle_plugin.js:86
+msgid "Switch between site's HTML5 player and Linterna Mágica"
+msgstr ""
+"Превключване между възпрозивеждане чрез HTML5, предоставено от страницата и "
+"Linterna Mágica"
+
+#: ../src/lm_interface_toggle_plugin.js:93
+msgid "Switch between flash plugin and Linterna Mágica"
+msgstr "Превключване между приставката за флаш и Linterna Mágica"
+
+#: ../src/lm_log.js:146 ../src/lm_log.js:230
+msgid "Linterna Mágica error and debug messages"
+msgstr "Съобщения за отстраняване на грешки в Linterna Mágica"
+
+#: ../src/lm_log.js:154
+msgid "Remove log"
+msgstr "Премахване на обекта"
+
+#: ../src/lm_log.js:170
+msgid "Show/hide debug messages"
+msgstr "Показване/скриване на съобщенията за отстраняване на грешки"
+
+#: ../src/lm_log.js:234
+msgid "Debug messages"
+msgstr "Отстраняване на грешки"
+
+#: ../src/lm_player_button_functions.js:121
+#: ../src/lm_player_button_functions.js:158
+#: ../src/lm_player_button_functions.js:195
+#: ../src/lm_player_button_functions.js:237
+msgid "Loading"
+msgstr "Зареждане"
+
+#: ../src/lm_player_button_functions.js:124
+#: ../src/lm_player_button_functions.js:161
+msgid "Buffering"
+msgstr "Буфериране"
+
+#: ../src/lm_player_button_functions.js:240
+msgid "Waiting plugin"
+msgstr "Изчакване на приставката"
+
+#: ../src/lm_site_livestreamcom.js:141
+msgid "RTSP link"
+msgstr "Връзка тип „RTSP“"
+
+#: ../src/lm_site_livestreamcom.js:146
+msgid "Progressive link"
+msgstr "Връзка тип „Progressive“"
+
+#: ../src/lm_site_youtube.js:101
+msgid "Unkown container"
+msgstr "Непознат контейнер"
+
+#: ../src/lm_site_youtube.js:127
+msgid "Unkown encoding"
+msgstr "Непознато кодиране"

Modified: trunk/src/lm_about.js
===================================================================
--- trunk/src/lm_about.js       2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/src/lm_about.js       2011-10-09 15:22:38 UTC (rev 206)
@@ -50,30 +50,33 @@
        box.appendChild(p);
     }
 
-    // Translators 
+    // Extract translators 
     if (this.languages[this.lang] &&
        this.languages[this.lang].__translators)
     {
-       var transl = null;
+       var translation = null;
+
        if (typeof (this.languages[this.lang].__translators) == "object")
        {
-           transl = this.languages[this.lang].__translators;
+           translation = this.languages[this.lang].__translators;
        }
        else
        {
-           transl = new Array();
-           transl.push(this.languages[this.lang].__translators);
+           translation = new Array();
+           translation.push(this.languages[this.lang].__translators);
        }
 
        p = document.createElement("p");
+
+       // Translated by
        text = document.createTextNode(this._("Translation")+":");
        p.appendChild(text);
        box.appendChild(p);
 
-       for (var l=0, length=transl.length; l< length; l++)
+       for (var l=0, length=translation.length; l< length; l++)
        {
            p = document.createElement("p");
-           text = document.createTextNode(transl[l]);
+           text = document.createTextNode(translation[l]);
            p.appendChild(text);
            box.appendChild(p);
        }

Modified: trunk/src/lm_constructors.js
===================================================================
--- trunk/src/lm_constructors.js        2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/src/lm_constructors.js        2011-10-09 15:22:38 UTC (rev 206)
@@ -343,3 +343,80 @@
        __direction: "ltr",
        __translators: null,
     };
+
+// Translatable strings extracted from variables, objects or pages
+// that have to be present for intltool-update. This function is
+// remove at runtime (or build time) to free memory. These strings are
+// never used and accessed by calling this function. 
+LinternaMagica.prototype.static_strings = function()
+{
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "01/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Jan 2012.
+    this.N_("Jan");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "02/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Feb 2012.
+    this.N_("Feb");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "03/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Mar 2012.
+    this.N_("Mar");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "04/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Apr 2012.
+    this.N_("Apr");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "05/28/2012" +"%b". It is part of a
+    // release date. For example: 28 May 2012.
+    this.N_("May");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "06/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Jun 2012.
+    this.N_("Jun");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "07/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Jul 2012.
+    this.N_("Jul");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "08/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Aug 2012.
+    this.N_("Aug");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "09/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Sep 2012.
+    this.N_("Sep");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "10/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Oct 2012.
+    this.N_("Oct");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "11/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Noe 2012.
+    this.N_("Noe");
+
+    // TRANSLATORS: This is abbreviated month name. The same as
+    // the output of date --date "12/28/2012" +"%b". It is part of a
+    // release date. For example: 28 Dec 2012.
+    this.N_("Dec");
+
+    // TRANSLATORS: Add your name here and it will be visible in
+    // the about box. One person per line.
+    this.N_("__translators");
+
+    // TRANSLATORS: This is the direction of the language you are
+    // translating. It should be translated as "ltr" for left-to-right
+    // languages and "rtl" for right-to-left languages. If you don't know
+    // it is probably "ltr".
+    this.N_("__direction");
+};

Modified: trunk/src/lm_detect_object_in_remote_site.js
===================================================================
--- trunk/src/lm_detect_object_in_remote_site.js        2011-10-05 19:50:14 UTC 
(rev 205)
+++ trunk/src/lm_detect_object_in_remote_site.js        2011-10-09 15:22:38 UTC 
(rev 206)
@@ -172,10 +172,11 @@
     var a = this.pack_external_link(object_data.remote_site_link,
                                    "Linterna Mágica >>");
 
+    var title = this.
+       _("Watch this video at it's original site with Linterna Mágica");
+
     a.setAttribute("class", "linterna-magica-toggle-plugin");
-    a.setAttribute("title", this._("Watch this video at it's original"+
-                                  " site with Linterna Mágica")+
-                  " ("+object_data.remote_site_link+")");
+    a.setAttribute("title", title + " ("+object_data.remote_site_link+")");
 
     p.appendChild(a);
 

Modified: trunk/src/lm_interface_player_web_buttons.js
===================================================================
--- trunk/src/lm_interface_player_web_buttons.js        2011-10-05 19:50:14 UTC 
(rev 205)
+++ trunk/src/lm_interface_player_web_buttons.js        2011-10-09 15:22:38 UTC 
(rev 206)
@@ -39,12 +39,8 @@
 
     var started_clip = this.find_started_clip();
 
-    var play = document.createElement("a");
-    play.setAttribute("class", "linterna-magica-controls-buttons "+
-                     "linterna-magica-controls-buttons-play");
-    play.setAttribute("href", "#");
-    play.setAttribute("title", this._("Play"));
-    play.textContent ="Pl";
+    var play = this.create_play_button(object_data);
+
     // Only pause button should be visible on autostart
     // Auto start only if no other clip is playing.
     if (this.autostart && started_clip == null)
@@ -54,31 +50,15 @@
 
     var play_click_function = function(ev)
     {
-       ev.preventDefault();
-
-       this.style.setProperty("display", "none", "important");
-
-       this.nextSibling.style.removeProperty("display");
-
-       self.player.play.apply(self, [id]);
-
-       // Start the time ticker
-       self.player_timers[id] = setInterval(
-           function()
-           {
-               self.ticker.apply(self, [id]);
-           }, 500);
+       var el = this;
+       self.play_button_click_event.apply(self, [ev, el]);
     };
 
     play.addEventListener("click", play_click_function, false);
     controls.appendChild(play);
 
-    var pause = document.createElement("a");
-    pause.setAttribute("class", "linterna-magica-controls-buttons "+
-                      "linterna-magica-controls-buttons-pause");
-    pause.setAttribute("href", "#");
-    pause.setAttribute("title", this._("Pause"));
-    pause.textContent ="Pa";
+    var pause = this.create_pause_button(object_data);
+
     // Only play button should be visible if !autostart or another
     // clip is strated.
     if (!this.autostart || started_clip !== null)
@@ -88,85 +68,35 @@
 
     var pause_click_function = function(ev)
     {
-       ev.preventDefault();
-       this.style.
-           setProperty("display", "none", "important");
-
-       this.previousSibling.style.removeProperty("display");
-
-       self.player.pause.apply(self, [id]);
-
-       // Stop the time ticker
-       clearInterval(self.player_timers[id]);
-       delete self.player_timers[id];
+       var el = this;
+       self.pause_button_click_event.apply(self, [ev, el]);
     };
 
     pause.addEventListener("click", pause_click_function, false);
     controls.appendChild(pause);
 
-    var stop = document.createElement("a");
-    stop.setAttribute("class", "linterna-magica-controls-buttons "+
-                     "linterna-magica-controls-buttons-stop");
-    stop.setAttribute("href", "#");
-    stop.setAttribute("title", this._("Stop"));
-    stop.textContent ="St";
+    var stop = this.create_stop_button(object_data);
 
     var stop_click_function = function(ev)
     {
-       ev.preventDefault();
-       // pause
-       this.previousSibling.style.setProperty("display", 
-                                              "none", "important");
-       // play button
-       var play = this.previousSibling.previousSibling;
-       play.style.removeProperty("display");
-
-       self.player.stop.apply(self, [id]);
-
-       // Stop the time ticker
-       clearInterval(self.player_timers[id]);
-       delete self.player_timers[id];
+       var el = this;
+       self.stop_button_click_event.apply(self, [ev, el]);
     };
 
     stop.addEventListener("click", stop_click_function, false);
     controls.appendChild(stop);
 
-    var time_slider = document.createElement("div");
-    time_slider.setAttribute("title", this._("Time"));
+    var time_slider = this.create_time_slider(object_data);
 
-    time_slider.setAttribute("class",
-                            "linterna-magica-controls-horizontal-slider");
-
-    // The slider width is calculated from
-    // the object width.  We have 6 buttons
-    // (width + border +padding +
-    // margin). Remove the padding, margin,
-    // border for each slider (2) : 2*x (
-    // padding + border + margin)
-    // The time slider uses 3/4 of the space
-    var time_width = parseInt(((object_data.width - (4 * 21)) * 3/4)-12);
-    time_slider.style.setProperty("width",
-                                 time_width+"px",
-                                 "important");
-
-    time_slider.style.setProperty("position", "relative", "important");
-
+    // User agent sniffing is ugly and not recommended. Is it there a
+    // better way?
     var mouse_scroll = /WebKit/i.test(navigator.userAgent) ?
        "mousewheel" : "DOMMouseScroll";
 
     var time_slider_scroll_function = function(ev)
     {
-       ev.preventDefault();
-       var pos = self.slider_control.apply(self, [ev]);
-
-       if (pos.direction > 0)
-       {
-           self.player.forward.apply(self,[id,pos.val]);
-       }
-       else
-       {
-           self.player.rewind.apply(self,[id,pos.val]);
-       }
+       var el = this;
+       self.time_slider_scroll_event.apply(self, [ev, el]);
     };
 
     time_slider.addEventListener(mouse_scroll, 
@@ -174,31 +104,247 @@
 
     var time_slider_click_function =  function(ev)
     {
-       ev.preventDefault();
-       // Stop the time ticker
-       clearInterval(self.player_timers[id]);
-       delete self.player_timers[id];
+       var el = this;
+       self.time_slider_click_event.apply(self, [ev, el]);
+    };
 
-       var pos =  self.slider_control.apply(self, [ev]);
+    time_slider.addEventListener("click", time_slider_click_function, false);
 
-       if (pos.direction > 0)
-       {
-           self.player.forward.apply(self,[id,pos.val]);
-       }
-       else
-       {
-           self.player.rewind.apply(self,[id,pos.val]);
-       }
+    var time_knob = time_slider.getElementsByTagName("a")[0];
 
-       self.player_timers[id] = setInterval(
-           function()
-           {
-               self.ticker.apply(self,[id]);
-           }, 500);
+    time_knob.addEventListener("mousedown", function(ev)
+                              {
+                                  ev.preventDefault();
+                                  // Stop the time ticker
+                                  clearInterval(self.player_timers[id]);
+                                  delete self.player_timers[id];
+
+                                  self.slider_control.apply(self, [ev]);
+                              }, false);
+
+    controls.appendChild(time_slider);
+
+    var volume_slider  = this.create_volume_slider(object_data);
+    var volume_text = volume_slider.getElementsByTagName("span")[0];
+
+    var volume_slider_scroll_function = function(ev)
+    {
+       var el = this;
+       self.volume_slider_scroll_event.apply(self, [ev, el]);
     };
 
-    time_slider.addEventListener("click", time_slider_click_function, false);
+    volume_slider.addEventListener(mouse_scroll,
+                                  volume_slider_scroll_function, false);
 
+    var volume_slider_click_function = function(ev)
+    {
+       var el = this;
+       self.volume_slider_click_event.apply(self, [ev, el]);
+    };
+
+    volume_slider.addEventListener("click",
+                                  volume_slider_click_function, false);
+
+    var volume_knob = volume_slider.getElementsByTagName("a")[0];
+
+    volume_knob.addEventListener("mousedown", function(ev)
+                                {
+                                    ev.preventDefault();
+                                    self.slider_control.apply(self, [ev]);
+                                }, false);
+
+    controls.appendChild(volume_slider);
+
+    var mute = this.create_mute_button(object_data);
+
+    var mute_click_function = function(ev)
+    {
+       var el = this;
+       self.mute_button_click_event.apply(self, [ev, el]);
+    };
+
+    mute.addEventListener("click", mute_click_function, false);
+    controls.appendChild(mute);
+
+    var fullscreen = this.create_fullscreen_button(object_data);
+
+    var fullscreen_click_function = function(ev)
+    {
+       var el = this;
+       self.fullscreen_button_click_event.apply(self, [ev, el]);
+    };
+                               
+    fullscreen.addEventListener("click",
+                               fullscreen_click_function, false);
+    controls.appendChild(fullscreen);
+
+    return controls;
+}
+
+// Create play button
+LinternaMagica.prototype.create_play_button = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+
+    var play = document.createElement("a");
+    play.setAttribute("class", "linterna-magica-controls-buttons "+
+                     "linterna-magica-controls-buttons-play");
+    play.setAttribute("id", "linterna-magica-controls-button-play-"+lm_id);
+    play.setAttribute("href", "#");
+
+    // TRANSLATORS: This showed as tooltip when the mouse cursor is
+    // above the play button.
+    play.setAttribute("title", this._("Play"));
+    play.textContent = "Pa";
+   
+    return play;
+}
+
+// The function executed on DOM click event for the play button
+LinternaMagica.prototype.play_button_click_event = function(event, element)
+{
+    event.preventDefault();
+
+    element.style.setProperty("display", "none", "important");
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-button-play-/,"");
+
+    // Show pause button.
+    var pause = 
document.getElementById("linterna-magica-controls-button-pause-"+id);
+    pause.style.removeProperty("display");
+
+    var self = this;
+    this.player.play.apply(self, [id]);
+
+    // Start the time ticker
+    this.player_timers[id] = setInterval(
+       function()
+       {
+           self.ticker.apply(self, [id]);
+       }, 500);
+}
+
+// Create pause button
+LinternaMagica.prototype.create_pause_button = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+
+    var pause = document.createElement("a");
+    pause.setAttribute("class", "linterna-magica-controls-buttons "+
+                      "linterna-magica-controls-buttons-pause");
+
+    pause.setAttribute("id", "linterna-magica-controls-button-pause-"+lm_id);
+
+    pause.setAttribute("href", "#");
+
+    // TRANSLATORS: This is showed as tooltip when the mouse cursor is
+    // above the pause button.
+    pause.setAttribute("title", this._("Pause"));
+    pause.textContent ="Pa";
+
+    return pause;
+}
+
+// The function executed on DOM click event for the pause button
+LinternaMagica.prototype.pause_button_click_event = function(event, element)
+{
+    event.preventDefault();
+
+    element.style.setProperty("display", "none", "important");
+
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-button-pause-/,"");
+
+    var play = 
document.getElementById("linterna-magica-controls-button-play-"+id);
+    play.style.removeProperty("display");
+
+    var self = this;
+    this.player.pause.apply(self, [id]);
+
+    // Stop the time ticker
+    clearInterval(self.player_timers[id]);
+    delete this.player_timers[id];
+}
+
+// Create stop button
+LinternaMagica.prototype.create_stop_button = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+
+    var stop = document.createElement("a");
+    stop.setAttribute("class", "linterna-magica-controls-buttons "+
+                     "linterna-magica-controls-buttons-stop");
+    stop.setAttribute("id", "linterna-magica-controls-button-stop-"+lm_id);
+    stop.setAttribute("href", "#");
+
+    // TRANSLATORS: This is showed as a tooltip when the mouse cursor
+    // is above the stop button.
+    stop.setAttribute("title", this._("Stop"));
+    stop.textContent ="St";
+    
+    return stop;
+}
+
+// The function executed on DOM click event for the stop button
+LinternaMagica.prototype.stop_button_click_event = function(event, element)
+{
+    event.preventDefault();
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-button-stop-/,"");
+
+    // Hide pause button.
+    var pause = 
+       document.getElementById("linterna-magica-controls-button-pause-"+id);
+    pause.style.setProperty("display", "none", "important");
+
+    // this.previousSibling.style.setProperty("display", 
+    //                                            "none", "important");
+    // play button
+    var play =
+       document.getElementById("linterna-magica-controls-button-play-"+id);
+    // var play = this.previousSibling.previousSibling;
+    play.style.removeProperty("display");
+
+    var self = this;
+    this.player.stop.apply(self, [id]);
+
+    // Stop the time ticker
+    clearInterval(self.player_timers[id]);
+    delete this.player_timers[id];
+}
+
+// Create time slider
+LinternaMagica.prototype.create_time_slider = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+    var self = this;
+
+    var time_slider = document.createElement("div");
+
+    time_slider.setAttribute("title", this._("Time"));
+
+    time_slider.setAttribute("class",
+                            "linterna-magica-controls-horizontal-slider");
+    time_slider.setAttribute("id",
+                            "linterna-magica-controls-time-slider-"+lm_id);
+
+    // The slider width is calculated from the object width.
+    // 
+    // We have 6 buttons (width + border +padding + margin).
+    //
+    // Remove the padding, margin, border for each slider (2): 2*x
+    // (padding + border + margin)
+    //
+    // The time slider uses 3/4 of the space
+    var time_width = parseInt(((object_data.width - (4 * 21)) * 3/4)-12);
+    time_slider.style.setProperty("width", time_width+"px", "important");
+
+    time_slider.style.setProperty("position", "relative", "important");
+
     var time_knob_move = null;
 
     if (this.languages[this.lang].__direction == "ltr" ||
@@ -214,83 +360,113 @@
     var time_knob = document.createElement("a");
     time_knob.setAttribute("title", this._("Time"));
     time_knob.setAttribute("class", "linterna-magica-controls-slider-knob");
-    time_knob.setAttribute("id",
-                          "linterna-magica-controls-time-slider-knob-"+id);
+    time_knob.setAttribute("id", "linterna-magica-controls-"+
+                          "time-slider-knob-"+lm_id);
+
     time_knob.style.setProperty(time_knob_move, "0px", "important");
 
     time_knob.setAttribute("href", "#");
-    time_knob.addEventListener("mousedown", function(ev)
-                              {
-                                  ev.preventDefault();
-                                  // Stop the time ticker
-                                  clearInterval(self.player_timers[id]);
-                                  delete self.player_timers[id];
 
-                                  self.slider_control.apply(self, [ev]);
-                              }, false);
-
     time_slider.appendChild(time_knob);
 
     var time_text = document.createElement("span");
     time_text.style.display = "none";
     time_text.setAttribute("class", "linterna-magica-controls-slider-text");
-    time_text.setAttribute("id",
-                          "linterna-magica-controls-time-slider-text-"+id);
+    time_text.setAttribute("id", "linterna-magica-controls-"+
+                          "time-slider-text-"+lm_id);
+
     time_text.textContent="--:--:--";
     time_text.style.setProperty("left",
                                parseInt(time_width/2)+"px",
                                "important");
 
     time_slider.appendChild(time_text);
-    controls.appendChild(time_slider);
 
+    return time_slider;
+}
 
-    // Appended after volume_knob. See below
-    var volume_text = document.createElement("span");
+// The function executed on DOM scroll event for the time slider
+LinternaMagica.prototype.time_slider_scroll_event = function (event, element)
+{
+    event.preventDefault();
+    var self = this;
 
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-time-slider-/,"");
+
+    var pos = this.slider_control.apply(self, [event]);
+    
+    if (pos.direction > 0)
+    {
+       this.player.forward.apply(self,[id,pos.val]);
+    }
+    else
+    {
+       this.player.rewind.apply(self,[id,pos.val]);
+    }
+}
+
+// The function executed on DOM click event for the time slider
+LinternaMagica.prototype.time_slider_click_event = function (event, element)
+{
+    event.preventDefault();
+    var self = this;
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-time-slider-/,"");
+
+    // Stop the time ticker
+    clearInterval(this.player_timers[id]);
+    delete this.player_timers[id];
+
+    var pos =  this.slider_control.apply(self, [event]);
+
+    if (pos.direction > 0)
+    {
+       this.player.forward.apply(self,[id,pos.val]);
+    }
+    else
+    {
+       this.player.rewind.apply(self,[id,pos.val]);
+    }
+
+    this.player_timers[id] =
+       setInterval(
+           function()
+           {
+               self.ticker.apply(self,[id]);
+           }, 500);
+}
+
+// Create volume slider
+LinternaMagica.prototype.create_volume_slider = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+    var self = this;
+
     var volume_slider = document.createElement("div");
+
     volume_slider.setAttribute("class",
                               "linterna-magica-controls-horizontal-slider");
+    volume_slider.setAttribute("id", "linterna-magica-controls-"+
+                              "volume-slider-"+lm_id);
     volume_slider.setAttribute("title", this._("Volume control"));
 
-    // The slider width is calculated from
-    // the object width.  We have 6 buttons
-    // (width + border +padding +
-    // margin) Remove the padding, margin,
-    // border for each slider (2) : 2 * x (
-    // padding + border + margin)
+    // The slider width is calculated from the object width.
+    // 
+    // We have 6 buttons (width + border +padding + margin)
+    // 
+    // Remove the padding, margin, border for each slider (2): 2 * x
+    // (padding + border + margin)
+    //
     // The volume slider uses 1/4 of the space
     var volume_width = parseInt(((object_data.width - (4 * 21)) * 1/4)-12);
     volume_slider.style.setProperty("width",
                                    volume_width+"px",
                                    "important");
 
-    var volume_slider_scroll_function = function(ev)
-    {
-       ev.preventDefault();
-       var pos = self.slider_control.apply(self, [ev]);
-
-       self.player.set_volume.apply(self, [id, pos.val]);
-
-       volume_text.textContent = pos.val;
-    };
-
-    volume_slider.addEventListener(mouse_scroll,
-                                  volume_slider_scroll_function, false);
-
-    var volume_slider_click_function = function(ev)
-    {
-       ev.preventDefault();
-       var pos = self.slider_control.apply(self, [ev]);
-
-       self.player.set_volume.apply(self, [id, pos.val]);
-
-       volume_text.textContent = pos.val;
-    };
-
-    volume_slider.addEventListener("click",
-                                  volume_slider_click_function, false);
-
     var volume_knob_move = null;
 
     if (this.languages[this.lang].__direction == "ltr" ||
@@ -306,28 +482,20 @@
     var volume_knob = document.createElement("a");
     volume_knob.setAttribute("class", "linterna-magica-controls-slider-knob");
     volume_knob.setAttribute("id",
-                            "linterna-magica-controls-volume-slider-knob-"+id);
-    // If this is enabled it crops the css image
-    // Fixes the knob width for small object widths
-    // volume_knob.style.setProperty("width",
-    //                                   parseInt(volume_width*10/100)+"px",
-    //                                   "important");
+                            "linterna-magica-controls-"+
+                            "volume-slider-knob-"+lm_id);
+
     volume_knob.style.setProperty(volume_knob_move, "0px", "important");
     volume_knob.setAttribute("href", "#");
     volume_knob.setAttribute("title", this._("Volume control"));
-    volume_knob.addEventListener("mousedown", function(ev)
-                                {
-                                    ev.preventDefault();
-                                    self.slider_control.apply(self, [ev]);
-                                }, false);
 
     volume_slider.appendChild(volume_knob);
 
-    controls.appendChild(volume_slider);
-
+    var volume_text = document.createElement("span");
     volume_text.setAttribute("class",
                             "linterna-magica-controls-slider-text");
-
+    volume_text.setAttribute("id", "linterna-magica-controls-"+
+                            "volume-slider-text-"+lm_id);
     volume_text.style.setProperty("left",
                                  parseInt(volume_width/3)+"px",
                                  "important");
@@ -335,80 +503,181 @@
     volume_text.textContent = "--";
     volume_slider.appendChild(volume_text);
 
+    return volume_slider;
+}
+
+// The function executed on DOM scroll event for the volume slider
+LinternaMagica.prototype.volume_slider_scroll_event = function (event, element)
+{
+    event.preventDefault();
+    var self = this;
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-volume-slider-/,"");
+
+    event.preventDefault();
+    var pos = self.slider_control.apply(self, [event]);
+
+    this.player.set_volume.apply(self, [id, pos.val]);
+
+    var volume_text =
+       document.getElementById("linterna-magica-controls-"+
+                               "volume-slider-text-"+id);
+
+    volume_text.textContent = pos.val;
+}
+
+// The function executed on DOM click event for the volume slider
+LinternaMagica.prototype.volume_slider_click_event = function (event, element)
+{
+    event.preventDefault();
+    var self = this;
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-volume-slider-/,"");
+    
+    event.preventDefault();
+    var pos = self.slider_control.apply(self, [event]);
+
+    this.player.set_volume.apply(self, [id, pos.val]);
+
+    var volume_text =
+       document.getElementById("linterna-magica-controls-"+
+                               "volume-slider-text-"+id);
+    volume_text.textContent = pos.val;
+}
+
+// Create mute button
+LinternaMagica.prototype.create_mute_button = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+
     var mute = document.createElement("a");
     mute.setAttribute("class", "linterna-magica-controls-buttons "+
                      "linterna-magica-controls-buttons-mute");
+    mute.setAttribute("id", "linterna-magica-controls-button-mute-"+lm_id);
     mute.setAttribute("href", "#");
+
+    // TRANSLATORS: This is showed as a tooltip when the mouse cursor
+    // is above the mute button.
     mute.setAttribute("title", this._("Mute"));
     mute.textContent ="M";
 
-    var mute_click_function = function(ev)
+    return mute;
+}
+
+// The function executed on DOM click event for the mute button
+LinternaMagica.prototype.mute_button_click_event = function (event, element)
+{
+    event.preventDefault();
+
+    var self = this;
+    var mute = element;
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-button-mute-/,"");
+
+    var volume =
+       this.player.toggle_mute.apply(self,[id]);
+
+    var volume_slider =
+       document.getElementById("linterna-magica-controls-"+
+                               "volume-slider-"+id);
+                                               
+    var volume_knob = 
+       document.getElementById("linterna-magica-controls-"+
+                           "volume-slider-knob-"+id);
+
+    var volume_text =
+       document.getElementById("linterna-magica-controls-"+
+                           "volume-slider-text-"+id);
+
+    if (/M/i.test(mute.textContent))
     {
-       ev.preventDefault();
-       var volume =
-           self.player.toggle_mute.apply(self,[id]);
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the mute button and the sound is muted.
+       mute.setAttribute("title", this._("Unmute"));
+       mute.textContent = "U";
 
-       if (/M/i.test(mute.textContent))
-       {
-           mute.textContent = "U";
-           mute.setAttribute("title", self._.apply(self, ["Unmute"]));
+       mute.setAttribute("class",
+                         "linterna-magica-controls-buttons "+
+                         "linterna-magica-controls-"+
+                         "buttons-unmute");
 
-           mute.setAttribute(
-               "class",
-               "linterna-magica-controls-buttons "+
-                   "linterna-magica-controls-"+
-                   "buttons-unmute");
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the text in volume slider and the sound is
+       // muted.
+       volume_text.setAttribute("title", this._("Muted"));
 
-           volume_text.textContent = "0%";
-           volume_text.setAttribute("title",
-                                    self._.apply(self, ["Muted"]));
-           volume_slider.setAttribute("title",
-                                      self._.apply(self, ["Muted"]));
-           volume_knob.setAttribute("title",
-                                    self._.apply(self, ["Muted"]));
-       }
-       else
-       {
-           mute.textContent = "M";
-           mute.setAttribute("title", self._.apply(self, ["Mute"]));
-           volume_text.textContent = volume;
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the volume slider and the sound is muted.
+       volume_slider.setAttribute("title",this._("Muted"));
 
-           volume_text.removeAttribute("title");
-           mute.setAttribute(
-               "class",
-               "linterna-magica-controls-buttons "+
-                   "linterna-magica-controls-"+
-                   "buttons-mute");
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the volume slider knob and the sound is
+       // muted.
+       volume_knob.setAttribute("title",this._("Muted"));
+       volume_text.textContent = "0%";
+    }
+    else
+    {
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the mute button and the sound is *not*
+       // muted.
+       mute.setAttribute("title", this._("Mute"));
+       mute.textContent = "M";
 
-           volume_slider.
-               setAttribute("title",
-                            self._.apply(self, ["Volume control"]));
-           volume_knob.
-               setAttribute("title",
-                            self._.apply(self, ["Volume control"]));
-       }
-    };
+       volume_text.textContent = volume;
 
-    mute.addEventListener("click", mute_click_function, false);
-    controls.appendChild(mute);
+       volume_text.removeAttribute("title");
+       mute.setAttribute("class", "linterna-magica-controls-buttons "+
+                         "linterna-magica-controls-buttons-mute");
 
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the volume slider and the sound is *not*
+       // muted.
+       volume_slider.setAttribute("title", this._("Volume control"));
+
+       // TRANSLATORS: This is showed as tooltip when the mouse
+       // cursor is above the volume slider knob and the sound is
+       // *not* muted.
+       volume_knob.setAttribute("title", this._("Volume control"));
+    }
+}
+
+// Create fullscreen button
+LinternaMagica.prototype.create_fullscreen_button = function(object_data)
+{
+    var lm_id = object_data.linterna_magica_id;
+
     var fullscreen = document.createElement("a");
     fullscreen.setAttribute(
        "class", "linterna-magica-controls-buttons "+
            "linterna-magica-controls-buttons-fullscreen");
+    fullscreen.setAttribute("id", 
+                           
"linterna-magica-controls-button-fullscreen-"+lm_id);
     fullscreen.setAttribute("href", "#");
+
+    // TRANSLATORS: This is showed as a tooltip when the mouse cursor
+    // is above the fullscreen button.
     fullscreen.setAttribute("title", this._("Fullscreen"));
     fullscreen.textContent ="Fs";
 
-    var fullscreen_click_function = function(ev)
-    {
-       ev.preventDefault();
-       self.player.fullscreen.apply(self, [id]);
-    };
-                               
-    fullscreen.addEventListener("click",
-                               fullscreen_click_function, false);
-    controls.appendChild(fullscreen);
+    return fullscreen;
+}
 
-    return controls;
+// The function executed on DOM click event for the fullscreen button
+LinternaMagica.prototype.fullscreen_button_click_event = function (event, 
element)
+{
+    event.preventDefault();
+
+    // Linterna Magica object id
+    var id = element.getAttribute("id").
+       replace(/linterna-magica-controls-button-fullscreen-/,"");
+
+    var self = this;
+    this.player.fullscreen.apply(self, [id]);
 }

Modified: trunk/src/lm_interface_toggle_plugin.js
===================================================================
--- trunk/src/lm_interface_toggle_plugin.js     2011-10-05 19:50:14 UTC (rev 
205)
+++ trunk/src/lm_interface_toggle_plugin.js     2011-10-09 15:22:38 UTC (rev 
206)
@@ -82,15 +82,17 @@
 
     if (/html5/i.test(switch_type))
     {
-       toggle_plugin.setAttribute("title",
-                                  this._("Switch between site's HTML5 "+
-                                         "player and Linterna Mágica"));
+       var title = this.
+           _("Switch between site's HTML5 player and Linterna Mágica");
+
+       toggle_plugin.setAttribute("title", title);
     }
     else
     {
-       toggle_plugin.setAttribute("title",
-                                  this._("Switch between flash plugin"+
-                                         " and Linterna Mágica"));
+       var title = this.
+           _("Switch between flash plugin and Linterna Mágica");
+
+       toggle_plugin.setAttribute("title",title);
     }
 
     return wrapper ? wrapper : toggle_plugin;

Added: trunk/src/lm_locale_userscript_template.js
===================================================================
--- trunk/src/lm_locale_userscript_template.js                          (rev 0)
+++ trunk/src/lm_locale_userscript_template.js  2011-10-09 15:22:38 UTC (rev 
206)
@@ -0,0 +1,97 @@
+//  @licstart The following is the entire license notice for the
+//  JavaScript code in this page (or file).
+//
+//  This file is part of Linterna Mágica
+//
+//  Copyright (C) 2010, 2011  Ivaylo Valkov <address@hidden>
+//  Copyright (C) 2010  Anton Katsarov <address@hidden>
+//
+// 
+//  The JavaScript code in this page (or file) is free software: you
+//  can redistribute it and/or modify it under the terms of the GNU
+//  General Public License (GNU GPL) as published by the Free Software
+//  Foundation, either version 3 of the License, or (at your option)
+//  any later version.  The code is distributed WITHOUT ANY WARRANTY
+//  without even the implied warranty of MERCHANTABILITY or FITNESS
+//  FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+//
+//  As additional permission under GNU GPL version 3 section 7, you
+//  may distribute non-source (e.g., minimized or compacted) forms of
+//  that code without the copy of the GNU GPL normally required by
+//  section 4, provided you include this license notice and a URL
+//  through which recipients can access the Corresponding Source.
+//
+//  @licend The above is the entire license notice for the JavaScript
+//  code in this page (or file).
+//
+// @source http://linterna-magica.nongnu.org
+
+// ==UserScript==
+// @name           Linterna Mágica l10n @LOCALE@
+// @namespace Linterna Mágica
+// @description  @LOCALE_NAME@ localisation for Linterna Mágica version 
@address@hidden
+// @include        http://*
+// @include        https://*
+
+// ==/UserScript==
+
+var LM_L10N;
+
+var head = document.getElementsByTagName("head")[0];
+var script = document.createElement("script");
+
+script.setAttribute("type", "text/javascript");
+
+var script_data = 
+    "if (window.LinternaMagica_L10N == undefined)"+
+    "{"+
+    "window.LinternaMagica_L10N = new Object();"+
+    "}; ";
+
+for (var o in LM_L10N)
+{
+    script_data += "window.LinternaMagica_L10N['"+o+ "'] = "; 
+    if (/object/i.test(typeof(LM_L10N[o])))
+    {
+       script_data += "{";
+       for (var oo in LM_L10N[o])
+       {
+           if (/object/i.test(typeof(LM_L10N[o][oo])) &&
+               typeof(LM_L10N[o][oo].join) != "undefined")
+           {
+               // Array
+               script_data += '"'+oo+ '" : ["' +
+                   LM_L10N[o][oo].join('","')+'"],';
+           }
+           else if (/object/i.test(typeof(LM_L10N[o][oo])))
+           {
+               // Object
+               script_data += '"' +oo+'":{';
+               for (var ooo in LM_L10N[o][oo])
+               {
+                   script_data += '"'+ooo+ '" : "' +LM_L10N[o][oo][ooo]+'",';
+               }
+               script_data +='},';
+           }
+           else
+           {
+               // String or number
+               script_data += '"'+oo+ '" : "' +LM_L10N[o][oo]+'",';
+           }
+       }
+       script_data += "};";
+    }
+    else
+    {
+       script_data += '"'+LM_L10N[o]+'"';
+    }
+}
+
+script_data += ";";
+
+script.textContent = script_data;
+
+head.appendChild(script);
+
+head.removeChild(script);
+LM_L10N = undefined;

Modified: trunk/src/lm_localisation.js
===================================================================
--- trunk/src/lm_localisation.js        2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/src/lm_localisation.js        2011-10-09 15:22:38 UTC (rev 206)
@@ -45,6 +45,19 @@
        use_lang[string] ? use_lang[string] : string : string ;
 }
 
+// Mimic gettext_noop. This is used for translatable strings that are
+// extracted from variable or objects (DOM, strings from pages,
+// browser data). Such strings have to be available somewhere in the
+// source code, so intltool-update could extract them while updating
+// PO and POT files.
+LinternaMagica.prototype.N_ = function (string)
+{
+    // Should we really bother? The intent is N_() to never be
+    // executed. It is only available for intltool-update. All data
+    // referring to it will be remove at runtime to free memory.
+    return this._(string);
+}
+
 // Examines navigator.language and sets this.env_lang (en_US, en_UK,
 // bg_BG; etc)
 LinternaMagica.prototype.set_env_lang = function()

Modified: trunk/src/lm_run.js
===================================================================
--- trunk/src/lm_run.js 2011-10-05 19:50:14 UTC (rev 205)
+++ trunk/src/lm_run.js 2011-10-09 15:22:38 UTC (rev 206)
@@ -38,6 +38,11 @@
 // single scope.
 function linterna_magica_init ()
 {
+    // Remove the strings marked for translation extracted from
+    // variables and objects. Needed only for inttool-update. Frees
+    // memory.
+    delete LinternaMagica.static_strings;
+
     window.linterna_magica_init_counter ++;
 
     var ready_to_init = 0;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]