refinerycms-blog 3.0.2 → 4.0.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 (74) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +2 -0
  5. data/.travis.yml +1 -3
  6. data/Gemfile +8 -8
  7. data/app/controllers/refinery/blog/admin/categories_controller.rb +2 -2
  8. data/app/controllers/refinery/blog/admin/posts_controller.rb +15 -12
  9. data/app/controllers/refinery/blog/blog_controller.rb +1 -1
  10. data/app/controllers/refinery/blog/posts_controller.rb +15 -13
  11. data/app/helpers/refinery/blog/posts_helper.rb +4 -4
  12. data/app/models/refinery/blog/category.rb +3 -0
  13. data/app/models/refinery/blog/post.rb +43 -16
  14. data/app/views/refinery/blog/admin/categories/_category.html.erb +4 -10
  15. data/app/views/refinery/blog/admin/comments/_comment.html.erb +4 -14
  16. data/app/views/refinery/blog/admin/posts/_form.html.erb +5 -1
  17. data/app/views/refinery/blog/admin/posts/_post.html.erb +7 -12
  18. data/app/views/refinery/blog/posts/_comment.html.erb +3 -3
  19. data/app/views/refinery/blog/posts/_comments.html.erb +6 -6
  20. data/app/views/refinery/blog/posts/_post.html.erb +7 -7
  21. data/app/views/refinery/blog/posts/index.rss.builder +8 -2
  22. data/app/views/refinery/blog/shared/_categories.html.erb +2 -2
  23. data/app/views/refinery/blog/shared/_post.html.erb +9 -7
  24. data/app/views/refinery/blog/shared/_posts.html.erb +1 -1
  25. data/app/views/refinery/blog/shared/_tags.html.erb +1 -1
  26. data/bin/rails +9 -3
  27. data/certs/parndt.pem +25 -0
  28. data/config/locales/ru.yml +1 -1
  29. data/config/locales/uk.yml +172 -0
  30. data/db/migrate/20110803223522_create_blog_structure.rb +1 -1
  31. data/db/migrate/20110803223523_add_user_id_to_blog_posts.rb +1 -1
  32. data/db/migrate/20110803223524_acts_as_taggable_on_migration.rb +1 -1
  33. data/db/migrate/20110803223526_add_cached_slugs.rb +1 -1
  34. data/db/migrate/20110803223527_add_custom_url_field_to_blog_posts.rb +1 -1
  35. data/db/migrate/20110803223528_add_custom_teaser_field_to_blog_posts.rb +1 -1
  36. data/db/migrate/20110803223529_add_primary_key_to_categorizations.rb +1 -1
  37. data/db/migrate/20120103055909_add_source_url_to_blog_posts.rb +2 -2
  38. data/db/migrate/20120223022021_add_access_count_to_posts.rb +4 -4
  39. data/db/migrate/20120227022021_add_slug_to_posts_and_categories.rb +2 -2
  40. data/db/migrate/20120530102901_create_blog_translations.rb +1 -1
  41. data/db/migrate/20120531113632_delete_cached_slugs.rb +1 -1
  42. data/db/migrate/20120601151114_create_category_translations.rb +1 -1
  43. data/db/migrate/20140622132537_add_missing_unique_indices.acts_as_taggable_on_engine.rb +1 -1
  44. data/db/migrate/20140622132538_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +1 -1
  45. data/db/migrate/20160602042848_add_username_to_blog_posts.rb +5 -0
  46. data/db/migrate/20161223024527_create_multi_user_model.rb +13 -0
  47. data/db/migrate/20180420132008_remove_translated_columns_to_refinery_blog_categories.rb +5 -0
  48. data/lib/generators/refinery/blog/templates/config/initializers/refinery/blog.rb.erb +2 -1
  49. data/lib/refinery/blog.rb +2 -0
  50. data/lib/refinery/blog/configuration.rb +3 -3
  51. data/lib/refinery/blog/engine.rb +1 -0
  52. data/readme.md +2 -2
  53. data/refinerycms-blog.gemspec +15 -8
  54. data/spec/controllers/refinery/blog/admin/comments_controller_spec.rb +10 -14
  55. data/spec/controllers/refinery/blog/admin/posts_controller_spec.rb +5 -5
  56. data/spec/controllers/refinery/blog/posts_controller_spec.rb +4 -4
  57. data/spec/factories/blog_categories.rb +1 -1
  58. data/spec/factories/blog_comments.rb +1 -1
  59. data/spec/factories/blog_posts.rb +6 -2
  60. data/spec/factories/blog_test_users.rb +6 -0
  61. data/spec/features/refinery/blog/admin/categories_spec.rb +3 -3
  62. data/spec/features/refinery/blog/admin/comments_spec.rb +5 -5
  63. data/spec/features/refinery/blog/admin/menu_spec.rb +2 -2
  64. data/spec/features/refinery/blog/admin/posts_spec.rb +34 -20
  65. data/spec/features/refinery/blog/categories_spec.rb +2 -3
  66. data/spec/features/refinery/blog/posts_spec.rb +17 -30
  67. data/spec/models/refinery/blog/category_spec.rb +12 -13
  68. data/spec/models/refinery/blog/comment_spec.rb +1 -1
  69. data/spec/models/refinery/blog/post_spec.rb +38 -31
  70. data/spec/spec_helper.rb +1 -0
  71. data/spec/support/refinery_blog_test_user.rb +2 -0
  72. metadata +85 -33
  73. metadata.gz.sig +0 -0
  74. data/spec/factories/user.rb +0 -27
