diff --git a/lib/twine/formatters/jquery.rb b/lib/twine/formatters/jquery.rb index 404b62b..792d52b 100644 --- a/lib/twine/formatters/jquery.rb +++ b/lib/twine/formatters/jquery.rb @@ -35,6 +35,7 @@ module Twine open(path) do |io| json = JSON.load(io) json.each do |key, value| + value.gsub!("\n","\\n") set_translation_for_key(key, lang, value) end end diff --git a/test/fixtures/test-json-line-breaks/consumed.txt b/test/fixtures/test-json-line-breaks/consumed.txt new file mode 100644 index 0000000..42d826b --- /dev/null +++ b/test/fixtures/test-json-line-breaks/consumed.txt @@ -0,0 +1,5 @@ +[[Line Break Strings]] + [line_breaking] + en = This\nstring\ncontains\nline\nbreaks + tags = tag1 + fr = This\nstring\nalso\ncontains\nline\nbreaks diff --git a/test/fixtures/test-json-line-breaks/generated.json b/test/fixtures/test-json-line-breaks/generated.json new file mode 100644 index 0000000..fcb2382 --- /dev/null +++ b/test/fixtures/test-json-line-breaks/generated.json @@ -0,0 +1,3 @@ +{ +"line_breaking":"This\nstring\ncontains\nline\nbreaks" +} diff --git a/test/fixtures/test-json-line-breaks/line-breaks.json b/test/fixtures/test-json-line-breaks/line-breaks.json new file mode 100644 index 0000000..989b6e0 --- /dev/null +++ b/test/fixtures/test-json-line-breaks/line-breaks.json @@ -0,0 +1,3 @@ +{ +"line_breaking":"This\nstring\nalso\ncontains\nline\nbreaks" +} diff --git a/test/fixtures/test-json-line-breaks/line-breaks.txt b/test/fixtures/test-json-line-breaks/line-breaks.txt new file mode 100644 index 0000000..f82d39e --- /dev/null +++ b/test/fixtures/test-json-line-breaks/line-breaks.txt @@ -0,0 +1,4 @@ +[[Line Break Strings]] + [line_breaking] + en = This\nstring\ncontains\nline\nbreaks + tags = tag1 diff --git a/test/twine_test.rb b/test/twine_test.rb index 38ef26e..764df55 100644 --- a/test/twine_test.rb +++ b/test/twine_test.rb @@ -111,4 +111,20 @@ class TwineTest < Test::Unit::TestCase def test_generate_report_1 Twine::Runner.run(%w(generate-report test/fixtures/strings-1.txt)) end + + def test_json_line_breaks_consume + Dir.mktmpdir do |dir| + output_path = File.join(dir, 'strings.txt') + Twine::Runner.run(%W(consume-string-file test/fixtures/test-json-line-breaks/line-breaks.txt test/fixtures/test-json-line-breaks/line-breaks.json -l fr -o #{output_path})) + assert_equal(File.read('test/fixtures/test-json-line-breaks/consumed.txt'), File.read(output_path)) + end + end + + def test_json_line_breaks_generate + Dir.mktmpdir do |dir| + output_path = File.join(dir, 'en.json') + Twine::Runner.run(%W(generate-string-file test/fixtures/test-json-line-breaks/line-breaks.txt #{output_path})) + assert_equal(File.read('test/fixtures/test-json-line-breaks/generated.json'), File.read(output_path)) + end + end end