refinerycms-blog 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/app/controllers/blog/posts_controller.rb +14 -1
  2. data/app/models/blog_post.rb +15 -9
  3. data/app/models/categorization.rb +2 -0
  4. data/app/views/admin/blog/posts/_form.html.erb +8 -1
  5. data/app/views/blog/posts/_post.html.erb +2 -4
  6. data/app/views/blog/posts/archive.html.erb +1 -2
  7. data/app/views/blog/posts/index.html.erb +1 -0
  8. data/app/views/blog/posts/show.html.erb +1 -0
  9. data/app/views/blog/posts/tagged.html.erb +22 -0
  10. data/app/views/blog/shared/_post.html.erb +7 -3
  11. data/app/views/blog/shared/_tags.html.erb +8 -0
  12. data/changelog.md +6 -1
  13. data/config/locales/cs.yml +128 -0
  14. data/config/locales/en.yml +5 -0
  15. data/config/locales/nb.yml +7 -0
  16. data/config/locales/nl.yml +120 -10
  17. data/config/locales/pt-BR.yml +3 -0
  18. data/config/locales/sk.yml +128 -0
  19. data/config/locales/zh-CN.yml +128 -0
  20. data/config/routes.rb +2 -1
  21. data/db/migrate/3_acts_as_taggable_on_migration.rb +28 -0
  22. data/db/migrate/4_create_seo_meta_for_blog.rb +25 -0
  23. data/db/seeds/refinerycms_blog.rb +18 -14
  24. data/features/authors.feature +4 -4
  25. data/features/support/factories/blog_categories.rb +2 -1
  26. data/features/support/factories/blog_comments.rb +2 -4
  27. data/features/support/factories/blog_posts.rb +3 -0
  28. data/features/support/step_definitions/tags_steps.rb +11 -0
  29. data/features/tags.feature +26 -0
  30. data/lib/gemspec.rb +12 -6
  31. data/lib/refinery/blog/version.rb +17 -0
  32. data/lib/refinerycms-blog.rb +10 -9
  33. data/readme.md +1 -1
  34. data/spec/models/blog_category_spec.rb +41 -0
  35. data/spec/models/{blog_comments_spec.rb → blog_comment_spec.rb} +0 -0
  36. data/spec/models/blog_post_spec.rb +187 -0
  37. metadata +53 -10
  38. data/spec/models/blog_categories_spec.rb +0 -41
  39. data/spec/models/blog_posts_spec.rb +0 -176
@@ -2,6 +2,7 @@ class Blog::PostsController < BlogController
2
2
 
3
3
  before_filter :find_all_blog_posts, :except => [:archive]
4
4
  before_filter :find_blog_post, :only => [:show, :comment, :update_nav]
5
+ before_filter :find_tags
5
6
 
6
7
  respond_to :html, :js, :rss
7
8
 
@@ -16,7 +17,7 @@ class Blog::PostsController < BlogController
16
17
  @blog_comment = BlogComment.new
17
18
 
18
19
  respond_with (@blog_post) do |format|
19
- format.html { present(@page) }
20
+ format.html { present(@blog_post) }
20
21
  format.js { render :partial => 'post', :layout => false }
21
22
  end
22
23
  end
@@ -65,6 +66,14 @@ class Blog::PostsController < BlogController
65
66
  respond_with (@blog_posts)
66
67
  end
67
68
 
69
+ def tagged
70
+ @tag_name = params[:tag_name]
71
+ @blog_posts = BlogPost.tagged_with(@tag_name.titleize).paginate({
72
+ :page => params[:page],
73
+ :per_page => RefinerySetting.find_or_set(:blog_posts_per_page, 10)
74
+ })
75
+ end
76
+
68
77
  protected
69
78
 
70
79
  def find_blog_post
@@ -84,4 +93,8 @@ protected
84
93
  })
85
94
  end
86
95
 
96
+ def find_tags
97
+ @tags = BlogPost.tag_counts_on(:tags)
98
+ end
99
+
87
100
  end
