card 1.101.0 → 1.101.5

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 (287) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/config/i18n-tasks.yml +0 -5
  4. data/config/initializers/01_core_extensions/array.rb +2 -1
  5. data/config/initializers/01_core_extensions/hash.rb +1 -0
  6. data/config/initializers/01_core_extensions/object.rb +15 -11
  7. data/config/initializers/02_patches/active_job.rb +1 -1
  8. data/config/initializers/02_patches/active_record.rb +2 -4
  9. data/config/initializers/02_patches/better_errors.rb +1 -3
  10. data/config/initializers/02_patches/kaminari.rb +2 -2
  11. data/config/initializers/deck_config.rb +1 -1
  12. data/config/initializers/inflections.rb +1 -0
  13. data/config/initializers/internationalization.rb +23 -21
  14. data/config/initializers/mime_types.rb +1 -0
  15. data/config/initializers/notification.rb +1 -0
  16. data/config/initializers/patches.rb +6 -5
  17. data/config/locales/en.yml +137 -525
  18. data/db/migrate/20110511221913_require_earlier_migrations.rb +1 -0
  19. data/db/migrate/20121111025347_require_1_10_migrations.rb +1 -0
  20. data/db/migrate/20121118114000_split_link_type.rb +1 -0
  21. data/db/migrate/20121118115000_update_link_type.rb +1 -0
  22. data/db/migrate/20130106052640_table_cleanup.rb +2 -2
  23. data/db/migrate/20130109015336_trunk_left.rb +1 -0
  24. data/db/migrate/20130411210957_update_codenames.rb +1 -0
  25. data/db/migrate/20140822073704_create_new_revision_tables.rb +1 -0
  26. data/db/migrate/20141001105348_move_revisions_to_actions.rb +9 -3
  27. data/db/migrate/20141216053032_better_index_names.rb +9 -6
  28. data/db/migrate/20170908114442_create_delayed_jobs.rb +1 -1
  29. data/db/migrate/20170908114452_increase_text_size_for_delayed_jobs.rb +1 -1
  30. data/db/migrate/20180514152037_add_card_virtuals_table.rb +1 -1
  31. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +3 -2
  32. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +9 -9
  33. data/db/migrate_core_cards/20130419215612_import_help_text.rb +3 -2
  34. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +5 -5
  35. data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +3 -2
  36. data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +2 -4
  37. data/db/migrate_core_cards/20131016172445_common_css_patch.rb +1 -3
  38. data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +1 -3
  39. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +12 -8
  40. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +2 -4
  41. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +16 -9
  42. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +19 -11
  43. data/db/migrate_core_cards/20140725180118_config_card_updates.rb +1 -1
  44. data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +1 -1
  45. data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +1 -1
  46. data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +2 -0
  47. data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +4 -2
  48. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +2 -2
  49. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +3 -4
  50. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +8 -4
  51. data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +14 -7
  52. data/db/migrate_core_cards/20150429090551_search_card_context.rb +6 -4
  53. data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +4 -2
  54. data/db/migrate_core_cards/20150510031118_fix_skin_codenames.rb +2 -1
  55. data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +3 -3
  56. data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +2 -1
  57. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +4 -3
  58. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +6 -2
  59. data/db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb +1 -1
  60. data/db/migrate_core_cards/20150824135418_update_file_history.rb +2 -0
  61. data/db/migrate_core_cards/20160804112510_reorganize_scripts.rb +1 -1
  62. data/db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb +1 -0
  63. data/db/migrate_core_cards/20160914132636_fix_mod_files.rb +2 -0
  64. data/db/migrate_core_cards/20161102202156_tweak_recaptcha_setting_cards.rb +6 -6
  65. data/db/migrate_core_cards/20161103154836_update_keys.rb +2 -1
  66. data/db/migrate_core_cards/20170209132834_email_test_context.rb +2 -0
  67. data/db/migrate_core_cards/20170314175313_add_notification_event_card.rb +3 -3
  68. data/db/migrate_core_cards/20170515101262_add_advanced_edit_cards.rb +1 -1
  69. data/db/migrate_core_cards/20170608200649_add_input_options_codename.rb +1 -1
  70. data/db/migrate_core_cards/20180712042655_head_rule.rb +3 -4
  71. data/db/migrate_core_cards/20180905061537_migrate_layouts.rb +4 -4
  72. data/db/migrate_core_cards/20181120200937_update_layout.rb +1 -1
  73. data/db/migrate_core_cards/20190320091257_upgrade_recaptcha_to_v3.rb +7 -7
  74. data/db/migrate_core_cards/20190424100531_update_credit_image.rb +1 -0
  75. data/db/migrate_core_cards/20190502130029_add_shark_and_help_desk_role.rb +15 -14
  76. data/db/migrate_core_cards/20190503122739_update_pristine_data.rb +1 -1
  77. data/db/migrate_core_cards/20190625153616_pointer_overhaul.rb +9 -5
  78. data/db/migrate_core_cards/20190718140126_add_guides.rb +3 -3
  79. data/db/migrate_core_cards/20190822093633_move_help_text_to_code.rb +1 -2
  80. data/db/migrate_core_cards/20190823220018_cleanup_for_decko_1_0.rb +1 -1
  81. data/db/migrate_core_cards/20190829093961_cardtype_grouping.rb +7 -7
  82. data/db/migrate_core_cards/20190902193208_input_type.rb +1 -3
  83. data/db/migrate_core_cards/20190909104250_add_cardtype_input_types.rb +2 -2
  84. data/db/migrate_core_cards/20191028135243_add_link_editor_to_tiny_mce_config.rb +1 -0
  85. data/db/migrate_core_cards/20191115160748_history_cleanup.rb +0 -1
  86. data/db/migrate_core_cards/20191118145629_codename_fixes.rb +1 -2
  87. data/db/migrate_core_cards/20200821231558_add_nest_list_type.rb +1 -1
  88. data/db/migrate_core_cards/data/decko_logo.svg +1 -59
  89. data/db/seed/new/card_actions.yml +2153 -2145
  90. data/db/seed/new/card_acts.yml +3 -3
  91. data/db/seed/new/card_references.yml +900 -858
  92. data/db/seed/new/cards.yml +4869 -4848
  93. data/db/seed/new/schema_migrations_deck_cards.yml +2 -0
  94. data/db/seed/test/fixtures/card_actions.yml +3563 -3547
  95. data/db/seed/test/fixtures/card_acts.yml +675 -675
  96. data/db/seed/test/fixtures/card_changes.yml +103 -103
  97. data/db/seed/test/fixtures/card_references.yml +2165 -2123
  98. data/db/seed/test/fixtures/cards.yml +7862 -7751
  99. data/db/seed/test/fixtures/rails.gif +0 -0
  100. data/db/seed/test/fixtures/schema_migrations_deck_cards.yml +2 -0
  101. data/db/test_seed.rb +33 -34
  102. data/lib/card.rb +18 -1
  103. data/lib/card/auth.rb +5 -2
  104. data/lib/card/auth/current.rb +39 -100
  105. data/lib/card/auth/proxy.rb +36 -16
  106. data/lib/card/auth/token.rb +8 -2
  107. data/lib/card/cache.rb +2 -1
  108. data/lib/card/cache/all.rb +88 -0
  109. data/lib/card/cache/card_class.rb +44 -0
  110. data/lib/card/cache/persistent.rb +3 -34
  111. data/lib/card/cache/persistent_class.rb +28 -0
  112. data/lib/card/codename.rb +3 -4
  113. data/lib/card/content.rb +20 -10
  114. data/lib/card/content/all.rb +59 -0
  115. data/lib/card/content/chunk.rb +1 -1
  116. data/lib/card/content/clean.rb +4 -3
  117. data/lib/card/content/diff.rb +3 -2
  118. data/lib/card/content/diff/l_c_s/processor.rb +1 -1
  119. data/lib/card/content/diff/result.rb +41 -29
  120. data/lib/card/content/parser.rb +2 -2
  121. data/lib/card/content/truncate.rb +6 -6
  122. data/lib/card/director.rb +1 -1
  123. data/lib/card/director/act_direction.rb +4 -0
  124. data/lib/card/director/all.rb +61 -0
  125. data/lib/card/director/card_class.rb +18 -0
  126. data/lib/card/director/card_methods.rb +1 -0
  127. data/lib/card/director/event_delay.rb +4 -6
  128. data/lib/card/director/phases.rb +0 -1
  129. data/lib/card/director/run.rb +2 -0
  130. data/lib/card/director/stages.rb +3 -2
  131. data/lib/card/dirty.rb +13 -3
  132. data/lib/card/env.rb +2 -2
  133. data/lib/card/env/location.rb +4 -3
  134. data/lib/card/env/success.rb +46 -103
  135. data/lib/card/env/success/target.rb +73 -0
  136. data/lib/card/error.rb +1 -2
  137. data/lib/card/fetch.rb +7 -4
  138. data/lib/card/fetch/all.rb +33 -0
  139. data/lib/card/fetch/card_class.rb +155 -0
  140. data/lib/card/fetch/results.rb +9 -0
  141. data/lib/card/fetch/retrieve.rb +2 -0
  142. data/lib/card/fetch/store.rb +1 -0
  143. data/lib/card/format.rb +1 -2
  144. data/lib/card/format/content.rb +1 -3
  145. data/lib/card/format/error.rb +8 -4
  146. data/lib/card/format/method_delegation.rb +10 -2
  147. data/lib/card/format/nest.rb +3 -2
  148. data/lib/card/format/nest/fetch.rb +3 -2
  149. data/lib/card/format/nesting/mode.rb +1 -1
  150. data/lib/card/format/nesting/subformat.rb +2 -1
  151. data/lib/card/format/render.rb +2 -2
  152. data/lib/card/format/wrapper.rb +1 -1
  153. data/lib/card/lexicon.rb +5 -4
  154. data/lib/card/mark.rb +17 -15
  155. data/lib/card/model/save_helper.rb +18 -184
  156. data/lib/card/model/save_helper/save_arguments.rb +94 -0
  157. data/lib/card/model/save_helper/save_helper_helper.rb +93 -0
  158. data/lib/card/name.rb +10 -9
  159. data/lib/card/name/all.rb +136 -0
  160. data/lib/card/name/all/descendants.rb +48 -0
  161. data/lib/card/name/all/parts.rb +67 -0
  162. data/lib/card/name/card_class.rb +28 -0
  163. data/lib/card/name/fields_and_traits.rb +4 -2
  164. data/lib/card/name/name_variants.rb +0 -1
  165. data/lib/card/query.rb +24 -19
  166. data/lib/card/query/card_query/interpretation.rb +3 -2
  167. data/lib/card/query/card_query/match_attributes.rb +2 -1
  168. data/lib/card/query/card_query/normalization.rb +1 -0
  169. data/lib/card/query/card_query/reference_attributes.rb +1 -1
  170. data/lib/card/query/card_query/sorting.rb +12 -4
  171. data/lib/card/query/join.rb +1 -1
  172. data/lib/card/query/sql_statement.rb +1 -1
  173. data/lib/card/query/value/match_value.rb +1 -0
  174. data/lib/card/reference/all.rb +136 -0
  175. data/lib/card/rule/all.rb +76 -0
  176. data/lib/card/rule/cache.rb +2 -0
  177. data/lib/card/set/advanced_api.rb +8 -4
  178. data/lib/card/set/event.rb +2 -2
  179. data/lib/card/set/event/all.rb +101 -0
  180. data/lib/card/set/event/delayed_event.rb +6 -6
  181. data/lib/card/set/event/options.rb +14 -5
  182. data/lib/card/set/event/skip_and_trigger.rb +89 -0
  183. data/lib/card/set/format.rb +16 -9
  184. data/lib/card/set/format/abstract_format/view_definition.rb +1 -0
  185. data/lib/card/set/format/abstract_format/view_opts.rb +1 -0
  186. data/lib/card/set/i18n_scope.rb +18 -13
  187. data/lib/card/set/inheritance.rb +8 -6
  188. data/lib/card/set/loader.rb +24 -13
  189. data/lib/card/set/pattern/all.rb +63 -0
  190. data/lib/card/set/pattern/base.rb +4 -74
  191. data/lib/card/set/pattern/class_methods.rb +75 -0
  192. data/lib/card/set/required_field.rb +4 -1
  193. data/lib/card/set/trait.rb +11 -8
  194. data/lib/card/setting.rb +13 -12
  195. data/lib/card/subcards.rb +3 -4
  196. data/lib/card/subcards/add.rb +3 -24
  197. data/lib/card/subcards/all.rb +103 -0
  198. data/lib/card/subcards/args.rb +42 -0
  199. data/lib/card/tasks/card/file_card_creator/abstract_file_card/ruby_file.rb +1 -1
  200. data/lib/card/tasks/card/file_card_creator/output_helper.rb +17 -14
  201. data/lib/card/tasks/card/migrate.rake +2 -2
  202. data/lib/card/view/cache.rb +6 -8
  203. data/lib/card/view/cache/cache_action.rb +1 -2
  204. data/lib/card/view/cache/stub.rb +1 -1
  205. data/lib/card/view/options.rb +5 -4
  206. data/lib/card/view/permission.rb +15 -3
  207. data/lib/cardio.rb +10 -67
  208. data/lib/cardio/defaults.yml +70 -0
  209. data/lib/cardio/migration.rb +2 -2
  210. data/lib/cardio/migration/deck_structure.rb +2 -4
  211. data/lib/cardio/migration/import.rb +3 -3
  212. data/lib/cardio/migration/import/import_data.rb +1 -0
  213. data/lib/cardio/mod.rb +1 -0
  214. data/lib/cardio/mod/dirs.rb +2 -2
  215. data/lib/cardio/mod/load_strategy.rb +2 -4
  216. data/lib/cardio/mod/loader/set_loader.rb +2 -1
  217. data/lib/cardio/mod/loader/set_pattern_loader.rb +0 -1
  218. data/lib/cardio/mod/module_template.rb +1 -0
  219. data/lib/cardio/modfiles.rb +2 -4
  220. data/lib/cardio/schema.rb +2 -4
  221. data/lib/cardio/utils.rb +9 -0
  222. data/lib/generators/card/format/format_generator.rb +1 -1
  223. data/lib/generators/card/migration/migration_generator.rb +2 -1
  224. data/lib/generators/card/mod/mod_generator.rb +3 -2
  225. data/lib/generators/card/set/set_generator.rb +3 -3
  226. data/lib/generators/card/template/template_generator.rb +1 -1
  227. data/mod/admin/set/self/admin.rb +6 -3
  228. data/mod/admin/set/self/admin_info.rb +3 -8
  229. data/mod/admin/set/self/trash.rb +3 -2
  230. data/mod/admin/spec/set/self/admin_spec.rb +4 -4
  231. data/mod/core/set/all/abort.rb +5 -5
  232. data/mod/core/set/all/assign_attributes.rb +12 -28
  233. data/mod/core/set/all/autoname.rb +17 -0
  234. data/mod/core/set/all/codename.rb +3 -2
  235. data/mod/core/set/all/collection.rb +4 -6
  236. data/mod/core/set/all/content.rb +55 -99
  237. data/mod/core/set/all/contextual_content.rb +2 -4
  238. data/mod/core/set/all/initialize.rb +9 -9
  239. data/mod/core/set/all/name_events.rb +78 -58
  240. data/mod/core/set/all/reference_events.rb +69 -0
  241. data/mod/core/set/all/states.rb +5 -5
  242. data/mod/core/set/all/subcards.rb +1 -101
  243. data/mod/core/set/all/trash.rb +16 -14
  244. data/mod/core/set/all/type.rb +11 -11
  245. data/mod/core/set/all/utils.rb +4 -1
  246. data/mod/{settings → core}/set/right/autoname.rb +0 -0
  247. data/mod/{settings → core}/set/self/autoname.rb +0 -0
  248. data/mod/core/set/type/cardtype.rb +28 -0
  249. data/mod/core/set_pattern/06_rule.rb +1 -1
  250. data/mod/core/spec/set/all/assign_attributes_spec.rb +10 -9
  251. data/mod/core/spec/set/all/{rules2_spec.rb → clean_me_spec.rb} +19 -4
  252. data/mod/core/spec/set/all/collection_spec.rb +1 -1
  253. data/mod/core/spec/set/all/export_spec.rb +1 -0
  254. data/mod/core/spec/set/all/initialize_spec.rb +11 -11
  255. data/mod/core/spec/set/all/name_events_spec.rb +204 -0
  256. data/mod/{standard → core}/spec/set/type/cardtype_spec.rb +3 -24
  257. data/mod/standard/file/logo/image-original.svg +1 -59
  258. metadata +50 -61
  259. data/config/initializers/uuid_state_file.rb +0 -3
  260. data/lib/card/mod_inflector.rb +0 -16
  261. data/mod/Modfile +0 -4
  262. data/mod/core/set/all/actify.rb +0 -68
  263. data/mod/core/set/all/cache.rb +0 -109
  264. data/mod/core/set/all/event_conditions.rb +0 -172
  265. data/mod/core/set/all/fetch.rb +0 -122
  266. data/mod/core/set/all/fetch_helper.rb +0 -35
  267. data/mod/core/set/all/i18n.rb +0 -11
  268. data/mod/core/set/all/name.rb +0 -229
  269. data/mod/core/set/all/pattern.rb +0 -54
  270. data/mod/core/set/all/references.rb +0 -191
  271. data/mod/core/set/all/rename.rb +0 -33
  272. data/mod/core/set/all/rules.rb +0 -81
  273. data/mod/core/spec/set/all/actify_spec.rb +0 -58
  274. data/mod/core/spec/set/all/content_spec.rb +0 -15
  275. data/mod/core/spec/set/all/event_conditions_spec.rb +0 -217
  276. data/mod/core/spec/set/all/fetch_helper_spec.rb +0 -65
  277. data/mod/core/spec/set/all/fetch_spec.rb +0 -338
  278. data/mod/core/spec/set/all/i18n_spec.rb +0 -17
  279. data/mod/core/spec/set/all/name_spec.rb +0 -11
  280. data/mod/core/spec/set/all/pattern_spec.rb +0 -101
  281. data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +0 -166
  282. data/mod/core/spec/set/all/references_spec.rb +0 -62
  283. data/mod/core/spec/set/all/rename_spec.rb +0 -189
  284. data/mod/core/spec/set/all/rules_spec.rb +0 -100
  285. data/mod/core/spec/set/all/subcards_spec.rb +0 -102
  286. data/mod/standard/set/all/rich_html/html_views/info.rb +0 -84
  287. data/mod/standard/set/type/cardtype.rb +0 -119
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2a2adcadfe25b2b8f3346896851f1abee137ac78420c53a0b043c316f1841d7
4
- data.tar.gz: 42c901e4d5d0822c48300a137e98d414ba742a778941906020829c7efa6c5e52
3
+ metadata.gz: 471e6eb7596b5743e59b50b9158fa16953ba916f328bb10a2e63153fad797eff
4
+ data.tar.gz: 51cf98adab2d3b8bf4c6f9b6a374d31da99da82d14b96eb3fc50634b8948e3d9
5
5
  SHA512:
6
- metadata.gz: e3bd0bd661fcef00cb6f9d416805538b0b333bfc2f2e761dddff9dfa919fbb359654ba79390273e6b9e4d016766b5eabe1c03e30c2f3818ffc13fae72e3b1d14
7
- data.tar.gz: ee57e12d8a067ecefc988e5d3cb69a558bdea9d54cc1dd827148458cc00fdf89c29ff3a90e7791413a02cac8dc14fc97e7f5b19f1b30be6d5c043502837977a9
6
+ metadata.gz: 6e86bce11c52e5fb214a5df5e09389f8328320c53316e0fba5a6747fe644d5e5468081dbd9d8e22c3a83b7db8b48a8d3cda25340dc0c3e1ec31901cc78c812fa
7
+ data.tar.gz: 68f7a39e5a47dd497c7ab4bc2160d4f125e4a9e617cd1bb3625472ac09b201917ba2f1688f3960cf90ab9064314a281265acea03f63f46bffc10c95ab37585c4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.0
1
+ 0.11.5
@@ -58,11 +58,6 @@ search:
58
58
  ## Root directories for relative keys resolution.
59
59
  relative_roots:
60
60
  - .
61
- # - app/controllers
62
- # - app/helpers
63
- # - app/mailers
64
- # - app/presenters
65
- # - app/views
66
61
 
