wovnrb 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +1 -0
  5. data/.rubocop_todo.yml +308 -0
  6. data/Rakefile +13 -14
  7. data/lib/wovnrb.rb +43 -98
  8. data/lib/wovnrb/api_translator.rb +143 -0
  9. data/lib/wovnrb/headers.rb +78 -92
  10. data/lib/wovnrb/helpers/nokogumbo_helper.rb +1 -1
  11. data/lib/wovnrb/lang.rb +93 -125
  12. data/lib/wovnrb/railtie.rb +5 -7
  13. data/lib/wovnrb/services/glob.rb +3 -3
  14. data/lib/wovnrb/services/html_converter.rb +192 -0
  15. data/lib/wovnrb/services/html_replace_marker.rb +38 -0
  16. data/lib/wovnrb/services/wovn_logger.rb +8 -4
  17. data/lib/wovnrb/settings.rb +5 -3
  18. data/lib/wovnrb/store.rb +35 -26
  19. data/lib/wovnrb/text_caches/cache_base.rb +3 -2
  20. data/lib/wovnrb/text_caches/memory_cache.rb +2 -2
  21. data/lib/wovnrb/version.rb +1 -1
  22. data/test/fixtures/html/test.html +8 -0
  23. data/test/fixtures/html/test_translated.html +8 -0
  24. data/test/lib/api_translator_test.rb +109 -0
  25. data/test/lib/headers_test.rb +84 -55
  26. data/test/lib/lang_test.rb +157 -357
  27. data/test/lib/services/glob_test.rb +1 -1
  28. data/test/lib/services/html_converter_test.rb +166 -0
  29. data/test/lib/services/html_replace_marker_test.rb +75 -0
  30. data/test/lib/services/wovn_logger_test.rb +6 -6
  31. data/test/lib/store_test.rb +25 -69
  32. data/test/lib/text_caches/cache_base_test.rb +1 -1
  33. data/test/lib/text_caches/memory_cache_test.rb +10 -11
  34. data/test/lib/wovnrb_test.rb +77 -310
  35. data/test/test_helper.rb +22 -32
  36. data/wovnrb.gemspec +35 -44
  37. metadata +86 -205
  38. data/ext/dom/Makefile +0 -239
  39. data/lib/wovnrb/api_data.rb +0 -59
  40. data/lib/wovnrb/html_replacers/image_replacer.rb +0 -69
  41. data/lib/wovnrb/html_replacers/input_replacer.rb +0 -38
  42. data/lib/wovnrb/html_replacers/link_replacer.rb +0 -78
  43. data/lib/wovnrb/html_replacers/meta_replacer.rb +0 -28
  44. data/lib/wovnrb/html_replacers/replacer_base.rb +0 -49
  45. data/lib/wovnrb/html_replacers/script_replacer.rb +0 -39
  46. data/lib/wovnrb/html_replacers/text_replacer.rb +0 -21
  47. data/lib/wovnrb/html_replacers/unified_values/dst_swapping_targets_creator.rb +0 -76
  48. data/lib/wovnrb/html_replacers/unified_values/element_category.rb +0 -242
  49. data/lib/wovnrb/html_replacers/unified_values/node_swapping_targets_creator.rb +0 -134
  50. data/lib/wovnrb/html_replacers/unified_values/text_replacer.rb +0 -35
  51. data/lib/wovnrb/html_replacers/unified_values/text_scraper.rb +0 -152
  52. data/lib/wovnrb/html_replacers/unified_values/values_stack.rb +0 -65
  53. data/lib/wovnrb/services/url.rb +0 -12
  54. data/lib/wovnrb/services/value_agent.rb +0 -9
  55. data/test/fixtures/unified_values/site_html/simple_actual.html +0 -96
  56. data/test/fixtures/unified_values/site_html/simple_expected.json +0 -251
  57. data/test/fixtures/unified_values/site_html/wovn.io_actual.html +0 -686
  58. data/test/fixtures/unified_values/site_html/wovn.io_expected.json +0 -543
  59. data/test/fixtures/unified_values/site_html/www.yahoo.co.jp_actual.html +0 -1024
  60. data/test/fixtures/unified_values/site_html/www.yahoo.co.jp_expected.json +0 -3345
  61. data/test/fixtures/unified_values/small_html/block_inside_inline_actual.html +0 -12
  62. data/test/fixtures/unified_values/small_html/block_inside_inline_expected.json +0 -22
  63. data/test/fixtures/unified_values/small_html/br_tag_actual.html +0 -10
  64. data/test/fixtures/unified_values/small_html/br_tag_expected.json +0 -12
  65. data/test/fixtures/unified_values/small_html/comment_tag_actual.html +0 -12
  66. data/test/fixtures/unified_values/small_html/comment_tag_expected.json +0 -10
  67. data/test/fixtures/unified_values/small_html/complex_text_with_html_entity_actual.html +0 -7
  68. data/test/fixtures/unified_values/small_html/complex_text_with_html_entity_expected.json +0 -11
  69. data/test/fixtures/unified_values/small_html/deep_nested_block_actual.html +0 -14
  70. data/test/fixtures/unified_values/small_html/deep_nested_block_expected.json +0 -8
  71. data/test/fixtures/unified_values/small_html/deep_nested_inline_actual.html +0 -20
  72. data/test/fixtures/unified_values/small_html/deep_nested_inline_expected.json +0 -20
  73. data/test/fixtures/unified_values/small_html/empty_tag_actual.html +0 -10
  74. data/test/fixtures/unified_values/small_html/empty_tag_expected.json +0 -12
  75. data/test/fixtures/unified_values/small_html/empty_text_actual.html +0 -12
  76. data/test/fixtures/unified_values/small_html/empty_text_expected.json +0 -1
  77. data/test/fixtures/unified_values/small_html/ignore_tag_actual.html +0 -12
  78. data/test/fixtures/unified_values/small_html/ignore_tag_expected.json +0 -16
  79. data/test/fixtures/unified_values/small_html/ignored_class_actual.html +0 -10
  80. data/test/fixtures/unified_values/small_html/ignored_class_expected.json +0 -13
  81. data/test/fixtures/unified_values/small_html/img_actual.html +0 -12
  82. data/test/fixtures/unified_values/small_html/img_expected.json +0 -23
  83. data/test/fixtures/unified_values/small_html/nested_and_complex_wovn_ignore_actual.html +0 -10
  84. data/test/fixtures/unified_values/small_html/nested_and_complex_wovn_ignore_expected.json +0 -16
  85. data/test/fixtures/unified_values/small_html/nested_text_value_actual.html +0 -10
  86. data/test/fixtures/unified_values/small_html/nested_text_value_expected.json +0 -12
  87. data/test/fixtures/unified_values/small_html/nested_text_value_mixed_plan_text_actual.html +0 -10
  88. data/test/fixtures/unified_values/small_html/nested_text_value_mixed_plan_text_expected.json +0 -14
  89. data/test/fixtures/unified_values/small_html/option_tag_actual.html +0 -9
  90. data/test/fixtures/unified_values/small_html/option_tag_expected.json +0 -13
  91. data/test/fixtures/unified_values/small_html/text_different_inline_each_other_actual.html +0 -10
  92. data/test/fixtures/unified_values/small_html/text_different_inline_each_other_expected.json +0 -22
  93. data/test/fixtures/unified_values/small_html/text_in_svg_actual.html +0 -9
  94. data/test/fixtures/unified_values/small_html/text_in_svg_expected.json +0 -8
  95. data/test/fixtures/unified_values/small_html/text_with_html_entity_actual.html +0 -6
  96. data/test/fixtures/unified_values/small_html/text_with_html_entity_expected.json +0 -8
  97. data/test/fixtures/unified_values/small_html/unknown_or_custom_tag_actual.html +0 -12
  98. data/test/fixtures/unified_values/small_html/unknown_or_custom_tag_expected.json +0 -24
  99. data/test/fixtures/unified_values/small_html/unnecessay_top_end_tag_actual.html +0 -12
  100. data/test/fixtures/unified_values/small_html/unnecessay_top_end_tag_expected.json +0 -14
  101. data/test/fixtures/unified_values/small_html/wovn_ignore_actual.html +0 -10
  102. data/test/fixtures/unified_values/small_html/wovn_ignore_expected.json +0 -13
  103. data/test/lib/api_data_test.rb +0 -83
  104. data/test/lib/html_replacers/image_replacer_test.rb +0 -165
  105. data/test/lib/html_replacers/input_replacer_test.rb +0 -140
  106. data/test/lib/html_replacers/link_replacer_test.rb +0 -328
  107. data/test/lib/html_replacers/meta_replacer_test.rb +0 -157
  108. data/test/lib/html_replacers/replacer_base_test.rb +0 -128
  109. data/test/lib/html_replacers/script_replacer_test.rb +0 -139
  110. data/test/lib/html_replacers/text_replacer_test.rb +0 -99
  111. data/test/lib/html_replacers/unified_values/dst_swapping_targets_creator_test.rb +0 -137
  112. data/test/lib/html_replacers/unified_values/element_category_test.rb +0 -49
  113. data/test/lib/html_replacers/unified_values/node_swapping_targets_creator_test.rb +0 -137
  114. data/test/lib/html_replacers/unified_values/text_replacer_test.rb +0 -270
  115. data/test/lib/html_replacers/unified_values/text_scraper_test.rb +0 -121
  116. data/test/lib/html_replacers/unified_values/values_stack_test.rb +0 -122
  117. data/test/lib/services/url_test.rb +0 -9
  118. data/test/lib/services/value_agent_test.rb +0 -32
  119. data/test/services/url_test.rb +0 -163
  120. data/values/values +0 -1
