tr8n 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (265) hide show
  1. data/.gitignore +6 -3
  2. data/.rspec +2 -0
  3. data/Gemfile +3 -6
  4. data/Gemfile.lock +21 -6
  5. data/README.rdoc +61 -33
  6. data/Rakefile +1 -11
  7. data/app/assets/images/tr8n/photo_system.gif +0 -0
  8. data/app/assets/stylesheets/tr8n/application.css +42 -1
  9. data/{test/dummy/app/assets/stylesheets/components.css.scss → app/assets/stylesheets/tr8n/component.css.scss} +0 -0
  10. data/{test/dummy/app/assets/stylesheets → app/assets/stylesheets/tr8n}/layout.css.scss +0 -0
  11. data/app/assets/stylesheets/tr8n/tr8n.css.scss +16 -8
  12. data/app/controllers/tr8n/admin/base_controller.rb +1 -1
  13. data/app/controllers/tr8n/admin/clientsdk_controller.rb +1 -1
  14. data/app/controllers/tr8n/admin/domain_controller.rb +1 -1
  15. data/app/controllers/tr8n/admin/forum_controller.rb +1 -1
  16. data/app/controllers/tr8n/admin/glossary_controller.rb +1 -1
  17. data/app/controllers/tr8n/admin/language_controller.rb +1 -1
  18. data/app/controllers/tr8n/admin/translation_controller.rb +1 -1
  19. data/app/controllers/tr8n/admin/translation_key_controller.rb +5 -1
  20. data/app/controllers/tr8n/admin/translator_controller.rb +1 -1
  21. data/app/{helpers/tr8n/application_helper.rb → controllers/tr8n/api/v1/sync_controller.rb} +6 -3
  22. data/app/controllers/tr8n/awards_controller.rb +12 -12
  23. data/app/controllers/tr8n/base_controller.rb +140 -137
  24. data/app/controllers/tr8n/dashboard_controller.rb +2 -1
  25. data/app/controllers/tr8n/forum_controller.rb +1 -1
  26. data/app/controllers/tr8n/glossary_controller.rb +1 -1
  27. data/app/controllers/tr8n/help_controller.rb +1 -1
  28. data/app/controllers/tr8n/language_cases_controller.rb +43 -45
  29. data/app/controllers/tr8n/language_controller.rb +1 -1
  30. data/app/controllers/tr8n/phrases_controller.rb +1 -1
  31. data/app/controllers/tr8n/translations_controller.rb +1 -1
  32. data/app/controllers/tr8n/translator_controller.rb +1 -1
  33. data/app/helpers/tr8n/base_helper.rb +0 -4
  34. data/app/models/tr8n/base_filter.rb +1 -1
  35. data/app/models/tr8n/daily_language_metric.rb +1 -1
  36. data/app/models/tr8n/date_rule.rb +1 -1
  37. data/app/models/tr8n/gender_list_rule.rb +1 -1
  38. data/app/models/tr8n/gender_rule.rb +1 -1
  39. data/app/models/tr8n/glossary.rb +1 -1
  40. data/app/models/tr8n/glossary_filter.rb +1 -1
  41. data/app/models/tr8n/integration/ru/russian_gender_list_rule.rb +1 -1
  42. data/app/models/tr8n/integration/ru/russian_numeric_rule.rb +1 -1
  43. data/app/models/tr8n/ip_location.rb +1 -1
  44. data/app/models/tr8n/ip_location_filter.rb +1 -1
  45. data/app/models/tr8n/language.rb +17 -8
  46. data/app/models/tr8n/language_case.rb +1 -1
  47. data/app/models/tr8n/language_case_filter.rb +1 -1
  48. data/app/models/tr8n/language_case_rule.rb +1 -1
  49. data/app/models/tr8n/language_case_rule_filter.rb +1 -1
  50. data/app/models/tr8n/language_case_value_map.rb +1 -1
  51. data/app/models/tr8n/language_case_value_map_filter.rb +1 -1
  52. data/app/models/tr8n/language_filter.rb +1 -1
  53. data/app/models/tr8n/language_forum_abuse_report.rb +1 -1
  54. data/app/models/tr8n/language_forum_abuse_report_filter.rb +1 -1
  55. data/app/models/tr8n/language_forum_message.rb +2 -2
  56. data/app/models/tr8n/language_forum_message_filter.rb +1 -1
  57. data/app/models/tr8n/language_forum_topic.rb +3 -3
  58. data/app/models/tr8n/language_forum_topic_filter.rb +1 -1
  59. data/app/models/tr8n/language_metric.rb +2 -2
  60. data/app/models/tr8n/language_metric_filter.rb +1 -1
  61. data/app/models/tr8n/language_rule.rb +37 -2
  62. data/app/models/tr8n/language_rule_filter.rb +1 -1
  63. data/app/models/tr8n/language_user.rb +3 -3
  64. data/app/models/tr8n/language_user_filter.rb +1 -1
  65. data/app/models/tr8n/list_rule.rb +1 -1
  66. data/app/models/tr8n/monthly_language_metric.rb +2 -2
  67. data/app/models/tr8n/numeric_rule.rb +1 -1
  68. data/app/models/tr8n/sync_log.rb +76 -0
  69. data/app/{controllers/tr8n/application_controller.rb → models/tr8n/sync_log_filter.rb} +4 -3
  70. data/app/models/tr8n/total_language_metric.rb +5 -4
  71. data/app/models/tr8n/translation.rb +61 -13
  72. data/app/models/tr8n/translation_domain.rb +1 -1
  73. data/app/models/tr8n/translation_domain_filter.rb +1 -1
  74. data/app/models/tr8n/translation_filter.rb +1 -1
  75. data/app/models/tr8n/translation_key.rb +33 -5
  76. data/app/models/tr8n/translation_key_comment.rb +1 -1
  77. data/app/models/tr8n/translation_key_comment_filter.rb +1 -1
  78. data/app/models/tr8n/translation_key_filter.rb +1 -1
  79. data/app/models/tr8n/translation_key_lock.rb +2 -2
  80. data/app/models/tr8n/translation_key_lock_filter.rb +1 -1
  81. data/app/models/tr8n/translation_key_source.rb +2 -2
  82. data/app/models/tr8n/translation_key_source_filter.rb +1 -1
  83. data/app/models/tr8n/translation_source.rb +2 -2
  84. data/app/models/tr8n/translation_source_filter.rb +1 -1
  85. data/app/models/tr8n/translation_vote.rb +3 -4
  86. data/app/models/tr8n/translation_vote_filter.rb +1 -1
  87. data/app/models/tr8n/translator.rb +19 -5
  88. data/app/models/tr8n/translator_filter.rb +1 -1
  89. data/app/models/tr8n/translator_following.rb +2 -2
  90. data/app/models/tr8n/translator_following_filter.rb +1 -1
  91. data/app/models/tr8n/translator_log.rb +1 -1
  92. data/app/models/tr8n/translator_log_filter.rb +1 -1
  93. data/app/models/tr8n/translator_metric.rb +15 -21
  94. data/app/models/tr8n/translator_metric_filter.rb +1 -1
  95. data/app/models/tr8n/translator_report.rb +2 -2
  96. data/app/models/tr8n/translator_report_filter.rb +1 -1
  97. data/app/models/tr8n/value_rule.rb +1 -1
  98. data/app/views/tr8n/admin/common/_paginator.html.erb +29 -17
  99. data/app/views/tr8n/admin/translation_key/_tabs.html.erb +3 -1
  100. data/app/views/tr8n/admin/translation_key/sync_logs.html.erb +5 -0
  101. data/app/views/tr8n/awards/index.html.erb +0 -2
  102. data/app/views/tr8n/common/_paginator.html.erb +24 -6
  103. data/app/views/tr8n/common/_tabs.html.erb +9 -5
  104. data/app/views/tr8n/forum/_messages.html.erb +1 -1
  105. data/app/views/tr8n/forum/index.html.erb +1 -1
  106. data/app/views/tr8n/glossary/index.html.erb +2 -2
  107. data/app/views/tr8n/{home → help}/credits.html.erb +0 -0
  108. data/app/views/tr8n/{home → help}/license.html.erb +0 -0
  109. data/app/views/tr8n/language_cases/index.html.erb +2 -2
  110. data/app/views/tr8n/phrases/_comments_module.html.erb +1 -1
  111. data/app/views/tr8n/phrases/index.html.erb +2 -6
  112. data/app/views/tr8n/translations/_list.html.erb +2 -6
  113. data/config/routes.rb +2 -2
  114. data/config/tr8n/config.yml +48 -13
  115. data/config/tr8n/rules/default_language_cases.yml +272 -0
  116. data/config/tr8n/tokens/data.yml +3 -1
  117. data/db/migrate/20111003194443_create_tr8n_sync_tables.rb +22 -0
  118. data/db/migrate/20111011013640_add_remote_id_to_tr8n_translators.rb +5 -0
  119. data/doc/classes.graffle +7049 -5152
  120. data/doc/classes.pdf +0 -0
  121. data/lib/generators/tr8n/templates/{create_tr8n_tables.rb → db/create_tr8n_tables.rb} +0 -0
  122. data/lib/generators/tr8n/templates/layouts/tr8n.html.erb +49 -0
  123. data/lib/generators/tr8n/templates/layouts/tr8n_admin.html.erb +61 -0
  124. data/lib/generators/tr8n/tr8n_generator.rb +11 -4
  125. data/lib/tasks/{tr8n_tasks.rake → tr8n.rake} +4 -0
  126. data/{app/controllers/tr8n/home_controller.rb → lib/tr8n/cache_adapters/memcached.rb} +12 -15
  127. data/lib/tr8n/config.rb +96 -53
  128. data/lib/tr8n/extensions/action_controller_extension.rb +1 -1
  129. data/lib/tr8n/extensions/action_view_extension.rb +4 -28
  130. data/lib/tr8n/tokens/data_token.rb +1 -1
  131. data/lib/tr8n/tokens/method_token.rb +1 -1
  132. data/lib/tr8n/tokens/transform_token.rb +1 -1
  133. data/lib/tr8n/version.rb +1 -1
  134. data/{test/dummy → local/tr8n_server}/Rakefile +1 -1
  135. data/{test/dummy → local/tr8n_server}/app/assets/javascripts/application.js +0 -0
  136. data/{test/dummy → local/tr8n_server}/app/assets/stylesheets/admin.css +0 -0
  137. data/{test/dummy → local/tr8n_server}/app/assets/stylesheets/application.css +0 -0
  138. data/local/tr8n_server/app/assets/stylesheets/components.css.scss +211 -0
  139. data/local/tr8n_server/app/assets/stylesheets/layout.css.scss +143 -0
  140. data/{test/dummy → local/tr8n_server}/app/controllers/admin/admins_controller.rb +0 -0
  141. data/{test/dummy → local/tr8n_server}/app/controllers/admin/base_controller.rb +0 -0
  142. data/{test/dummy → local/tr8n_server}/app/controllers/admin/users_controller.rb +0 -0
  143. data/{test/dummy → local/tr8n_server}/app/controllers/application_controller.rb +5 -0
  144. data/{test/dummy → local/tr8n_server}/app/controllers/demo_controller.rb +0 -0
  145. data/local/tr8n_server/app/controllers/home_controller.rb +4 -0
  146. data/{test/dummy → local/tr8n_server}/app/controllers/login_controller.rb +1 -1
  147. data/{test/dummy → local/tr8n_server}/app/helpers/application_helper.rb +0 -0
  148. data/{test/dummy → local/tr8n_server}/app/helpers/home_helper.rb +0 -0
  149. data/{test/dummy → local/tr8n_server}/app/mailers/.gitkeep +0 -0
  150. data/{test/dummy → local/tr8n_server}/app/models/.gitkeep +0 -0
  151. data/{test/dummy → local/tr8n_server}/app/models/admin.rb +0 -0
  152. data/{test/dummy → local/tr8n_server}/app/models/admin_filter.rb +0 -0
  153. data/{test/dummy → local/tr8n_server}/app/models/user.rb +0 -0
  154. data/{test/dummy → local/tr8n_server}/app/views/admin/admins/index.html.erb +0 -0
  155. data/{test/dummy → local/tr8n_server}/app/views/admin/users/index.html.erb +0 -0
  156. data/{test/dummy → local/tr8n_server}/app/views/demo/index.rhtml +0 -0
  157. data/{test/dummy → local/tr8n_server}/app/views/demo/tokens.rhtml +0 -0
  158. data/{app/views/tr8n → local/tr8n_server/app/views}/home/index.html.erb +1 -2
  159. data/local/tr8n_server/app/views/kaminari/_first_page.html.erb +11 -0
  160. data/local/tr8n_server/app/views/kaminari/_gap.html.erb +8 -0
  161. data/local/tr8n_server/app/views/kaminari/_last_page.html.erb +11 -0
  162. data/local/tr8n_server/app/views/kaminari/_next_page.html.erb +11 -0
  163. data/local/tr8n_server/app/views/kaminari/_page.html.erb +12 -0
  164. data/local/tr8n_server/app/views/kaminari/_paginator.html.erb +23 -0
  165. data/local/tr8n_server/app/views/kaminari/_prev_page.html.erb +11 -0
  166. data/{test/dummy → local/tr8n_server}/app/views/layouts/_flashes.html.erb +0 -0
  167. data/{test/dummy → local/tr8n_server}/app/views/layouts/_footer.html.erb +3 -3
  168. data/{test/dummy → local/tr8n_server}/app/views/layouts/_header.html.erb +1 -1
  169. data/{test/dummy → local/tr8n_server}/app/views/layouts/admin.html.erb +0 -0
  170. data/{test/dummy → local/tr8n_server}/app/views/layouts/application.html.erb +0 -0
  171. data/local/tr8n_server/app/views/layouts/tr8n.html.erb +51 -0
  172. data/local/tr8n_server/app/views/layouts/tr8n_admin.html.erb +61 -0
  173. data/{test/dummy → local/tr8n_server}/app/views/login/index.html.erb +0 -0
  174. data/{test/dummy → local/tr8n_server}/app/views/login/register.html.erb +8 -13
  175. data/{test/dummy → local/tr8n_server}/config.ru +1 -1
  176. data/{test/dummy → local/tr8n_server}/config/application.rb +2 -1
  177. data/{test/dummy → local/tr8n_server}/config/boot.rb +0 -0
  178. data/{test/dummy → local/tr8n_server}/config/database.yml +0 -0
  179. data/{test/dummy → local/tr8n_server}/config/environment.rb +1 -1
  180. data/{test/dummy → local/tr8n_server}/config/environments/development.rb +3 -1
  181. data/{test/dummy → local/tr8n_server}/config/environments/production.rb +1 -1
  182. data/{test/dummy → local/tr8n_server}/config/environments/test.rb +1 -1
  183. data/{test/dummy → local/tr8n_server}/config/initializers/backtrace_silencers.rb +0 -0
  184. data/{test/dummy → local/tr8n_server}/config/initializers/inflections.rb +0 -0
  185. data/{test/dummy → local/tr8n_server}/config/initializers/mime_types.rb +0 -0
  186. data/{test/dummy → local/tr8n_server}/config/initializers/secret_token.rb +1 -1
  187. data/{test/dummy → local/tr8n_server}/config/initializers/session_store.rb +2 -2
  188. data/{test/dummy → local/tr8n_server}/config/initializers/wrap_parameters.rb +0 -0
  189. data/{test/dummy → local/tr8n_server}/config/locales/en.yml +0 -0
  190. data/{test/dummy → local/tr8n_server}/config/routes.rb +2 -2
  191. data/{test/dummy → local/tr8n_server}/config/tr8n/config.yml +40 -11
  192. data/{test/dummy → local/tr8n_server}/config/tr8n/data/ip_locations.csv +0 -0
  193. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_date_rules.yml +0 -0
  194. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_gender_list_rules.yml +0 -0
  195. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_gender_rules.yml +0 -0
  196. data/local/tr8n_server/config/tr8n/rules/default_language_cases.yml +272 -0
  197. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_list_rules.yml +0 -0
  198. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_numeric_rules.yml +0 -0
  199. data/{test/dummy → local/tr8n_server}/config/tr8n/rules/default_value_rules.yml +0 -0
  200. data/{test/dummy → local/tr8n_server}/config/tr8n/site/default_glossary.yml +0 -0
  201. data/{test/dummy → local/tr8n_server}/config/tr8n/site/default_languages.yml +0 -0
  202. data/{test/dummy → local/tr8n_server}/config/tr8n/site/features.yml +0 -0
  203. data/{test/dummy → local/tr8n_server}/config/tr8n/site/shortcuts.yml +0 -0
  204. data/{test/dummy → local/tr8n_server}/config/tr8n/site/sitemap.json +0 -0
  205. data/{test/dummy → local/tr8n_server}/config/tr8n/tokens/data.yml +2 -0
  206. data/{test/dummy → local/tr8n_server}/config/tr8n/tokens/decorations.yml +0 -0
  207. data/{test/dummy → local/tr8n_server}/config/will_filter/config.yml +0 -0
  208. data/{test/dummy → local/tr8n_server}/db/migrate/20101207014543_create_users.rb +0 -0
  209. data/{test/dummy → local/tr8n_server}/db/migrate/20110113223509_create_admins.rb +0 -0
  210. data/{test/dummy → local/tr8n_server}/db/migrate/20110930041143_create_will_filter_filters.rb +0 -0
  211. data/{test/dummy → local/tr8n_server}/db/migrate/20110930041150_create_tr8n_tables.rb +0 -0
  212. data/local/tr8n_server/db/migrate/20111003194443_create_tr8n_sync_tables.rb +22 -0
  213. data/local/tr8n_server/db/migrate/20111011013640_add_remote_id_to_tr8n_translators.rb +5 -0
  214. data/{test/dummy → local/tr8n_server}/db/schema.rb +15 -1
  215. data/{test/dummy → local/tr8n_server}/lib/assets/.gitkeep +0 -0
  216. data/{test/dummy → local/tr8n_server}/public/404.html +0 -0
  217. data/{test/dummy → local/tr8n_server}/public/422.html +0 -0
  218. data/{test/dummy → local/tr8n_server}/public/500.html +0 -0
  219. data/{test/dummy → local/tr8n_server}/public/favicon.ico +0 -0
  220. data/{test/dummy → local/tr8n_server}/script/rails +0 -0
  221. data/script/rails +1 -1
  222. data/spec/config/config_spec.rb +10 -0
  223. data/spec/fake_app.rb +50 -0
  224. data/spec/lib/data_token_spec.rb +26 -0
  225. data/spec/lib/transform_token_spec.rb +22 -0
  226. data/spec/models/translation_key_spec.rb +63 -0
  227. data/spec/spec_helper.rb +29 -0
  228. data/tr8n.gemspec +3 -1
  229. metadata +264 -245
  230. data/app/assets/images/tr8n/tr8n_logo.png +0 -0
  231. data/app/assets/images/tr8n/tr8n_logo2.gif +0 -0
  232. data/app/controllers/tr8n/login_controller.rb +0 -86
  233. data/app/views/layouts/_footer.html.erb +0 -15
  234. data/app/views/layouts/_header.html.erb +0 -12
  235. data/app/views/layouts/_html_head.html.erb +0 -5
  236. data/app/views/layouts/tr8n.html.erb +0 -21
  237. data/app/views/layouts/tr8n/application.html.erb +0 -14
  238. data/app/views/layouts/tr8n_admin.html.erb +0 -33
  239. data/app/views/tr8n/home/languages.html.erb +0 -7
  240. data/app/views/tr8n/login/index.html.erb +0 -33
  241. data/app/views/tr8n/login/register.html.erb +0 -57
  242. data/config/tr8n/rules/default_cases.yml +0 -141
  243. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/actions.css.scssc +0 -0
  244. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/buttons.css.scssc +0 -0
  245. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/calendar.css.scssc +0 -0
  246. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/exporter.css.scssc +0 -0
  247. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/filter.css.scssc +0 -0
  248. data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/results.css.scssc +0 -0
  249. data/test/dummy/.sass-cache/3d45bab40fcae805deb2750a9342f5b355a9f2bf/components.css.scssc +0 -0
  250. data/test/dummy/.sass-cache/3d45bab40fcae805deb2750a9342f5b355a9f2bf/layout.css.scssc +0 -0
  251. data/test/dummy/.sass-cache/50f723c1dd802042d0091035528d53e6d5bc5b50/tr8n.css.scssc +0 -0
  252. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/actions.css.scssc +0 -0
  253. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/buttons.css.scssc +0 -0
  254. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/calendar.css.scssc +0 -0
  255. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/exporter.css.scssc +0 -0
  256. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/filter.css.scssc +0 -0
  257. data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/results.css.scssc +0 -0
  258. data/test/dummy/app/assets/stylesheets/keyboard.css +0 -147
  259. data/test/dummy/config/tr8n/rules/default_cases.yml +0 -141
  260. data/test/dummy/log/.gitkeep +0 -0
  261. data/test/dummy/test/functional/home_controller_test.rb +0 -9
  262. data/test/dummy/test/unit/helpers/home_helper_test.rb +0 -4
  263. data/test/integration/navigation_test.rb +0 -10
  264. data/test/test_helper.rb +0 -10
  265. data/test/tr8n_test.rb +0 -7
