Package: ruby-gettext Version: 2.2.1-2 Severity: normal Hello, thanks for maintaining ruby-gettext in Debian!
I noticed a bug in rgettext. I prepared a small test case to reproduce it. Let's consider the following short Ruby program: $ cat myapplication.rb #!/usr/bin/ruby1.8 # Copyright (C) 2012 Francesco Poli # # This program 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 2 of the License, or # (at your option) any later version. # # This program 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 with # the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL; # if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA require 'gettext' include GetText GetText::bindtextdomain("myapplication") count = 0 print _("Hello everybody!\n") count += 1 print _("You are running an internationalized Ruby program.\n") count += 1 # TRANSLATORS: %d is the number of already printed messages print _("You have already seen %d translatable messages.\n") % count print _("Is this message # 3 or # 4 ?\n") print _("OK, I am tired...\n") print _("Goodbye!\n") Suppose we want to generate the corresponding .pot file. We can use xgettext (from the gettext package): $ xgettext --add-comments=TRANSLATORS --no-wrap \ --copyright-holder="Francesco Poli" \ --package-name=myapplication --package-version=0.1 \ --msgid-bugs-address="addr...@example.com" \ --language=python \ myapplication.rb -o myapplication_XGETTEXT.pot $ cat myapplication_XGETTEXT.pot # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Francesco Poli # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: myapplication 0.1\n" "Report-Msgid-Bugs-To: addr...@example.com\n" "POT-Creation-Date: 2012-08-07 16:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: myapplication.rb:24 msgid "Hello everybody!\n" msgstr "" #: myapplication.rb:27 msgid "You are running an internationalized Ruby program.\n" msgstr "" #. TRANSLATORS: %d is the number of already printed messages #: myapplication.rb:31 #, python-format msgid "You have already seen %d translatable messages.\n" msgstr "" #: myapplication.rb:33 msgid "Is this message # 3 or # 4 ?\n" msgstr "" #: myapplication.rb:35 msgid "OK, I am tired...\n" msgstr "" #: myapplication.rb:37 msgid "Goodbye!\n" msgstr "" Everything seems to be OK. But the language is actually Ruby, not Python. Hence, rgettext should be the tool of choice. Let's try with rgettext, then: $ rgettext myapplication.rb -o myapplication_RGETTEXT.pot $ cat myapplication_RGETTEXT.pot # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2012-08-07 16:39+0200\n" "PO-Revision-Date: 2012-08-07 16:39+0200\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: myapplication.rb:24 msgid "Hello everybody!\n" msgstr "" #: myapplication.rb:27 msgid "You are running an internationalized Ruby program.\n" msgstr "" #. %d is the number of already printed messages #: myapplication.rb:31 msgid "You have already seen %d translatable messages.\n" msgstr "" #. %d is the number of already printed messages #: myapplication.rb:35 msgid "OK, I am tired...\n" msgstr "" #. %d is the number of already printed messages #: myapplication.rb:37 msgid "Goodbye!\n" msgstr "" Wait! Where is the string from line 33 ?!? It seems that it was wrongly skipped, since it contains hash symbols (#)... I think that this should not happen. Please fix this bug and/or forward this bug report upstream. Thanks for your time! -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (800, 'testing'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages ruby-gettext depends on: ii ruby 4.9 ii ruby-locale 2.0.5-5 ii ruby1.8 [ruby-interpreter] 1.8.7.358-4 ii ruby1.9.1 [ruby-interpreter] 1.9.3.194-1 ruby-gettext recommends no packages. ruby-gettext suggests no packages. -- no debconf information _______________________________________________ Pkg-ruby-extras-maintainers mailing list Pkg-ruby-extras-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ruby-extras-maintainers