67
62
  ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
68
63
  ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json)
@@ -7,8 +7,9 @@ module CoreExtensions
7
7
  end.join "\n"
8
8
  end
9
9
 
10
- def to_name
10
+ def cardname
11
11
  Card::Name.compose self
12
12
  end
13
+ alias_method :to_name, :cardname
13
14
  end
14
15
  end
@@ -13,6 +13,7 @@ module CoreExtensions
13
13
 
14
14
  def initialize_nested classes, level=0
15
15
  return classes[level].new if level == classes.size - 1
16
+
16
17
  classes[level].new do |h, k|
17
18
  h[k] = initialize_nested classes, level + 1
18
19
  end
@@ -18,16 +18,20 @@ module CoreExtensions
18
18
  klone
19
19
  end
20
20
 
21
- def send_unless method, *args, &_block
22
- (block_given? ? yield : self) || send(method, *args)
21
+ # @return [Card::Name]
22
+ def cardname
23
+ Card::Name.new self
23
24
  end
25
+ alias_method :to_name, :cardname
24
26
 
25
- def send_if method, *args, &_block
26
- (block_given? ? yield : self) && send(method, *args)
27
+ # @return [Card]
28
+ def card
29
+ Card[cardname]
27
30
  end
28
31
 
29
- def to_name
30
- Card::Name.new self
32
+ # @return [Integer] id of card with name
33
+ def card_id
34
+ cardname.card_id
31
35
  end
