card 1.101.1 → 1.101.2
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/config/initializers/02_patches/active_record.rb +1 -1
- data/config/locales/en.yml +364 -528
- data/db/seed/test/fixtures/rails.gif +0 -0
- data/lib/card/codename.rb +2 -3
- data/lib/card/error.rb +1 -2
- data/lib/card/format.rb +1 -2
- data/lib/card/format/error.rb +2 -3
- data/lib/card/format/nest/fetch.rb +1 -2
- data/lib/card/set/i18n_scope.rb +16 -13
- data/lib/card/setting.rb +10 -12
- data/lib/cardio/utils.rb +6 -0
- data/mod/admin/set/self/admin_info.rb +2 -5
- data/mod/core/set/all/i18n.rb +2 -4
- metadata +11 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af639cc0367bf40d94b5f4f4b170898aecf1fabd9554613cd6ead266c3460758
|
|
4
|
+
data.tar.gz: 156bdc8fb46acd5d05ee77e371dc3baebc51ab038064099ac7489106fdf150db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 686e3a3cf69d047756b65f65868c55403493bf94f8e77ce9cc71cf7a1eccb931096cdc0f0fbe593827133bb525ef7132dc1be8ad6fb00c7d8492b273e31b8d9d
|
|
7
|
+
data.tar.gz: 6f0db4e8c51a8b7e4f03fc184ac134747443c0f31f58fc2e8609a065b38e653c62d22fbf99d3d6cf31f3979cdbd0fc699a0e120371d8e6d5827ca204857cc369
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.11.
|
|
1
|
+
0.11.2
|
data/config/locales/en.yml
CHANGED
|
@@ -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 (
|
|
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,543 +30,379 @@ 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
|
|
41
|
-
|
|
42
33
|
lib:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
type:
|
|
145
|
-
cardtype:
|
|
146
|
-
cards_exist: Sorry, this card must remain a Cardtype so long as there are %{cardname} cards.
|
|
147
|
-
error_cant_alter: can't alter this type; %{name} cards still exist
|
|
148
|
-
error_invalid_character_in_cardtype: "may not contain any of the following characters: %{banned}"
|
|
149
|
-
set_pattern:
|
|
150
|
-
:01_all:
|
|
151
|
-
label_set_all_cards: All cards
|
|
152
|
-
label_setfollow_all_cards: everything
|
|
153
|
-
:02_all_plus:
|
|
154
|
-
label_set_plus_cards: All "+" cards
|
|
155
|
-
label_setfollow_plus_cards: all "+" cards
|
|
156
|
-
:03_type:
|
|
157
|
-
label_set_type_cards: All "%{name}" cards
|
|
158
|
-
label_setfollow_type_cards: all "%{name}s"
|
|
159
|
-
:04_star:
|
|
160
|
-
label_set_star_cards: All "*" cards
|
|
161
|
-
label_setfollow_star_cards: all "*" cards
|
|
162
|
-
:05_rstar:
|
|
163
|
-
label_set_rstar_cards: All "+*" cards
|
|
164
|
-
label_setfollow_rstar_cards: all "+*" cards
|
|
165
|
-
:06_right:
|
|
166
|
-
label_set_right_cards: All "+%{name}" cards
|
|
167
|
-
label_setfollow_right_cards: all "+%{name}s"
|
|
168
|
-
:07_type_plus_right:
|
|
169
|
-
label_set_typeplusright_cards: All "+%{right}" cards on "%{type}" cards
|
|
170
|
-
label_setfollow_typeplusright_cards: all "+%{right}" on "%{type}s"
|
|
171
|
-
:08_self:
|
|
172
|
-
label_set_self_card: The card "%{name}"
|
|
34
|
+
# CONFIRMED
|
|
35
|
+
error_rendering: "Error rendering: %{cardname} (%{view} view)"
|
|
36
|
+
exception_for_card: "for card %{cardname}: %{message}"
|
|
37
|
+
exception_init_without_card: format initialized without card
|
|
38
|
+
exception_not_implemented: "%{func} not implemented"
|
|
39
|
+
exception_unknown_codename: "unknown codename: %{codename}"
|
|
40
|
+
no_cardname: unknown card
|
|
41
|
+
|
|
42
|
+
# UNCONFIRMED
|
|
43
|
+
|
|
44
|
+
# J'ACCUSE
|
|
45
|
+
# editing_cue: Editing cues
|
|
46
|
+
# exception_alias_fail: cannot find %{optview} view in %{optmod}; failed to alias %{view} in %{self}
|
|
47
|
+
# exception_bad_arg: "bad %{category} argument: %{arg}"
|
|
48
|
+
# exception_bad_args: "bad %{category} arguments: %{args}"
|
|
49
|
+
# exception_bad_chars: "CQL contains disallowed characters: %{text}"
|
|
50
|
+
# exception_bad_condition_clause: Invalid Condition Clause %{item}
|
|
51
|
+
# exception_bad_query: '"%{found_by}" value must be valid Search, but %{name} is a %{type}'
|
|
52
|
+
# exception_invalid_args: Invalid query args %{items}
|
|
53
|
+
# exception_invalid_attribute: Invalid attribute %{key}
|
|
54
|
+
# exception_invalid_operator: Invalid Operator %{operator}
|
|
55
|
+
# exception_invalid_option: "invalid %{side} option: %{object}"
|
|
56
|
+
# exception_sort_not_implemented: "sort item: %{item} not yet implemented"
|
|
57
|
+
# exception_to_not_join: "%{to} cannot be %{join}"
|
|
58
|
+
# exception_unknown_valtype: "unknown CQL value type: %{klass}"
|
|
59
|
+
|
|
60
|
+
core:
|
|
61
|
+
# CONFIRMED
|
|
62
|
+
cannot_change_content: cannot change content while changing name
|
|
63
|
+
cannot_change_type: cannot change type while changing name
|
|
64
|
+
cards_exist: Sorry, this card must remain a Cardtype so long as there are %{cardname} cards.
|
|
65
|
+
error_banned_characters: "may not contain any of the following characters: %{banned}"
|
|
66
|
+
error_blank_key: cannot be blank
|
|
67
|
+
error_blank_name: can't be blank
|
|
68
|
+
error_cant_alter: can't alter this type; %{name} cards still exist
|
|
69
|
+
error_cant_change_errors: "of %{name} can't be changed; errors creating new %{type_id}: %{error_messages}"
|
|
70
|
+
|
|
71
|
+
# UNCONFIRMED
|
|
72
|
+
|
|
73
|
+
# J'ACCUSE
|
|
74
|
+
# deny_change_to_type: You don't have permission to change to this type (need create permission)
|
|
75
|
+
# deny_create: You don't have permission to create %{part_card_name}
|
|
76
|
+
# deny_no_comment_structured: No comments allowed on structured content
|
|
77
|
+
# deny_no_comment_template: No comments allowed on templates
|
|
78
|
+
# deny_read_only: Currently in read-only mode
|
|
79
|
+
# deny_read_this: You don't have permission to read this
|
|
80
|
+
# deny_verb_name: You don't have permission to %{verb} %{name}
|
|
81
|
+
# deny_verb_this: You don't have permission to %{verb} this
|
|
82
|
+
# error_cant_delete_child: "can't delete %{child_name}: %{message}"
|
|
83
|
+
error_code_in_use: codename %{codename} already in use
|
|
84
|
+
error_hard_templated: can't be changed because %{name} is hard templated to %{type_name}
|
|
85
|
+
error_indestructible: "%{name} is an indestructible rule"
|
|
86
|
+
error_invalid_character_in_cardtype: "may not contain any of the following characters: %{banned}"
|
|
87
|
+
error_name_exists: must be unique; '%{name}' already exists.
|
|
88
|
+
error_name_tag: "%{name} in use as a tag"
|
|
89
|
+
error_no_action_rule: No %{action} rule for %{name}
|
|
90
|
+
error_no_such_type: No such type
|
|
91
|
+
error_system_card: "%{name} is is a system card. (%{codename})"
|
|
92
|
+
error_too_long: is too long (255 character maximum; length is %{length})
|
|
93
|
+
error_unknown_type: "%{type} is not a known type."
|
|
94
|
+
error_user_edits: "Edits have been made with %{name}'s user account.\nDeleting this card would mess up our history."
|
|
95
|
+
error_wrong_key: wrong key '%{key}' for name %{name}
|
|
96
|
+
exception_almost_deleted: Narrowly averted deleting current file
|
|
97
|
+
exception_need_id: id required to delete references
|
|
98
|
+
exception_no_override_act: not allowed to override current act
|
|
99
|
+
is_incomplete: is incomplete
|
|
100
|
+
label_set_all_cards: All cards
|
|
101
|
+
label_set_plus_cards: All "+" cards
|
|
102
|
+
label_set_right_cards: All "+%{name}" cards
|
|
103
|
+
label_set_rstar_cards: All "+*" cards
|
|
104
|
+
label_set_self_card: The card "%{name}"
|
|
105
|
+
label_set_star_cards: All "*" cards
|
|
106
|
+
label_set_type_cards: All "%{name}" cards
|
|
107
|
+
label_set_typeplusright_cards: All "+%{right}" cards on "%{type}" cards
|
|
108
|
+
label_setfollow_all_cards: everything
|
|
109
|
+
label_setfollow_plus_cards: all "+" cards
|
|
110
|
+
label_setfollow_right_cards: all "+%{name}s"
|
|
111
|
+
label_setfollow_rstar_cards: all "+*" cards
|
|
112
|
+
label_setfollow_star_cards: all "*" cards
|
|
113
|
+
label_setfollow_type_cards: all "%{name}s"
|
|
114
|
+
label_setfollow_typeplusright_cards: all "+%{right}" on "%{type}s"
|
|
115
|
+
only_admins_codename: only admins can set codename
|
|
116
|
+
search_children: "(%{side}) children of %{parent_name}"
|
|
117
|
+
search_userprefcards: "preference cards for user: %{name}"
|
|
118
|
+
you_cant: You don't have permission to %{what}
|
|
173
119
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
megabyte_suffix: M
|
|
219
|
-
type:
|
|
220
|
-
search_type:
|
|
221
|
-
no_limit_exception: OH NO.. no limit
|
|
222
|
-
no_content_exception: "Error in card '%{name}': can't run search with empty content"
|
|
223
|
-
no_results: no results
|
|
224
|
-
previous: Previous
|
|
225
|
-
next: Next
|
|
226
|
-
set:
|
|
227
|
-
cant_edit: Cannot currently edit Sets
|
|
228
|
-
rules: Rules
|
|
229
|
-
set: Set
|
|
230
|
-
field: field
|
|
231
|
-
common: common
|
|
232
|
-
by_group: by group
|
|
233
|
-
by_name: by name
|
|
234
|
-
recent: recent
|
|
235
|
-
#:bootstrap: #No known language-specfic messages
|
|
120
|
+
standard:
|
|
121
|
+
action: Action
|
|
122
|
+
actions: actions
|
|
123
|
+
applies_to: "<label>Applies to</label> %{card_link}:"
|
|
124
|
+
by_group: by group
|
|
125
|
+
by_name: by name
|
|
126
|
+
cancel: Cancel
|
|
127
|
+
cant_edit: Cannot currently edit Sets
|
|
128
|
+
cards: cards
|
|
129
|
+
clear_cache: clear cache
|
|
130
|
+
clear_view_cache: clear view cache
|
|
131
|
+
common: common
|
|
132
|
+
current: current
|
|
133
|
+
delete: Delete
|
|
134
|
+
delete_all: delete all
|
|
135
|
+
delete_old: delete old
|
|
136
|
+
delete_revert_rule: Deleting will revert to %{rule_setting_name} rule for %{card_label}
|
|
137
|
+
edit_page: Edit this page!
|
|
138
|
+
field: field
|
|
139
|
+
megabyte_suffix: M
|
|
140
|
+
memory_diff: memory diff
|
|
141
|
+
memory_now: memory now
|
|
142
|
+
memory_prev: memory prev
|
|
143
|
+
next: Next
|
|
144
|
+
no_content_exception: "Error in card '%{name}': can't run search with empty content"
|
|
145
|
+
no_current_rule: No Current Rule
|
|
146
|
+
no_limit_exception: OH NO.. no limit
|
|
147
|
+
no_results: no results
|
|
148
|
+
not_a_rule: not a rule
|
|
149
|
+
previous: Previous
|
|
150
|
+
recent: recent
|
|
151
|
+
recent_changes: Recent Changes
|
|
152
|
+
references: references
|
|
153
|
+
related_set: related set
|
|
154
|
+
repair_all: repair all
|
|
155
|
+
results_for: "Search results for: %{keyword}"
|
|
156
|
+
rules: Rules
|
|
157
|
+
search_goto_items: "goto items for term: %{term}"
|
|
158
|
+
set: Set
|
|
159
|
+
stat: Stat
|
|
160
|
+
submit: Submit
|
|
161
|
+
trashed_cards: trashed cards
|
|
162
|
+
value: Value
|
|
163
|
+
view_cache: view cache
|
|
236
164
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
howto_turn_off: 'How to turn captcha off:'
|
|
251
|
-
howto_go: Go to %{captcha_card}
|
|
252
|
-
howto_update: Update all *captcha rules to "no".
|
|
165
|
+
admin:
|
|
166
|
+
admin_warn: ADMINISTRATOR WARNING
|
|
167
|
+
captcha_keys: You are configured to use %{captcha_link}, but for that to work you need new %{recaptcha_link}.
|
|
168
|
+
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.
|
|
169
|
+
email_off: Email delivery is turned off. Change settings in %{path} to send sign up notifications.
|
|
170
|
+
howto_add: Add your keys to %{recaptcha_settings}
|
|
171
|
+
howto_add_keys: "How to add new recaptcha keys:"
|
|
172
|
+
howto_go: Go to %{captcha_card}
|
|
173
|
+
howto_register: Register your domain at %{recaptcha_link}
|
|
174
|
+
howto_turn_off: 'How to turn captcha off:'
|
|
175
|
+
howto_update: Update all *captcha rules to "no".
|
|
176
|
+
instructions: Instructions
|
|
177
|
+
recaptcha_keys: recaptcha keys
|
|
253
178
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
abstract:
|
|
257
|
-
table_of_contents:
|
|
258
|
-
toc: Table of Contents
|
|
179
|
+
card-mod-legacy:
|
|
180
|
+
toc: Table of Contents
|
|
259
181
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
follow_if_edited: follow if I edited
|
|
292
|
-
thing_edited: "%{label} I edited"
|
|
293
|
-
follow_defaults:
|
|
294
|
-
confirm_update_all_heading: Are you sure you want to change the default follow rules?
|
|
295
|
-
confirm_update_all_text: You may choose to update all existing users. This may take a while.
|
|
296
|
-
submit_update: Submit and update all users
|
|
297
|
-
updating: Updating
|
|
298
|
-
submit: Submit
|
|
299
|
-
never:
|
|
300
|
-
ignoring: Ignoring
|
|
301
|
-
ignore: ignore
|
|
302
|
-
type_plus_right:
|
|
303
|
-
user:
|
|
304
|
-
follow:
|
|
305
|
-
problems_card: Problems with %{cardname}
|
|
306
|
-
sign_in: sign in
|
|
307
|
-
please_sign_in: Please %{sign_in}
|
|
182
|
+
card-mod-follow:
|
|
183
|
+
confirm_update_all_heading: Are you sure you want to change the default follow rules?
|
|
184
|
+
confirm_update_all_text: You may choose to update all existing users. This may take a while.
|
|
185
|
+
deleted: deleted
|
|
186
|
+
emails_send: send emails about changes to %{cardlabel}
|
|
187
|
+
emails_stop: stop sending emails about changes to %{cardlabel}
|
|
188
|
+
follow: follow
|
|
189
|
+
follow_if_created: follow if I created
|
|
190
|
+
follow_if_edited: follow if I edited
|
|
191
|
+
follow_included: follow cards included by %{cardname}
|
|
192
|
+
followed_card: followed card
|
|
193
|
+
follower: follower
|
|
194
|
+
following: Following
|
|
195
|
+
following_created: Following content you created
|
|
196
|
+
following_edited: Following content you edited
|
|
197
|
+
heading_get_notified: Get notified about changes
|
|
198
|
+
ignore: ignore
|
|
199
|
+
ignoring: Ignoring
|
|
200
|
+
more_options: more options
|
|
201
|
+
new: new
|
|
202
|
+
no_preference: No following preference
|
|
203
|
+
please_sign_in: Please %{sign_in}
|
|
204
|
+
problems_card: Problems with %{cardname}
|
|
205
|
+
sign_in: sign in
|
|
206
|
+
submit: Submit
|
|
207
|
+
submit_update: Submit and update all users
|
|
208
|
+
thing_created: "%{label} I created"
|
|
209
|
+
thing_edited: "%{label} I edited"
|
|
210
|
+
unfollow: unfollow
|
|
211
|
+
update_changes: "\nThis update included the following changes:%{changes}"
|
|
212
|
+
updating: Updating
|
|
308
213
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
214
|
+
card-mod-format:
|
|
215
|
+
account: account
|
|
216
|
+
action_verb_added: added
|
|
217
|
+
action_verb_deleted: deleted
|
|
218
|
+
action_verb_edited: edited
|
|
219
|
+
add_card: Add %{cardname}
|
|
220
|
+
add_thing: Add %{title}
|
|
221
|
+
also_changes: "%{actor_link} has also been making changes."
|
|
222
|
+
bad_address: "404: Bad Address"
|
|
223
|
+
close: Close
|
|
224
|
+
comment_style_group: STYLE GROUP
|
|
225
|
+
configure_card: Configure %{cardname}
|
|
226
|
+
conflict: Conflict!
|
|
227
|
+
conflict_instruction: Please examine below, resolve above, and re-submit.
|
|
228
|
+
content_in_file: Content is stored in file and can't be edited.
|
|
229
|
+
denial: Permission Denied
|
|
230
|
+
denied_task: to %{denied_task} this
|
|
231
|
+
discuss: discuss
|
|
232
|
+
edit: edit
|
|
233
|
+
error_message: Error message (visible to admin only)
|
|
234
|
+
error_rendering: error rendering
|
|
235
|
+
exception_not_set_path: "not a set path: %{path}"
|
|
236
|
+
invalid_json: invalid json
|
|
237
|
+
label_select: Select
|
|
238
|
+
need_permission_task: "You need permission %{task}."
|
|
239
|
+
no: "no"
|
|
240
|
+
not_found: Not Found
|
|
241
|
+
not_found_card: Could not find %{cardname}
|
|
242
|
+
not_found_named: Could not find %{cardname}.
|
|
243
|
+
not_found_no_name: the card requested
|
|
244
|
+
not_numeric: "'%{content}' is not numeric"
|
|
245
|
+
or: "or"
|
|
246
|
+
page: page
|
|
247
|
+
please: Please
|
|
248
|
+
problems_name: Problems with %{cardname}
|
|
249
|
+
read_only: We are currently in read-only mode. Please try again later.
|
|
250
|
+
rules: rules
|
|
251
|
+
se_hitch: 'Wagn Hitch :('
|
|
252
|
+
se_sorry: Server Error. Yuck, sorry about that.
|
|
253
|
+
se_ticket: <a href="%{ticket_link}">Add a support ticket</a> to tell us more and follow the fix.
|
|
254
|
+
search_opt_names_ptr: option names for pointer
|
|
255
|
+
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"
|
|
256
|
+
sign_in: sign in
|
|
257
|
+
sign_up: sign up
|
|
258
|
+
sorry: Sorry!
|
|
259
|
+
to_do_that: to do that
|
|
260
|
+
toggle_no: "no"
|
|
261
|
+
toggle_yes: "yes"
|
|
262
|
+
too_deep: Man, you're too deep. (Too many levels of nests at a time)
|
|
263
|
+
too_slow: Timed out! %{showname} took too long to load.
|
|
264
|
+
unsupported_view: view (%{view}) not supported for %{cardname}
|
|
265
|
+
updated_how_when_who: "%{action_verb} %{elapsed_time_in_words} ago by %{who}"
|
|
266
|
+
yes: "yes"
|
|
355
267
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
updated_how_when_who: "%{action_verb} %{elapsed_time_in_words} ago by %{who}"
|
|
361
|
-
# editing:
|
|
362
|
-
# new_type: New %{type_name}
|
|
363
|
-
# new: New
|
|
364
|
-
# confirm_rename: Are you sure you want to rename %{cardname}?
|
|
365
|
-
# alter_related:
|
|
366
|
-
# one: automatically alter 1 related name.
|
|
367
|
-
# other: automatically alter %{count} related names.
|
|
368
|
-
# affect_refs:
|
|
369
|
-
# one: affect at least 1 reference to "%{cardname}"
|
|
370
|
-
# other: affect at least %{count} references to "%{cardname}"
|
|
371
|
-
# update_ignore: You may choose to <em>update or ignore</em> the referers.
|
|
372
|
-
# change_will: This change will...
|
|
373
|
-
# rename_update: Rename and Update
|
|
374
|
-
# renaming: Renaming
|
|
375
|
-
# rename: Rename
|
|
376
|
-
html_error:
|
|
377
|
-
problems_name: Problems with %{cardname}
|
|
378
|
-
please: Please
|
|
379
|
-
sign_in: sign in
|
|
380
|
-
or: or
|
|
381
|
-
sign_up: sign up
|
|
382
|
-
read_only: We are currently in read-only mode. Please try again later.
|
|
383
|
-
sorry: Sorry!
|
|
384
|
-
need_permission_task: You need permission %{task}.
|
|
385
|
-
to_do_that: to do that
|
|
386
|
-
denied_task: to %{denied_task} this
|
|
387
|
-
# form:
|
|
388
|
-
# unsupported_action_class: "unsupported card_form action class: %{actionclass}"
|
|
389
|
-
# submit: Submit
|
|
390
|
-
# submitting: Submitting
|
|
391
|
-
# cancel: Cancel
|
|
392
|
-
menu:
|
|
393
|
-
edit: edit
|
|
394
|
-
discuss: discuss
|
|
395
|
-
page: page
|
|
396
|
-
rules: rules
|
|
397
|
-
account: account
|
|
398
|
-
modal:
|
|
399
|
-
close: Close
|
|
400
|
-
html_wrapper:
|
|
401
|
-
close: Close
|
|
402
|
-
format:
|
|
403
|
-
html_format:
|
|
404
|
-
unknown_layout: "Unknown layout: %{name}"
|
|
405
|
-
built_in: "Built-in Layouts: %{built_in_layouts}"
|
|
406
|
-
available_layouts: "Available Layouts: %{available_layouts}"
|
|
268
|
+
card-mod-layout:
|
|
269
|
+
available_layouts: "Available Layouts: %{available_layouts}"
|
|
270
|
+
built_in: "Built-in Layouts: %{built_in_layouts}"
|
|
271
|
+
unknown_layout: "Unknown layout: %{name}"
|
|
407
272
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
roles: roles
|
|
445
|
-
rules: rules
|
|
446
|
-
structure: structure
|
|
447
|
-
type: type
|
|
273
|
+
card-mod-edit:
|
|
274
|
+
account: account
|
|
275
|
+
activity: activity
|
|
276
|
+
all: all
|
|
277
|
+
autosaved_draft: autosaved draft
|
|
278
|
+
by_group: by group
|
|
279
|
+
by_name: by name
|
|
280
|
+
cancel: cancel
|
|
281
|
+
card_delete_confirm: Are you sure you want to delete %{cardname}?
|
|
282
|
+
card_deleted: "%{cardname} deleted"
|
|
283
|
+
children: children
|
|
284
|
+
common: common
|
|
285
|
+
content: content
|
|
286
|
+
created: created
|
|
287
|
+
delete: delete
|
|
288
|
+
details: details
|
|
289
|
+
discuss: discuss
|
|
290
|
+
edit: edit
|
|
291
|
+
edited: edited
|
|
292
|
+
editors: editors
|
|
293
|
+
engage: engage
|
|
294
|
+
follow: follow
|
|
295
|
+
history: history
|
|
296
|
+
mates: mates
|
|
297
|
+
name: name
|
|
298
|
+
nests: nests
|
|
299
|
+
pin_pin: pin
|
|
300
|
+
pin_unpin: unpin
|
|
301
|
+
recent: recent
|
|
302
|
+
references_in: references in
|
|
303
|
+
references_out: references out
|
|
304
|
+
refresh: refresh
|
|
305
|
+
roles: roles
|
|
306
|
+
rules: rules
|
|
307
|
+
structure: structure
|
|
308
|
+
type: type
|
|
448
309
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
file:
|
|
463
|
-
file_error: File Error
|
|
464
|
-
download: Download %{title}
|
|
465
|
-
delete: Delete
|
|
466
|
-
add_item: Add %{attachment_name}...
|
|
467
|
-
replace_item: Replace %{attachment_name}...
|
|
310
|
+
card-mod-carrierwave:
|
|
311
|
+
add_item: Add %{attachment_name}...
|
|
312
|
+
codename_needed_for_storage: codename needed for storage type coded
|
|
313
|
+
delete: Delete
|
|
314
|
+
download: Download %{title}
|
|
315
|
+
error_invalid_storage_type: "%{type} is not a valid file storage option"
|
|
316
|
+
file_error: File Error
|
|
317
|
+
is_missing: is missing
|
|
318
|
+
mod_argument_needed_to_save: mod argument needed to save card as coded
|
|
319
|
+
moving_files_is_not_supported: moving files from cloud elsewhere is not supported
|
|
320
|
+
replace_item: Replace %{attachment_name}...
|
|
321
|
+
unknown_storage_type: unknown storage type %{new_storage_type}
|
|
322
|
+
url_is_missing: url is missing
|
|
468
323
|
|
|
324
|
+
card-mod-bootstrap:
|
|
325
|
+
cannot_source_theme: can't find source for theme %{theme_name}
|
|
326
|
+
not_valid_theme: not a valid theme %{theme_name}
|
|
469
327
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
328
|
+
card-mod-history:
|
|
329
|
+
added: Added
|
|
330
|
+
current: Current
|
|
331
|
+
deleted: Deleted
|
|
332
|
+
error_not_latest_revision: changes not based on latest revision
|
|
333
|
+
hide_changes: Hide changes
|
|
334
|
+
save_as_current: Save as current
|
|
335
|
+
show_changes: Show changes
|
|
336
|
+
time_ago: "%{elapsed__time_in_words} ago"
|
|
476
337
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
338
|
+
card-mod-account:
|
|
339
|
+
action_verify_email: "%{action} verification email"
|
|
340
|
+
approve_without: Approve without verification
|
|
341
|
+
cache_db_compare: Cache/DB Comparison
|
|
342
|
+
cache_value: Cache Val
|
|
343
|
+
cached_card: Cached Card Inspect
|
|
344
|
+
check_email: Check your email for a link to reset your password
|
|
345
|
+
check_email_reset: Please check your email for a new password reset link.
|
|
346
|
+
db_card: Database Card Inspect
|
|
347
|
+
db_value: Database Val
|
|
348
|
+
deny_delete: Deny and delete
|
|
349
|
+
deny_email_restricted: viewing email is restricted to administrators and account holders
|
|
350
|
+
deny_not_change_own_account: change the status of your own account
|
|
351
|
+
email_missing: email can't be blank
|
|
352
|
+
email_off: "WARNING: E-Mail-Versand ist deaktiviert. Ändere die Einstellung in %{path} um bei neuen Registrierungen Benachrichtigungen zu senden."
|
|
353
|
+
encrypted: encrypted
|
|
354
|
+
error_blank: can't be blank
|
|
355
|
+
error_incorrect_token: token mismatch
|
|
356
|
+
error_invalid_address: must be valid address
|
|
357
|
+
error_not_active: Sorry, that account is not active.
|
|
358
|
+
error_not_recognized: not recognized
|
|
359
|
+
error_not_unique: must be unique
|
|
360
|
+
error_token_expired: expired token
|
|
361
|
+
error_token_not_found: no token found
|
|
362
|
+
error_unknown_email: Unrecognized email.
|
|
363
|
+
error_wrong_password: Wrong password
|
|
364
|
+
errors_message: Sorry, %{item}. %{message}
|
|
365
|
+
exception_bad_expiration: illegal expiration value (eg '%{example}')
|
|
366
|
+
field: Field
|
|
367
|
+
field_manip_abort: no field manipulation mid-activation
|
|
368
|
+
first_last_help: usually first and last name
|
|
369
|
+
forgot_password: Forgot Password
|
|
370
|
+
get_started: Um loszulegen, erstelle einen Account.
|
|
371
|
+
help_first_last: üblicherweise Vor- und Nachname
|
|
372
|
+
illegal_approval_abort: illegal approval
|
|
373
|
+
invite: Invite
|
|
374
|
+
missing_account: "ERROR: signup card missing account"
|
|
375
|
+
no_account_abort: no account associated with %{name}
|
|
376
|
+
or_sign_up: '...or sign up!'
|
|
377
|
+
password_length: must be at least 4 characters
|
|
378
|
+
password_missing: password can't be blank
|
|
379
|
+
private_data: Private data
|
|
380
|
+
resend: Resend
|
|
381
|
+
reset_my_password: Reset my password
|
|
382
|
+
reset_password: RESET PASSWORD
|
|
383
|
+
search_email_duplicate: email duplicate? (%{content})
|
|
384
|
+
send: Send
|
|
385
|
+
send_invite: Send Invitation
|
|
386
|
+
set_up: Set up
|
|
387
|
+
setting_up: Setting up
|
|
388
|
+
sign_in: Sign in
|
|
389
|
+
sign_in_title: Sign In
|
|
390
|
+
sign_out: Sign out
|
|
391
|
+
sign_up: Sign up
|
|
392
|
+
signed_up_on: "%{name} signed up on %{date}"
|
|
393
|
+
sorry_email_reset: Sorry, %{error_msg}. Please check your email for a new password reset link.
|
|
394
|
+
verification: A verification email has been sent
|
|
395
|
+
verification_to: A verification email has been sent to %{email}
|
|
396
|
+
was_signed_up_on: "%{name} was signed up on %{date}"
|
|
397
|
+
welcome: Welcome, Decker!
|
|
490
398
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
signed_up_on: "%{name} signed up on %{date}"
|
|
502
|
-
was_signed_up_on: "%{name} was signed up on %{date}"
|
|
503
|
-
send: Send
|
|
504
|
-
resend: Resend
|
|
505
|
-
verification: A verification email has been sent
|
|
506
|
-
verification_to: A verification email has been sent to %{email}
|
|
507
|
-
action_verify_email: "%{action} verification email"
|
|
508
|
-
approve_without: Approve without verification
|
|
509
|
-
deny_delete: Deny and delete
|
|
510
|
-
field_manip_abort: no field manipulation mid-activation
|
|
511
|
-
no_account_abort: no account associated with %{name}
|
|
512
|
-
illegal_approval_abort: illegal approval
|
|
513
|
-
check_email_reset: Please check your email for a new password reset link.
|
|
514
|
-
errors_message: Sorry, %{item}. %{message}
|
|
515
|
-
user:
|
|
516
|
-
help_first_last: üblicherweise Vor- und Nachname
|
|
517
|
-
welcome: Willkommen, Decker!
|
|
518
|
-
get_started: Um loszulegen, erstelle einen Account.
|
|
519
|
-
email_off: "WARNING: E-Mail-Versand ist deaktiviert. Ändere die Einstellung in %{path} um bei neuen Registrierungen Benachrichtigungen zu senden."
|
|
520
|
-
set_up: Anlegen
|
|
521
|
-
setting_up: Lege an
|
|
522
|
-
right:
|
|
523
|
-
account:
|
|
524
|
-
events:
|
|
525
|
-
sorry_email_reset: Sorry, %{error_msg}. Please check your email for a new password reset link.
|
|
526
|
-
email:
|
|
527
|
-
error_invalid_address: must be valid address
|
|
528
|
-
search_email_duplicate: email duplicate? (%{content})
|
|
529
|
-
error_not_unique: must be unique
|
|
530
|
-
deny_email_restricted: viewing email is restricted to administrators and account holders
|
|
531
|
-
password:
|
|
532
|
-
encrypted: encrypted
|
|
533
|
-
password_length: must be at least 4 characters
|
|
534
|
-
salt:
|
|
535
|
-
private_data: Private data
|
|
536
|
-
stats:
|
|
537
|
-
field: Field
|
|
538
|
-
cache_value: Cache Val
|
|
539
|
-
db_value: Database Val
|
|
540
|
-
cache_db_compare: Cache/DB Comparison
|
|
541
|
-
cached_card: Cached Card Inspect
|
|
542
|
-
db_card: Database Card Inspect
|
|
543
|
-
status:
|
|
544
|
-
deny_not_change_own_account: change the status of your own account
|
|
545
|
-
api_key:
|
|
546
|
-
private_data: Private data
|
|
547
|
-
error_token_not_found: no token found
|
|
548
|
-
error_token_expired: expired token
|
|
549
|
-
error_incorrect_token: token mismatch
|
|
550
|
-
exception_bad_expiration: illegal expiration value (eg '%{example}')
|
|
551
|
-
self:
|
|
552
|
-
account_links:
|
|
553
|
-
sign_up: Sign up
|
|
554
|
-
sign_in: Sign in
|
|
555
|
-
invite: Invite
|
|
556
|
-
sign_out: Sign out
|
|
557
|
-
signin:
|
|
558
|
-
sign_in_title: Sign In
|
|
559
|
-
sign_in: Sign in
|
|
560
|
-
or_sign_up: '...or sign up!'
|
|
561
|
-
reset_password: RESET PASSWORD
|
|
562
|
-
forgot_password: Forgot Password
|
|
563
|
-
reset_my_password: Reset my password
|
|
564
|
-
check_email: Check your email for a link to reset your password
|
|
565
|
-
error_unknown_email: Unrecognized email.
|
|
566
|
-
error_not_active: Sorry, that account is not active.
|
|
567
|
-
error_blank: can't be blank
|
|
568
|
-
error_wrong_password: Wrong password
|
|
569
|
-
email_missing: email can't be blank
|
|
570
|
-
password_missing: password can't be blank
|
|
571
|
-
error_not_active: not active
|
|
572
|
-
error_not_recognized: not recognized
|
|
399
|
+
card-mod-rules:
|
|
400
|
+
# CONFIRMED
|
|
401
|
+
config: Config
|
|
402
|
+
event: Events
|
|
403
|
+
other: Other
|
|
404
|
+
permission: Permissions
|
|
405
|
+
pointer: Pointer
|
|
406
|
+
templating: Templating
|
|
407
|
+
webpage: Webpage
|
|
408
|
+
editing: Editing
|
|
File without changes
|
data/lib/card/codename.rb
CHANGED
|
@@ -137,9 +137,8 @@ class Card
|
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
def unknown_codename! mark
|
|
140
|
-
raise Card::Error::CodenameNotFound,
|
|
141
|
-
|
|
142
|
-
codename: mark)
|
|
140
|
+
raise Card::Error::CodenameNotFound,
|
|
141
|
+
Cardio.tr(:exception_unknown_codename, codename: mark)
|
|
143
142
|
end
|
|
144
143
|
|
|
145
144
|
def id_constant codename, id=nil
|
data/lib/card/error.rb
CHANGED
|
@@ -22,8 +22,7 @@ class Card
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def message_from_card
|
|
25
|
-
|
|
26
|
-
scope: %i[lib card error], cardname: card.name, message: card_message_text
|
|
25
|
+
Cardio.tr :exception_for_card, cardname: card.name, message: card_message_text
|
|
27
26
|
end
|
|
28
27
|
|
|
29
28
|
def backtrace
|
data/lib/card/format.rb
CHANGED
|
@@ -47,8 +47,7 @@ class Card
|
|
|
47
47
|
def require_card_to_initialize!
|
|
48
48
|
return if @card
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
raise Card::Error, msg
|
|
50
|
+
raise Card::Error, Cardio.t(:exception_init_without_card)
|
|
52
51
|
end
|
|
53
52
|
|
|
54
53
|
def include_set_format_modules
|
data/lib/card/format/error.rb
CHANGED
|
@@ -42,7 +42,7 @@ class Card
|
|
|
42
42
|
if card&.name.present?
|
|
43
43
|
safe_name
|
|
44
44
|
else
|
|
45
|
-
|
|
45
|
+
Cardio.tr :no_cardname
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -71,8 +71,7 @@ class Card
|
|
|
71
71
|
if exception.is_a? Card::Error::UserError
|
|
72
72
|
exception.message
|
|
73
73
|
else
|
|
74
|
-
tr :error_rendering,
|
|
75
|
-
cardname: error_cardname(exception), view: view
|
|
74
|
+
tr :error_rendering, cardname: error_cardname(exception), view: view
|
|
76
75
|
end
|
|
77
76
|
end
|
|
78
77
|
end
|
data/lib/card/set/i18n_scope.rb
CHANGED
|
@@ -5,11 +5,10 @@ class Card
|
|
|
5
5
|
|
|
6
6
|
# return scope for I18n
|
|
7
7
|
def scope backtrace
|
|
8
|
-
parts = path_parts backtrace
|
|
8
|
+
return "lib" unless (parts = path_parts backtrace)
|
|
9
9
|
index = path_set_index parts
|
|
10
10
|
mod = mod_from_parts parts, index
|
|
11
|
-
|
|
12
|
-
"mod.#{mod}.set.#{set}"
|
|
11
|
+
mod || "lib"
|
|
13
12
|
end
|
|
14
13
|
|
|
15
14
|
# extract the mod name from the path of a set's tmp file
|
|
@@ -27,18 +26,23 @@ class Card
|
|
|
27
26
|
|
|
28
27
|
def mod_from_parts parts, set_index
|
|
29
28
|
if tmp_files?
|
|
30
|
-
|
|
29
|
+
mod_without_tmp_prefix parts[set_index + 1]
|
|
31
30
|
else
|
|
32
|
-
parts[set_index - 1]
|
|
31
|
+
mod_without_version_suffix parts[set_index - 1]
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
|
|
36
|
-
def
|
|
37
|
-
|
|
35
|
+
def mod_without_version_suffix mod
|
|
36
|
+
mod.gsub(/-[\d\.]+$/, "")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def mod_without_tmp_prefix mod
|
|
40
|
+
mod.gsub(/^[^-]*\-/, "")
|
|
38
41
|
end
|
|
39
42
|
|
|
40
43
|
def path_parts backtrace
|
|
41
|
-
|
|
44
|
+
return unless (path = find_set_path backtrace)
|
|
45
|
+
parts = path.split File::SEPARATOR
|
|
42
46
|
parts[-1] = parts.last.split(".").first
|
|
43
47
|
parts
|
|
44
48
|
end
|
|
@@ -76,9 +80,9 @@ class Card
|
|
|
76
80
|
|
|
77
81
|
def find_set_path backtrace
|
|
78
82
|
re = %r{(?<!card)/set/}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
backtrace.find { |line| line =~ re }.tap do |path|
|
|
84
|
+
return nil unless path
|
|
85
|
+
end
|
|
82
86
|
end
|
|
83
87
|
|
|
84
88
|
# # index of the mod part in the tmp path
|
|
@@ -98,8 +102,7 @@ class Card
|
|
|
98
102
|
|
|
99
103
|
# index of the mod part in the path
|
|
100
104
|
def path_set_index parts
|
|
101
|
-
unless (set_index = parts.index("set")) &&
|
|
102
|
-
parts.size >= set_index + 2
|
|
105
|
+
unless (set_index = parts.index("set")) && parts.size >= set_index + 2
|
|
103
106
|
raise Error, "not a valid set path: #{path}"
|
|
104
107
|
end
|
|
105
108
|
|
data/lib/card/setting.rb
CHANGED
|
@@ -10,7 +10,7 @@ class Card
|
|
|
10
10
|
# accessible in E
|
|
11
11
|
attr_accessor :codename
|
|
12
12
|
# accessible in E and M
|
|
13
|
-
mattr_accessor :groups, :
|
|
13
|
+
mattr_accessor :groups, :preferences
|
|
14
14
|
|
|
15
15
|
SETTING_OPTIONS = %i[
|
|
16
16
|
restricted_to_type
|
|
@@ -41,17 +41,15 @@ class Card
|
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
self.
|
|
45
|
-
templating
|
|
46
|
-
permission
|
|
47
|
-
webpage
|
|
48
|
-
editing
|
|
49
|
-
event
|
|
50
|
-
other
|
|
51
|
-
config
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
self.groups = group_names.keys.each_with_object({}) do |key, groups|
|
|
44
|
+
self.groups = %i[
|
|
45
|
+
templating
|
|
46
|
+
permission
|
|
47
|
+
webpage
|
|
48
|
+
editing
|
|
49
|
+
event
|
|
50
|
+
other
|
|
51
|
+
config
|
|
52
|
+
].each_with_object({}) do |key, groups|
|
|
55
53
|
groups[key] = []
|
|
56
54
|
end
|
|
57
55
|
|
data/lib/cardio/utils.rb
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
module Cardio
|
|
2
2
|
# Utilities that may need to be run even when mods are not loaded.
|
|
3
3
|
module Utils
|
|
4
|
+
def tr key, args={}
|
|
5
|
+
kaller = args.delete(:caller) || caller
|
|
6
|
+
args[:scope] ||= Card::Set.scope kaller
|
|
7
|
+
::I18n.t key, args
|
|
8
|
+
end
|
|
9
|
+
|
|
4
10
|
def seed_test_db
|
|
5
11
|
system "env RAILS_ENV=test bundle exec rake db:fixtures:load"
|
|
6
12
|
end
|
|
@@ -25,19 +25,16 @@ format :html do
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def warning_alert warnings
|
|
28
|
-
admin_warn = I18n.t(:admin_warn, scope: "mod.admin.set.self.admin_info")
|
|
29
28
|
# 'ADMINISTRATOR WARNING'
|
|
30
29
|
alert :warning, true do
|
|
31
|
-
"<h5>#{admin_warn}</h5>" + list_tag(warnings)
|
|
30
|
+
"<h5>#{tr :admin_warn}</h5>" + list_tag(warnings)
|
|
32
31
|
end
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
def no_email_delivery_message
|
|
36
35
|
# "Email delivery is turned off."
|
|
37
36
|
# "Change settings in config/application.rb to send sign up notifications."
|
|
38
|
-
|
|
39
|
-
scope: "mod.admin.set.self.admin_info",
|
|
40
|
-
path: "config/application.rb")
|
|
37
|
+
tr :email_off, path: "config/application.rb"
|
|
41
38
|
end
|
|
42
39
|
|
|
43
40
|
def warning_list_with_auto_scope warnings
|
data/mod/core/set/all/i18n.rb
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
def tr key, args={}
|
|
2
|
-
|
|
3
|
-
::I18n.t key, args
|
|
2
|
+
Cardio.tr key, args.merge(caller: caller)
|
|
4
3
|
end
|
|
5
4
|
|
|
6
5
|
format do
|
|
7
6
|
def tr key, args={}
|
|
8
|
-
|
|
9
|
-
::I18n.t key, args
|
|
7
|
+
Cardio.tr key, args.merge(caller: caller)
|
|
10
8
|
end
|
|
11
9
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: card
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.101.
|
|
4
|
+
version: 1.101.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ethan McCutchen
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2021-03-
|
|
13
|
+
date: 2021-03-15 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: cardname
|
|
@@ -18,14 +18,14 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - '='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.11.
|
|
21
|
+
version: 0.11.2
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - '='
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 0.11.
|
|
28
|
+
version: 0.11.2
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: rake
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1213,10 +1213,15 @@ files:
|
|
|
1213
1213
|
- tmpsets/set_pattern/106-right.rb
|
|
1214
1214
|
- tmpsets/set_pattern/107-type_plus_right.rb
|
|
1215
1215
|
- tmpsets/set_pattern/108-self.rb
|
|
1216
|
-
homepage:
|
|
1216
|
+
homepage: https://decko.org
|
|
1217
1217
|
licenses:
|
|
1218
1218
|
- GPL-3.0
|
|
1219
|
-
metadata:
|
|
1219
|
+
metadata:
|
|
1220
|
+
source_code_uri: https://github.com/decko-commons/decko
|
|
1221
|
+
homepage_uri: https://decko.org
|
|
1222
|
+
bug_tracker_uri: https://github.com/decko-commons/decko/issues
|
|
1223
|
+
wiki_uri: https://decko.org
|
|
1224
|
+
documentation_url: http://docs.decko.org/
|
|
1220
1225
|
post_install_message:
|
|
1221
1226
|
rdoc_options: []
|
|
1222
1227
|
require_paths:
|