@@ -1,12 +1,18 @@
1
+ require 'acts-as-taggable-on'
2
+ require 'seo_meta'
3
+
1
4
  class BlogPost < ActiveRecord::Base
2
-
5
+
6
+ is_seo_meta if self.table_exists?
7
+
3
8
  default_scope :order => 'published_at DESC'
4
9
  #.first & .last will be reversed -- consider a with_exclusive_scope on these?
5
-
10
+
6
11
  belongs_to :author, :class_name => 'User', :foreign_key => :user_id
7
-
12
+
8
13
  has_many :comments, :class_name => 'BlogComment', :dependent => :destroy
9
-
14
+ acts_as_taggable
15
+
10
16
  has_many :categorizations
11
17
  has_many :categories, :through => :categorizations, :source => :blog_category
12
18
 
@@ -20,7 +26,7 @@ class BlogPost < ActiveRecord::Base
20
26
  scope :by_archive, lambda { |archive_date|
21
27
  where(['published_at between ? and ?', archive_date.beginning_of_month, archive_date.end_of_month])
22
28
  }
23
-
29
+
24
30
  scope :by_year, lambda { |archive_year|
25
31
  where(['published_at between ? and ?', archive_year.beginning_of_year, archive_year.end_of_year])
26
32
  }
@@ -31,7 +37,7 @@ class BlogPost < ActiveRecord::Base
31
37
 
32
38
  scope :previous, lambda { |i| where(["published_at < ? and draft = ?", i.published_at, false]).limit(1) }
33
39
  # next is now in << self
34
-
40
+
35
41
  def next
36
42
  BlogPost.next(self).first
37
43
  end
@@ -56,13 +62,13 @@ class BlogPost < ActiveRecord::Base
56
62
  where(["published_at > ? and draft = ?", current_record.published_at, false]).order("published_at ASC")
57
63
  end
58
64
  end
59
-
65
+
60
66
  def comments_allowed?
61
67
  RefinerySetting.find_or_set(:comments_allowed, true, {
62
68
  :scoping => 'blog'
63
69
  })
64
70
  end
65
-
71
+
66
72
  def uncategorized
67
73
  BlogPost.live.reject { |p| p.categories.any? }
68
74
  end
@@ -71,7 +77,7 @@ class BlogPost < ActiveRecord::Base
71
77
  module ShareThis
72
78
  DEFAULT_KEY = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
73
79
 
74
- class << self
80
+ class << self
75
81
  def key