32
36
 
33
37
  def name?
@@ -36,7 +40,11 @@ module CoreExtensions
36
40
  # (at least in development mode) but the name cache is persistent.
37
41
  # Hence the name objects in the cache are objects of a different instance of the
38
42
  # Card::Name class and is_a?(Card::Name) will return false
39
- self.is_a? Cardname
43
+ is_a? Cardname
44
+ end
45
+
46
+ def in? other
47
+ other.include? self
40
48
  end
41
49
 
42
50
  def deep_clone_instance_variables
@@ -44,9 +52,5 @@ module CoreExtensions
44
52
  instance_variable_set v, instance_variable_get(v).deep_clone
45
53
  end
46
54
  end
47
-
48
- def in? other
49
- other.include? self
50
- end
51
55
  end
52
56
  end
@@ -69,7 +69,7 @@ module Patches
69
69
  end
70
70
  end
71
71
 
72
- def transform_integer_keys(hash, integer_keys)
72
+ def transform_integer_keys hash, integer_keys
73
73
  hash.transform_keys do |key|
74
74
  if integer_keys.include?(key)
75
75
  key.to_i
@@ -42,9 +42,7 @@ module Patches
42
42
 
43
43
  loop do
44
44
  relation = reorder(table[primary_key].asc).limit(batch_size)
45
- if batch_start
46
- relation = relation.where(table[primary_key].gt(batch_start))
47
- end
45
+ relation = relation.where(table[primary_key].gt(batch_start)) if batch_start
48
46
  items = relation.pluck(*select_columns)
49
47
 
50
48
  break if items.empty?
@@ -66,7 +64,7 @@ module Patches
66
64
  module ConnectionAdapters
67
65
  module AbstractAdapter
68
66
  def match _string
69
- raise I18n.t(:exception_not_implemented, scope: "lib.card.active_record_ext")
67
+ raise Cardio.t(:lib_exception_not_implemented)
70
68
  end
71
69
 
72
70
  def cast_types
@@ -21,9 +21,7 @@ module Patches
21
21
  def real_filename_and_line_offset filename
22
22
  File.open(filename) do |file|
23
23
  file.each_line.with_index do |line, i|
24
- if line =~ /pulled from ([\S]+) ~~/
25
- return Regexp.last_match(1), i + 1
26
- end
24
+ return Regexp.last_match(1), i + 1 if line.match?(/pulled from (\S+) ~~/)
27
25
  end
28
26
  end
29
27
  [filename, 0]
@@ -2,7 +2,7 @@ module Patches
2
2
  module Kaminari
3
3
  module Helpers
4
4
  module Tag
5
- def self.included(klass)
5
+ def self.included klass
6
6
  klass.class_eval do
7
7
  remove_method :page_url_for
8
8
  end
@@ -33,7 +33,7 @@ module Patches
33
33
  # to: {other: "params", user: {name: "yuki", page: nil}}
34
34
  # (when @param_name == "user[page]")
35
35
  @param_name.to_s.scan(/\w+/)[0..-2]
36
- .inject(page_params) { |h, k| h[k] }[$&] = nil
36
+ .inject(page_params) { |h, k| h[k] }[Regexp.last_match(0)] = nil
37
37
  end
38
38
 
39
39
  page_params
@@ -1,3 +1,3 @@
1
- if File.exist? 'config/deck.yml'
1
+ if File.exist? "config/deck.yml"
2
2
  Decko.application.config.x = OpenStruct.new(Decko.application.config_for(:deck))
3
3
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+
2
3
  # Be sure to restart your server when you modify this file.
3
4
 
4
5
  # Add new inflection rules using the following format
@@ -4,28 +4,30 @@
4
4
  #
5
5
  # Necessary since 'card' is packaged as a gem which is not an Engine
6
6
 
7
- I18n.load_path += Dir.glob(Pathname(__FILE__).parent.parent.to_s +
8
- "/locales/*.{rb,yml}")
7
+ I18n.load_path += Dir.glob("#{Pathname(__FILE__).parent.parent}/locales/*.{rb,yml}")
9
8
 
10
9
  # see http://svenfuchs.com/2009/7/19/experimental-ruby-i18n-extensions-pluralization-fallbacks-gettext-cache-and-chained-backend
11
- module I18n::Backend::Transformers
12
-
13
- # this variable is a hook to allow dynamic activation/deactivation
14
- @@demark_enable = true
15
-
16
- def translate(*args)
17
- transform_text(super) { |entry| "⟪#{entry}⟫" }
18
- end
19
-
20
- def localize(*args)
21
- transform_text(super) { |entry| "⟦#{entry}⟧" }
22
- end
23
-
24
- def transform_text entry
25
- if @@demark_enable && entry && (entry.is_a? String)
26
- yield(entry)
27
- else
28
- entry
10
+ module I18n
11
+ module Backend
12
+ module Transformers
13
+ # this variable is a hook to allow dynamic activation/deactivation
14
+ @@demark_enable = true
15
+
16
+ def translate *args
17
+ transform_text(super) { |entry| "⟪#{entry}⟫" }
18
+ end
19
+
20
+ def localize *args
21
+ transform_text(super) { |entry| "⟦#{entry}⟧" }
22
+ end
23
+
24
+ def transform_text entry
25
+ if @@demark_enable && entry && (entry.is_a? String)
26
+ yield(entry)
27
+ else
28
+ entry
29
+ end
30
+ end
29
31
  end
30
32
  end
31
33
  end
@@ -39,6 +41,6 @@ end
39
41
  # or ./config/environments/*.rb file.
40
42
 
41
43
  if ENV["DECKO_I18N_DEMARK"]
42
- I18n::Backend::Simple.send(:include, I18n::Backend::Transformers)
44
+ I18n::Backend::Simple.include I18n::Backend::Transformers
43
45
  puts "DECKO_I18N_DEMARK is active"
44
46
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+
2
3
  # Be sure to restart your server when you modify this file.
3
4
  # Add new mime types for use in respond_to blocks:
4
5
 
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+
2
3
  ActiveSupport::Notifications.subscribe(/^card/) do |name, start, finish, _id, payload|
3
4
  Rails.logger.debug "#{(finish - start) * 1000}ms: #{name}: #{payload[:message]}"
4
5
  end
@@ -47,9 +47,11 @@ module ActiveRecord #:nodoc: all
47
47
  end
48
48
  end
49
49
 
50
- module ActiveJob::Arguments #:nodoc: all
51
- class << self
52
- prepend Patches::ActiveJob::Arguments
50
+ module ActiveJob
51
+ module Arguments #:nodoc: all
52
+ class << self
53
+ prepend Patches::ActiveJob::Arguments
54
+ end
53
55
  end
54
56
  end
55
57
 
@@ -61,9 +63,8 @@ module ActiveSupport #:nodoc: all
61
63
  end
62
64
  end
63
65
 
64
-
65
66
  module Zeitwerk #:nodoc: all
66
67
  class Loader
67
68
  prepend Patches::Zeitwerk
68
69
  end
69
- end
70
+ end
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # key name prefixes:
6
6
  # 'exception_' begins key of text to be used in a raised exception
