lines-engine 1.0.0 → 1.1.0

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 (44) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +3 -1
  5. data/CHANGELOG.md +4 -0
  6. data/Gemfile.lock +49 -52
  7. data/app/controllers/lines/admin/articles_controller.rb +3 -3
  8. data/app/controllers/lines/application_controller.rb +1 -1
  9. data/app/controllers/lines/sessions_controller.rb +1 -1
  10. data/app/helpers/lines/application_helper.rb +13 -14
  11. data/app/views/kaminari/lines/_next_page.html.erb +1 -1
  12. data/app/views/kaminari/lines/_prev_page.html.erb +1 -1
  13. data/app/views/layouts/lines/application.html.erb +2 -2
  14. data/app/views/lines/admin/articles/_form.html.erb +29 -17
  15. data/app/views/lines/admin/articles/_picture_box.html.erb +2 -30
  16. data/app/views/lines/admin/articles/edit.html.erb +0 -13
  17. data/app/views/lines/admin/articles/index.html.erb +10 -10
  18. data/app/views/lines/admin/articles/new.html.erb +1 -15
  19. data/app/views/lines/admin/authors/_form.html.erb +11 -11
  20. data/app/views/lines/admin/authors/index.html.erb +4 -4
  21. data/app/views/lines/admin/authors/show.html.erb +1 -1
  22. data/app/views/lines/sessions/new.html.erb +4 -4
  23. data/app/views/lines/shared/_footer.html.erb +1 -1
  24. data/app/views/lines/shared/_navigation.html.erb +1 -1
  25. data/config/locales/de.yml +210 -0
  26. data/config/locales/kaminari.de.yml +8 -0
  27. data/config/locales/lines.de.yml +66 -0
  28. data/config/locales/lines.en.yml +66 -0
  29. data/lib/generators/lines/install_generator.rb +4 -0
  30. data/lib/lines/engine.rb +17 -0
  31. data/lib/lines/version.rb +1 -1
  32. data/lines.gemspec +2 -2
  33. data/spec/dummy/config/application.rb +1 -1
  34. data/spec/features/article_spec.rb +2 -2
  35. data/spec/spec_helper.rb +8 -3
  36. metadata +26 -47
  37. metadata.gz.sig +0 -0
  38. data/config/initializers/simple_form.rb +0 -144
  39. data/spec/dummy/db/migrate/20140505122014_base_migration.rb +0 -84
  40. data/spec/dummy/db/migrate/20140702160602_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +0 -31
  41. data/spec/dummy/db/migrate/20140702160603_add_missing_unique_indices.acts_as_taggable_on_engine.rb +0 -20
  42. data/spec/dummy/db/migrate/20140702160604_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +0 -15
  43. data/spec/dummy/db/migrate/20141027143656_add_teaser_to_article.rb +0 -5
  44. data/spec/dummy/db/migrate/20150421093311_add_reset_password_fields_to_users.rb +0 -6
@@ -1,11 +1,11 @@
1
1
  <div class="images-overlay">
2
2
  <div class="images-overlay-close icon-close"></div>
3
3
  <div class="images-overlay-inner">
4
- <h2>Insert image</h2>
4
+ <h2><%= t('lines.buttons.insert_image').html_safe %></h2>
5
5
 
6
6
  <%= form_for [:admin, Lines::Picture.new], {enctype: "multipart/form-data"} do |f| %>
7
7
  <input id="picture_image" multiple="multiple" name="picture[image]" type="file" />
8
- <label for="picture_image">Upload an image</label>
8
+ <label for="picture_image"><%= t('lines.buttons.upload_image').html_safe %></label>
9
9
  <% end %>
10
10
 
11
11
  <script id="template-upload" type="text/x-tmpl">
@@ -21,9 +21,7 @@
21
21
  <% if @article.pictures.any? %>
22
22
  <% @article.pictures.each do |picture| %>
23
23
  <div class="image-preview" id="<%= dom_id picture %>" style="background-image: url(<%= picture.image_url(:preview) %>)" data-url="<%= picture.image_url %>">
24
- <%#= image_tag picture.image_url(:preview), data: {:url => picture.image_url} %>
25
24
  <%= button_to admin_picture_path(picture), remote: true, confirm: "Are you sure?", method: :delete, class: 'icon-delete' do %>