@@ -27,17 +27,12 @@
27
27
  </span>
28
28
  </span>
29
29
  <span class='actions'>
30
- <%= link_to refinery_icon_tag("application_go.png"), refinery.blog_post_path(post),
31
- :title => t('.view_live_html'),
32
- :target => "_blank" %>
33
- <%= link_to refinery_icon_tag("application_edit.png"), refinery.edit_blog_admin_post_path(post),
34
- :title => t('.edit') %>
35
- <%= link_to refinery_icon_tag("delete.png"), refinery.blog_admin_post_path(post),
36
- :class => "cancel confirm-delete",
37
- :title => t('.delete'),
38
- :method => :delete,
39
- :data => {
40
- :confirm => t('message', :scope => 'refinery.admin.delete', :title => post.title)
41
- } %>
30
+ <%= action_icon(:preview, refinery.blog_post_path(post), t('.view_live_html')) %>
31
+ <%= action_icon(:edit, refinery.edit_blog_admin_post_path(post), t('.edit') ) %>
32
+ <%= action_icon(:delete, refinery.blog_admin_post_path(post), t('.delete'),
33
+ { class: "cancel confirm-delete",
34
+ data: {confirm: t('message', scope: 'refinery.admin.delete', title: post.title)}} ) %>
42
35
  </span>
43
36
  </li>
37
+
38
+
@@ -1,10 +1,10 @@
1
- <article class='blog_comment_message' id='<%= "comment-#{comment.to_param}" %>'>
1
+ <%= content_tag(:article, class: "blog_comment_message", id: ("comment-#{comment.to_param}")) do %>
2
2
  <%= image_tag avatar_url(comment.email), :alt => comment.name, :class => 'avatar' %>
3
3
  <%= simple_format auto_link(comment.message.to_s) %>
4
- <footer class='blog_comment_author'>
4
+ <footer class="blog_comment_author">
5
5
  <p>
6
6
  <%= t('by', :scope => 'refinery.blog.posts.comments', :who => comment.name) %>,
7
7
  <%= t('time_ago', :scope => 'refinery.blog.posts.comments', :time => time_ago_in_words(comment.created_at)) %>
8
8
  </p>
9
9
  </footer>
10
- </article>
10
+ <% end %>
@@ -1,13 +1,13 @@
1
1
  <aside id="comments">
2
2
  <% if (comments = @post.comments.approved).any? %>
3
- <h2><%= t('title', :scope => 'refinery.blog.posts.show.comments') %></h2>
3
+ <h2><%= t('title', :scope => 'refinery.blog.posts.show.comments') %></h2>
4
4
  <%= render :partial => "comment", :collection => comments %>
5
5
  <% end %>
6
6
 
7
7
  <% if Refinery::Blog::Post.comments_allowed? %>
8
8
 
9
9
  <% flash.each do |key, value| %>