7
- # 'error_' begins key of text to be added to an error list (usuallly)
7
+ # 'error_' begins key of text to be added to an error list (usually)
8
8
  # 'search_' begins key of text to be used in CQL search comment
9
9
  # 'deny_' begins key of text to be used in denying action due to permissions
10
10
  # (Not all key names begin with a prefix. In the absence of a prefix,
@@ -30,540 +30,152 @@ en:
30
30
  card_date_seconds: '%B %e, %Y %H:%M:%S'
31
31
  card_date_only: '%B %e, %Y'
32
32
 
33
- # sign_in: Sign in
34
- # sign_up: Sign up
35
- # sign_out: Sign out
36
- # invite: Invite
37
- # submit: Submit
38
- # cancel: Cancel
39
- # close: Close
40
- # delete: Delete
33
+ lib_error_rendering: "Error rendering: %{cardname} (%{view} view)"
34
+ lib_exception_for_card: "for card %{cardname}: %{message}"
35
+ lib_exception_init_without_card: format initialized without card
36
+ lib_exception_not_implemented: "%{func} not implemented"
37
+ lib_exception_unknown_codename: "unknown codename: %{codename}"
38
+ lib_no_cardname: unknown card
41
39
 
42
- lib:
43
- card:
44
- active_record_ext:
45
- exception_not_implemented: "%{func} not implemented"
46
- codename:
47
- exception_unknown_codename: "unknown codename: %{codename}"
48
- error:
49
- exception_for_card: "for card %{cardname}: %{message}"
50
- format:
51
- error:
52
- exception_bad_arg: "bad %{category} argument: %{arg}"
53
- exception_bad_args: "bad %{category} arguments: %{args}"
54
- no_cardname: unknown card
55
- error_rendering: "Error rendering: %{cardname} (%{view} view)"
56
- exception_init_without_card: format initialized without card
57
- query:
58
- attributes:
59
- exception_bad_query: '"%{found_by}" value must be valid Search, but %{name} is a %{type}'
60
- clause:
61
- exception_bad_chars: "CQL contains disallowed characters: %{text}"
62
- interpretation:
63
- exception_invalid_attribute: Invalid attribute %{key}
64
- exception_invalid_args: Invalid query args %{items}
65
- exception_unknown_valtype: "unknown CQL value type: %{klass}"
66
- join:
67
- exception_to_not_join: "%{to} cannot be %{join}"
68
- exception_invalid_option: "invalid %{side} option: %{object}"
69
- sorting:
70
- exception_sort_not_implemented: "sort item: %{item} not yet implemented"
71
- value:
72
- exception_bad_condition_clause: Invalid Condition Clause %{item}
73
- exception_invalid_operator: Invalid Operator %{operator}
74
- set:
75
- format:
76
- exception_alias_fail: cannot find %{optview} view in %{optmod}; failed to alias %{view} in %{self}
77
- setting:
78
- templating: Templating
79
- permission: Permissions
80
- webpage: Webpage
81
- pointer: Pointer
82
- editing_cue: Editing cues
83
- event: Events
84
- other: Other
85
- config: Config
86
- mod:
87
- :core:
88
- set:
89
- all:
90
- codename:
91
- only_admins_codename: only admins can set codename
92
- error_code_in_use: codename %{codename} already in use
93
- # event:
94
- # outside_event_phases: phase method %{method} called outside of event phases
95
- # called_in_stage: "%{item} method %{method} called in stage %{stage}"
96
- # called_on_action: "on: %{xaction} method %{method} called on %{yaction}"
97
- # fetch:
98
- # exception_fetch_arg_skipvirt: "%{func} called with new arguments and %{sv}"
99
- name_events:
100
- error_name_exists: must be unique; '%{name}' already exists.
101
- error_too_long: is too long (255 character maximum; length is %{length})
102
- error_blank_name: can't be blank
103
- error_blank_key: cannot be blank
104
- error_banned_characters: "may not contain any of the following characters: %{banned}"
105
- error_name_tag: "%{name} in use as a tag"
106
- error_wrong_key: wrong key '%{key}' for name %{name}
107
- is_incomplete: is incomplete
108
- name:
109
- search_children: "(%{side}) children of %{parent_name}"
110
- rename:
111
- cannot_change_content: cannot change content while changing name
112
- cannot_change_type: cannot change type while changing name
113
- permissions:
114
- error_no_action_rule: No %{action} rule for %{name}
115
- you_cant: You don't have permission to %{what}
116
- deny_read_only: Currently in read-only mode
117
- deny_verb_name: You don't have permission to %{verb} %{name}
118
- deny_verb_this: You don't have permission to %{verb} this
119
- deny_create: You don't have permission to create %{part_card_name}
120
- deny_read_this: You don't have permission to read this
121
- deny_change_to_type: You don't have permission to change to this type (need create permission)
122
- deny_no_comment_template: No comments allowed on templates
123
- deny_no_comment_structured: No comments allowed on structured content
124
- references:
125
- exception_need_id: id required to delete references
126
- rules:
127
- search_userprefcards: "preference cards for user: %{name}"
128
- stages:
129
- exception_no_override_act: not allowed to override current act
130
- tracked_attributes:
131
- error_unknown_type: "%{type} is not a known type."
132
- trash:
133
- error_system_card: "%{name} is is a system card. (%{codename})"
134
- error_indestructible: "%{name} is an indestructible rule"
135
- error_user_edits: "Edits have been made with %{name}'s user account.\nDeleting this card would mess up our history."
136
- error_cant_delete_child: "can't delete %{child_name}: %{message}"
137
- exception_almost_deleted: Narrowly averted deleting current file
138
- type:
139
- error_cant_change_errors: "of %{name} can't be changed; errors creating new %{type_id}: %{error_messages}"
140
- error_no_such_type: No such type
141
- error_hard_templated: can't be changed because %{name} is hard templated to %{type_name}
142
- utils:
143
- exception_almost_deleted: Narrowly averted deleting current file
144
- set_pattern:
145
- :01_all:
146
- label_set_all_cards: All cards
147
- label_setfollow_all_cards: everything
148
- :02_all_plus:
149
- label_set_plus_cards: All "+" cards
150
- label_setfollow_plus_cards: all "+" cards
151
- :03_type:
152
- label_set_type_cards: All "%{name}" cards
153
- label_setfollow_type_cards: all "%{name}s"
154
- :04_star:
155
- label_set_star_cards: All "*" cards
156
- label_setfollow_star_cards: all "*" cards
157
- :05_rstar:
158
- label_set_rstar_cards: All "+*" cards
159
- label_setfollow_rstar_cards: all "+*" cards
160
- :06_right:
161
- label_set_right_cards: All "+%{name}" cards
162
- label_setfollow_right_cards: all "+%{name}s"
163
- :07_type_plus_right:
164
- label_set_typeplusright_cards: All "+%{right}" cards on "%{type}" cards
165
- label_setfollow_typeplusright_cards: all "+%{right}" on "%{type}s"
166
- :08_self:
167
- label_set_self_card: The card "%{name}"
40
+ core_cannot_change_content: cannot change content while changing name
41
+ core_cannot_change_type: cannot change type while changing name
42
+ core_cards_exist: Sorry, this card must remain a Cardtype so long as there are %{cardname} cards.
43
+ core_error_banned_characters: "may not contain any of the following characters: %{banned}"
44
+ core_error_blank_key: cannot be blank
45
+ core_error_blank_name: can't be blank
46
+ core_error_cant_alter: can't alter this type; %{name} cards still exist
47
+ core_error_cant_change_errors: "of %{name} can't be changed; errors creating new %{type_id}: %{error_messages}"
48
+ core_error_code_in_use: codename %{codename} already in use
49
+ core_error_hard_templated: can't be changed because %{name} is hard templated to %{type_name}
50
+ core_error_indestructible: "%{name} is an indestructible rule"
51
+ core_error_invalid_character_in_cardtype: "may not contain any of the following characters: %{banned}"
52
+ core_error_name_exists: must be unique; '%{name}' already exists.
53
+ core_error_name_tag: "%{name} in use as a tag"
54
+ core_error_no_such_type: No such type
55
+ core_error_system_card: "%{name} is is a system card. (%{codename})"
56
+ core_error_too_long: is too long (255 character maximum; length is %{length})
57
+ core_error_user_edits: "Edits have been made with %{name}'s user account.\nDeleting this card would mess up our history."
58
+ core_error_wrong_key: wrong key '%{key}' for name %{name}
59
+ core_exception_almost_deleted: Narrowly averted deleting current file
60
+ core_is_incomplete: is incomplete
61
+ core_only_admins_codename: only admins can set codename
62
+ core_rename_and_update: "Rename and Update"
63
+ core_renaming: "Renaming"
64
+ core_rename: "Rename"
65
+ core_rename_confirm: "Are you sure you want to rename"
66
+ core_rename_reference_confirm: "This name is referred to at least %{count} time(s). You may choose to <em>update</em> those references to use the new name."
168
67
 