26
-
27
25
  <% end %>
28
26
  </div>
29
27
  <% end %>
@@ -32,29 +30,3 @@
32
30
  </div>
33
31
  <div class="images-background-overlay"></div>
34
32
  </div>
35
-
36
- <!--<div class="body-picture-upload">
37
-
38
- <h2>Upload photos</h2>
39
-
40
- <div id="pictures">
41
- <% if @article.pictures.any? %>
42
- <% @article.pictures.each do |picture| %>
43
- <div class="picture-preview" id="<%= dom_id picture %>">
44
- <div class="picture"><%= image_tag picture.image_url(:preview) %></div>
45
- <a href="#insert" class="insert-image" data-url="<%= picture.image_url %>"></a>
46
- <%= button_to "", admin_picture_path(picture), remote: true, confirm: "Are you sure?", method: :delete, class: 'btn-delete-photo' %>
47
- </div>
48
- <% end %>
49
- <% end %>
50
- </div>
51
-
52
- <div class="picture-preview">
53
- <%= form_for [:admin, Lines::Picture.new], {enctype: "multipart/form-data"} do |f| %>
54
- <img src="/assets/ic_action_add.png" style="height: 48px; width: 48px; padding: 18px;" alt="" />
55
- <input id="picture_image" multiple="multiple" name="picture[image]" type="file" />
56
- <% end %>
57
- </div>
58
- <br style="clear: both;" />
59
-
60
- </div>-->
@@ -1,15 +1,2 @@
1
- <% if @article.errors.any? %>
2
- <div id="error_explanation">
3
- <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>
4
-
5
- <ul>
6
- <% @article.errors.full_messages.each do |msg| %>
7
- <li><%= msg %></li>
8
- <% end %>
9
- </ul>
10
- <a href="#" class="close">x</a>
11
- </div>
12
- <% end %>
13
-
14
1
  <%= render 'lines/admin/articles/form' %>
15
2
  <%= render 'lines/admin/articles/picture_box' %>
@@ -1,10 +1,10 @@
1
1
  <%= render_navbar do %>
2
- <%= link_to 'New Article', new_admin_article_path, class: "btn btn-new-article highlight" %>
3
- <%= link_to 'Visit Blog', lines.root_path, class: "btn btn-view-blog" %>
2
+ <%= link_to t('lines.buttons.new_article').html_safe, new_admin_article_path, class: "btn btn-new-article highlight" %>
3
+ <%= link_to t('lines.buttons.visit_blog').html_safe, lines.root_path, class: "btn btn-view-blog" %>
4
4
  <% end %>
5
5
 
6
6
  <% if @articles_unpublished.size > 0 %>
7
- <h2>Unpublished articles</h2>
7
+ <h2><%= t('lines.unpublished_articles').html_safe %></h2>
8
8
  <div class="articles-list">
9
9
  <% @articles_unpublished.each do |article| %>
10
10
  <div class="article unpublished">
@@ -16,11 +16,11 @@
16
16
  </div>
17
17
  <div class="actions">
18
18
  <div class="left">
19
- <%= link_to "Publish", admin_article_toggle_publish_path(article), method: :post, class: "btn-publish" %>
19
+ <%= link_to t('lines.buttons.publish').html_safe, admin_article_toggle_publish_path(article), method: :post, class: "btn-publish" %>
20
20
  </div>
21
21
  <div class="right">
22
- <%= link_to "Preview", admin_article_path(article) %>
23
- <%= link_to "", {controller: :articles, action: 'destroy', id: article.id}, data: { confirm: "Are you sure?" }, class: "btn-delete icon-delete", method: :delete %>
22
+ <%= link_to t('lines.buttons.preview').html_safe, admin_article_path(article) %>
23
+ <%= link_to "", {controller: :articles, action: 'destroy', id: article.id}, data: { confirm: t('lines.confirm').html_safe }, class: "btn-delete icon-delete", method: :delete %>
24
24
  </div>
25
25
  </div>
26
26
  </div>
@@ -29,7 +29,7 @@
29
29
  <% end %>
30
30
 
