headmin 0.1.1

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 (175) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.nvmrc +1 -0
  4. data/.rubocop.yml +13 -0
  5. data/.ruby-version +1 -0
  6. data/CHANGELOG.md +5 -0
  7. data/CODE_OF_CONDUCT.md +84 -0
  8. data/Gemfile +12 -0
  9. data/Gemfile.lock +43 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +166 -0
  12. data/Rakefile +16 -0
  13. data/app/assets/images/avatar.jpg +0 -0
  14. data/app/controllers/admin/users/confirmations_controller.rb +31 -0
  15. data/app/controllers/admin/users/omniauth_callbacks_controller.rb +31 -0
  16. data/app/controllers/admin/users/passwords_controller.rb +35 -0
  17. data/app/controllers/admin/users/registrations_controller.rb +63 -0
  18. data/app/controllers/admin/users/sessions_controller.rb +28 -0
  19. data/app/controllers/admin/users/unlocks_controller.rb +31 -0
  20. data/app/controllers/concerns/headmin/acts_as_list.rb +16 -0
  21. data/app/controllers/concerns/headmin/authentication.rb +17 -0
  22. data/app/controllers/concerns/headmin/ckeditor.rb +27 -0
  23. data/app/controllers/concerns/headmin/filter.rb +5 -0
  24. data/app/controllers/concerns/headmin/pagination.rb +23 -0
  25. data/app/controllers/concerns/headmin/searchable.rb +15 -0
  26. data/app/controllers/concerns/headmin/sortable.rb +44 -0
  27. data/app/helpers/headmin/admin_helper.rb +65 -0
  28. data/app/helpers/headmin/filter_helper.rb +12 -0
  29. data/app/helpers/headmin/notification_helper.rb +31 -0
  30. data/app/views/admin/users/confirmations/new.html.erb +9 -0
  31. data/app/views/admin/users/mailer/confirmation_instructions.html.erb +5 -0
  32. data/app/views/admin/users/mailer/email_changed.html.erb +7 -0
  33. data/app/views/admin/users/mailer/password_change.html.erb +3 -0
  34. data/app/views/admin/users/mailer/reset_password_instructions.html.erb +8 -0
  35. data/app/views/admin/users/mailer/unlock_instructions.html.erb +7 -0
  36. data/app/views/admin/users/passwords/edit.html.erb +12 -0
  37. data/app/views/admin/users/passwords/new.html.erb +9 -0
  38. data/app/views/admin/users/registrations/edit.html.erb +24 -0
  39. data/app/views/admin/users/registrations/new.html.erb +11 -0
  40. data/app/views/admin/users/sessions/new.html.erb +13 -0
  41. data/app/views/admin/users/shared/_error_messages.html.erb +7 -0
  42. data/app/views/admin/users/shared/_links.html.erb +27 -0
  43. data/app/views/admin/users/unlocks/new.html.erb +10 -0
  44. data/app/views/headmin/_breadcrumbs.html.erb +23 -0
  45. data/app/views/headmin/_filters.html.erb +47 -0
  46. data/app/views/headmin/_form.html.erb +11 -0
  47. data/app/views/headmin/_heading.html.erb +9 -0
  48. data/app/views/headmin/_index.html.erb +12 -0
  49. data/app/views/headmin/_notifications.html.erb +12 -0
  50. data/app/views/headmin/_pagination.html.erb +13 -0
  51. data/app/views/headmin/_table.html.erb +13 -0
  52. data/app/views/headmin/filters/_date.html.erb +46 -0
  53. data/app/views/headmin/filters/_search.html.erb +22 -0
  54. data/app/views/headmin/filters/_select.html.erb +39 -0
  55. data/app/views/headmin/filters/filter/_button.html.erb +22 -0
  56. data/app/views/headmin/filters/filter/_menu_item.html.erb +12 -0
  57. data/app/views/headmin/filters/filter/_template.html.erb +13 -0
  58. data/app/views/headmin/forms/_actions.html.erb +32 -0
  59. data/app/views/headmin/forms/_errors.html.erb +20 -0
  60. data/app/views/headmin/forms/_group.html.erb +36 -0
  61. data/app/views/headmin/forms/fields/_checkbox.html.erb +23 -0
  62. data/app/views/headmin/forms/fields/_ckeditor.html.erb +28 -0
  63. data/app/views/headmin/forms/fields/_currency.html.erb +24 -0
  64. data/app/views/headmin/forms/fields/_date.html.erb +36 -0
  65. data/app/views/headmin/forms/fields/_email.html.erb +39 -0
  66. data/app/views/headmin/forms/fields/_file.html.erb +24 -0
  67. data/app/views/headmin/forms/fields/_image.html.erb +37 -0
  68. data/app/views/headmin/forms/fields/_label.html.erb +9 -0
  69. data/app/views/headmin/forms/fields/_multiple_select.html.erb +37 -0
  70. data/app/views/headmin/forms/fields/_password.html.erb +39 -0
  71. data/app/views/headmin/forms/fields/_repeater.html.erb +48 -0
  72. data/app/views/headmin/forms/fields/_select.html.erb +36 -0
  73. data/app/views/headmin/forms/fields/_select_tags.html.erb +32 -0
  74. data/app/views/headmin/forms/fields/_text.html.erb +39 -0
  75. data/app/views/headmin/forms/fields/_textarea.html.erb +29 -0
  76. data/app/views/headmin/forms/fields/_url.html.erb +38 -0
  77. data/app/views/headmin/forms/fields/_validation.html.erb +12 -0
  78. data/app/views/headmin/forms/fields/repeater/_row.html.erb +16 -0
  79. data/app/views/headmin/heading/_title.html.erb +24 -0
  80. data/app/views/headmin/kaminari/_first_page.html.erb +11 -0
  81. data/app/views/headmin/kaminari/_gap.html.erb +12 -0
  82. data/app/views/headmin/kaminari/_last_page.html.erb +12 -0
  83. data/app/views/headmin/kaminari/_next_page.html.erb +13 -0
  84. data/app/views/headmin/kaminari/_page.html.erb +12 -0
  85. data/app/views/headmin/kaminari/_paginator.html.erb +25 -0
  86. data/app/views/headmin/kaminari/_prev_page.html.erb +11 -0
  87. data/app/views/headmin/layout/_body.html.erb +9 -0
  88. data/app/views/headmin/layout/_content.html.erb +9 -0
  89. data/app/views/headmin/layout/_footer.html.erb +17 -0
  90. data/app/views/headmin/layout/_header.html.erb +13 -0
  91. data/app/views/headmin/layout/_main.html.erb +13 -0
  92. data/app/views/headmin/layout/_sidebar.html.erb +20 -0
  93. data/app/views/headmin/layout/dropdown/_divider.html.erb +9 -0
  94. data/app/views/headmin/layout/dropdown/_item.html.erb +17 -0
  95. data/app/views/headmin/layout/header/_account.html.erb +25 -0
  96. data/app/views/headmin/layout/header/_locale.html.erb +19 -0
  97. data/app/views/headmin/layout/sidebar/_bottom.html.erb +4 -0
  98. data/app/views/headmin/layout/sidebar/_menu.html.erb +9 -0
  99. data/app/views/headmin/layout/sidebar/menu/_account.html.erb +25 -0
  100. data/app/views/headmin/layout/sidebar/menu/_item.html.erb +16 -0
  101. data/app/views/headmin/layout/sidebar/menu/_locale.html.erb +18 -0
  102. data/app/views/headmin/table/_actions.html.erb +19 -0
  103. data/app/views/headmin/table/_body.html.erb +19 -0
  104. data/app/views/headmin/table/_foot.html.erb +15 -0
  105. data/app/views/headmin/table/_footer.html.erb +13 -0
  106. data/app/views/headmin/table/_head.html.erb +15 -0
  107. data/app/views/headmin/table/_header.html.erb +13 -0
  108. data/app/views/headmin/table/actions/_action.html.erb +10 -0
  109. data/app/views/headmin/table/actions/_delete.html.erb +8 -0
  110. data/app/views/headmin/table/actions/_export.html.erb +8 -0
  111. data/app/views/headmin/table/body/_association.html.erb +11 -0
  112. data/app/views/headmin/table/body/_boolean.erb +16 -0
  113. data/app/views/headmin/table/body/_currency.html.erb +10 -0
  114. data/app/views/headmin/table/body/_date.html.erb +11 -0
  115. data/app/views/headmin/table/body/_id.html.erb +3 -0
  116. data/app/views/headmin/table/body/_row.html.erb +9 -0
  117. data/app/views/headmin/table/body/_sort.html.erb +3 -0
  118. data/app/views/headmin/table/body/_string.html.erb +16 -0
  119. data/app/views/headmin/table/body/_text.html.erb +10 -0
  120. data/app/views/headmin/table/foot/_cell.html.erb +10 -0
  121. data/app/views/headmin/table/foot/_id.html.erb +9 -0
  122. data/app/views/headmin/table/head/_cell.html.erb +13 -0
  123. data/app/views/headmin/table/head/_empty.html.erb +1 -0
  124. data/app/views/headmin/table/head/_id.html.erb +9 -0
  125. data/app/views/headmin/table/head/_sort.html.erb +3 -0
  126. data/app/views/headmin/table/head/cell/_asc.html.erb +4 -0
  127. data/app/views/headmin/table/head/cell/_default.html.erb +7 -0
  128. data/app/views/headmin/table/head/cell/_desc.html.erb +4 -0
  129. data/app/views/layouts/admin/auth.html.erb +20 -0
  130. data/app/views/layouts/admin.html.erb +42 -0
  131. data/bin/console +15 -0
  132. data/bin/setup +8 -0
  133. data/config/locales/defaults/en.yml +215 -0
  134. data/config/locales/defaults/nl.yml +213 -0
  135. data/config/locales/devise/nl.yml +85 -0
  136. data/config/locales/en.yml +137 -0
  137. data/config/locales/nl.yml +138 -0
  138. data/dist/css/headmin.css +9874 -0
  139. data/dist/js/headmin.js +852 -0
  140. data/docs/README.md +4 -0
  141. data/docs/blocks.md +116 -0
  142. data/docs/devise.md +62 -0
  143. data/headmin.gemspec +35 -0
  144. data/lib/headmin/engine.rb +10 -0
  145. data/lib/headmin/version.rb +5 -0
  146. data/lib/headmin.rb +4 -0
  147. data/package.json +62 -0
  148. data/src/js/headmin/controllers/filter_controller.js +47 -0
  149. data/src/js/headmin/controllers/filters_controller.js +53 -0
  150. data/src/js/headmin/controllers/index_controller.js +79 -0
  151. data/src/js/headmin/controllers/repeater_controller.js +35 -0
  152. data/src/js/headmin/controllers/repeater_row_controller.js +54 -0
  153. data/src/js/headmin/controllers/table_actions_controller.js +22 -0
  154. data/src/js/headmin/controllers/table_controller.js +36 -0
  155. data/src/js/headmin/headmin.js +168 -0
  156. data/src/js/headmin.js +1 -0
  157. data/src/scss/headmin/filter.scss +33 -0
  158. data/src/scss/headmin/filters.scss +14 -0
  159. data/src/scss/headmin/form.scss +39 -0
  160. data/src/scss/headmin/general.scss +3 -0
  161. data/src/scss/headmin/layout/body.scss +6 -0
  162. data/src/scss/headmin/layout/sidebar.scss +22 -0
  163. data/src/scss/headmin/layout.scss +2 -0
  164. data/src/scss/headmin/login.scss +35 -0
  165. data/src/scss/headmin/table.scss +32 -0
  166. data/src/scss/headmin/utilities.scss +19 -0
  167. data/src/scss/headmin.scss +58 -0
  168. data/src/scss/vendor/bootstrap/variables.scss +71 -0
  169. data/src/scss/vendor/choices/cross-inverse.svg +6 -0
  170. data/src/scss/vendor/choices/cross.svg +6 -0
  171. data/src/scss/vendor/choices/custom.scss +28 -0
  172. data/src/scss/vendor/choices/variables.scss +16 -0
  173. data/webpack.config.js +30 -0
  174. data/yarn.lock +7512 -0
  175. metadata +220 -0