169
- :standard:
170
- set:
171
- rstar:
172
- rules_editor:
173
- not_a_rule: not a rule
174
- applies_to: "<label>Applies to</label> %{card_link}:"
175
- no_current_rule: No Current Rule
176
- cancel: Cancel
177
- delete_revert_rule: Deleting will revert to %{rule_setting_name} rule for %{card_label}
178
- delete: Delete
179
- set: set
180
- related_set: related set
181
- current: current
182
- delete_narrower:
183
- one: This rule will not have any effect on this card unless you delete the narrower rule for %{rules_sentence}.
184
- other: This rule will not have any effect on this card unless you delete the narrower rules for %{rules_sentence}.
185
- submit: Submit
186
- self:
187
- head:
188
- edit_page: Edit this page!
189
- recent:
190
- recent_changes: Recent Changes
191
- search:
192
- results_for: "Search results for: %{keyword}"
193
- search_goto_items: "goto items for term: %{term}"
194
- stats:
195
- stat: Stat
196
- value: Value
197
- action: Action
198
- cards: cards
199
- trashed_cards: trashed cards
200
- delete_all: delete all
201
- actions: actions
202
- delete_old: delete old
203
- references: references
204
- repair_all: repair all
205
- view_cache: view cache
206
- clear_view_cache: clear view cache
207
- memory_now: memory now
208
- clear_cache: clear cache
209
- # memory previous
210
- memory_prev: memory prev
211
- # memory difference
212
- memory_diff: memory diff
213
- megabyte_suffix: M
214
- type:
215
- cardtype:
216
- cards_exist: Sorry, this card must remain a Cardtype so long as there are %{cardname} cards.
217
- add_card: Add %{cardname}
218
- configure_card: Configure %{cardname}
219
- error_cant_alter: can't alter this type; %{name} cards still exist
220
- error_invalid_character_in_cardtype: "may not contain any of the following characters: %{banned}"
221
- search_type:
222
- no_limit_exception: OH NO.. no limit
223
- no_content_exception: "Error in card '%{name}': can't run search with empty content"
224
- no_results: no results
225
- previous: Previous
226
- next: Next
227
- set:
228
- cant_edit: Cannot currently edit Sets
229
- rules: Rules
230
- set: Set
231
- field: field
232
- common: common
233
- by_group: by group
234
- by_name: by name
235
- recent: recent
236
- #:bootstrap: #No known language-specfic messages
68
+ admin_warn: ADMINISTRATOR WARNING
69
+ admin_email_off: Email delivery is turned off. Change settings in %{path} to send sign up notifications.
237
70
 
238
- :admin:
239
- set:
240
- self:
241
- admin_info:
242
- email_off: Email delivery is turned off. Change settings in %{path} to send sign up notifications.
243
- admin_warn: ADMINISTRATOR WARNING
244
- captcha_temp: Your captcha is currently working with temporary settings. This is fine for a local installation, but you will need new %{recaptcha_link} if you want to make this site public.
245
- captcha_keys: You are configured to use %{captcha_link}, but for that to work you need new %{recaptcha_link}.
246
- recaptcha_keys: recaptcha keys
247
- instructions: Instructions
248
- howto_add_keys: "How to add new recaptcha keys:"
249
- howto_register: Register your domain at %{recaptcha_link}
250
- howto_add: Add your keys to %{recaptcha_settings}
251
- howto_turn_off: 'How to turn captcha off:'
252
- howto_go: Go to %{captcha_card}
253
- howto_update: Update all *captcha rules to "no".
71
+ account_check_email: Check your email for a link to reset your password
72
+ account_deny_email_restricted: viewing email is restricted to administrators and account holders
73
+ account_deny_not_change_own_account: change the status of your own account
74
+ account_email_missing: email can't be blank
75
+ account_encrypted: encrypted
76
+ account_error_blank: can't be blank
77
+ account_error_invalid_address: must be valid address
78
+ account_error_not_active: Sorry, that account is not active.
79
+ account_error_not_recognized: not recognized
80
+ account_error_not_unique: must be unique
81
+ account_error_token_expired: expired token
254
82
 
255
- card-mod-legacy:
256
- set:
257
- abstract:
258
- table_of_contents:
259
- toc: Table of Contents
83
+ account_error_unknown_email: Unrecognized email.
84
+ account_error_wrong_password: Wrong password
85
+ account_exception_bad_expiration: illegal expiration value (eg '%{example}')
86
+ account_forgot_password: Forgot Password
87
+ account_invite: Invite
88
+ account_missing_account: "ERROR: signup card missing account"
89
+ account_or_sign_up: '...or sign up!'
90
+ account_password_length: must be at least 4 characters
91
+ account_password_missing: password can't be blank
92
+ account_private_data: Private data
93
+ account_reset_my_password: Reset my password
94
+ account_reset_password: RESET PASSWORD
95
+ account_search_email_duplicate: email duplicate? (%{content})
96
+ account_sign_in: Sign in
97
+ account_sign_in_title: Sign In
98
+ account_sign_out: Sign out
99
+ account_sign_up: Sign up
100
+ account_sorry_email_reset: Sorry, %{error_msg}. Please check your email for a new password reset link.
260
101
 