10
- <div id='flash' class="flash flash_<%= key %>">
10
+ <div id="flash" class="flash flash_<%= key %>">
11
11
  <%= value %>
12
12
  </div>
13
13
  <% end %>
@@ -17,19 +17,19 @@
17
17
  <%= render "/refinery/admin/error_messages",
18
18
  :object => f.object,
19
19
  :include_object_name => true %>
20
- <div class='field'>
20
+ <div class="field">
21
21
  <%= f.label :name %>
22
22
  <%= f.text_field :name %>
23
23
  </div>
24
- <div class='field'>
24
+ <div class="field">
25
25
  <%= f.label :email %>
26
26
  <%= f.email_field :email %>
27
27
  </div>
28
- <div class='field message_field'>
28
+ <div class="field message_field">
29
29
  <%= f.label :message %>
30
30
  <%= f.text_area :message, :rows => 6 %>
31
31
  </div>
32
- <div class='field form-actions'>
32
+ <div class="field form-actions">
33
33
  <%= f.submit t('submit', :scope => 'refinery.blog.posts.show') %>
34
34
  </div>
35
35
  <% end %>
@@ -1,24 +1,24 @@
1
1
  <% flash.each do |key, value| %>
2
- <div id='flash' class="flash flash_<%= key %>">
2
+ <div id="flash" class="flash flash_<%= key %>">
3
3
  <%= value %>
4
4
  </div>
5
5
  <% end %>
6
- <article id="blog_post">
6
+ <article class="blog_post">
7
7
  <header>
8
8
  <h1><%= @post.title %></h1>
9
- <section class='details'>
10
- <time datetime="<%=l @post.published_at.to_date, :format => :default %>" class='posted_at'>
9
+ <section class="details">
10
+ <time datetime="<%=l @post.published_at.to_date, :format => :default %>" class="posted_at">
11
11
  <%= t('created_at', :scope => 'refinery.blog.shared.posts', :when => l(@post.published_at.to_date, :format => :short)) %>
12
12
  </time>
13
- <%= content_tag(:div, "#{t('by', :scope => 'refinery.blog.posts.show')} #{@post.author.username}", :class => "blog_author") if @post.author.present? %>
13
+ <%= content_tag(:div, "#{t('by', :scope => 'refinery.blog.posts.show')} #{@post.author_username}", :class => "blog_author") if @post.author_username.present? %>
14
14
  <% if @post.source_url.present? %>
15
- <div class='blog_source'>
15
+ <div class="blog_source">
16
16
  <%= "#{t('source', :scope => 'refinery.blog.posts.show')}: " %>
17
17
  <%= link_to (@post.source_url_title.blank? ? @post.source_url : @post.source_url_title), @post.source_url %>
18
18
  </div>
19
19
  <% end %>
20
20
  <% if (categories = @post.categories).any? %>
21
- <aside class='filled_in'>
21
+ <aside class="filled_in">
22
22
  <%= t('filled_in', :scope => 'refinery.blog.posts.show') %>
23
23
  <% categories.each_with_index do |category, index| %>
24
24
  <%= link_to category.title, refinery.blog_category_path(category) -%><%= ',' if index < ((categories.length) - 1) %>
@@ -1,16 +1,22 @@
1
1
  xml.instruct! :xml, :version => "1.0"
2
- xml.rss :version => "2.0" do
2
+ xml.rss version: "2.0", 'xmlns:atom': 'http://www.w3.org/2005/Atom', 'xmlns:media': 'http://search.yahoo.com/mrss/' do
3
3
  xml.channel do
4
4
  xml.title Refinery::Core.site_name
5
5
  xml.description Refinery::Core.site_name + " Blog Posts"
6
6
  xml.link refinery.blog_root_url
7
+ xml.tag! 'atom:link', href: refinery.blog_rss_feed_url, rel: 'self', type: 'application/rss+xml'
7
8
 
8
9
  @posts.each do |post|
9
10
  xml.item do
10
11
  xml.title post.title
11
- xml.description post.body
12
+ xml.description blog_post_teaser(post)
13
+ xml.category post.categories.map {|x| x.title }.join('/') if post.categories.length > 0
12
14
  xml.pubDate post.published_at.to_s(:rfc822)
13
15
  xml.link refinery.blog_post_url(post)
