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
@@ -0,0 +1,272 @@
1
+ #############################################################################
2
+ #
3
+ # Tr8n Default Language Cases
4
+ #
5
+ #############################################################################
6
+
7
+ en-US:
8
+ nom:
9
+ keyword: "nom"
10
+ latin_name: "Nominative"
11
+ native_name: "Nominative"
12
+ description: "Used for any noun or pronoun that is the subject of a verb"
13
+ application: "phrase"
14
+ obj:
15
+ keyword: "obj"
16
+ latin_name: "Objective"
17
+ native_name: "Objective"
18
+ description: "Used in the direct object, indirect object, object of preposition, object complement, and subject of an infinitive"
19
+ application: "phrase"
20
+ pos:
21
+ keyword: "pos"
22
+ latin_name: "Possessive"
23
+ native_name: "Possessive"
24
+ description: "Used to indicate possession (i.e., ownership). It is usually created by adding 's to the word"
25
+ application: "phrase"
26
+ rules:
27
+ 1:
28
+ multipart: false
29
+ gender: none
30
+ part1: ends_in
31
+ value1: "s"
32
+ operation: append
33
+ operation_value: "'"
34
+ 2:
35
+ multipart: false
36
+ gender: none
37
+ part1: does_not_end_in
38
+ value1: "s"
39
+ operation: append
40
+ operation_value: "'s"
41
+ ord:
42
+ keyword: "ord"
43
+ latin_name: "Ordinal"
44
+ native_name: "Ordinal"
45
+ description: "The adjective form of the cardinal numbers"
46
+ application: "phrase"
47
+ rules:
48
+ 1:
49
+ multipart: true
50
+ gender: none
51
+ part1: ends_in
52
+ value1: "1"
53
+ operator: and
54
+ part2: does_not_end_in
55
+ value2: "11"
56
+ operation: append
57
+ operation_value: "st"
58
+ 2:
59
+ multipart: true
60
+ gender: none
61
+ part1: ends_in
62
+ value1: "2"
63
+ operator: and
64
+ part2: does_not_end_in
65
+ value2: "12"
66
+ operation: append
67
+ operation_value: "nd"
68
+ 3:
69
+ multipart: true
70
+ gender: none
71
+ part1: ends_in
72
+ value1: "3"
73
+ operator: and
74
+ part2: does_not_end_in
75
+ value2: "13"
76
+ operation: append
77
+ operation_value: "rd"
78
+ 4:
79
+ multipart: false
80
+ gender: none
81
+ part1: ends_in
82
+ value1: "0,4,5,6,7,8,9,11,12,13"
83
+ operation: append
84
+ operation_value: "th"
85
+ times:
86
+ keyword: "times"
87
+ latin_name: "Iteration"
88
+ native_name: "Iteration"
89
+ description: "The iteration form of the cardinal numbers"
90
+ application: "phrase"
91
+ rules:
92
+ 1:
93
+ multipart: true
94
+ gender: none
95
+ part1: is
96
+ value1: "1"
97
+ operation: replace
98
+ operation_value: "once"
99
+ 2:
100
+ multipart: true
101
+ gender: none
102
+ part1: is
103
+ value1: "2"
104
+ operation: replace
105
+ operation_value: "twice"
106
+ 3:
107
+ multipart: true
108
+ gender: none
109
+ part1: is
110
+ value1: "3"
111
+ operation: replace
112
+ operation_value: "thrice"
113
+ 3:
114
+ multipart: false
115
+ gender: none
116
+ part1: is_not
117
+ value1: "1,2,3"
118
+ operation: append
119
+ operation_value: " times"
120
+ ordinal:
121
+ keyword: "ordinal"
122
+ latin_name: "Ordinal"
123
+ native_name: "Ordinal"
124
+ description: "The adjective form of the cardinal numbers"
125
+ application: "phrase"
126
+ rules:
127
+ 1:
128
+ multipart: true
129
+ gender: none
130
+ part1: is
131
+ value1: "1"
132
+ operation: replace
133
+ operation_value: "first"
134
+ 2:
135
+ multipart: true
136
+ gender: none
137
+ part1: is
138
+ value1: "2"
139
+ operation: replace
140
+ operation_value: "second"
141
+ 3:
142
+ multipart: true
143
+ gender: none
144
+ part1: is
145
+ value1: "3"
146
+ operation: replace
147
+ operation_value: "third"
148
+ 4:
149
+ multipart: true
150
+ gender: none
151
+ part1: ends_in
152
+ value1: "1"
153
+ operator: and
154
+ part2: does_not_end_in
155
+ value2: "11"
156
+ operation: append
157
+ operation_value: "st"
158
+ 5:
159
+ multipart: true
160
+ gender: none
161
+ part1: ends_in
162
+ value1: "2"
163
+ operator: and
164
+ part2: does_not_end_in
165
+ value2: "12"
166
+ operation: append
167
+ operation_value: "nd"
168
+ 6:
169
+ multipart: true
170
+ gender: none
171
+ part1: ends_in
172
+ value1: "3"
173
+ operator: and
174
+ part2: does_not_end_in
175
+ value2: "13"
176
+ operation: append
177
+ operation_value: "rd"
178
+ 7:
179
+ multipart: false
180
+ gender: none
181
+ part1: ends_in
182
+ value1: "0,4,5,6,7,8,9,11,12,13"
183
+ operation: append
184
+ operation_value: "th"
185
+
186
+ ru:
187
+ case1:
188
+ keyword: "nom"
189
+ latin_name: "Nominativus"
190
+ native_name: "Именительный падеж"
191
+ description: "Есть - Кто? Что?"
192
+ application: "words"
193
+ case2:
194
+ keyword: "gen"
195
+ latin_name: "Genitivus"
196
+ native_name: "Родительный падеж"
197
+ description: "Нет - Кого? Чего?"
198
+ application: "words"
199
+ rules:
200
+ 1:
201
+ multipart: false
202
+ gender: male
203
+ part1: ends_in
204
+ value1: "б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ"
205
+ operation: append
206
+ operation_value: "a"
207
+ 2:
208
+ multipart: false
209
+ gender: male
210
+ part1: ends_in
211
+ value1: "й"
212
+ operation: replace
213
+ operation_value: "я"
214
+ 3:
215
+ multipart: false
216
+ gender: female
217
+ part1: ends_in
218
+ value1: "а"
219
+ operation: replace
220
+ operation_value: "ы"
221
+ 4:
222
+ multipart: false
223
+ gender: female
224
+ part1: ends_in
225
+ value1: "я"
226
+ operation: replace
227
+ operation_value: "и"
228
+ case3:
229
+ keyword: "dat"
230
+ latin_name: "Dativus"
231
+ native_name: "Дательный падеж"
232
+ description: "Рад - Кому? Чему?"
233
+ application: "words"
234
+ case4:
235
+ keyword: "acc"
236
+ latin_name: "Accusativus"
237
+ native_name: "Винительный падеж"
238
+ description: "Вижу - Кого? Что?"
239
+ application: "words"
240
+ case5:
241
+ keyword: "ins"
242
+ latin_name: "Instrumentalis"
243
+ native_name: "Творительный падеж"
244
+ description: "Доволен - Кем? Чем?"
245
+ application: "words"
246
+ case6:
247
+ keyword: "pre"
248
+ latin_name: "Prepositivus"
249
+ native_name: "Предложный падеж"
250
+ description: "Думаю - О ком? О чём?"
251
+ application: "words"
252
+ case7:
253
+ keyword: "pos"
254
+ latin_name: "Possessive"
255
+ native_name: "Притяжательный падеж"
256
+ description: "Чей?"
257
+ application: "words"
258
+ rules:
259
+ 1:
260
+ multipart: false
261
+ gender: female
262
+ part1: ends_in
263
+ value1: "ва"
264
+ operation: replace
265
+ operation_value: "вой"
266
+ 2:
267
+ multipart: false
268
+ gender: male
269
+ part1: ends_in
270
+ value1: "б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ"
271
+ operation: append
272
+ operation_value: "a"
@@ -16,4 +16,6 @@ rsquo: "’" # ’
16
16
  laquo: "«" # «