data/.gitignore CHANGED
@@ -1,8 +1,7 @@
1
1
  .bundle/
2
- log/*.log
3
2
  pkg/
4
- test/dummy/db/*.sqlite3
5
- test/dummy/log/*.log
3
+ *.sqlite3
4
+ *.log
6
5
  test/dummy/tmp/
7
6
  db/schema.rb*
8
7
  tmp/*
@@ -15,3 +14,7 @@ log/*
15
14
  .dotest*
16
15
  Thumbs.db
17
16
  .tmp*
17
+ local/tr8n_server/tmp/*
18
+ local/tr8n_server/.sass-cache/*
19
+ local/tr8n_server/db/*.sqlite3
20
+ local/tr8n_server/log/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format=d
data/Gemfile CHANGED
@@ -5,10 +5,7 @@ source "http://rubygems.org"
5
5
  # development dependencies will be added by default to the :development group.
6
6
  gemspec
7
7
 
8
- # Declare any dependencies that are still in development here instead of in
9
- # your gemspec. These might include edge Rails or gems from your path or
10
- # Git. Remember to move these dependencies to your gemspec before releasing
11
- # your gem to rubygems.org.
12
-
13
8
  # To use debugger
14
- # gem 'ruby-debug19', :require => 'ruby-debug'
9
+ # gem 'ruby-debug19', :require => 'ruby-debug'
10
+
11
+ # Gems for a standalone instance only
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tr8n (3.1.1)
4
+ tr8n (3.1.2)
5
5
  coffee-script
6
6
  kaminari
7
7
  rails (>= 3.1.0)
@@ -52,6 +52,7 @@ GEM
52
52
  xpath (~> 0.1.4)
53
53
  childprocess (0.2.2)
54
54
  ffi (~> 1.0.6)
55
+ coderay (0.9.8)
55
56
  coffee-script (2.2.0)
56
57
  coffee-script-source
57
58
  execjs
@@ -73,11 +74,19 @@ GEM
73
74
  i18n (>= 0.4.0)
74
75
  mime-types (~> 1.16)
75
76
  treetop (~> 1.4.8)
77
+ memcache-client (1.8.5)
78
+ method_source (0.6.6)
79
+ ruby_parser (~> 2.0.5)
76
80
  mime-types (1.16)
77
81
  multi_json (1.0.3)
78
82
  nokogiri (1.5.0)
79
83
  polyglot (0.3.2)
80
- rack (1.3.3)
84
+ pry (0.9.6.2)
85
+ coderay (~> 0.9.8)
86
+ method_source (~> 0.6.5)
87
+ ruby_parser (~> 2.0.5)
88
+ slop (~> 2.1.0)
89
+ rack (1.3.4)
81
90
  rack-cache (1.0.3)
82
91
  rack (>= 0.4)
83
92
  rack-mount (0.8.3)
@@ -117,17 +126,21 @@ GEM
117
126
  activesupport (~> 3.0)
118
127
  railties (~> 3.0)
119
128
  rspec (~> 2.6.0)
129
+ ruby_parser (2.0.6)
130
+ sexp_processor (~> 3.0)
120
131
  rubyzip (0.9.4)
121
- sass (3.1.7)
132
+ sass (3.1.8)
122
133
  selenium-webdriver (2.7.0)
123
134
  childprocess (>= 0.2.1)
124
135
  ffi (>= 1.0.7)
125
136
  json_pure
126
137
  rubyzip
127
- sprockets (2.0.0)
138
+ sexp_processor (3.0.7)
139
+ slop (2.1.0)
140
+ sprockets (2.0.1)
128
141
  hike (~> 1.2)
129
142
  rack (~> 1.0)
130
- tilt (!= 1.3.0, ~> 1.1)
143
+ tilt (~> 1.1, != 1.3.0)
131
144
  sqlite3 (1.3.4)
132
145
  steak (2.0.0)
133
146
  capybara (>= 1.0.0)
@@ -138,7 +151,7 @@ GEM
138
151
  polyglot
139
152
  polyglot (>= 0.3.1)
140
153
  tzinfo (0.3.30)
141
- will_filter (3.1.2)
154
+ will_filter (3.1.3)
142
155
  coffee-script
143
156
  kaminari
144
157
  rails (>= 3.1.0)
@@ -154,6 +167,8 @@ DEPENDENCIES
154
167
  capybara
155
168
  database_cleaner
156
169
  factory_girl
170
+ memcache-client (>= 1.8.5)
171
+ pry
157
172
  rr
158
173
  rspec
159
174
  rspec-rails
@@ -1,12 +1,12 @@
1
1
  = Welcome to Tr8n Translation Engine
2
2
 
3
- Tr8n Translation Engine is a Rails Engine Gem that provides a framework for crowd-sourced translation and management of any content
4
- for any Rails based application. The power of the engine comes from its simple and friendly user interface that allows site users
5
- to rapidly translate the site into hundreds of languages. The flexible and robust rules engine that powers tr8n allows for any combination
6
- of language specific rules in any translatable sentence. Users can provide information on what sentences depend on gender rules,
7
- number rules or other rules configured for each language. The language specific context and case rules can be registered and managed for any language in
8
- the advanced user interface. The engine provides a set of powerful administration tools that allow admins to manage any aspect of the engine;
9
- enabling and disabling its features and monitoring translation progress.
3
+ Tr8n Translation Engine is a Rails Engine Plugin/Gem that provides a framework for crowd-sourced translation of any Rails based application.
4
+ The power of the engine comes from its simple and friendly user interface that allows site users as well as professional translators to rapidly
5
+ translate the site into hundreds of languages. The flexible and robust rules engine that powers Tr8n allows for any combination of language
6
+ specific rules in any translatable sentence. Users can provide information on what sentences depend on gender rules, number rules or other rules configured for each language.
7
+ The language specific context and case rules can be registered and managed for any language in the advanced user interface. The engine
8
+ provides a set of powerful administration tools that allow admins to manage any aspect of the engine; enabling and disabling its features
9
+ and monitoring translation progress.
10
10
 
11
11
  The Tr8n engine itself is based on a very robust and flexible pluggable architecture where rule types and the syntax of the "tr" tokens
12
12
  can be configured or extended for any application deployment.
@@ -41,59 +41,87 @@ http://wiki.tr8n.org/index.php?title=Tr8n_Languages
41
41
 
42
42
  Add the following gems to your Gemfile:
43
43
 
44
- gem "will_paginate", "~> 3.0.pre2"
45
- gem 'will_filter', "~> 3.0.0"
46
- gem 'tr8n', "~> 3.0.0"
44
+ gem 'kaminari'
45
+ gem 'will_filter', "~> 3.1.2"
46
+ gem 'tr8n', "~> 3.1.1"
47
+ gem 'sass'
48
+ gem 'coffee-script'
47
49
 
50
+
48
51
  And run:
49
52
 
50
- $ bundle install
53
+ $ bundle
51
54
 
52
- To configure and initialize tr8n engine, run the following commands:
55
+ At the top of your routes.rb file, add the following lines:
56
+
57
+ mount WillFilter::Engine => "/will_filter"
58
+ mount Tr8n::Engine => "/tr8n"
59
+
60
+ To configure and initialize Tr8n engine, run the following commands:
61
+
62
+ $ rails generate will_filter
63
+ $ rails generate tr8n
64
+ $ rake db:migrate
65
+ $ rake tr8n:init
66
+ $ rails s
53
67
 
54
- $ rails generate will_filter
55
- $ rails generate tr8n
56
- $ rake db:migrate
57
- $ rake tr8n:init
58
- $ rails server
59
68
 
60
69
  Open your browser and point to:
61
70
 
62
- http://localhost:3000/tr8n
71
+ http://localhost:3000/tr8n
72
+
63
73
 
64
74
  = Integration Instructions
65
75
 
66
- The best way to get going with Tr8n is to run the sample application and follow the instructions and documentation in the app:
76
+ The best way to get going with Tr8n is to run the gem as a stand-alone application and follow the instructions and documentation in the app:
67
77
 
68
- $ git clone -b rails3 git://github.com/berk/tr8n_examples.git
69
- $ cd tr8n_examples
78
+ $ git clone git://github.com/berk/tr8n.git
79
+ $ cd tr8n/local/tr8n_server
70
80
  $ rake db:migrate
71
81
  $ rake tr8n:init
72
- $ rails server
82
+ $ rails s
73
83
 
74
84
  Open your browser and point to:
75
85
 
76
- http://localhost:3000
77
-
78
- Live Tr8n sample application is running here:
86
+ http://localhost:3000
79
87
 
80
- http://bit.ly/e9QhFY
81
88
 
82
89
  = Tr8n Screenshots
83
90
 
84
- Below are a few screenshots of what tr8n looks like:
91
+ Below are a few screenshots of what Tr8n looks like:
92
+
93
+ == Tr8n Language Selector (in a lightbox)
94
+
95
+ http://wiki.tr8n.org/images/e/e8/Tr8n1.png
96
+
97
+ == Tr8n Translation Interface
98
+
99
+ http://wiki.tr8n.org/images/4/4d/Tr8n2.png
100
+
101
+ == Tr8n Translation Votes Interface
102
+
103
+ http://wiki.tr8n.org/images/c/ce/Tr8n3.png
104
+
105
+ == Tr8n Language Selector (as a dropdown)
106
+
107
+ http://wiki.tr8n.org/images/6/64/Tr8n4.png
108
+
109
+ == Tr8n Translation Interface (with a keyboard)
110
+
111
+ http://wiki.tr8n.org/images/4/47/Tr8n6.png
112
+
113
+ == Tr8n Translation Tools
85
114
 
86
- http://wiki.tr8n.org/images/b/b7/Tr8n_screenshot_1.png
115
+ http://wiki.tr8n.org/images/0/02/Tr8n8.png
87
116
 
88
- http://wiki.tr8n.org/images/5/55/Tr8n_screenshot_2.png
117
+ == Tr8n Translator Dashboard
89
118
 
90
- http://wiki.tr8n.org/images/3/3c/Tr8n_screenshot_3.png
119
+ http://wiki.tr8n.org/images/7/7c/Tr8n5.png
91
120
 
92
- http://wiki.tr8n.org/images/7/7b/Tr8n_screenshot_4.png
121
+ == Tr8n Translation Admin Tools
93
122
 
94
- http://wiki.tr8n.org/images/9/91/Tr8n_screenshot_5.png
123
+ http://wiki.tr8n.org/images/4/44/Tr8n7.png
95
124
 
96
- http://wiki.tr8n.org/images/8/8b/Tr8n_screenshot_6.png
97
125
 
98
126
  = External Links
99
127
 
data/Rakefile CHANGED
@@ -22,21 +22,11 @@ RDoc::Task.new(:rdoc) do |rdoc|
22
22
  rdoc.rdoc_files.include('lib/**/*.rb')