16
+ xml.guid refinery.blog_post_url(post)
17
+ post.images.each do |image|
18
+ xml.media :content, url: refinery.root_url + image.url, medium: 'image'
19
+ end if post.respond_to?(:images)
14
20
  end
15
21
  end
16
22
  end
@@ -2,9 +2,9 @@
2
2
  <h2><%= t('.title') %></h2>
3
3
  <ul id="categories">
4
4
  <% @categories.each do |category| %>
5
- <li<%== ' class="selected"' if @category.present? && @category.id == category.id %>>
5
+ <%= content_tag(:li, class: ('selected' if @category.present? && @category.id == category.id)) do %>
6
6
  <%= link_to "#{category.title} (#{category.post_count})", refinery.blog_category_path(category) %>
7
- </li>
7
+ <% end %>
8
8
  <% end %>
9
9
  </ul>
10
10
  <% end %>
@@ -2,26 +2,28 @@
2
2
  <article class="blog_post" id="<%= dom_id(post) %>">
3
3
  <header>
4
4
  <h1><%= link_to post.title, refinery.blog_post_path(post) %></h1>
5
- <section class='details'>
6
- <time datetime="<%=l post.published_at.to_date, :format => :default %>" class='posted_at'>
5
+ <section class="details">
6
+ <time datetime="<%=l post.published_at.to_date, :format => :default %>" class="posted_at">
7
7
  <%= t('created_at', :scope => 'refinery.blog.shared.posts', :when => l(post.published_at.to_date, :format => :short)) %>
8
8
  </time>
9
- <%= "#{t('by', :scope => 'refinery.blog.posts.show')} #{post.author.username}" if post.author.present? %>.
9
+
10
+ <%= content_tag(:div, "#{t('by', :scope => 'refinery.blog.posts.show')} #{post.author_username}", :class => "blog_author") if post.author_username.present? %>
11
+
10
12
  <% if (categories = post.categories.translated).any? %>
11
- <aside class='filled_in'>
13
+ <aside class="filled_in">
12
14
  <%= t('filled_in', :scope => 'refinery.blog.posts.show') %>
13
15
  <%=raw categories.collect { |category| link_to category.title, refinery.blog_category_path(category) }.to_sentence %>
14
16
  </aside>
15
17
  <% end %>
16
18
  <% if (tags = post.tags).any? %>
17
- <aside class='tagged'>
19
+ <aside class="tagged">
18
20
  <%= t('tagged', :scope => 'refinery.blog.posts.show') %>
19
21
  <%=raw tags.collect { |tag| link_to tag, refinery.blog_tagged_posts_path(tag.id, tag.name.parameterize) }.to_sentence %>
20
22
  </aside>
21
23
  <% end %>
22
24
  </section>
23
25
  </header>
24
- <section class='clearfix'>
26
+ <section class="clearfix">
25
27
  <% if blog_post_teaser_enabled? %>
26
28
  <%= blog_post_teaser(post) %>
27
29
  <% else %>
@@ -35,7 +37,7 @@
35
37
  <% end %>
36
38
  </p>
37
39
  <% if Refinery::Blog::Post.comments_allowed? %>
38
- <aside class='comment_count'>
40
+ <aside class="comment_count">
39
41
  <%= link_to "#{t('title', :scope => 'refinery.blog.posts.show.comments')} (#{post.comments.approved.count})", refinery.blog_post_path(post) << '#comments' %>
40
42
  </aside>
41
43
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <h2><%= t('.other') %></h2>
3
3
  <ul id="blog_posts">
4
4
  <% @posts.each do |blog_post| %>
5
- <li class='clearfix'>
5
+ <li class="clearfix">
6
6
  <%= link_to blog_post.title, refinery.blog_post_path(blog_post) %>
7
7
  </li>
8
8
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <% if @tags.any? %>
2
2
  <h2><%= t('.title') %></h2>
3
- <nav id='tags'>
3
+ <nav id="tags">
4
4
  <% tag_cloud(@tags, %w(tag1 tag2 tag3 tag4)) do |tag, css_class| %>
5
5
  <%= link_to tag.name, refinery.blog_tagged_posts_path(tag.id, tag.name.parameterize), :class => css_class %>