17
17
  raquo: "»" # »
18
18
  nbsp: " " # space
19
+ lsaquo: "‹" # ‹
20
+ rsaquo: "›" # ›
19
21
  br: "<br/>" # line break
@@ -0,0 +1,22 @@
1
+ class CreateTr8nSyncTables < ActiveRecord::Migration
2
+ def up
3
+ create_table :tr8n_sync_logs do |t|
4
+ t.timestamp :started_at
5
+ t.timestamp :finished_at
6
+ t.integer :keys_sent
7
+ t.integer :translations_sent
8
+ t.integer :keys_received
9
+ t.integer :translations_received
10
+ t.timestamps
11
+ end
12
+
13
+ add_column :tr8n_translation_keys, :synced_at, :timestamp
14
+ add_column :tr8n_translations, :synced_at, :timestamp
15
+ end
16
+
17
+ def down
18
+ drop_table :tr8n_sync_logs
19
+ remove_column :tr8n_translation_keys, :synced_at
20
+ remove_column :tr8n_translations, :synced_at
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ class AddRemoteIdToTr8nTranslators < ActiveRecord::Migration
2
+ def change
3
+ add_column :tr8n_translators, :remote_id, :integer
4
+ end
5
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20110930041150) do
14
+ ActiveRecord::Schema.define(:version => 20111011013640) do
15
15
 