31
31
  <% if @articles_published.size > 0 %>
32
- <h2>Published articles</h2>
32
+ <h2><%= t('lines.published_articles').html_safe %></h2>
33
33
  <div class="articles-list">
34
34
  <% @articles_published.each do |article| %>
35
35
  <div class="article published">
@@ -43,11 +43,11 @@
43
43
  <div class="left">
44
44
  <% feature_class = article.featured ? 'btn-unfeature icon-unkeep' : 'btn-feature icon-keep' %>
45
45
  <%= link_to "", admin_article_toggle_feature_path(article), method: :post, class: "#{feature_class}" %>
46
- <%= link_to "Unpublish", admin_article_toggle_publish_path(article), method: :post, class: "btn-unpublish" %>
46
+ <%= link_to t('lines.buttons.unpublish').html_safe, admin_article_toggle_publish_path(article), method: :post, class: "btn-unpublish" %>
47
47
  </div>
48
48
  <div class="right">
49
- <%= link_to "Preview", admin_article_path(article) %>
50
- <%= link_to "", {controller: :articles, action: 'destroy', id: article.id}, data: { confirm: "Are you sure?" }, class: "btn-delete icon-delete", method: :delete %>
49
+ <%= link_to t('lines.buttons.preview').html_safe, admin_article_path(article) %>
50
+ <%= link_to "", {controller: :articles, action: 'destroy', id: article.id}, data: { confirm: t('lines.confirm').html_safe }, class: "btn-delete icon-delete", method: :delete %>
51
51
  </div>
52
52
  </div>
53
53
  </div>
@@ -1,20 +1,6 @@
1
1
  <%= content_for :admin_nav do %>
2
- <%= link_to 'New Article', new_admin_article_path, class: "btn btn-new-article" %>
2
+ <%= link_to t('lines.buttons.new_article').html_safe, new_admin_article_path, class: "btn btn-new-article" %>
3
3
  <% end %>
4
4
 
5
-
6
- <% if @article.errors.any? %>
7
- <div id="error_explanation">
8
- <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>
9
- <ul>
10
- <% @article.errors.full_messages.each do |msg| %>
11
- <li><%= msg %></li>
12
- <% end %>
13
- </ul>
14
- <a href="#" class="close">x</a>
15
- </div>
16
- <% end %>
17
-
18
-
19
5
  <%= render 'lines/admin/articles/form' %>
20
6
  <%= render 'lines/admin/articles/picture_box' %>
@@ -1,24 +1,24 @@
1
- <%= simple_form_for([:admin, @author]) do |f| %>
1
+ <%= form_for([:admin, @author]) do |f| %>
2
2
  <div class="new-author">
3
3
 
4
- <h2>New Author</h2>
4
+ <h2><%= t('activerecord.models.lines/author', count: 1) %></h2>
5
5
 
6
- <div class="input-field">
7
- <%= f.text_field :name, placeholder: "Name *" %>
6
+ <div class="input-field required">
7
+ <%= f.text_field :name, placeholder: true %>
8
8
  </div>
9
- <div class="input-field">
10
- <%= f.text_area :description, placeholder: "Description *", rows: 1 %>
9
+ <div class="input-field required">
10
+ <%= f.text_area :description, placeholder: true, rows: 1 %>
11
11
  </div>
12
- <div class="input-field">
13
- <%= f.text_field :email, placeholder: "E-Mail *" %>
12
+ <div class="input-field required">
13
+ <%= f.text_field :email, placeholder: true %>
14
14
  </div>
15
15
  <div class="input-field">
16
- <%= f.text_field :gplus_profile, placeholder: "Website" %>
16
+ <%= f.text_field :gplus_profile, placeholder: true %>
17
17
  </div>
18
18
 
19
19
  <%= render_navbar do %>
20
- <%= f.submit "Save Author", class: "btn btn-save-publish highlight" %>
21
- <%= link_to 'Cancel', admin_authors_path, class: 'btn btn-cancel' %>
20
+ <%= f.submit t('lines.buttons.save_author').html_safe, class: "btn btn-save-publish highlight" %>
21
+ <%= link_to t('lines.buttons.cancel').html_safe, admin_authors_path, class: 'btn btn-cancel' %>
22
22
  <% end %>