261
- card-mod-email:
262
- set:
263
- all:
264
- follow:
265
- emails_stop: stop sending emails about changes to %{cardlabel}
266
- emails_send: send emails about changes to %{cardlabel}
267
- unfollow: unfollow
268
- follow: follow
269
- notify:
270
- follow_included: follow cards included by %{cardname}
271
- followed_card: followed card
272
- follower: follower
273
- new: new
274
- deleted: deleted
275
- update_changes: "\nThis update included the following changes:%{changes}"
276
- right:
277
- follow:
278
- more_options: more options
279
- heading_get_notified: Get notified about changes
280
- following:
281
- no_preference: No following preference
282
- self:
283
- always:
284
- following: Following
285
- follow: follow
286
- created:
287
- following_created: Following content you created
288
- follow_if_created: follow if I created
289
- thing_created: "%{label} I created"
290
- edited:
291
- following_edited: Following content you edited
292
- follow_if_edited: follow if I edited
293
- thing_edited: "%{label} I edited"
294
- follow_defaults:
295
- confirm_update_all_heading: Are you sure you want to change the default follow rules?
296
- confirm_update_all_text: You may choose to update all existing users. This may take a while.
297
- submit_update: Submit and update all users
298
- updating: Updating
299
- submit: Submit
300
- never:
301
- ignoring: Ignoring
302
- ignore: ignore
303
- type_plus_right:
304
- user:
305
- follow:
306
- problems_card: Problems with %{cardname}
307
- sign_in: sign in
308
- please_sign_in: Please %{sign_in}
102
+ api_key_not_found: no API key found
103
+ api_key_incorrect: API key mismatch
104
+ api_key_invalid: "Invalid API Key; must contain 20+ alphanumeric characters only"
105
+ api_key_label: "API Key"
106
+ api_key_generate: "Generate API Key"
107
+ api_key_regenerate: "Regenerate API Key"
108
+ api_key_generating: "Generating API Key"
109
+ api_key_taken: "API Key taken"
110
+ api_key_get_jwt_token: "get a JWT token"
309
111
 
310
- card-mod-format:
311
- set:
312
- abstract:
313
- code_file:
314
- exception_not_set_path: "not a set path: %{path}"
315
- content_in_file: Content is stored in file and can't be edited.
316
- type:
317
- pointer:
318
- label_select: Select
319
- #description: description
320
- comment_style_group: STYLE GROUP
321
- search_opt_names_ptr: option names for pointer
322
- json:
323
- invalid_json: invalid json
324
- toggle:
325
- # Warning: unless careful, yes/no get converted to true/false
326
- :yes: 'yes'
327
- :no: 'no'
328
- number:
329
- not_numeric: "'%{content}' is not numeric"
330
- all:
331
- base:
332
- too_deep: Man, you're too deep. (Too many levels of nests at a time)
333
- error:
334
- unsupported_view: view (%{view}) not supported for %{cardname}
335
- not_found_named: Could not find %{cardname}.
336
- not_found_no_name: the card requested
337
- server_error: "\nWagn Hitch! Server Error. Yuck, sorry about that.\nTo tell us more and follow the fix,\nadd a support ticket at %{ticket_link}\n"
338
- se_hitch: 'Wagn Hitch :('
339
- se_sorry: Server Error. Yuck, sorry about that.
340
- se_ticket: <a href="%{ticket_link}">Add a support ticket</a> to tell us more and follow the fix.
341
- denial: Permission Denied
342
- bad_address: "404: Bad Address"
343
- too_slow: Timed out! %{showname} took too long to load.
344
- error_rendering: error rendering
345
- error_message: Error message (visible to admin only)
346
- add_thing: Add %{title}
347
- conflict: Conflict!
348
- also_changes: "%{actor_link} has also been making changes."
349
- conflict_instruction: Please examine below, resolve above, and re-submit.
350
- not_found: Not Found
351
- not_found_card: Could not find %{cardname}
112
+ bootstrap_cannot_source_theme: can't find source for theme %{theme_name}
113
+ bootstrap_not_valid_theme: not a valid theme %{theme_name}
352
114
 
353
- html_content:
354
- action_verb_added: added
355
- action_verb_deleted: deleted
356
- action_verb_edited: edited
357
- updated_how_when_who: "%{action_verb} %{elapsed_time_in_words} ago by %{who}"
358
- # editing:
359
- # new_type: New %{type_name}
360
- # new: New
361
- # confirm_rename: Are you sure you want to rename %{cardname}?
362
- # alter_related:
363
- # one: automatically alter 1 related name.
364
- # other: automatically alter %{count} related names.
365
- # affect_refs:
366
- # one: affect at least 1 reference to "%{cardname}"
367
- # other: affect at least %{count} references to "%{cardname}"
368
- # update_ignore: You may choose to <em>update or ignore</em> the referers.
369
- # change_will: This change will...
370
- # rename_update: Rename and Update
371
- # renaming: Renaming
372
- # rename: Rename
373
- html_error:
374
- problems_name: Problems with %{cardname}
375
- please: Please
376
- sign_in: sign in
377
- or: or
378
- sign_up: sign up
379
- read_only: We are currently in read-only mode. Please try again later.
380
- sorry: Sorry!
381
- need_permission_task: You need permission %{task}.
382
- to_do_that: to do that
383
- denied_task: to %{denied_task} this
384
- # form:
385
- # unsupported_action_class: "unsupported card_form action class: %{actionclass}"
386
- # submit: Submit
387
- # submitting: Submitting
388
- # cancel: Cancel
389
- menu:
390
- edit: edit
391
- discuss: discuss
392
- page: page
393
- rules: rules
394
- account: account
395
- modal:
396
- close: Close
397
- html_wrapper:
398
- close: Close
399
- format:
400
- html_format:
401
- unknown_layout: "Unknown layout: %{name}"
402
- built_in: "Built-in Layouts: %{built_in_layouts}"
403
- available_layouts: "Available Layouts: %{available_layouts}"
115
+ carrierwave_add_item: Add %{attachment_name}...
116
+ carrierwave_codename_needed_for_storage: codename needed for storage type coded
117
+ carrierwave_delete: Delete
118
+ carrierwave_download: Download %{title}
119
+ carrierwave_error_invalid_storage_type: "%{type} is not a valid file storage option"
120
+ carrierwave_file_error: File Error
121
+ carrierwave_is_missing: is missing
122
+ carrierwave_mod_argument_needed_to_save: mod argument needed to save card as coded
123
+ carrierwave_moving_files_is_not_supported: moving files from cloud elsewhere is not supported
124
+ carrierwave_replace_item: Replace %{attachment_name}...
125
+ carrierwave_unknown_storage_type: unknown storage type %{new_storage_type}
126
+ carrierwave_url_is_missing: url is missing
404
127
 
405
- card-mod-edit:
406
- set:
407
- all:
408
- bridge:
409
- tab_views:
410
- account: account
411
- activity: activity
412
- all: all
413
- autosaved_draft: autosaved draft
414
- by_group: by group
415
- by_name: by name
416
- cancel: cancel
417
- card_delete_confirm: Are you sure you want to delete %{cardname}?
418
- card_deleted: "%{cardname} deleted"
419
- children: children
420
- common: common
421
- content: content
422
- created: created
423
- delete: delete
424
- details: details
425
- discuss: discuss
426
- edit: edit
427
- edited: edited
428
- editors: editors
429
- engage: engage
430
- follow: follow
431
- history: history
432
- mates: mates
433
- name: name
434
- nests: nests
435
- pin_pin: pin
436
- pin_unpin: unpin
437
- recent: recent
438
- references_out: references out
439
- references_in: references in
440
- refresh: refresh
441
- roles: roles
442
- rules: rules
443
- structure: structure
444
- type: type
128
+ format_add_card: Add %{cardname}
129
+ format_bad_address: "404: Bad Address"
130
+ format_close: Close
131
+ format_configure_card: Configure %{cardname}
132
+ format_denial: Permission Denied
133
+ format_denied_task: to %{denied_task} this
134
+ format_invalid_json: invalid json
135
+ format_need_permission_task: "You need permission %{task}."
136
+ format_not_found_named: Could not find %{cardname}.
137
+ format_not_found_no_name: the card requested
138
+ format_not_numeric: "'%{content}' is not numeric"
139
+ format_or: "or"
140
+ format_please: Please
141
+ format_problems_name: Problems with %{cardname}
142
+ format_read_only: We are currently in read-only mode. Please try again later.
143
+ format_server_error: "\nWagn Hitch! Server Error. Yuck, sorry about that.\nTo tell us more and follow the fix,\nadd a support ticket at %{ticket_link}\n"
144
+ format_sorry: Sorry!
145
+ format_to_do_that: to do that
146
+ format_toggle_no: "no"
147
+ format_toggle_yes: "yes"
148
+ format_too_deep: Man, you're too deep. (Too many levels of nests at a time)
149
+ format_unsupported_view: view (%{view}) not supported for %{cardname}
445
150
 
