languagetool-widget 0.0.1 → 8.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -13
  3. data/Rakefile +6 -0
  4. data/assets/javascripts/languagetool.js +1 -1
  5. data/assets/stylesheets/{languagetool-fonts.css → languagetool/fonts.css} +43 -43
  6. data/assets/stylesheets/{languagetool.css → languagetool/styles.css} +237 -237
  7. data/lib/generators/languagetool/install_generator.rb +14 -0
  8. data/lib/languagetool/widget/engine.rb +13 -0
  9. data/lib/languagetool/widget/version.rb +1 -1
  10. data/lib/languagetool/widget.rb +1 -2
  11. data/tasks/updater/css.rb +24 -0
  12. data/tasks/updater/fonts.rb +12 -0
  13. data/tasks/updater/images.rb +12 -0
  14. data/tasks/updater/js.rb +24 -0
  15. data/tasks/updater.rb +74 -0
  16. metadata +337 -288
  17. /data/{assets → public/languagetool}/fonts/Roboto-Mono-latin-bold.woff2 +0 -0
  18. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-bold-mac.woff2 +0 -0
  19. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-bold-win.woff2 +0 -0
  20. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-bold-mac.woff2 +0 -0
  21. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-bold-win.woff2 +0 -0
  22. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-mac.woff2 +0 -0
  23. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-semi-bold-mac.woff2 +0 -0
  24. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-semi-bold-win.woff2 +0 -0
  25. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-ext-win.woff2 +0 -0
  26. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-mac.woff2 +0 -0
  27. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-semi-bold-mac.woff2 +0 -0
  28. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-semi-bold-win.woff2 +0 -0
  29. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-cycrillic-win.woff2 +0 -0
  30. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-bold-mac.woff2 +0 -0
  31. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-bold-win.woff2 +0 -0
  32. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-bold-mac.woff2 +0 -0
  33. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-bold-win.woff2 +0 -0
  34. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-mac.woff2 +0 -0
  35. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-semi-bold-mac.woff2 +0 -0
  36. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-semi-bold-win.woff2 +0 -0
  37. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-ext-win.woff2 +0 -0
  38. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-mac.woff2 +0 -0
  39. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-semi-bold-mac.woff2 +0 -0
  40. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-semi-bold-win.woff2 +0 -0
  41. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-greek-win.woff2 +0 -0
  42. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-bold-mac.woff2 +0 -0
  43. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-bold-win.woff2 +0 -0
  44. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-bold-mac.woff2 +0 -0
  45. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-bold-win.woff2 +0 -0
  46. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-mac.woff2 +0 -0
  47. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-semi-bold-mac.woff2 +0 -0
  48. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-semi-bold-win.woff2 +0 -0
  49. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-ext-win.woff2 +0 -0
  50. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-mac.woff2 +0 -0
  51. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-semi-bold-mac.woff2 +0 -0
  52. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-semi-bold-win.woff2 +0 -0
  53. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-latin-win.woff2 +0 -0
  54. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-bold-mac.woff2 +0 -0
  55. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-bold-win.woff2 +0 -0
  56. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-mac.woff2 +0 -0
  57. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-semi-bold-mac.woff2 +0 -0
  58. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-semi-bold-win.woff2 +0 -0
  59. /data/{assets → public/languagetool}/fonts/Source-Sans-Pro-vietnamese-win.woff2 +0 -0
  60. /data/{assets → public/languagetool}/images/16/black/add_on_icon_16_ai.svg +0 -0
  61. /data/{assets → public/languagetool}/images/16/black/add_on_icon_16_black_logo.svg +0 -0
  62. /data/{assets → public/languagetool}/images/16/black/add_on_icon_16_missing.svg +0 -0
  63. /data/{assets → public/languagetool}/images/16/black/add_on_icon_16_scissors.svg +0 -0
  64. /data/{assets → public/languagetool}/images/16/special/add_on_icon_16_ai.svg +0 -0
  65. /data/{assets → public/languagetool}/images/16/special/add_on_icon_16_blue_picky.svg +0 -0
  66. /data/{assets → public/languagetool}/images/16/special/add_on_icon_16_premium.svg +0 -0
  67. /data/{assets → public/languagetool}/images/16/special/add_on_icon_16_special_switch_active.svg +0 -0
  68. /data/{assets → public/languagetool}/images/16/special/add_on_icon_16_special_switch_inactive.svg +0 -0
  69. /data/{assets → public/languagetool}/images/16/white/add_on_icon_16_white_logo.svg +0 -0
  70. /data/{assets → public/languagetool}/images/16/white/add_on_icon_16_white_switch_active.svg +0 -0
  71. /data/{assets → public/languagetool}/images/16/white/add_on_icon_16_white_switch_inactive.svg +0 -0
  72. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_add.svg +0 -0
  73. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_add_circle.svg +0 -0
  74. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_basic_error.svg +0 -0
  75. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_blocked.svg +0 -0
  76. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_bookmark.svg +0 -0
  77. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_check.svg +0 -0
  78. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_check_circle.svg +0 -0
  79. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_chevron_down.svg +0 -0
  80. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_chevron_right.svg +0 -0
  81. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_chevron_up.svg +0 -0
  82. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_close_circle.svg +0 -0
  83. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_close_filled.svg +0 -0
  84. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_close_small.svg +0 -0
  85. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_dictionary.svg +0 -0
  86. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_disable.svg +0 -0
  87. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_disable_circle.svg +0 -0
  88. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_disabled_website.svg +0 -0
  89. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_experimental_settings.svg +0 -0
  90. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_feedback.svg +0 -0
  91. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_gear.svg +0 -0
  92. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_glasses.svg +0 -0
  93. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_globe.svg +0 -0
  94. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_help.svg +0 -0
  95. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_info.svg +0 -0
  96. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_locked.svg +0 -0
  97. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_new_window.svg +0 -0
  98. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_pause.svg +0 -0
  99. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_privacy.svg +0 -0
  100. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_reload.svg +0 -0
  101. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_save.svg +0 -0
  102. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_synonyms.svg +0 -0
  103. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_trash.svg +0 -0
  104. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_uppercase_ignore.svg +0 -0
  105. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_user_statistics.svg +0 -0
  106. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_view_default.svg +0 -0
  107. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_view_left.svg +0 -0
  108. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_view_right.svg +0 -0
  109. /data/{assets → public/languagetool}/images/20/black/add_on_icon_20_black_view_scroll.svg +0 -0
  110. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_arrow_down.svg +0 -0
  111. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_arrow_left.svg +0 -0
  112. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_arrow_right.svg +0 -0
  113. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_check.svg +0 -0
  114. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_chevron_down.svg +0 -0
  115. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_expand.svg +0 -0
  116. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_insert.svg +0 -0
  117. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_blue_narrow_down.svg +0 -0
  118. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_color_logo.svg +0 -0
  119. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_orange_check.svg +0 -0
  120. /data/{assets → public/languagetool}/images/20/special/add_on_icon_20_premium.svg +0 -0
  121. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_add.svg +0 -0
  122. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_add_circle.svg +0 -0
  123. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_basic_error.svg +0 -0
  124. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_blocked.svg +0 -0
  125. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_bookmark.svg +0 -0
  126. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_check.svg +0 -0
  127. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_check_circle.svg +0 -0
  128. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_chevron_down.svg +0 -0
  129. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_chevron_up.svg +0 -0
  130. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_close_circle.svg +0 -0
  131. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_close_filled.svg +0 -0
  132. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_close_small.svg +0 -0
  133. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_dictionary.svg +0 -0
  134. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_disable.svg +0 -0
  135. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_disable_circle.svg +0 -0
  136. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_disabled_website.svg +0 -0
  137. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_expand.svg +0 -0
  138. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_experimental_settings.svg +0 -0
  139. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_feedback.svg +0 -0
  140. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_gear.svg +0 -0
  141. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_glasses.svg +0 -0
  142. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_globe.svg +0 -0
  143. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_help.svg +0 -0
  144. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_info.svg +0 -0
  145. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_locked.svg +0 -0
  146. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_lt.svg +0 -0
  147. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_narrow_down.svg +0 -0
  148. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_new_window.svg +0 -0
  149. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_pause.svg +0 -0
  150. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_premium.svg +0 -0
  151. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_privacy.svg +0 -0
  152. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_reload.svg +0 -0
  153. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_rephrasing.svg +0 -0
  154. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_save.svg +0 -0
  155. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_synonyms.svg +0 -0
  156. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_trash.svg +0 -0
  157. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_uppercase_ignore.svg +0 -0
  158. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_user_statistics.svg +0 -0
  159. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_view_default.svg +0 -0
  160. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_view_left.svg +0 -0
  161. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_view_right.svg +0 -0
  162. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_view_scroll-to.svg +0 -0
  163. /data/{assets → public/languagetool}/images/20/white/add_on_icon_20_white_view_scroll.svg +0 -0
  164. /data/{assets → public/languagetool}/images/backgrounds/background-skeleton-loading-dark-mode.webp +0 -0
  165. /data/{assets → public/languagetool}/images/backgrounds/background-skeleton-loading.webp +0 -0
  166. /data/{assets → public/languagetool}/images/backgrounds/elements.svg +0 -0
  167. /data/{assets → public/languagetool}/images/card-drag-handle.svg +0 -0
  168. /data/{assets → public/languagetool}/images/favicon.ico +0 -0
  169. /data/{assets → public/languagetool}/images/flags/ar.svg +0 -0
  170. /data/{assets → public/languagetool}/images/flags/ast-es.svg +0 -0
  171. /data/{assets → public/languagetool}/images/flags/be-by.svg +0 -0
  172. /data/{assets → public/languagetool}/images/flags/br-fr.svg +0 -0
  173. /data/{assets → public/languagetool}/images/flags/ca-es-valencia.svg +0 -0
  174. /data/{assets → public/languagetool}/images/flags/ca-es.svg +0 -0
  175. /data/{assets → public/languagetool}/images/flags/da-dk.svg +0 -0
  176. /data/{assets → public/languagetool}/images/flags/de-at.svg +0 -0
  177. /data/{assets → public/languagetool}/images/flags/de-ch.svg +0 -0
  178. /data/{assets → public/languagetool}/images/flags/de-de.svg +0 -0
  179. /data/{assets → public/languagetool}/images/flags/el-gr.svg +0 -0
  180. /data/{assets → public/languagetool}/images/flags/en-au.svg +0 -0
  181. /data/{assets → public/languagetool}/images/flags/en-ca.svg +0 -0
  182. /data/{assets → public/languagetool}/images/flags/en-gb.svg +0 -0
  183. /data/{assets → public/languagetool}/images/flags/en-nz.svg +0 -0
  184. /data/{assets → public/languagetool}/images/flags/en-us.svg +0 -0
  185. /data/{assets → public/languagetool}/images/flags/en-za.svg +0 -0
  186. /data/{assets → public/languagetool}/images/flags/eo.svg +0 -0
  187. /data/{assets → public/languagetool}/images/flags/es.svg +0 -0
  188. /data/{assets → public/languagetool}/images/flags/eu.svg +0 -0
  189. /data/{assets → public/languagetool}/images/flags/fa.svg +0 -0
  190. /data/{assets → public/languagetool}/images/flags/fr.svg +0 -0
  191. /data/{assets → public/languagetool}/images/flags/ga-ie.svg +0 -0
  192. /data/{assets → public/languagetool}/images/flags/gl-es.svg +0 -0
  193. /data/{assets → public/languagetool}/images/flags/globe_dark.svg +0 -0
  194. /data/{assets → public/languagetool}/images/flags/globe_white.svg +0 -0
  195. /data/{assets → public/languagetool}/images/flags/it.svg +0 -0
  196. /data/{assets → public/languagetool}/images/flags/ja-jp.svg +0 -0
  197. /data/{assets → public/languagetool}/images/flags/km-kh.svg +0 -0
  198. /data/{assets → public/languagetool}/images/flags/nl.svg +0 -0
  199. /data/{assets → public/languagetool}/images/flags/no.svg +0 -0
  200. /data/{assets → public/languagetool}/images/flags/not_found.svg +0 -0
  201. /data/{assets → public/languagetool}/images/flags/oc.svg +0 -0
  202. /data/{assets → public/languagetool}/images/flags/pl-pl.svg +0 -0
  203. /data/{assets → public/languagetool}/images/flags/pt-ao.svg +0 -0
  204. /data/{assets → public/languagetool}/images/flags/pt-br.svg +0 -0
  205. /data/{assets → public/languagetool}/images/flags/pt-mz.svg +0 -0
  206. /data/{assets → public/languagetool}/images/flags/pt-pt.svg +0 -0
  207. /data/{assets → public/languagetool}/images/flags/ro-ro.svg +0 -0
  208. /data/{assets → public/languagetool}/images/flags/ru-ru.svg +0 -0
  209. /data/{assets → public/languagetool}/images/flags/sk-sk.svg +0 -0
  210. /data/{assets → public/languagetool}/images/flags/sl-si.svg +0 -0
  211. /data/{assets → public/languagetool}/images/flags/sv.svg +0 -0
  212. /data/{assets → public/languagetool}/images/flags/ta-in.svg +0 -0
  213. /data/{assets → public/languagetool}/images/flags/tl-ph.svg +0 -0
  214. /data/{assets → public/languagetool}/images/flags/uk-ua.svg +0 -0
  215. /data/{assets → public/languagetool}/images/flags/zh-cn.svg +0 -0
  216. /data/{assets → public/languagetool}/images/hint-arrow.png +0 -0
  217. /data/{assets → public/languagetool}/images/icons/icon128.png +0 -0
  218. /data/{assets → public/languagetool}/images/icons/icon128_white.png +0 -0
  219. /data/{assets → public/languagetool}/images/icons/icon16.png +0 -0
  220. /data/{assets → public/languagetool}/images/icons/icon16_white.png +0 -0
  221. /data/{assets → public/languagetool}/images/icons/icon32.png +0 -0
  222. /data/{assets → public/languagetool}/images/icons/icon32_white.png +0 -0
  223. /data/{assets → public/languagetool}/images/icons/icon48.png +0 -0
  224. /data/{assets → public/languagetool}/images/icons/icon48_white.png +0 -0
  225. /data/{assets → public/languagetool}/images/icons/icon64.png +0 -0
  226. /data/{assets → public/languagetool}/images/icons/icon64_white.png +0 -0
  227. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_disabled.svg +0 -0
  228. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_errors.svg +0 -0
  229. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_language_not_supported.svg +0 -0
  230. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_no_errors.svg +0 -0
  231. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_scroll_hint.gif +0 -0
  232. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_text_too_long.svg +0 -0
  233. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_text_too_short.svg +0 -0
  234. /data/{assets → public/languagetool}/images/illustrations/color/color_dialog_update.svg +0 -0
  235. /data/{assets → public/languagetool}/images/illustrations/color/google_docs_teaser.svg +0 -0
  236. /data/{assets → public/languagetool}/images/illustrations/color/google_slides_teaser.svg +0 -0
  237. /data/{assets → public/languagetool}/images/illustrations/color/mascot-2x.png +0 -0
  238. /data/{assets → public/languagetool}/images/illustrations/color/mascot-error-2x.png +0 -0
  239. /data/{assets → public/languagetool}/images/illustrations/color/mascot-error.png +0 -0
  240. /data/{assets → public/languagetool}/images/illustrations/color/mascot-happy-2x.png +0 -0
  241. /data/{assets → public/languagetool}/images/illustrations/color/mascot-happy.png +0 -0
  242. /data/{assets → public/languagetool}/images/illustrations/color/mascot-sad-2x.png +0 -0
  243. /data/{assets → public/languagetool}/images/illustrations/color/mascot-sad.png +0 -0
  244. /data/{assets → public/languagetool}/images/illustrations/color/mascot-weeping-2x.png +0 -0
  245. /data/{assets → public/languagetool}/images/illustrations/color/mascot-weeping.png +0 -0
  246. /data/{assets → public/languagetool}/images/illustrations/color/mascot.png +0 -0
  247. /data/{assets → public/languagetool}/images/illustrations/color/overleaf_teaser.svg +0 -0
  248. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration-2x.png +0 -0
  249. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration.png +0 -0
  250. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_de-2x.png +0 -0
  251. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_de.png +0 -0
  252. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_es-2x.png +0 -0
  253. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_es.png +0 -0
  254. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_fr-2x.png +0 -0
  255. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_fr.png +0 -0
  256. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_pt-2x.png +0 -0
  257. /data/{assets → public/languagetool}/images/illustrations/color/rephrasing_illustration_pt.png +0 -0
  258. /data/{assets → public/languagetool}/images/illustrations/color/undo-button.svg +0 -0
  259. /data/{assets → public/languagetool}/images/illustrations/white/white_add.svg +0 -0
  260. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_disabled.svg +0 -0
  261. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_errors.svg +0 -0
  262. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_language_not_supported.svg +0 -0
  263. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_no_errors.svg +0 -0
  264. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_text_too_long.svg +0 -0
  265. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_text_too_short.svg +0 -0
  266. /data/{assets → public/languagetool}/images/illustrations/white/white_dialog_update.svg +0 -0
  267. /data/{assets → public/languagetool}/images/illustrations/white/white_failure.svg +0 -0
  268. /data/{assets → public/languagetool}/images/illustrations/white/white_no_errors.svg +0 -0
  269. /data/{assets → public/languagetool}/images/illustrations/white/white_premium.svg +0 -0
  270. /data/{assets → public/languagetool}/images/logos/logo_color_circle.svg +0 -0
  271. /data/{assets → public/languagetool}/images/logos/logo_color_with_background.svg +0 -0
  272. /data/{assets → public/languagetool}/images/lt-favicon-color.png +0 -0
  273. /data/{assets → public/languagetool}/images/lt-favicon-color_notification.png +0 -0
  274. /data/{assets → public/languagetool}/images/lt-favicon-white.png +0 -0
  275. /data/{assets → public/languagetool}/images/lt-favicon-white_notification.png +0 -0
  276. /data/{assets → public/languagetool}/images/lt-logo_gdocs_selected.svg +0 -0
  277. /data/{assets → public/languagetool}/images/lt-logo_gdocs_unselected.svg +0 -0
  278. /data/{assets → public/languagetool}/images/messages/message_turn_on.gif +0 -0
  279. /data/{assets → public/languagetool}/images/messages/message_turn_on_safari.gif +0 -0
  280. /data/{assets → public/languagetool}/images/ratings/thumpsdown.svg +0 -0
  281. /data/{assets → public/languagetool}/images/ratings/thumpsup.svg +0 -0
  282. /data/{assets → public/languagetool}/images/stores/chrome_store.svg +0 -0
  283. /data/{assets → public/languagetool}/images/stores/edge_store.svg +0 -0
  284. /data/{assets → public/languagetool}/images/stores/firefox_store.svg +0 -0
  285. /data/{assets → public/languagetool}/images/stores/opera_store.svg +0 -0
  286. /data/{assets → public/languagetool}/images/stores/safari_store.svg +0 -0
  287. /data/{assets → public/languagetool}/images/toolbarStates/done.svg +0 -0
  288. /data/{assets → public/languagetool}/images/toolbarStates/error_counts_white.png +0 -0
  289. /data/{assets → public/languagetool}/images/toolbarStates/loading.webp +0 -0
  290. /data/{assets → public/languagetool}/images/toolbarStates/progress.gif +0 -0
  291. /data/{assets → public/languagetool}/images/toolbarStates/progress_2x.gif +0 -0
  292. /data/{assets → public/languagetool}/images/toolbarStates/text_too_long.svg +0 -0
  293. /data/{assets → public/languagetool}/images/toolbarStates/toolbar_failed.png +0 -0
  294. /data/{assets → public/languagetool}/images/toolbarStates/toolbar_language_not_supported.svg +0 -0
  295. /data/{assets → public/languagetool}/images/toolbarStates/toolbar_permission_required.svg +0 -0
  296. /data/{assets → public/languagetool}/images/toolbarStates/turnoff.svg +0 -0
  297. /data/{assets → public/languagetool}/images/toolbarStates/wave.svg +0 -0
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Languagetool
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Copy LanguageTool fonts and images to public directory"
7
+ source_root File.expand_path("../../..", __dir__)
8
+
9
+ def copy_public_assets
10
+ directory "public/languagetool"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Languagetool
4
+ module Widget
5
+ class Engine < ::Rails::Engine
6
+ initializer "languagetool.widget.assets" do |app|
7
+ %w[javascripts stylesheets].each do |sub|
8
+ app.config.assets.paths << root.join("assets", sub).to_s
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Languagetool
4
4
  module Widget