16
16
  create_table "admins", :force => true do |t|
17
17
  t.integer "user_id"
@@ -188,6 +188,17 @@ ActiveRecord::Schema.define(:version => 20110930041150) do
188
188
 
189
189
  add_index "tr8n_languages", ["locale"], :name => "index_tr8n_languages_on_locale"
190
190
 
191
+ create_table "tr8n_sync_logs", :force => true do |t|
192
+ t.datetime "started_at"
193
+ t.datetime "finished_at"
194
+ t.integer "keys_sent"
195
+ t.integer "translations_sent"
196
+ t.integer "keys_received"
197
+ t.integer "translations_received"
198
+ t.datetime "created_at"
199
+ t.datetime "updated_at"
200
+ end
201
+
191
202
  create_table "tr8n_translation_domains", :force => true do |t|
192
203
  t.string "name"
193
204
  t.string "description"
@@ -245,6 +256,7 @@ ActiveRecord::Schema.define(:version => 20110930041150) do
245
256
  t.integer "level", :default => 0
246
257
  t.datetime "created_at"
247
258
  t.datetime "updated_at"
259
+ t.datetime "synced_at"
248
260
  end
249
261
 
250
262
  add_index "tr8n_translation_keys", ["key"], :name => "index_tr8n_translation_keys_on_key", :unique => true
@@ -279,6 +291,7 @@ ActiveRecord::Schema.define(:version => 20110930041150) do
279
291
  t.text "rules"
280
292
  t.datetime "created_at"
281
293
  t.datetime "updated_at"
294
+ t.datetime "synced_at"
282
295
  end
283
296
 
284
297
  add_index "tr8n_translations", ["created_at"], :name => "tr8n_trans_created_at"
@@ -360,6 +373,7 @@ ActiveRecord::Schema.define(:version => 20110930041150) do
360
373
  t.string "country_code"
361
374
  t.datetime "created_at"
362
375
  t.datetime "updated_at"
376
+ t.integer "remote_id"
363
377
  end
364
378
 
365
379
  add_index "tr8n_translators", ["created_at"], :name => "index_tr8n_translators_on_created_at"
@@ -3,4 +3,4 @@
3
3
  # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
4
4
 
5
5
  ENGINE_PATH = File.expand_path('../..', __FILE__)
6
- load File.expand_path('../../test/dummy/script/rails', __FILE__)
6
+ load File.expand_path('../../local/tr8n_server/script/rails', __FILE__)
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
+
3
+ describe Tr8n::Config do
4
+ subject { Tr8n::Config }
5
+ describe 'operator_order' do
6
+ context 'by default' do
7
+ its(:config) {should_not == nil}
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,50 @@
1
+ require 'active_record'
2
+ require 'action_controller/railtie'
3
+ require 'action_view/railtie'
4
+
5
+ # database
6
+ ActiveRecord::Base.configurations = {'test' => {:adapter => 'sqlite3', :database => ':memory:'}}
7
+ ActiveRecord::Base.establish_connection('test')
8
+
9
+ # config
10
+ app = Class.new(Rails::Application)
11
+ app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
12
+ app.config.session_store :cookie_store, :key => "_myapp_session"
13
+ app.config.active_support.deprecation = :log
14
+ app.initialize!
15
+
16
+ # routes
17
+ app.routes.draw do
18
+ resources :users
19
+ end
20
+
21
+ # models
22
+ Dir["#{File.dirname(__FILE__)}/../local/tr8n_server/app/models/*.rb"].each do |f|
23
+ if [:user, :admin].include?(f.split("/").last.gsub('.rb', '').to_sym)
24
+ require f
25
+ end
26
+ end
27
+
28
+ # controllers
29
+ class ApplicationController < ActionController::Base; end
30
+ class UsersController < ApplicationController
31
+ def index
32
+ @users = User.filter(:params => params)
33
+ render :inline => <<-ERB
34
+ <%= will_filter_tag(@users) %>
35
+ ERB
36
+ end
37
+ end
38
+
39
+ # helpers
40
+ Object.const_set(:ApplicationHelper, Module.new)
41
+
42
+ #migrations
43
+ class CreateAllTables < ActiveRecord::Migration
44
+ def self.up
45
+ Dir["#{File.dirname(__FILE__)}/../local/tr8n_server/db/migrate/*.rb"].each do |f|
46
+ require f
47
+ f.split("/").last.gsub('.rb', '').split('_')[1..-1].join('_').camelcase.constantize.up
48
+ end
49
+ end
50
+ end