446
- card-mod-carrierwave:
447
- set:
448
- abstract:
449
- attachment:
450
- error_invalid_storage_type: "%{type} is not a valid file storage option"
451
- url_is_missing: url is missing
452
- is_missing: is missing
453
- storage_type:
454
- mod_argument_needed_to_save: mod argument needed to save card as coded
455
- codename_needed_for_storage: codename needed for storage type coded
456
- unknown_storage_type: unknown storage type %{new_storage_type}
457
- moving_files_is_not_supported: moving files from cloud elsewhere is not supported
458
- type:
459
- file:
460
- file_error: File Error
461
- download: Download %{title}
462
- delete: Delete
463
- add_item: Add %{attachment_name}...
464
- replace_item: Replace %{attachment_name}...
151
+ history_error_not_latest_revision: changes not based on latest revision
465
152
 
153
+ layout_available_layouts: "Available Layouts: %{available_layouts}"
154
+ layout_unknown_layout: "Unknown layout: %{name}"
466
155
 
467
- card-mod-bootstrap:
468
- set:
469
- type:
470
- customized_bootswatch_skin:
471
- not_valid_theme: not a valid theme %{theme_name}
472
- cannot_source_theme: can't find source for theme %{theme_name}
156
+ legacy_toc: Table of Contents
473
157
 
474
- card-mod-history:
475
- set:
476
- all:
477
- content_history:
478
- error_not_latest_revision: changes not based on latest revision
479
- history:
480
- time_ago: "%{elapsed__time_in_words} ago"
481
- current: Current
482
- added: Added
483
- deleted: Deleted
484
- save_as_current: Save as current
485
- show_changes: Show changes
486
- hide_changes: Hide changes
158
+ permission_error_no_action_rule: No %{action} rule for %{name}
487
159
 
488
- card-mod-account:
489
- set:
490
- type:
491
- signup:
492
- views:
493
- sign_up: Sign up
494
- invite: Invite
495
- missing_account: "ERROR: signup card missing account"
496
- send_invite: Send Invitation
497
- first_last_help: usually first and last name
498
- signed_up_on: "%{name} signed up on %{date}"
499
- was_signed_up_on: "%{name} was signed up on %{date}"
500
- send: Send
501
- resend: Resend
502
- verification: A verification email has been sent
503
- verification_to: A verification email has been sent to %{email}
504
- action_verify_email: "%{action} verification email"
505
- approve_without: Approve without verification
506
- deny_delete: Deny and delete
507
- field_manip_abort: no field manipulation mid-activation
508
- no_account_abort: no account associated with %{name}
509
- illegal_approval_abort: illegal approval
510
- check_email_reset: Please check your email for a new password reset link.
511
- errors_message: Sorry, %{item}. %{message}
512
- user:
513
- help_first_last: üblicherweise Vor- und Nachname
514
- welcome: Willkommen, Decker!
515
- get_started: Um loszulegen, erstelle einen Account.
516
- email_off: "WARNING: E-Mail-Versand ist deaktiviert. Ändere die Einstellung in %{path} um bei neuen Registrierungen Benachrichtigungen zu senden."
517
- set_up: Anlegen
518
- setting_up: Lege an
519
- right:
520
- account:
521
- events:
522
- sorry_email_reset: Sorry, %{error_msg}. Please check your email for a new password reset link.
523
- email:
524
- error_invalid_address: must be valid address
525
- search_email_duplicate: email duplicate? (%{content})
526
- error_not_unique: must be unique
527
- deny_email_restricted: viewing email is restricted to administrators and account holders
528
- password:
529
- encrypted: encrypted
530
- password_length: must be at least 4 characters
531
- salt:
532
- private_data: Private data
533
- stats:
534
- field: Field
535
- cache_value: Cache Val
536
- db_value: Database Val
537
- cache_db_compare: Cache/DB Comparison
538
- cached_card: Cached Card Inspect
539
- db_card: Database Card Inspect
540
- status:
541
- deny_not_change_own_account: change the status of your own account
542
- api_key:
543
- private_data: Private data
544
- error_token_not_found: no token found
545
- error_token_expired: expired token
546
- error_incorrect_token: token mismatch
547
- exception_bad_expiration: illegal expiration value (eg '%{example}')
548
- self:
549
- account_links:
550
- sign_up: Sign up
551
- sign_in: Sign in
552
- invite: Invite
553
- sign_out: Sign out
554
- signin:
555
- sign_in_title: Sign In
556
- sign_in: Sign in
557
- or_sign_up: '...or sign up!'
558
- reset_password: RESET PASSWORD
559
- forgot_password: Forgot Password
560
- reset_my_password: Reset my password
561
- check_email: Check your email for a link to reset your password
562
- error_unknown_email: Unrecognized email.
563
- error_not_active: Sorry, that account is not active.
564
- error_blank: can't be blank
565
- error_wrong_password: Wrong password
566
- email_missing: email can't be blank
567
- password_missing: password can't be blank
568
- error_not_active: not active
569
- error_not_recognized: not recognized
160
+ recaptcha_captcha_keys: You are configured to use %{captcha_link}, but for that to work you need new %{recaptcha_link}.
161
+ recaptcha_captcha_temp: Your captcha is currently working with temporary settings. This is fine for a local installation, but you will need new %{recaptcha_link} if you want to make this site public.
162
+ recaptcha_howto_add: Add your keys to %{recaptcha_settings}
163
+ recaptcha_howto_add_keys: "How to add new recaptcha keys:"
164
+ recaptcha_howto_go: Go to %{captcha_card}
165
+ recaptcha_howto_register: Register your domain at %{recaptcha_link}
166
+ recaptcha_howto_turn_off: 'How to turn captcha off:'
167
+ recaptcha_howto_update: Update all *captcha rules to "no".
168
+
169
+ rules_config: Config
170
+ rules_event: Events
171
+ rules_other: Other
172
+ rules_permission: Permissions
173
+ rules_pointer: Pointer
174
+ rules_templating: Templating
175
+ rules_webpage: Webpage
176
+ rules_editing: Editing
177
+
178
+ alias_target_must_be_simple: "must be aliased to a single, valid simple card"
179
+ alias_must_be_simple: "must be a simple (not a compound) card"
180
+ alias_cards_no_children: "Alias cards can't have children"
181
+ alias_redirect_former_name: "redirect former name to new one"