76
82
  RefinerySetting.find_or_set(:share_this_key, BlogPost::ShareThis::DEFAULT_KEY, {
77
83
  :scoping => 'blog'
@@ -1,5 +1,7 @@
1
1
  class Categorization < ActiveRecord::Base
2
+
2
3
  set_table_name 'blog_categories_blog_posts'
3
4
  belongs_to :blog_post
4
5
  belongs_to :blog_category
6
+
5
7
  end
@@ -14,6 +14,12 @@
14
14
  <%= f.label :body -%>
15
15
  <%= f.text_area :body, :rows => 20, :class => 'wymeditor widest' -%>
16
16
  </div>
17
+
18
+ <div class='field'>
19
+ <%= f.label :tag_list, "Tags" -%>
20
+ <%= f.text_field :tag_list, :class => 'larger' -%>
21
+ </div>
22
+
17
23
  <div id='more_options_field'>
18
24
  <p>
19
25
  <%= link_to t('.advanced_options'), "#",
@@ -40,10 +46,11 @@
40
46
  </li>
41
47
  <% end %>
42
48
  </ul>
43
- <h3><%= t('admin.blog.posts.form.published_at') %></h3>
49
+ <h3><%= t('.published_at') %></h3>
44
50
  <%= f.datetime_select :published_at %>
45
51
  </div>
46
52
  <div class='hemisquare right_side'>
53
+ <%= render :partial => '/seo_meta/form', :locals => {:form => f} %>
47
54
  </div>
48
55
  </div>
49
56
  <%= render :partial => "/shared/admin/form_actions",
@@ -14,7 +14,7 @@
14
14
  <aside class='filed_in'>
15
15
  <%= t('blog.posts.show.filed_in') %>
16
16
  <% categories.each_with_index do |category, index| %>
17
- <%= link_to category.title, blog_category_url(category) -%><%= ',' if index < ((categories.length) - 1) %>
17
+ <%= link_to category.title, blog_category_url(category) -%><%= ',' if index < ((categories.length) - 1) %>
18
18
  <% end %>
19
19
  </aside>
20
20
  <% end %>
@@ -27,6 +27,4 @@
27
27
  <% end %>
28
28
  </article>
29
29
  <%= render :partial => '/shared/draft_page_message' unless @blog_post.nil? or @blog_post.live? -%>
30
- <% if next_or_previous?(@blog_post) -%>
31
- <%= render 'nav' %>
32
- <% end -%>
30
+ <%= render 'nav' if next_or_previous?(@blog_post) %>
@@ -1,5 +1,4 @@
1
1
  <% content_for :body_content_left do %>
2
- <%= @page[Page.default_parts.first.to_sym] %>
3
2
  <h1><%= t('.blog_archive_for', :date => @archive_date.strftime('%B %Y')) %></h1>
4
3
  <% if @blog_posts.any? %>
5
4
  <section id="blog_posts">
@@ -11,8 +10,8 @@
11
10
  <% end %>
12
11
 
13
12
  <% content_for :body_content_right do %>
14
- <%= @page[Page.default_parts.second.to_sym] %>
15
13
  <%= render :partial => "/blog/shared/categories" %>
14
+ <%= render :partial => "/blog/shared/tags" %>
16
15
  <%= render :partial => "/blog/shared/rss_feed" %>
17
16
  <%= blog_archive_list %>
18
17
  <% end %>
@@ -15,6 +15,7 @@
15
15
  <%=raw @page[Page.default_parts.second.to_sym] if Page.default_parts.many? %>
16
16
 
17
17
  <%= render :partial => "/blog/shared/categories" %>
18
+ <%= render :partial => "/blog/shared/tags" %>
18
19
  <%= render :partial => "/blog/shared/rss_feed" %>
19
20
  <%= blog_archive_list %>
20
21
  <% end %>
@@ -49,6 +49,7 @@
49
49
 
50
50
  <% content_for :body_content_right do %>
51
51
  <%= render :partial => "/blog/shared/categories" %>
52
+ <%= render :partial => "/blog/shared/tags" %>
52
53
  <%= render :partial => "/blog/shared/posts" %>
53
54
  <%= render :partial => "/blog/shared/rss_feed" %>
54
55
  <%= blog_archive_list %>
@@ -0,0 +1,22 @@
1
+ <% content_for :body_content_title, "Posts tagged &#8220;#{@tag_name.titleize}&#8221;".html_safe -%>
2
+
3
+ <% content_for :body_content_left do %>
4
+ <% if @blog_posts.any? %>
5
+ <section id="blog_posts">
6
+ <%= render :partial => "/blog/shared/post", :collection => @blog_posts %>
7
+ <%= will_paginate @blog_posts %>
8
+ </section>
9
+ <% else %>
10
+ <p><%= t('.no_blog_articles_yet') %></p>
11
+ <% end %>
12
+ <% end %>
13
+
14
+ <% content_for :body_content_right do %>
15
+ <%= render :partial => "/blog/shared/categories" %>
16
+ <%= render :partial => "/blog/shared/tags" %>
17
+ <%= render :partial => "/blog/shared/rss_feed" %>
18
+ <%= blog_archive_list %>
19
+ <% end %>
20
+
21
+ <%= render :partial => "/shared/content_page" %>
22
+ <% content_for :stylesheets, stylesheet_link_tag('refinerycms-blog') %>
@@ -9,9 +9,13 @@
9
9
  <% if (categories = post.categories).any? %>
10
10
  <aside class='filed_in'>
11
11
  <%= t('filed_in', :scope => 'blog.posts.show') %>
12
- <% categories.each_with_index do |category, index| %>
13
- <%= link_to category.title, blog_category_url(category) -%><%= ',' if index < ((categories.length) - 1) %>
14
- <% end %>
12
+ <%=raw categories.collect { |category| link_to category.title, blog_category_url(category) }.to_sentence %>
13
+ </aside>
14
+ <% end %>
15
+ <% if (tags = post.tag_list).any? %>
16
+ <aside class='tagged'>
17
+ <%= t('tagged', :scope => 'blog.posts.show') %>
18
+ <%=raw tags.collect { |tag| link_to tag, tagged_posts_path(tag.parameterize) }.to_sentence %>
15
19
  </aside>
16
20
  <% end %>
17
21
  </details>
@@ -0,0 +1,8 @@
1
+ <% unless @tags.nil? %>
2
+ <h2><%= t('.title') %></h2>
3
+ <nav id='tags'>
4
+ <% tag_cloud(@tags, %w(tag1 tag2 tag3 tag4)) do |tag, css_class| %>
5
+ <%= link_to tag.name, tagged_posts_path(tag.name.parameterize), :class => css_class %>
6
+ <% end %>
7
+ </nav>
8
+ <% end %>
@@ -1,7 +1,12 @@
1
- ## 1.4 [UNRELEASED]
1
+ ## 1.4 [26 May 2011]
2
2
 
3
3
  * Spanish language fixes [scambra](https://github.com/scambra)
4
4
  * Bug fixes [scambra](https://github.com/scambra)
5
+ * Tags [joemsak](https://github.com/joemsak)
6
+ * Tagged posts route / view [joemsak](https://github.com/joemsak)
7
+ * Tag cloud in sidebar
8
+ * Czech & slovak translations [karem](https://github.com/keram)
9
+ * SEO fields and migration [parndt](https://github.com/parndt) [ugisozols](https://github.com/ugisozols)
5
10
  * [See full list](https://github.com/resolve/refinerycms-blog/compare/1.3...1.4)
6
11
 
7
12
  ## 1.3 [03 March 2011]
@@ -0,0 +1,128 @@
1
+ cs:
2
+ plugins:
3
+ refinerycms_blog:
4
+ title: Blog
5
+ admin:
6
+ blog:
7
+ categories:
8
+ category:
9
+ edit: Upravit kategorii
10
+ delete: Smazat kategorii
11
+ index:
12
+ no_items_yet: 'Nejsou zde žádné kategorie. Klikni na "%{create}" pro přidání první.'
13
+ comments:
14
+ approved: 'Komentář od "%{author}" byl schválen.'
15
+ comment:
16
+ view_live_html: 'Zobrazit živý náhled <br/><em>(otevře nové okno)</em>'
17
+ read: Zobrazit komentář
18
+ reject: Zamítnout komentář
19
+ approve: Schválit
20
+ rejected: 'Komentář od "%{author}" byl zamítnut.'
21
+ index:
22
+ no_items_yet: 'Nejsou zde žádné %{type} komentáře.'
23
+ show:
24
+ comment: Komentář
25
+ blog_post: Blog článek
26
+ from: Odeslal
27
+ date: Datum
28
+ message: Komentář
29
+ details: Detaily
30
+ age: Věk
31
+ actions: Akce
32
+ back: Zpět na seznam komentářů
33
+ reject: Zamítnout komentář
34
+ approve: Schváliť komentář
35
+ posts:
36
+ form:
37
+ advanced_options: Pokročilé nastavení
38
+ toggle_advanced_options: Klikni pro přístup k nastavením meta tagů a menu
39
+ save_as_draft: Uložit jako koncept
40
+ published_at: Datum publikování
41
+ index:
42
+ no_items_yet: 'Nejsou žádné články na blogu. Klikni na "%{create}" pro přidání prvního.'
43
+ uncategorized:
44
+ no_items_yet: 'Nejsou žádné nekategorizované články.'
45
+ post:
46
+ view_live_html: 'Zobrazit článek <br/><em>(otevře jej v novém okně)</em>'
47
+ edit: Upravit článek
48
+ delete: Smazat článek
49
+ settings:
50
+ notification_recipients:
51
+ value: Poslat notifikaci pro
52
+ explanation: 'Vždycky když někdo přidá komentář, Refinery zašle oznámení.'
53
+ hint: 'Vždycky když někdo přidá komentář, Refinery ti pošle oznámení.'
54
+ example: "Zadej tvou emailovou adresu(y) jako například: jack@work.com, jill@office.com"
55
+ updated: 'Seznam příjemců notifikací "%{recipients}"'
56
+ submenu:
57
+ categories:
58
+ title: Kategorie
59
+ manage: Spravovat
60
+ new: Nová kategórie
61
+ comments:
62
+ title: Komentáře
63
+ title_with_count: 'Komentáře (%{new_count} nových)'
64
+ new: Nový
65
+ unmoderated: Nový
66
+ approved: Schválený
67
+ rejected: Zamítnutý
68
+ posts:
69
+ title: Články
70
+ manage: Spravovat články
71
+ new: Vytvořit nový článek
72
+ uncategorized: Nekategorizované články
73
+ settings:
74
+ title: Nastavení
75
+ moderation: Moderování
76
+ update_notified: Upravit seznam notifikovaných
77
+ comments: Komentáře
78
+ blog:
79
+ comment_mailer:
80
+ notification:
81
+ greeting: Ahoj
82
+ you_recieved_new_comment: Máš nový komentář na stránce
83
+ comment_starts: --- začátek komentáře ---
84
+ comment_ends: --- konec komentáře ---
85
+ from: Od
86
+ email: Email
87
+ message: Zpráva
88
+ closing_line: S pozdravem
89
+ ps: 'P.S. Všechny komentáře jsou uloženy v sekci "Blog" pod záložkou "Komentáře" v případě pokud by je bylo třeba zobrazit později.'
90
+ shared:
91
+ categories:
92
+ title: Kategorie
93
+ rss_feed:
94
+ title: RSS zdroj článků
95
+ subscribe: Přihlásit k odběru
96
+ posts:
97
+ other: Další články
98
+ created_at: 'Publikován %{when}'
99
+ read_more: Celý článek
100
+ comments:
101
+ singular: komentář
102
+ none: žiadne komentáře
103
+ archives: Archiv
104
+ categories:
105
+ show:
106
+ no_posts: Nejsou zde žádné články.
107
+ posts:
108
+ post:
109
+ filed_in: Podaný
110
+ comment: komentář
111
+ comments:
112
+ by: 'Odeslal %{who}'
113
+ time_ago: '%{time} zpět'
114
+ thank_you: 'Díky za komentář.'
115
+ thank_you_moderated: 'Děkujeme za Váš komentář. Vaše zpráva čeká na schválení a objeví se v nejbližší době.'
116
+ index:
117
+ no_blog_articles_yet: Právě nejsou žádné články na blogu. Zůstaňte naladěni.
118
+ show:
119
+ blog_home: Hlavní stránka blogu
120
+ comments:
121
+ title: Komentáře
122
+ add: Přidat komentář
123
+ other: Další články
124
+ filed_in: Podaný
125
+ submit: Odeslat komentář
126
+ archive:
127
+ blog_archive_for: 'Blog archiv pro %{date}'
128
+ no_blog_articles_posted: 'Nejsou žádné články publikované %{date}.'
@@ -101,6 +101,8 @@ en:
101
101
  singular: comment
102
102
  none: no comments
103
103
  archives: Archives
104
+ tags:
105
+ title: "Tags"
104
106
  categories:
105
107
  show:
106
108
  no_posts: There are no posts here yet.
@@ -122,7 +124,10 @@ en:
122
124
  add: Make a Comment
123
125
  other: Other Blog Posts
124
126
  filed_in: Filed in
127
+ tagged: Tagged
125
128
  submit: Send comment
129
+ tagged:
130
+ no_blog_articles_yet: There are no blog articles posted yet. Stay tuned.
126
131
  archive:
127
132
  blog_archive_for: 'Blog Archive for %{date}'
128
133
  no_blog_articles_posted: 'There are no blog articles posted for %{date}. Stay tuned.'
@@ -5,6 +5,13 @@ nb:
5
5
  admin:
6
6
  blog:
7
7
  posts:
8
+ form:
9
+ seo_override_title: Nettleser tittel
10
+ seo_override_title_help: Skriv inn en tittel på 5-10 ord som oppsummerer innholdet på siden.
11
+ meta_keywords_title: Meta stikkord
12
+ meta_keywords_help: Skriv inn 5-10 stikkord som relaterer til denne siden. Separer stikkordene med komma.
13
+ meta_description_title: Meta beskrivelse
14
+ meta_description_help: Skriv en kort beskrivelse på to eller tre setninger som forteller hva denne siden inneholder.
8
15
  index:
9
16
  no_items_yet: 'Det er ingen Blog Posts enda. Klikk på "Lag en ny Blog Posts" for å legge til din første blog posts.'
10
17
  post:
@@ -4,20 +4,130 @@ nl:
4
4
  title: Blog
5
5
  admin:
6
6
  blog:
7
+ categories:
8
+ category:
9
+ edit: Bewerk deze categorie
10
+ delete: Verwijder deze categorie definitief
11
+ index:
12
+ no_items_yet: 'Er zijn momenteel geen categori�n. Klik op "%{create}" om uw eerste categorie toe te voegen.'
13
+ comments:
14
+ approved: 'De reactie van "%{author}" is goedgekeurd.'
15
+ comment:
16
+ view_live_html: 'Bekijk deze reactie op de website <br/><em>(opent in een nieuw venster)</em>'
17
+ read: Lees deze reactie
18
+ reject: Keur deze reactie af
19
+ approve: Keur deze reactie goed
20
+ rejected: 'De reactie van "%{author}" is afgekeurd.'
21
+ index:
22
+ no_items_yet: 'Er zijn geen %{type} reacties.'
23
+ show:
24
+ comment: Reactie
25
+ blog_post: Blogpost
26
+ from: Gepost door
27
+ date: Gepost op
28
+ message: Reactie
29
+ details: Details
30
+ age: Leeftijd
31
+ actions: Acties
32
+ back: Terug naar alle reacties
33
+ reject: Keur deze reactie af
34
+ approve: Keur deze reactie goed
7
35
  posts:
36
+ form:
37
+ advanced_options: Geavanceerde eigenschappen
38
+ toggle_advanced_options: Klik voor toegang tot meta tag instellingen en menu opties
39
+ save_as_draft: Sla op als concept
40
+ published_at: Publicatiedatum
8
41
  index:
9
- no_items_yet: Er zijn nog geen Blog Post. Druk op 'Maak een nieuwe Blog Post' om de eerste aan te maken.
42
+ no_items_yet: 'Er zijn momenteel geen blogposts. Klik op "%{create}" om uw eerste blogpost toe te voegen.'
43
+ uncategorized:
44
+ no_items_yet: 'Er zijn geen ongecategoriseerde blogposts.'
10
45
  post:
11
- view_live: 'Bekijk deze blog posts op de website <br/><em>(opent een nieuw venster)</em>'
12
- edit: Bewerk deze blog post
13
- delete: Verwijder deze blog post voor eeuwig
46
+ view_live_html: 'Bekijk deze blogpost op de website <br/><em>(opent in een nieuw venster)</em>'
47
+ edit: Bewerk deze blogpost
48
+ delete: Verwijder deze blogpost definitief
49
+ settings:
50
+ notification_recipients:
51
+ value: Stuur notificaties naar
52
+ explanation: 'Bij elke nieuwe reactie op een blogpost stuurt Refinery u een e-mail om dit te melden.'
53
+ hint: 'Als er een reactie is toegevoegd stuurt Refinery een e-mail notificatie naar u.'
54
+ example: "Voer uw e-mailadres(sen) in, bijvoorbeeld: jack@work.com, jill@office.com"
55
+ updated: 'De ontvanger(s) van notificaties is/zijn gewijzigd naar "%{recipients}"'
14
56
  submenu:
57
+ categories:
58
+ title: Categori�n
59
+ manage: Beheren
60
+ new: Voeg een nieuwe categorie toe
15
61
  comments:
16
- new: Nieuwe
62
+ title: Reacties
63
+ title_with_count: 'Reacties (%{new_count} nieuwe)'
64
+ new: Nieuw
65
+ unmoderated: Nieuw
66
+ approved: Goedgekeurd
67
+ rejected: Afgekeurd
17
68
  posts:
18
- new: Maak een nieuwe post
69
+ title: Posts
70
+ manage: Beheer posts
71
+ new: Voeg een nieuwe post toe
72
+ uncategorized: Ongecategoriseerde posts
19
73
  settings:
20
- update_notified: Wijzig wie een notificatie ontvangt
21
- blog_posts:
22
- show:
23
- other: Andere Blog Post
74
+ title: Instellingen
75
+ moderation: Stuur notificaties
76
+ update_notified: Wijzig wie notificaties ontvangt
77
+ comments: Reacties
78
+ blog:
79
+ comment_mailer:
80
+ notification:
81
+ greeting: Hallo
82
+ you_recieved_new_comment: Er is zojuist een reactie geplaatst op uw website.
83
+ comment_starts: --- begin reactie ---
84
+ comment_ends: --- einde reactie ---
85
+ from: Van
86
+ email: E-mail
87
+ message: Bericht
88
+ closing_line: Met vriendelijke groet
89
+ ps: 'P.S. Alle reacties worden opgeslagen in de "Blog" sectie van Refinery onder het submenu "Comments", voor als u deze reacties later wilt bekijken.'
90
+ shared:
91
+ categories:
92
+ title: Categori�n
93
+ rss_feed:
94
+ title: RSS Feed
95
+ subscribe: Aanmelden
96
+ posts:
97
+ other: Andere posts
98
+ created_at: 'Gepost op %{when}'
99
+ read_more: Lees verder
100
+ comments:
101
+ singular: Reactie
102
+ none: Geen reacties
103
+ archives: Archief
104
+ tags:
105
+ title: "Tags"
106
+ categories:
107
+ show:
108
+ no_posts: Er zijn momenteel geen posts.
109
+ posts:
110
+ post:
111
+ filed_in: Toegevoegd aan
112
+ comment: Reactie
113
+ comments:
114
+ by: 'Gepost door %{who}'
115
+ time_ago: '%{time} geleden'
116
+ thank_you: 'Bedankt voor uw reactie.'
117
+ thank_you_moderated: 'Bedankt voor uw reactie. Uw reactie is in de wachtrij geplaatst en zal binnenkort verschijnen.'
118
+ index:
119
+ no_blog_articles_yet: Er zijn momenteel nog geen blogposts. Neem regelmatig een kijkje.
120
+ show:
121
+ blog_home: Blog Home
122
+ comments:
123
+ title: Reacties
124
+ add: Plaats een reactie
125
+ other: Andere blogposts
126
+ filed_in: Toegevoegd aan
127
+ tagged: Tagged
128
+ submit: Verstuur reactie
129
+ tagged:
130
+ no_blog_articles_yet: Er zijn momenteel nog geen blogposts. Neem regelmatig een kijkje.
131
+ archive:
132
+ blog_archive_for: 'Blog archief voor %{date}'
133
+ no_blog_articles_posted: 'Er zijn geen blogposts voor %{date}. Neem regelmatig een kijkje.'