From 89a376dcdc414071ff5912eec34bb9cc8cdfc699 Mon Sep 17 00:00:00 2001 From: Eddie Lau Date: Tue, 9 Aug 2011 03:32:33 +0800 Subject: [PATCH 1/2] print out msgctxt when it generates po entry --- lib/gettext/tools/rmsgmerge.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/gettext/tools/rmsgmerge.rb b/lib/gettext/tools/rmsgmerge.rb index 89028e9c..44741403 100644 --- a/lib/gettext/tools/rmsgmerge.rb +++ b/lib/gettext/tools/rmsgmerge.rb @@ -119,6 +119,13 @@ def generate_po_entry(msgid) id = msgid.gsub(/"/, '\"').gsub(/\r/, '') msgstr = @msgid2msgstr[msgid].gsub(/"/, '\"').gsub(/\r/, '') + if id.include?("\004") + ids = id.split(/\004/) + context = ids[0] + id = ids[1] + str << "msgctxt " << __conv(context) << "\n" + end + if id.include?("\000") ids = id.split(/\000/) str << "msgid " << __conv(ids[0]) << "\n" From f4fc3a0ba2f1792fd606f37c0efe4c0fe956bbae Mon Sep 17 00:00:00 2001 From: Eddie Lau Date: Tue, 9 Aug 2011 03:49:29 +0800 Subject: [PATCH 2/2] there was no test case about po generation --- test/tools/test_rmsgmerge.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/tools/test_rmsgmerge.rb diff --git a/test/tools/test_rmsgmerge.rb b/test/tools/test_rmsgmerge.rb new file mode 100644 index 00000000..5f612fbb --- /dev/null +++ b/test/tools/test_rmsgmerge.rb @@ -0,0 +1,19 @@ +# encoding: utf-8 + +require 'testlib/helper' +require 'gettext/tools/rmsgmerge' + +class TestRMsgMerge < Test::Unit::TestCase + def test_po_data_should_generate_msgctxt + msg_id = "Context\004Translation" + + po_data = GetText::RMsgMerge::PoData.new + po_data[msg_id] = "Translated" + po_data.set_comment(msg_id, "#no comment") + + result = po_data.generate_po_entry(msg_id) + + expected = "#no comment\nmsgctxt \"Context\"\nmsgid \"Translation\"\nmsgstr \"Translated\"\n\n" + assert_equal expected, result + end +end \ No newline at end of file