@@ -0,0 +1,9 @@
1
+ <%#
2
+ name: headmin/table/body/row
3
+ accepts block: yes
4
+ parameters: none
5
+ %>
6
+
7
+ <tr>
8
+ <%= yield if block_given? %>
9
+ </tr>
@@ -0,0 +1,3 @@
1
+ <td class="table-drag-sort-handle" width="40px" data-id="<%= value %>">
2
+ <i class="bi bi-grip-vertical"></i>
3
+ </td>
@@ -0,0 +1,16 @@
1
+ <%#
2
+ name: headmin/table/body/string
3
+ accepts block: no
4
+ parameters:
5
+ value: (string) Displays value
6
+ %>
7
+
8
+ <td>
9
+ <% if defined?(url) && url %>
10
+ <a href="<%= url %>" title="<% t('.open') %>">
11
+ <%= value %>
12
+ </a>
13
+ <% else %>
14
+ <%= value %>
15
+ <% end %>
16
+ </td>
@@ -0,0 +1,10 @@
1
+ <%#
2
+ name: headmin/table/body/text
3
+ accepts block: no
4
+ parameters:
5
+ value: (string) Displays value
6
+ %>
7
+
8
+ <td>
9
+ <%= truncate(strip_tags(value)) %>
10
+ </td>
@@ -0,0 +1,10 @@
1
+ <%#
2
+ name: headmin/table/foot/cell
3
+ accepts block: no
4
+ parameters:
5
+ value: (string) Displays value
6
+ %>
7
+
8
+ <% value = local_assigns.has_key?(:value) ? value : nil %>
9
+ <% sort = local_assigns.has_key?(:sort) ? sort : nil %>
10
+ <%= render "headmin/table/head/cell", value: value, sort: sort %>
@@ -0,0 +1,9 @@
1
+ <%#
2
+ name: headmin/table/foot/id
3
+ accepts block: no
4
+ parameters: none
5
+ %>
6
+
7
+ <th class="d-none d-md-table-cell">
8
+ <input type="checkbox" value="" data-index-target="idsCheckbox" data-action="change->index#toggleIds"/>
9
+ </th>
@@ -0,0 +1,13 @@
1
+ <%#
2
+ name: headmin/table/head/cell
3
+ accepts block: no
4
+ parameters:
5
+ value: (string) Displays value
6
+ sort: (string) Parameter name to sort on
7
+ %>
8
+
9
+ <% sorting_param_key = local_assigns.has_key?(:sort) && sort ? "sort_#{sort}" : nil %>
10
+ <% template_name = params[sorting_param_key] || 'default' %>
11
+ <th>
12
+ <%= render "headmin/table/head/cell/#{template_name}", key: sorting_param_key, title: value %>
13
+ </th>
@@ -0,0 +1 @@
1
+ <th></th>
@@ -0,0 +1,9 @@
1
+ <%#
2
+ name: headmin/table/head/id
3
+ accepts block: no
4
+ parameters: none
5
+ %>
6
+
7
+ <th class="d-none d-md-table-cell">
8
+ <input type="checkbox" value="" data-index-target="idsCheckbox" data-action="change->index#toggleIds"/>
9
+ </th>
@@ -0,0 +1,3 @@
1
+ <th>
2
+ <i class="bi bi-arrows-move"></i>
3
+ </th>
@@ -0,0 +1,4 @@
1
+ <a href="<%= url_for(params.merge(key => 'desc').permit!) %>">
2
+ <%= title %>
3
+ <%= bootstrap_icon('sort-down') %>
4
+ </a>
@@ -0,0 +1,7 @@
1
+ <% if key.present? %>
2
+ <a href="<%= url_for(params.merge(key => 'asc').permit!) %>">
3
+ <%= title %>
4
+ </a>
5
+ <% else %>
6
+ <%= title %>
7
+ <% end %>
@@ -0,0 +1,4 @@
1
+ <a href="<%= url_for(params.merge(key => nil).permit!) %>">
2
+ <%= title %>
3
+ <%= bootstrap_icon('sort-up') %>
4
+ </a>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Authentication</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%= csrf_meta_tags %>
7
+ <%= csp_meta_tag %>
8
+ <%= stylesheet_pack_tag 'admin', media: 'all', 'data-turbolinks-track': 'reload' %>
9
+ <%= javascript_pack_tag 'admin', 'data-turbolinks-track': 'reload' %>
10
+ </head>
11
+ <body class="bg-light w-100 vh-100">
12
+
13
+ <%= render 'headmin/notifications' %>
14
+
15
+ <main class="d-flex justify-content-center align-items-center w-100 vh-100 p-3">
16
+ <%= yield %>
17
+ </main>
18
+
19
+ </body>
20
+ </html>
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Admin</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%= csrf_meta_tags %>
7
+ <%= csp_meta_tag %>
8
+
9
+ <%= stylesheet_pack_tag 'admin', media: 'all', 'data-turbo-track': 'reload' %>
10
+ <%= javascript_pack_tag 'admin', 'data-turbo-track': 'reload' %>
11
+ </head>
12
+
13
+ <body>
14
+ <%= render 'headmin/layout/main' do %>
15
+ <%= render 'headmin/layout/sidebar', logo: inline_svg_tag('logo.svg') do %>
16
+ <%= render 'headmin/layout/sidebar/menu' do %>
17
+ <%= render 'headmin/layout/sidebar/menu/item', name: t('.dashboard'), link: admin_root_path, icon: 'speedometer' %>
18
+ <div class="d-block d-md-none">
19
+ <%= render 'headmin/layout/sidebar/menu/locale' do end %>
20
+ <%= render 'headmin/layout/sidebar/menu/account' do end %>
21
+ </div>
22
+ <% end %>
23
+ <% end %>
24
+ <%= render 'headmin/layout/body' do %>
25
+ <%= render 'headmin/layout/header' do %>
26
+ <%= render 'headmin/layout/header/locale' do end %>
27
+ <%= render 'headmin/layout/header/account' do end %>
28
+ <% end %>
29
+ <%= render 'headmin/layout/content' do %>
30
+ <%= render 'headmin/notifications' %>
31
+ <%= yield %>
32
+ <% end %>
33
+ <%= render 'headmin/layout/footer', class: 'text-secondary' do %>
34
+ <%= bootstrap_icon('question-circle') %>
35
+ <a class="text-secondary" href="mailto:info@insiting.com" title="<%= t('.help') %>">
36
+ <%= t('.help') %>
37
+ </a>
38
+ <% end %>
39
+ <% end %>
40
+ <% end %>
41
+ </body>
42
+ </html>
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "headmin"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,215 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validation failed: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_one: Cannot delete record because a dependent %{record} exists
9
+ has_many: Cannot delete record because dependent %{record} exist
10
+ date:
11
+ abbr_day_names:
12
+ - Sun
13
+ - Mon
14
+ - Tue
15
+ - Wed
16
+ - Thu
17
+ - Fri
18
+ - Sat
19
+ abbr_month_names:
20
+ -
21
+ - Jan
22
+ - Feb
23
+ - Mar
24
+ - Apr
25
+ - May
26
+ - Jun
27
+ - Jul
28
+ - Aug
29
+ - Sep
30
+ - Oct
31
+ - Nov
32
+ - Dec
33
+ day_names:
34
+ - Sunday
35
+ - Monday
36
+ - Tuesday
37
+ - Wednesday
38
+ - Thursday
39
+ - Friday
40
+ - Saturday
41
+ formats:
42
+ default: "%Y-%m-%d"
43
+ long: "%B %d, %Y"
44
+ short: "%b %d"
45
+ month_names:
46
+ -
47
+ - January
48
+ - February
49
+ - March
50
+ - April
51
+ - May
52
+ - June
53
+ - July
54
+ - August
55
+ - September
56
+ - October
57
+ - November
58
+ - December
59
+ order:
60
+ - :year
61
+ - :month
62
+ - :day
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ one: about 1 hour
67
+ other: about %{count} hours
68
+ about_x_months:
69
+ one: about 1 month
70
+ other: about %{count} months
71
+ about_x_years:
72
+ one: about 1 year
73
+ other: about %{count} years
74
+ almost_x_years:
75
+ one: almost 1 year
76
+ other: almost %{count} years
77
+ half_a_minute: half a minute
78
+ less_than_x_seconds:
79
+ one: less than 1 second
80
+ other: less than %{count} seconds
81
+ less_than_x_minutes:
82
+ one: less than a minute
83
+ other: less than %{count} minutes
84
+ over_x_years:
85
+ one: over 1 year
86
+ other: over %{count} years
87
+ x_seconds:
88
+ one: 1 second
89
+ other: "%{count} seconds"
90
+ x_minutes:
91
+ one: 1 minute
92
+ other: "%{count} minutes"
93
+ x_days:
94
+ one: 1 day
95
+ other: "%{count} days"
96
+ x_months:
97
+ one: 1 month
98
+ other: "%{count} months"
99
+ x_years:
100
+ one: 1 year
101
+ other: "%{count} years"
102
+ prompts:
103
+ second: Second
104
+ minute: Minute
105
+ hour: Hour
106
+ day: Day
107
+ month: Month
108
+ year: Year
109
+ errors:
110
+ format: "%{attribute} %{message}"
111
+ messages:
112
+ accepted: must be accepted
113
+ blank: can't be blank
114
+ confirmation: doesn't match %{attribute}
115
+ empty: can't be empty
116
+ equal_to: must be equal to %{count}
117
+ even: must be even
118
+ exclusion: is reserved
119
+ greater_than: must be greater than %{count}
120
+ greater_than_or_equal_to: must be greater than or equal to %{count}
121
+ inclusion: is not included in the list
122
+ invalid: is invalid
123
+ less_than: must be less than %{count}
124
+ less_than_or_equal_to: must be less than or equal to %{count}
125
+ model_invalid: 'Validation failed: %{errors}'
126
+ not_a_number: is not a number
127
+ not_an_integer: must be an integer
128
+ odd: must be odd
129
+ other_than: must be other than %{count}
130
+ present: must be blank
131
+ required: must exist
132
+ taken: has already been taken
133
+ too_long:
134
+ one: is too long (maximum is 1 character)
135
+ other: is too long (maximum is %{count} characters)
136
+ too_short:
137
+ one: is too short (minimum is 1 character)
138
+ other: is too short (minimum is %{count} characters)
139
+ wrong_length:
140
+ one: is the wrong length (should be 1 character)
141
+ other: is the wrong length (should be %{count} characters)
142
+ template:
143
+ body: 'There were problems with the following fields:'
144
+ header:
145
+ one: 1 error prohibited this %{model} from being saved
146
+ other: "%{count} errors prohibited this %{model} from being saved"
147
+ helpers:
148
+ select:
149
+ prompt: Please select
150
+ submit:
151
+ create: Create %{model}
152
+ submit: Save %{model}
153
+ update: Update %{model}
154
+ number:
155
+ currency:
156
+ format:
157
+ delimiter: ","
158
+ format: "%u%n"
159
+ precision: 2
160
+ separator: "."
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ unit: "$"
164
+ format:
165
+ delimiter: ","
166
+ precision: 3
167
+ separator: "."
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ human:
171
+ decimal_units:
172
+ format: "%n %u"
173
+ units:
174
+ billion: Billion
175
+ million: Million
176
+ quadrillion: Quadrillion
177
+ thousand: Thousand
178
+ trillion: Trillion
179
+ unit: ''
180
+ format:
181
+ delimiter: ''
182
+ precision: 3
183
+ significant: true
184
+ strip_insignificant_zeros: true
185
+ storage_units:
186
+ format: "%n %u"
187
+ units:
188
+ byte:
189
+ one: Byte
190
+ other: Bytes
191
+ eb: EB
192
+ gb: GB
193
+ kb: KB
194
+ mb: MB
195
+ pb: PB
196
+ tb: TB
197
+ percentage:
198
+ format:
199
+ delimiter: ''
200
+ format: "%n%"
201
+ precision:
202
+ format:
203
+ delimiter: ''
204
+ support:
205
+ array:
206
+ last_word_connector: ", and "
207
+ two_words_connector: " and "
208
+ words_connector: ", "
209
+ time:
210
+ am: am
211
+ formats:
212
+ default: "%a, %d %b %Y %H:%M:%S %z"
213
+ long: "%B %d, %Y %H:%M"
214
+ short: "%d %b %H:%M"
215
+ pm: pm
@@ -0,0 +1,213 @@
1
+ ---
2
+ nl:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validatie mislukt: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_one: Kan item niet verwijderen omdat %{record} afhankelijk is
9
+ has_many: Kan item niet verwijderen omdat afhankelijke %{record} bestaan
10
+ date:
11
+ abbr_day_names:
12
+ - zo
13
+ - ma
14
+ - di
15
+ - wo
16
+ - do
17
+ - vr
18
+ - za
19
+ abbr_month_names:
20
+ -
21
+ - jan
22
+ - feb
23
+ - mrt
24
+ - apr
25
+ - mei
26
+ - jun
27
+ - jul
28
+ - aug
29
+ - sep
30
+ - okt
31
+ - nov
32
+ - dec
33
+ day_names:
34
+ - zondag
35
+ - maandag
36
+ - dinsdag
37
+ - woensdag
38
+ - donderdag
39
+ - vrijdag
40
+ - zaterdag
41
+ formats:
42
+ default: "%d-%m-%Y"
43
+ long: "%e %B %Y"
44
+ short: "%e %b"
45
+ month_names:
46
+ -
47
+ - januari
48
+ - februari
49
+ - maart
50
+ - april
51
+ - mei
52
+ - juni
53
+ - juli
54
+ - augustus
55
+ - september
56
+ - oktober
57
+ - november
58
+ - december
59
+ order:
60
+ - :day
61
+ - :month
62
+ - :year
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ one: ongeveer een uur
67
+ other: ongeveer %{count} uur
68
+ about_x_months:
69
+ one: ongeveer een maand
70
+ other: ongeveer %{count} maanden
71
+ about_x_years:
72
+ one: ongeveer een jaar
73
+ other: ongeveer %{count} jaar
74
+ almost_x_years:
75
+ one: bijna een jaar
76
+ other: bijna %{count} jaar
77
+ half_a_minute: een halve minuut
78
+ less_than_x_seconds:
79
+ one: minder dan een seconde
80
+ other: minder dan %{count} seconden
81
+ less_than_x_minutes:
82
+ one: minder dan een minuut
83
+ other: minder dan %{count} minuten
84
+ over_x_years:
85
+ one: meer dan een jaar
86
+ other: meer dan %{count} jaar
87
+ x_seconds:
88
+ one: 1 seconde
89
+ other: "%{count} seconden"
90
+ x_minutes:
91
+ one: 1 minuut
92
+ other: "%{count} minuten"
93
+ x_days:
94
+ one: 1 dag
95
+ other: "%{count} dagen"
96
+ x_months:
97
+ one: 1 maand
98
+ other: "%{count} maanden"
99
+ x_years:
100
+ one: 1 jaar
101
+ other: "%{count} jaar"
102
+ prompts:
103
+ second: seconde
104
+ minute: minuut
105
+ hour: uur
106
+ day: dag
107
+ month: maand
108
+ year: jaar
109
+ errors:
110
+ format: "%{attribute} %{message}"
111
+ messages:
112
+ accepted: moet worden geaccepteerd
113
+ blank: moet opgegeven zijn
114
+ confirmation: komt niet overeen met %{attribute}
115
+ empty: moet opgegeven zijn
116
+ equal_to: moet gelijk zijn aan %{count}
117
+ even: moet even zijn
118
+ exclusion: is gereserveerd
119
+ greater_than: moet groter zijn dan %{count}
120
+ greater_than_or_equal_to: moet groter dan of gelijk zijn aan %{count}
121
+ inclusion: is niet in de lijst opgenomen
122
+ invalid: is ongeldig
123
+ less_than: moet minder zijn dan %{count}
124
+ less_than_or_equal_to: moet minder dan of gelijk zijn aan %{count}
125
+ model_invalid: 'Validatie mislukt: %{errors}'
126
+ not_a_number: is geen getal
127
+ not_an_integer: moet een geheel getal zijn
128
+ odd: moet oneven zijn
129
+ other_than: moet anders zijn dan %{count}
130
+ present: moet leeg zijn
131
+ required: moet bestaan
132
+ taken: is al in gebruik
133
+ too_long:
134
+ one: is te lang (maximaal %{count} teken)
135
+ other: is te lang (maximaal %{count} tekens)
136
+ too_short:
137
+ one: is te kort (minimaal %{count} teken)
138
+ other: is te kort (minimaal %{count} tekens)
139
+ wrong_length:
140
+ one: heeft onjuiste lengte (moet 1 teken lang zijn)
141
+ other: heeft onjuiste lengte (moet %{count} tekens lang zijn)
142
+ template:
143
+ body: 'Er zijn problemen met de volgende velden:'
144
+ header:
145
+ one: "%{model} niet opgeslagen: 1 fout gevonden"
146
+ other: "%{model} niet opgeslagen: %{count} fouten gevonden"
147
+ helpers:
148
+ select:
149
+ prompt: Maak een keuze
150
+ submit:
151
+ create: "%{model} toevoegen"
152
+ submit: "%{model} opslaan"
153
+ update: "%{model} bijwerken"
154
+ number:
155
+ currency:
156
+ format:
157
+ delimiter: "."
158
+ format: "%u %n"
159
+ precision: 2
160
+ separator: ","
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ unit: "€"
164
+ format:
165
+ delimiter: "."
166
+ precision: 2
167
+ separator: ","
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ human:
171
+ decimal_units:
172
+ format: "%n %u"
173
+ units:
174
+ billion: miljard
175
+ million: miljoen
176
+ quadrillion: biljard
177
+ thousand: duizend
178
+ trillion: biljoen
179
+ unit: ''
180
+ format:
181
+ delimiter: ''
182
+ precision: 3
183
+ significant: true
184
+ strip_insignificant_zeros: true
185
+ storage_units:
186
+ format: "%n %u"
187
+ units:
188
+ byte:
189
+ one: byte
190
+ other: bytes
191
+ gb: GB
192
+ kb: KB
193
+ mb: MB
194
+ tb: TB
195
+ percentage:
196
+ format:
197
+ delimiter: ''
198
+ format: "%n%"
199
+ precision:
200
+ format:
201
+ delimiter: ''
202
+ support:
203
+ array:
204
+ last_word_connector: " en "
205
+ two_words_connector: " en "
206
+ words_connector: ", "
207
+ time:
208
+ am: "'s ochtends"
209
+ formats:
210
+ default: "%a %d %b %Y %H:%M:%S %Z"
211
+ long: "%d %B %Y %H:%M"
212
+ short: "%d %b %H:%M"
213
+ pm: "'s middags"