6
6
  <% end %>
data/bin/rails CHANGED
@@ -1,5 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+ # This command will automatically be run when you run "rails" with Rails gems
3
+ # installed from the root of your application.
3
4
 
4
- ENGINE_PATH = File.expand_path('../..', __FILE__)
5
- load File.expand_path('../../spec/dummy/bin/rails', __FILE__)
5
+ begin
6
+ load File.join(File.expand_path('../../', __FILE__), 'spec/dummy/bin/rails')
7
+ rescue LoadError => load_error
8
+ warn "No dummy Rails application found! \n" \
9
+ "To create one in spec/dummy, please run: \n\n" \
10
+ " rake refinery:testing:dummy_app"
11
+ end
@@ -0,0 +1,25 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEMjCCApqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhnZW1z
3
+ L0RDPXAvREM9YXJuZHQvREM9aW8wHhcNMjAwNTEwMjIxOTQ2WhcNMjEwNTEwMjIx
4
+ OTQ2WjAjMSEwHwYDVQQDDBhnZW1zL0RDPXAvREM9YXJuZHQvREM9aW8wggGiMA0G
5
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDT+JzHYPGMYJt9ct2DCsbIymn1uJJp
6
+ HnDkQESfsGe40jTC90oF2iVbVOkaacNc1N3CSWUZvZjuygUuS86P6/kpBILGdO2+
7
+ bkXXKtfGC2YGGx9TdNLpCb4925vQHvdFeKXGpQDZdDw1SNC6zraZou47CvOE1cl2
8
+ Bp+1QMZuGRZ4+5CzOEWDWurjqce3O1jUEbyBB7z5H0h/YEaxfXipxhL1Dhi0sgkH
9
+ qP/e6SxzifdifdZCksJFQ06a1ji9hJY6eM23qbv/aaluVHAZSVBAQBS7rYniLo+N
10
+ G4vpFhoubQO5u8UluUtCaPUpI/qOvVcSaZn3ZkzlMwC8b1RwAeXBQmtFE2wnrv2i
11
+ ovTwoN7rHchwhgaHbkuFh4Wr92wGbrWL7J+X8rWKk1f8RF4kvtNE/NA6YrkxTpVh
12
+ QMyDmekt7rTxvcq2NneLGroWIUVCx/JID+Jw492LKQ6Sl1/P2TRzdEDtqZAZL0gt
13
+ xlWeMUfGG2D/gLnhs5qnaFaWQwGTmBnTgHcCAwEAAaNxMG8wCQYDVR0TBAIwADAL
14
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEqtAyQVxPgKsrgoTQ1YmaIu/fmvMBoGA1Ud
15
+ EQQTMBGBD2dlbXNAcC5hcm5kdC5pbzAaBgNVHRIEEzARgQ9nZW1zQHAuYXJuZHQu
16
+ aW8wDQYJKoZIhvcNAQELBQADggGBALu2HM50B8xqlAXkCwavJDvWWtV9pG1igFUg
17
+ friZRWprUQ5nTaNmAd8p8qbJQwaIK2gt+DfYWfB9LtKnQTfbhLRBbmJ7zYw8LjKY
18
+ PwCs4RWjDAiuyCO3ppfsz+1bsMUXPLgWlaUkXsUy3nr2NruEFTO9zu3wGYQQ93Tt
19
+ vYSHOnP35UB4QjsjNrOO7FBaQfy6O909PP+GnVcJ62s9c26voJz63RSolwY7Jydw
20
+ XUlG68jjJKSoDHRzVTmNB7sX8rs8P2kvYkpIUXPHyls3mWBWjBWbdEYWESZrxI2x
21
+ dS7jY3AnfqhvsWra2pSREb2IDqPnJrHVOejnEI/zuuufUxLwDx3AC6SMdsyWkZ7V
22
+ 9OmLt2rg75Sct6h2220lO5ySqYtqAXuOMBDGv5L0zLalx1g8LACA7uILTKVWh8B8
23
+ Hsej0MQ3drCB1eA4c9OXdCUQJnY2aLTq3uNvTbZvoTgWK55eq3KLBJ4zzoKZ4tBX
24
+ /HIFI/fEwYlI1Ji3oikUrHkc4rWgaQ==
25
+ -----END CERTIFICATE-----
@@ -44,7 +44,7 @@ ru:
44
44
  source_url_title: Название источника сообщения