23
23
 
24
24
  </div>
@@ -1,5 +1,5 @@
1
1
  <%= render_navbar do %>
2
- <%= link_to 'New Author', new_admin_author_path, class: "btn btn-new-author highlight" %>
2
+ <%= link_to t('lines.buttons.new_author').html_safe, new_admin_author_path, class: "btn btn-new-author highlight" %>
3
3
  <%= link_to 'Dashboard', lines.admin_root_path, class: "btn btn-view-blog" %>
4
4
  <% end %>
5
5
 
@@ -16,7 +16,7 @@
16
16
  </div>
17
17
  <% end %>
18
18
 
19
- <h2>All authors</h2>
19
+ <h2><%= t('lines.buttons.all_authors').html_safe %></h2>
20
20
  <div class="authors-list">
21
21
  <% @authors.each do |author| %>
22
22
  <div class="author">
@@ -28,10 +28,10 @@
28
28
  </div>
29
29
  <div class="actions">
30
30
  <div class="left">
31
- <%= link_to "Edit", edit_admin_author_path(author), class: "btn-edit" %>
31
+ <%= link_to t('lines.buttons.edit').html_safe, edit_admin_author_path(author), class: "btn-edit" %>
32
32
  </div>
33
33
  <div class="right">
34
- <%= link_to "", {controller: :authors, action: 'destroy', id: author.id}, data: { confirm: "Are you sure?" }, class: "btn-delete icon-delete", method: :delete %>
34
+ <%= link_to "", {controller: :authors, action: 'destroy', id: author.id}, data: { confirm: t('lines.confirm').html_safe }, class: "btn-delete icon-delete", method: :delete %>
35
35
  </div>
36
36
  </div>
37
37
  </div>
@@ -16,7 +16,7 @@
16
16
  <%= mail_to @author.email, @author.email %>
17
17
  </div>
18
18
  <div class="right">
19
- <%= link_to "Website", @author.gplus_profile, class: "btn-unpublish" unless @author.gplus_profile.empty? %>
19
+ <%= link_to "Website", @author.gplus_profile, class: "btn-unpublish" if @author.gplus_profile %>
20
20
  </div>
21
21
  </div>
22
22
  </div>
@@ -4,19 +4,19 @@
4
4
 
5
5
  <%= form_tag sessions_path do %>
6
6
  <div class="input-field">
7
- <%= text_field_tag :email, params[:email], placeholder: "E-Mail" %>
7
+ <%= text_field_tag :email, params[:email], placeholder: 'E-Mail' %>
8
8
  </div>
9
9
  <div class="input-field">
10
10
  <%= password_field_tag :password, "", placeholder: 'Password' %>
11
11
  </div>
12
12
  <br style="clear: both;" />
13
13
  <div class="submit">
14
- <%= submit_tag "Login" %>
15
- or <a href="/">go back to your blog.</a>
14
+ <%= submit_tag t('lines.buttons.login') %>
15
+ <%= t 'lines.or' %> <a href="/"><%= t('lines.go_back_to_blog') %></a>
16
16
  </div>
17
17
  <br style="clear: both;" />
18
18
  <div class="additional_actions">
19
- <%= link_to "Forgot password?", new_password_reset_path %>
19
+ <%= link_to t('lines.forgot_password'), new_password_reset_path %>
20
20
  </div>
21
21
  <% end %>
22
22
  </div>
@@ -2,7 +2,7 @@
2
2
  <div class="container">
3
3
  <p>The LINES blog engine is created by <a href="https://www.opoloo.com">Opoloo</a> and improved by the open source community on <a href="https://github.com/opoloo/lines-engine">Github</a>.</p>
4
4
 