data/values/values DELETED
@@ -1 +0,0 @@
1
- [{"_id":{"$oid":"54eab2f84a6566d0ed070000"},"body":"Atteindre le monde","created_at":"2015-02-23T04:56:24.097Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Reach The World","translator_id":null,"updated_at":"2015-02-23T04:56:24.097Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee1b0000"},"body":"価格設定","created_at":"2015-02-23T04:56:37.398Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Pricing","translator_id":null,"updated_at":"2015-02-23T04:56:37.398Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[4]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee190000"},"body":"条件","created_at":"2015-02-23T04:56:37.390Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Terms","translator_id":null,"updated_at":"2015-02-23T04:56:37.390Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[2]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee170000"},"body":"サインアップ","created_at":"2015-02-23T04:56:37.385Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:37.385Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee150000"},"body":"今すぐ開始します","created_at":"2015-02-23T04:56:37.379Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Start Now","translator_id":null,"updated_at":"2015-02-23T04:56:37.379Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee140000"},"body":"サインアップ","created_at":"2015-02-23T04:56:37.377Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:37.377Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee110000"},"body":"サインアップ","created_at":"2015-02-23T04:56:37.367Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:37.367Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed060000"},"body":"Se connecter","created_at":"2015-02-23T04:56:24.095Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign in","translator_id":null,"updated_at":"2015-02-23T04:56:24.095Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/div[2]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0b0000"},"body":"サインアップ","created_at":"2015-02-23T04:56:37.196Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:37.196Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee090000"},"body":"世界リーチ","created_at":"2015-02-23T04:56:37.190Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Reach The World","translator_id":null,"updated_at":"2015-02-23T04:56:37.190Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee080000"},"body":"ログイン","created_at":"2015-02-23T04:56:37.187Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign in","translator_id":null,"updated_at":"2015-02-23T04:56:37.187Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/div[2]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee070000"},"body":"サインアップ","created_at":"2015-02-23T04:56:37.184Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:37.184Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/a[1]/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed030000"},"body":"Localisez votre site.","created_at":"2015-02-23T04:56:24.071Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Localize your website.","translator_id":null,"updated_at":"2015-02-23T04:56:24.071Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee130000"},"body":"ワンクリックでは、自動的にページを翻訳したり、プロの翻訳を注文。編集するか、それを自分で書く。あなたはすべての単語、文字、および句読点を制御します。公開した後、変更内容は、サイト上で瞬時に表示されます。","created_at":"2015-02-23T04:56:37.374Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"In one click, automatically translate your page or order a professional translation. Edit or write it yourself. You control every word, letter, and punctuation mark. After publishing, your changes are instantly visible on your site.","translator_id":null,"updated_at":"2015-02-23T04:56:37.374Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee100000"},"body":"あなたのウェブサイトやブログに多言語サポートを追加するのは簡単です。 WOVN.ioが提供するコードの1行は、あなたが始めるために必要なすべてのです。公開された翻訳は、サイト上で瞬時に表示されます。","created_at":"2015-02-23T04:56:37.363Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Adding multilingual support to your website or blog is easy. One line of code, provided by WOVN.io, is all you need to get started. Your published translations will be instantly visible on your site.","translator_id":null,"updated_at":"2015-02-23T04:56:37.363Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0a0000"},"body":"WOVN.ioは世界にあなたのコンテンツをもたらし、あなたのウェブサイトやブログのための多言語サポートを提供します。サイト訪問者はすぐにWOVN.ioウィジェットを使用して言語を切り替えることができます。あなたの翻訳されたコンテンツのすべての編集および管理は、ブラウザの利便性から行うことができます。","created_at":"2015-02-23T04:56:37.194Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"WOVN.io provides multilingual support for your website or blog, bringing your content to the world. Site visitors can quickly toggle between languages using the WOVN.io widget. All editing and management of your translated content can be done from the convenience of your browser.","translator_id":null,"updated_at":"2015-02-23T04:56:37.194Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed110000"},"body":"En un seul clic, de traduire automatiquement votre page ou commander une traduction professionnelle. Modifier ou écrire vous-même. Vous contrôlez chaque mot, lettre et un signe de ponctuation. Après la publication, vos modifications sont immédiatement visibles sur votre site.","created_at":"2015-02-23T04:56:24.228Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"In one click, automatically translate your page or order a professional translation. Edit or write it yourself. You control every word, letter, and punctuation mark. After publishing, your changes are instantly visible on your site.","translator_id":null,"updated_at":"2015-02-23T04:56:24.228Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee1c0000"},"body":"©2014ミニマル·テクノロジーズ","created_at":"2015-02-23T04:56:37.402Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"©2014 Minimal Technologies","translator_id":null,"updated_at":"2015-02-23T04:56:37.402Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[5]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee1a0000"},"body":"フィードバック&お問い合わせ","created_at":"2015-02-23T04:56:37.392Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Feedback \u0026 Contact","translator_id":null,"updated_at":"2015-02-23T04:56:37.392Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[3]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee180000"},"body":"個人情報保護方針","created_at":"2015-02-23T04:56:37.387Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Privacy Policy","translator_id":null,"updated_at":"2015-02-23T04:56:37.387Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[1]/a/text()"},{"_id":{"$oid":"54eab3054a6566d0ee160000"},"body":"世界とあなたのサイトを共有する。瞬時に。","created_at":"2015-02-23T04:56:37.383Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Share your site with the world. Instantly.","translator_id":null,"updated_at":"2015-02-23T04:56:37.383Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee120000"},"body":"コンテンツあなたがコントロールする","created_at":"2015-02-23T04:56:37.370Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Content You Control","translator_id":null,"updated_at":"2015-02-23T04:56:37.370Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0f0000"},"body":"一列にはじめよう","created_at":"2015-02-23T04:56:37.206Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Get Started In One Line","translator_id":null,"updated_at":"2015-02-23T04:56:37.206Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0e0000"},"body":"翻訳して公開","created_at":"2015-02-23T04:56:37.204Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Translate and publish","translator_id":null,"updated_at":"2015-02-23T04:56:37.204Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[5]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0d0000"},"body":"翻訳するためにページを追加します。","created_at":"2015-02-23T04:56:37.201Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Add a page to translate","translator_id":null,"updated_at":"2015-02-23T04:56:37.201Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[3]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee0c0000"},"body":"WOVN.ioコードスニペットを挿入します","created_at":"2015-02-23T04:56:37.198Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Insert the WOVN.io code snippet","translator_id":null,"updated_at":"2015-02-23T04:56:37.198Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[1]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee050000"},"body":"あなたのウェブサイトをローカライズ。","created_at":"2015-02-23T04:56:37.179Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Localize your website.","translator_id":null,"updated_at":"2015-02-23T04:56:37.179Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee040000"},"body":"コー​​ドの1行で世界を歓迎します。","created_at":"2015-02-23T04:56:37.177Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Welcome the world in one line of code.","translator_id":null,"updated_at":"2015-02-23T04:56:37.177Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/h2/text()"},{"_id":{"$oid":"54eab3054a6566d0ee030000"},"body":"Wovn.io |あなたのウェブサイトをローカライズ。","created_at":"2015-02-23T04:56:37.173Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Wovn.io | Localize your website.","translator_id":null,"updated_at":"2015-02-23T04:56:37.173Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/head/title/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed1a0000"},"body":"© 2014 Technologies minimales","created_at":"2015-02-23T04:56:24.255Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"©2014 Minimal Technologies","translator_id":null,"updated_at":"2015-02-23T04:56:24.255Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[5]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0e0000"},"body":"Ajout d'un support multilingue à votre site ou blog est facile. Une ligne de code, fourni par WOVN.io, est tout ce que vous avez besoin pour commencer. Vos traductions publiées seront instantanément visibles sur votre site.","created_at":"2015-02-23T04:56:24.122Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Adding multilingual support to your website or blog is easy. One line of code, provided by WOVN.io, is all you need to get started. Your published translations will be instantly visible on your site.","translator_id":null,"updated_at":"2015-02-23T04:56:24.122Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed180000"},"body":"Feedback \u0026 Contact","created_at":"2015-02-23T04:56:24.249Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Feedback \u0026 Contact","translator_id":null,"updated_at":"2015-02-23T04:56:24.249Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[3]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed160000"},"body":"Politique de confidentialité","created_at":"2015-02-23T04:56:24.245Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Privacy Policy","translator_id":null,"updated_at":"2015-02-23T04:56:24.245Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[1]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed140000"},"body":"Partager votre site avec le monde. Instantanément.","created_at":"2015-02-23T04:56:24.239Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Share your site with the world. Instantly.","translator_id":null,"updated_at":"2015-02-23T04:56:24.239Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed100000"},"body":"Contenu You Control","created_at":"2015-02-23T04:56:24.134Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Content You Control","translator_id":null,"updated_at":"2015-02-23T04:56:24.134Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/h2/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0d0000"},"body":"Commencez sur une seule ligne","created_at":"2015-02-23T04:56:24.119Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Get Started In One Line","translator_id":null,"updated_at":"2015-02-23T04:56:24.119Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/h2/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0c0000"},"body":"Traduire et publier","created_at":"2015-02-23T04:56:24.114Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Translate and publish","translator_id":null,"updated_at":"2015-02-23T04:56:24.114Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[5]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed020000"},"body":"Bienvenue dans le monde sur une seule ligne de code.","created_at":"2015-02-23T04:56:24.065Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Welcome the world in one line of code.","translator_id":null,"updated_at":"2015-02-23T04:56:24.065Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/h2/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed080000"},"body":"WOVN.io fournit un support multilingue pour votre site ou blog, ce qui porte votre contenu au monde. Les visiteurs du site peuvent rapidement basculer entre les langues utilisant le widget WOVN.io. Tous édition et la gestion de votre contenu traduit peut être fait dans le confort de votre navigateur.","created_at":"2015-02-23T04:56:24.099Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"WOVN.io provides multilingual support for your website or blog, bringing your content to the world. Site visitors can quickly toggle between languages using the WOVN.io widget. All editing and management of your translated content can be done from the convenience of your browser.","translator_id":null,"updated_at":"2015-02-23T04:56:24.099Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed050000"},"body":"Signer","created_at":"2015-02-23T04:56:24.093Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:24.093Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/a[1]/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed040000"},"body":"Gratuit","created_at":"2015-02-23T04:56:24.089Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Free","translator_id":null,"updated_at":"2015-02-23T04:56:24.089Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/div[1]/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0b0000"},"body":"Ajouter une page à traduire","created_at":"2015-02-23T04:56:24.110Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Add a page to translate","translator_id":null,"updated_at":"2015-02-23T04:56:24.110Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[3]/p/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0a0000"},"body":"Insérez l'extrait de code WOVN.io","created_at":"2015-02-23T04:56:24.106Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Insert the WOVN.io code snippet","translator_id":null,"updated_at":"2015-02-23T04:56:24.106Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[3]/div[1]/p/text()"},{"_id":{"$oid":"54eab3054a6566d0ee060000"},"body":"フリー","created_at":"2015-02-23T04:56:37.182Z","ec":null,"ei":null,"en":null,"et":null,"language":"ja","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Free","translator_id":null,"updated_at":"2015-02-23T04:56:37.182Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[1]/div[1]/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed190000"},"body":"Établissement des prix","created_at":"2015-02-23T04:56:24.251Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Pricing","translator_id":null,"updated_at":"2015-02-23T04:56:24.251Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[4]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed170000"},"body":"Termes","created_at":"2015-02-23T04:56:24.247Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Terms","translator_id":null,"updated_at":"2015-02-23T04:56:24.247Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/div/ul/li[2]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed150000"},"body":"Signer","created_at":"2015-02-23T04:56:24.242Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:24.242Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed130000"},"body":"Démarrer maintenant","created_at":"2015-02-23T04:56:24.236Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Start Now","translator_id":null,"updated_at":"2015-02-23T04:56:24.236Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[6]/h2/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed120000"},"body":"Signer","created_at":"2015-02-23T04:56:24.233Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:24.233Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[5]/div[2]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed0f0000"},"body":"Signer","created_at":"2015-02-23T04:56:24.129Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:24.129Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[4]/div[2]/a/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed010000"},"body":"Wovn.io | Localisez votre site.","created_at":"2015-02-23T04:56:24.047Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Wovn.io | Localize your website.","translator_id":null,"updated_at":"2015-02-23T04:56:24.047Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/head/title/text()"},{"_id":{"$oid":"54eab2f84a6566d0ed090000"},"body":"Signer","created_at":"2015-02-23T04:56:24.102Z","ec":null,"ei":null,"en":null,"et":null,"language":"fr","page_id":{"$oid":"54cb63a64a65667be0000000"},"publish":true,"src_body":"Sign up","translator_id":null,"updated_at":"2015-02-23T04:56:24.102Z","user_id":{"$oid":"53ed9ffa4a65662e37000000"},"xpath":"/html/body/div[2]/div[2]/a/text()"}]