45
45
  source_url_title_help: Название источника сообщения в посте.
46
46
  author: Автор
47
- author_help: 'Установить, какой пользователь будет покажан как автор записи.'
47
+ author_help: 'Установить, какой пользователь будет показан как автор записи.'
48
48
  copy_body: Копировать основное сообщение в краткое
49
49
  copy_body_help: 'Копирует основное сообщение в краткое. Оставьте краткое сообщение пустым, чтобы Refinery составлял его автоматически.'
50
50
  index:
@@ -0,0 +1,172 @@
1
+ uk:
2
+ refinery:
3
+ plugins:
4
+ refinerycms_blog:
5
+ title: Блог
6
+ blog:
7
+ admin:
8
+ categories:
9
+ category:
10
+ edit: Редагувати цю категорію
11
+ delete: Видалити цю категорію назавжди
12
+ index:
13
+ no_items_yet: 'Категорії досі не створені. Натисніть "%{create}", щоб додати вашу першу категорію.'
14
+ comments:
15
+ approved: 'Коментар від "%{author}" було опубліковано.'
16
+ comment:
17
+ view_live_html: Дивитись коментар на сайті <br/><em>(відкриється у новому вікні)</em>
18
+ read: Прочитати кометар
19
+ reject: Відхилити коментар
20
+ approve: Прийняти коментар
21
+ rejected: 'Коментар від "%{author}" було відхилено.'
22
+ index:
23
+ no_items_yet: '%{type} коментарів: немає.'
24
+ show:
25
+ comment: Коментар
26
+ blog_post: Запис у блозі
27
+ from: Опублікував(ла)
28
+ date: Опубліковано
29
+ message: Коментар
30
+ details: Деталі
31
+ age: Вік
32
+ actions: Дії
33
+ back: Повернутися до списку коментарів
34
+ reject: Відхилити цей коментар
35
+ approve: Прийняти цей коментар
36
+ posts:
37
+ form:
38
+ toggle_advanced_options: 'Натисніть, щоб отримати доступ до налаштувать мета-тегів та меню'
39
+ published_at: Дата публікації
40
+ custom_url: Переадресувати на інший сайт або сторінку
41
+ custom_url_help: "Посилання буде взята з цього поля, замість генерації із назви запису."
42
+ source_url: URL джерела
43
+ source_url_help: Джерело матеріалу цього запису.
44
+ source_url_title: Назва джерела повідомлення
45
+ source_url_title_help: Назва джерела повідомлення у пості.
46
+ author: Автор
47
+ author_help: 'Встановіть, який користувач буде показаний як автор запису.'
48
+ copy_body: Копіювати основне повідомлення в коротке
49
+ copy_body_help: 'Копіює основне повідомлення в коротке. Залиште коротке повідомлення пустим, щоб Refinery склав його автоматично.'
50
+ index:
51
+ no_items_yet: 'Нема записів у блозі. Натисніть "%{create}", щоб додати перший запис.'
52
+ uncategorized:
53
+ no_items_yet: 'Нема записів без категорій.'
54
+ post:
55
+ view_live_html: Дивитися запис на сайті <br/><em>(відкриється в новому вікні)</em>
56
+ edit: Редагувати запис
57
+ delete: Видалити запис
58
+ delete_translation: Видалити цей переклад
59
+ delete_translation_confirmation: Ви дійсно бажаєте назавжди видалити цей переклад?
60
+ delete_translation_success: Переклад було успішно видалено.
61
+ draft: Чорнетка
62
+ settings:
63
+ notification_recipients:
64
+ value: Відправляти сповіщення
65
+ explanation: 'При появі нових коментарів Refinery надішле сповіщення на email.'
66
+ hint: 'При появі нових коментарів Refinery надішле сповіщення на email.'
67
+ example: "Введіть адреси ел. пошти, например: jack@work.com, jill@office.com"
68
+ updated: 'Одержувачем сповіщень є "%{recipients}"'
69
+ submenu:
70
+ categories:
71
+ title: Категорії
72
+ manage: Редагувати категорії
73
+ new: Створити нову категорію
74
+ comments:
75
+ title: Коментарі
76
+ title_with_count: 'Коментарі (%{new_count} нових)'
77
+ new: Нові
78
+ unmoderated: Немодеровані
79
+ approved: Прийняті
80
+ rejected: Відхилені
81
+ posts:
82
+ title: Записи
83
+ manage: Редагувати запис
84
+ new: Створити новий запис
85
+ uncategorized: Записи без категорій
86
+ settings:
87
+ title: Налаштування
88
+ moderation: Модерування
89
+ update_notified: Налаштувати сповіщення
90
+ comments: Коментарі
91
+ teasers: Короткі змісти
92
+ comment_mailer:
93
+ notification:
94
+ greeting: Вітаємо
95
+ you_recieved_new_comment: Новий коментар було опубліковано на вашому сайті.
96
+ comment_starts: --- початок коментаря ---
97
+ comment_ends: --- кінець коментаря ---
98
+ from: Від
99
+ email: Ел. пошта
100
+ message: Повідомлення
101
+ approve: Підтвердіть
102
+ or: " або "
103
+ reject: відхилите
104
+ this_comment: " цей коментар."
105
+ closing_line: З повагою
106
+ ps: P.S. Усі коментарі знаходятся в розділі "Блог" Refinery CMS у подменю "Коментарі".
107
+ shared:
108
+ categories:
109
+ title: Категорії
110
+ rss_feed:
111
+ title: RSS-стрічка
112
+ subscribe: Підписатися
113
+ posts:
114
+ other: Інші записи
115
+ created_at: 'Опубліковано %{when}'
116
+ read_more: Читати далі
117
+ tags:
118
+ title: "Теги"
119
+ comments:
120
+ singular: коментар
121
+ none: нема коментарів
122
+ archives: Архіви
123
+ categories:
124
+ show:
125
+ no_posts: Записів поки що немає.
126
+ posts:
127
+ post:
128
+ filled_in: Категорія
129
+ comment: коментар
130
+ comments:
131
+ by: 'Опублікував(ла) %{who}'
132
+ time_ago: '%{time} назад'
133
+ thank_you: 'Дякуємо за коментар.'
134
+ thank_you_moderated: 'Дякуємо за коментар. Ваше повідомлення модерується і скоро з’явиться на сайті.'
135
+ index:
136
+ no_blog_articles_yet: Поки що жодного запису не опубліковано. Слідкуйте за новинами.
137
+ show:
138
+ blog_home: Повернутися до списку записів
139
+ comments:
140
+ title: Коментарі
141
+ add: Написати коментар
142
+ other: Інші записи
143
+ filled_in: Категорія
144
+ tagged: Теги
145
+ submit: Відправити коментар
146
+ name: Ім’я
147
+ email: Пошта
148
+ message: Повідомлення
149
+ by: Автор
150
+ source: Джерело
151
+ tagged:
152
+ no_blog_articles_yet: Поки що жодного запису не опубліковано. Слідкуйте за новинами.
153
+ posts_tagged: Записи з тегом
154
+ archive:
155
+ blog_archive_for: 'Архів %{date}'
156
+ no_blog_articles_posted: 'Жодного запису за %{date} не опубліковано. Слідкуйте за новинами.'
157
+ activerecord:
158
+ models:
159
+ refinery/blog/category: Категорія
160
+ refinery/blog/comment: Коментарі
161
+ refinery/blog/post: Запис у блозі
162
+ attributes:
163
+ refinery/blog/category:
164
+ title: Назва
165
+ refinery/blog/comment:
166
+ name: Ім’я
167
+ email: Email
168
+ message: Повідомлення
169
+ refinery/blog/post:
170
+ title: Назва
171
+ body: Основне повідомлення
172
+ teaser: Короткий зміст
@@ -1,4 +1,4 @@
1
- class CreateBlogStructure < ActiveRecord::Migration
1
+ class CreateBlogStructure < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def up
4
4
  create_table :refinery_blog_posts do |t|
@@ -1,4 +1,4 @@
1
- class AddUserIdToBlogPosts < ActiveRecord::Migration
1
+ class AddUserIdToBlogPosts < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def change
4
4
  add_column :refinery_blog_posts, :user_id, :integer