5
- <p>We’re thankful to be using the following technologies: <a href="http://rubyonrails.org/">Ruby on Rails</a>, <a href="http://pygments.org/">Pygments</a>, <a href="http://jquery.com/">jQuery</a>, <a href="http://codemirror.com/">CodeMirror</a>, <a href="https://github.com/ai/autoprefixer-rails">Autoprefixer Rails</a>, <a href="https://github.com/vmg/redcarpet">Red Carpet</a>. Gladly, we like to give back to the open culture of the web with LINES.
5
+ <p>We’re thankful to be using the following technologies: <a href="http://rubyonrails.org/">Ruby on Rails</a>, <a href="http://pygments.org/">Pygments</a>, <a href="http://jquery.com/">jQuery</a>, <a href="http://codemirror.com/">CodeMirror</a>, <a href="https://github.com/vmg/redcarpet">Red Carpet</a>. Gladly, we like to give back to the open culture of the web with LINES.</p>
6
6
 
7
7
  <p>Download the LINES gem at <a href="https://rubygems.org/gems/lines-engine">https://rubygems.org/gems/lines-engine</a></p>
8
8
  </div>
@@ -6,7 +6,7 @@
6
6
  <ul class="user-info">
7
7
  <% if current_lines_user %>
8
8
  <li><%= current_lines_user.email %></li>
9
- <li><a href="<%= logout_path %>">Logout</a></li>
9
+ <li><a href="<%= logout_path %>"><%= t('lines.buttons.logout').html_safe %></a></li>
10
10
  <% end %>
11
11
  </ul>
12
12
  <br class="clear" />