5
- VERSION = "0.0.1"
5
+ VERSION = "8.3.4"
6
6
  end
7
7
  end
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "widget/version"
4
+ require_relative "widget/engine"
4
5
 
5
6
  module Languagetool
6
7
  module Widget
7
- class Error < StandardError; end
8
- # Your code goes here...
9
8
  end
10
9
  end
@@ -0,0 +1,24 @@
1
+ class Updater
2
+ module Css
3
+
4
+ def update_css_assets
5
+ puts "Updating CSS assets..."
6
+ src_path = File.join("tmp", "languagetool-widget", "styles")
7
+ dest_path = @save_to[:css]
8
+ FileUtils.cp_r(Dir.glob(File.join(src_path, "*.css")), dest_path)
9
+
10
+ patch_css_urls(dest_path)
11
+ end
12
+
13
+ # Replace `url("../assets/fonts/Source-Sans-Pro-cycrillic-ext-mac.woff2")`
14
+ # with `url("/languagetool/fonts/Source-Sans-Pro-cycrillic-ext-mac.woff2")`
15
+ def patch_css_urls(dest_path)
16
+ Dir.glob(File.join(dest_path, "*.css")).each do |css_file|
17
+ content = File.read(css_file)
18
+ content.gsub!("url(\"../assets/", "url(\"/languagetool/")
19
+ File.write(css_file, content)
20
+ end
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ class Updater
2
+ module Fonts
3
+
4
+ def update_font_assets
5
+ puts "Updating font assets..."
6
+ src_path = File.join("tmp", "languagetool-widget", "assets", "fonts")
7
+ dest_path = @save_to[:fonts]
8
+ FileUtils.cp_r(Dir.glob(File.join(src_path, "*")), dest_path)
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class Updater
2
+ module Images
3
+
4
+ def update_image_assets
5
+ puts "Updating image assets..."
6
+ src_path = File.join("tmp", "languagetool-widget", "assets", "images")
7
+ dest_path = @save_to[:images]
8
+ FileUtils.cp_r(Dir.glob(File.join(src_path, "*")), dest_path)
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,24 @@
1
+ class Updater
2
+ module Js
3
+
4
+ def update_js_assets
5
+ puts "Updating JS assets..."
6
+ src_path = File.join("tmp", "languagetool-widget")
7
+ dest_path = @save_to[:js]
8
+ FileUtils.cp_r(Dir.glob(File.join(src_path, "*.js")), dest_path)
9
+
10
+ patch_js_urls(dest_path)
11
+ end
12
+
13
+ # Replace `n.getURL("/assets/images/flags/not_found.svg")`
14
+ # with `n.getURL("../../languagetool/images/flags/not_found.svg")`
15
+ def patch_js_urls(dest_path)
16
+ Dir.glob(File.join(dest_path, "*.js")).each do |js_file|
17
+ content = File.read(js_file)
18
+ content.gsub!("/assets/", "../../languagetool/")
19
+ File.write(js_file, content)
20
+ end
21
+ end
22
+
23
+ end
24
+ end
data/tasks/updater.rb ADDED
@@ -0,0 +1,74 @@
1
+ require "open-uri"
2
+ require "fileutils"
3
+ require "zip"
4
+
5
+ require_relative "updater/fonts"
6
+ require_relative "updater/images"
7
+ require_relative "updater/css"
8
+ require_relative "updater/js"
9
+
10
+ class Updater
11
+ include Fonts
12
+ include Images
13
+ include Css
14
+ include Js
15
+
16
+ def initialize(url:)
17
+ # https://languagetool.org/standalone/download/languagetool-widget-8.3.4-20231130.zip
18
+ @url = url
19
+ # languagetool-widget-8.3.4-20231130.zip => 8.3.4
20
+ @version = @url.match(/languagetool-widget-(\d+\.\d+\.\d+)-\d+\.zip/)[1]
21
+
22
+ @save_to = {
23
+ fonts: "public/languagetool/fonts",
24
+ images: "public/languagetool/images",
25
+ css: "assets/stylesheets/languagetool",
26
+ js: "assets/javascripts"
27
+ }
28
+ end
29
+
30
+ def update
31
+ puts "Updating LanguageTool assets"
32
+ puts " url: #{@url}"
33
+ puts " version: #@version"
34
+ puts '-' * 60
35
+
36
+ FileUtils.rm_rf("assets")
37
+ FileUtils.rm_rf("public")
38
+ @save_to.each { |_, v| FileUtils.mkdir_p(v) }
39
+
40
+ extract_zip_from_url
41
+
42
+ begin
43
+ update_font_assets
44
+ update_image_assets
45
+ update_css_assets
46
+ update_js_assets
47
+ store_version
48
+ ensure
49
+ FileUtils.rm_rf("tmp")
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def extract_zip_from_url
56
+ URI.open(@url) do |zip_file|
57
+ Zip::File.open(zip_file) do |zip|
58
+ zip.each do |entry|
59
+ dest_path = File.join("tmp", "languagetool-widget", entry.name)
60
+ FileUtils.mkdir_p(File.dirname(dest_path))
61
+ zip.extract(entry, dest_path) unless File.exist?(dest_path)
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ # Update version.rb file with VERSION
68
+ def store_version
69
+ path = 'lib/languagetool/widget/version.rb'
70
+ content = File.read(path).sub(/VERSION\s*=\s*["][^"]*["]/, "VERSION = \"#{@version}\"")
71
+ File.open(path, 'w') { |f| f.write(content) }
72
+ end
73
+
74
+ end