23
23
  end
24
24
 
25
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
25
+ APP_RAKEFILE = File.expand_path("../local/tr8n_server/Rakefile", __FILE__)
26
26
  load 'rails/tasks/engine.rake'
27
27
 
28
-
29
28
  Bundler::GemHelper.install_tasks
30
29
 
31
- require 'rake/testtask'
32
-
33
- Rake::TestTask.new(:test) do |t|
34
- t.libs << 'lib'
35
- t.libs << 'test'
36
- t.pattern = 'test/**/*_test.rb'
37
- t.verbose = false
38
- end
39
-
40
30
  require 'rspec/core'
41
31
  require 'rspec/core/rake_task'
42
32
  RSpec::Core::RakeTask.new(:spec) do |spec|
@@ -3,4 +3,45 @@
3
3
  * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
4
  * the top of the compiled file, but it's generally better to create a new file per style scope.
5
5
  *= require_self
6
- */
6
+ */
7
+
8
+ @mixin rounded-corners($radius) {
9
+ border-radius: $radius;
10
+ -moz-border-radius: $radius;
11
+ -webkit-border-radius: $radius;
12
+ }
13
+
14
+ @mixin shadow($info) {
15
+ box-shadow:$info;
16
+ -moz-box-shadow:$info;
17
+ -webkit-box-shadow:$info;
18
+ }
19
+
20
+ @import "layout.css.scss";
21
+ @import "components.css.scss";
22
+
23
+ img {vertical-align:text-middle !important;}
24
+ a {text-decoration:none; color:#16b; outline:none; border:0px;}
25
+ a:hover {text-decoration:underline}
26
+ a img {border:0px}
27
+
28
+ td {
29
+ font-size: 11px;
30
+ font-family: verdana;
31
+ }
32
+ h1 {
33
+ font-size:32px;
34
+ font-family:arial;
35
+ font-weight: bold;
36
+ padding: 0px;
37
+ padding-bottom: 15px;
38
+ margin: 0px;
39
+ }
40
+ h2 {
41
+ font-size:20px;
42
+ font-family:arial;
43
+ padding: 0px;
44
+ padding-bottom: 15px;
45
+ margin: 0px;
46
+ }
47
+
@@ -414,14 +414,22 @@ button::-moz-focus-inner {border:none;}
414
414
  /*** Licensed under GPL and MIT.
415
415
  /****************************************/
416
416
 
417
- .tr8n_pcb, .tr8n_pcb span {background: url('/assets/tr8n/buttons.png') no-repeat; height: 23px; line-height: 23px; padding: 3px 0 7px 0; }
418
- .tr8n_pcb, a.tr8n_pcb:link, a.tr8n_pcb:visited {color: #333; font-size: 12px; font-style:bold; font-family:arial; padding-left: 14px; text-decoration: none !important; }
419
-
420
- /* ie 6 hack */
421
- * html div#frame .tr8n_pcb {color: #333; padding-top: 0px; padding-bottom: 0px; text-decoration: none; }
422
-
423
- /* ie 7 hack */
424
- *:first-child+html .tr8n_pcb {color: #333; padding-top: 0px; padding-bottom: 0px; text-decoration: none; }
417
+ .tr8n_pcb {
418
+ background: url('/assets/tr8n/buttons.png') no-repeat;
419
+ height: 23px;
420
+ line-height: 23px;
421
+ padding: 3px 0 7px 0;
422
+
423
+ span {
424
+ background: url('/assets/tr8n/buttons.png') no-repeat;
425
+ height: 23px;
426
+ line-height: 23px;
427
+ padding: 3px 0 7px 0;
428
+ }
429
+ }
430
+ .tr8n_pcb {color: #333; font-size: 12px; font-style:bold; font-family:arial; padding-left: 14px; text-decoration: none !important; }
431
+ a.tr8n_pcb:link {color: #333; font-size: 12px; font-style:bold; font-family:arial; padding-left: 14px; text-decoration: none !important; }
432
+ a.tr8n_pcb:visited {color: #333; font-size: 12px; font-style:bold; font-family:arial; padding-left: 14px; text-decoration: none !important; }
425
433
 
426
434
  .tr8n_pcb span {background-position: right -326px; padding-right: 14px; }
427
435
  a.tr8n_grey_button {background-position: left -219px; padding-top: 3px; }
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -110,6 +110,10 @@ class Tr8n::Admin::TranslationKeyController < Tr8n::Admin::BaseController
110
110
  @comments = Tr8n::TranslationKeyComment.filter(:params => params, :filter => Tr8n::TranslationKeyCommentFilter)
111
111
  end
112
112
 
113
+ def sync_logs
114
+ @logs = Tr8n::SyncLog.filter(:params => params, :filter => Tr8n::SyncLogFilter)
115
+ end
116
+
113
117
  def delete_comment
114
118
  params[:comments] = [params[:comment_id]] if params[:comment_id]
115
119
  if params[:comments]
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2010-2011 Michael Berkovich
2
+ # Copyright (c) 2010-2011 Michael Berkovich, tr8n.net
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -21,7 +21,10 @@
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
23
 
24
- module Tr8n
25
- module ApplicationHelper
24
+ class Tr8n::Api::V1::SyncController < Tr8n::Api::V1::BaseController
25
+
26
+ def index
27
+
26
28
  end
27
- end
29
+
30
+ end