@@ -0,0 +1,210 @@
1
+ ---
2
+ de:
3
+ date:
4
+ abbr_day_names:
5
+ - So
6
+ - Mo
7
+ - Di
8
+ - Mi
9
+ - Do
10
+ - Fr
11
+ - Sa
12
+ abbr_month_names:
13
+ -
14
+ - Jan
15
+ - Feb
16
+ - Mär
17
+ - Apr
18
+ - Mai
19
+ - Jun
20
+ - Jul
21
+ - Aug
22
+ - Sep
23
+ - Okt
24
+ - Nov
25
+ - Dez
26
+ day_names:
27
+ - Sonntag
28
+ - Montag
29
+ - Dienstag
30
+ - Mittwoch
31
+ - Donnerstag
32
+ - Freitag
33
+ - Samstag
34
+ formats:
35
+ default: "%d.%m.%Y"
36
+ long: "%e. %B %Y"
37
+ short: "%e. %b"
38
+ month_names:
39
+ -
40
+ - Januar
41
+ - Februar
42
+ - März
43
+ - April
44
+ - Mai
45
+ - Juni
46
+ - Juli
47
+ - August
48
+ - September
49
+ - Oktober
50
+ - November
51
+ - Dezember
52
+ order:
53
+ - :day
54
+ - :month
55
+ - :year
56
+ datetime:
57
+ distance_in_words:
58
+ about_x_hours:
59
+ one: vor etwa einer Stunde
60
+ other: vor etwa %{count} Stunden
61
+ about_x_months:
62
+ one: vor etwa einem Monat
63
+ other: vor etwa %{count} Monaten
64
+ about_x_years:
65
+ one: vor etwa einem Jahr
66
+ other: vor etwa %{count} Jahren
67
+ almost_x_years:
68
+ one: vor fast einem Jahr
69
+ other: vor fast %{count} Jahren
70
+ half_a_minute: vor einer halben Minute
71
+ less_than_x_minutes:
72
+ one: vor weniger als einer Minute
73
+ other: vor weniger als %{count} Minuten
74
+ less_than_x_seconds:
75
+ one: vor weniger als eine Sekunde
76
+ other: vor weniger als %{count} Sekunden
77
+ over_x_years:
78
+ one: vor mehr als einem Jahr
79
+ other: vor mehr als %{count} Jahren
80
+ x_days:
81
+ one: vor einem Tag
82
+ other: "vor %{count} Tagen"
83
+ x_minutes:
84
+ one: vor einer Minute
85
+ other: "vor %{count} Minuten"
86
+ x_months:
87
+ one: vor einem Monat
88
+ other: "vor %{count} Monaten"
89
+ x_seconds:
90
+ one: vor einer Sekunde
91
+ other: "vor %{count} Sekunden"
92
+ prompts:
93
+ day: Tag
94
+ hour: Stunden
95
+ minute: Minute
96
+ month: Monat
97
+ second: Sekunde
98
+ year: Jahr //all are in singular now
99
+ errors:
100
+ format: "%{attribute} %{message}"
101
+ messages:
102
+ accepted: muss akzeptiert werden
103
+ blank: muss ausgefüllt werden
104
+ present: darf nicht ausgefüllt werden
105
+ confirmation: stimmt nicht mit %{attribute} überein
106
+ empty: muss ausgefüllt werden
107
+ equal_to: muss genau %{count} sein
108
+ even: muss gerade sein
109
+ exclusion: ist nicht verfügbar
110
+ greater_than: muss größer als %{count} sein
111
+ greater_than_or_equal_to: muss größer oder gleich %{count} sein
112
+ inclusion: ist kein gültiger Wert
113
+ invalid: ist nicht gültig
114
+ less_than: muss kleiner als %{count} sein
115
+ less_than_or_equal_to: muss kleiner oder gleich %{count} sein
116
+ not_a_number: ist keine Zahl
117
+ not_an_integer: muss ganzzahlig sein
118
+ odd: muss ungerade sein
119
+ record_invalid: 'Gültigkeitsprüfung ist fehlgeschlagen: %{errors}'
120
+ restrict_dependent_destroy:
121
+ one: Datensatz kann nicht gelöscht werden, da ein abhängiger %{record}-Datensatz
122
+ existiert.
123
+ many: Datensatz kann nicht gelöscht werden, da abhängige %{record} existieren.
124
+ taken: ist bereits vergeben
125
+ too_long:
126
+ one: ist zu lang (mehr als 1 Zeichen)
127
+ other: ist zu lang (mehr als %{count} Zeichen)
128
+ too_short:
129
+ one: ist zu kurz (weniger als 1 Zeichen)
130
+ other: ist zu kurz (weniger als %{count} Zeichen)
131
+ wrong_length:
132
+ one: hat die falsche Länge (muss genau 1 Zeichen haben)
133
+ other: hat die falsche Länge (muss genau %{count} Zeichen haben)
134
+ other_than: darf nicht gleich %{count} sein
135
+ template:
136
+ body: 'Bitte überprüfen Sie die folgenden Felder:'
137
+ header:
138
+ one: 'Konnte %{model} nicht speichern: ein Fehler.'
139
+ other: 'Konnte %{model} nicht speichern: %{count} Fehler.'
140
+ helpers:
141
+ select:
142
+ prompt: Bitte wählen
143
+ submit:
144
+ create: "%{model} erstellen"
145
+ submit: "%{model} speichern"
146
+ update: "%{model} aktualisieren"
147
+ number:
148
+ currency:
149
+ format:
150
+ delimiter: "."
151
+ format: "%n %u"
152
+ precision: 2
153
+ separator: ","
154
+ significant: false
155
+ strip_insignificant_zeros: false
156
+ unit: "€"
157
+ format:
158
+ delimiter: "."
159
+ precision: 2
160
+ separator: ","
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ human:
164
+ decimal_units:
165
+ format: "%n %u"
166
+ units:
167
+ billion:
168
+ one: Milliarde
169
+ other: Milliarden
170
+ million: Millionen
171
+ quadrillion:
172
+ one: Billiarde
173
+ other: Billiarden
174
+ thousand: Tausend
175
+ trillion: Billionen
176
+ unit: ''
177
+ format:
178
+ delimiter: ''
179
+ precision: 3
180
+ significant: true
181
+ strip_insignificant_zeros: true
182
+ storage_units:
183
+ format: "%n %u"
184
+ units:
185
+ byte:
186
+ one: Byte
187
+ other: Bytes
188
+ gb: GB
189
+ kb: KB
190
+ mb: MB
191
+ tb: TB
192
+ percentage:
193
+ format:
194
+ delimiter: ''
195
+ format: "%n %"
196
+ precision:
197
+ format:
198
+ delimiter: ''
199
+ support:
200
+ array:
201
+ last_word_connector: " und "
202
+ two_words_connector: " und "
203
+ words_connector: ", "
204
+ time:
205
+ am: vormittags
206
+ formats:
207
+ default: "%A, %d. %B %Y, %H:%M Uhr"
208
+ long: "%A, %d. %B %Y, %H:%M Uhr"
209
+ short: "%d. %B, %H:%M Uhr"
210
+ pm: nachmittags