refinerycms-blog 3.0.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +2 -0
- data/.travis.yml +1 -3
- data/Gemfile +8 -8
- data/app/controllers/refinery/blog/admin/categories_controller.rb +2 -2
- data/app/controllers/refinery/blog/admin/posts_controller.rb +15 -12
- data/app/controllers/refinery/blog/blog_controller.rb +1 -1
- data/app/controllers/refinery/blog/posts_controller.rb +15 -13
- data/app/helpers/refinery/blog/posts_helper.rb +4 -4
- data/app/models/refinery/blog/category.rb +3 -0
- data/app/models/refinery/blog/post.rb +43 -16
- data/app/views/refinery/blog/admin/categories/_category.html.erb +4 -10
- data/app/views/refinery/blog/admin/comments/_comment.html.erb +4 -14
- data/app/views/refinery/blog/admin/posts/_form.html.erb +5 -1
- data/app/views/refinery/blog/admin/posts/_post.html.erb +7 -12
- data/app/views/refinery/blog/posts/_comment.html.erb +3 -3
- data/app/views/refinery/blog/posts/_comments.html.erb +6 -6
- data/app/views/refinery/blog/posts/_post.html.erb +7 -7
- data/app/views/refinery/blog/posts/index.rss.builder +8 -2
- data/app/views/refinery/blog/shared/_categories.html.erb +2 -2
- data/app/views/refinery/blog/shared/_post.html.erb +9 -7
- data/app/views/refinery/blog/shared/_posts.html.erb +1 -1
- data/app/views/refinery/blog/shared/_tags.html.erb +1 -1
- data/bin/rails +9 -3
- data/certs/parndt.pem +25 -0
- data/config/locales/ru.yml +1 -1
- data/config/locales/uk.yml +172 -0
- data/db/migrate/20110803223522_create_blog_structure.rb +1 -1
- data/db/migrate/20110803223523_add_user_id_to_blog_posts.rb +1 -1
- data/db/migrate/20110803223524_acts_as_taggable_on_migration.rb +1 -1
- data/db/migrate/20110803223526_add_cached_slugs.rb +1 -1
- data/db/migrate/20110803223527_add_custom_url_field_to_blog_posts.rb +1 -1
- data/db/migrate/20110803223528_add_custom_teaser_field_to_blog_posts.rb +1 -1
- data/db/migrate/20110803223529_add_primary_key_to_categorizations.rb +1 -1
- data/db/migrate/20120103055909_add_source_url_to_blog_posts.rb +2 -2
- data/db/migrate/20120223022021_add_access_count_to_posts.rb +4 -4
- data/db/migrate/20120227022021_add_slug_to_posts_and_categories.rb +2 -2
- data/db/migrate/20120530102901_create_blog_translations.rb +1 -1
- data/db/migrate/20120531113632_delete_cached_slugs.rb +1 -1
- data/db/migrate/20120601151114_create_category_translations.rb +1 -1
- data/db/migrate/20140622132537_add_missing_unique_indices.acts_as_taggable_on_engine.rb +1 -1
- data/db/migrate/20140622132538_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +1 -1
- data/db/migrate/20160602042848_add_username_to_blog_posts.rb +5 -0
- data/db/migrate/20161223024527_create_multi_user_model.rb +13 -0
- data/db/migrate/20180420132008_remove_translated_columns_to_refinery_blog_categories.rb +5 -0
- data/lib/generators/refinery/blog/templates/config/initializers/refinery/blog.rb.erb +2 -1
- data/lib/refinery/blog.rb +2 -0
- data/lib/refinery/blog/configuration.rb +3 -3
- data/lib/refinery/blog/engine.rb +1 -0
- data/readme.md +2 -2
- data/refinerycms-blog.gemspec +15 -8
- data/spec/controllers/refinery/blog/admin/comments_controller_spec.rb +10 -14
- data/spec/controllers/refinery/blog/admin/posts_controller_spec.rb +5 -5
- data/spec/controllers/refinery/blog/posts_controller_spec.rb +4 -4
- data/spec/factories/blog_categories.rb +1 -1
- data/spec/factories/blog_comments.rb +1 -1
- data/spec/factories/blog_posts.rb +6 -2
- data/spec/factories/blog_test_users.rb +6 -0
- data/spec/features/refinery/blog/admin/categories_spec.rb +3 -3
- data/spec/features/refinery/blog/admin/comments_spec.rb +5 -5
- data/spec/features/refinery/blog/admin/menu_spec.rb +2 -2
- data/spec/features/refinery/blog/admin/posts_spec.rb +34 -20
- data/spec/features/refinery/blog/categories_spec.rb +2 -3
- data/spec/features/refinery/blog/posts_spec.rb +17 -30
- data/spec/models/refinery/blog/category_spec.rb +12 -13
- data/spec/models/refinery/blog/comment_spec.rb +1 -1
- data/spec/models/refinery/blog/post_spec.rb +38 -31
- data/spec/spec_helper.rb +1 -0
- data/spec/support/refinery_blog_test_user.rb +2 -0
- metadata +85 -33
- metadata.gz.sig +0 -0
- data/spec/factories/user.rb +0 -27
@@ -27,17 +27,12 @@
|
|
27
27
|
</span>
|
28
28
|
</span>
|
29
29
|
<span class='actions'>
|
30
|
-
<%=
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
-
|
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=
|
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
|
-
|
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=
|
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=
|
20
|
+
<div class="field">
|
21
21
|
<%= f.label :name %>
|
22
22
|
<%= f.text_field :name %>
|
23
23
|
</div>
|
24
|
-
<div class=
|
24
|
+
<div class="field">
|
25
25
|
<%= f.label :email %>
|
26
26
|
<%= f.email_field :email %>
|
27
27
|
</div>
|
28
|
-
<div class=
|
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=
|
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=
|
2
|
+
<div id="flash" class="flash flash_<%= key %>">
|
3
3
|
<%= value %>
|
4
4
|
</div>
|
5
5
|
<% end %>
|
6
|
-
<article
|
6
|
+
<article class="blog_post">
|
7
7
|
<header>
|
8
8
|
<h1><%= @post.title %></h1>
|
9
|
-
<section class=
|
10
|
-
<time datetime="<%=l @post.published_at.to_date, :format => :default %>" class=
|
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.
|
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=
|
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=
|
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 :
|
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
|
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
|
-
|
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
|
-
|
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=
|
6
|
-
<time datetime="<%=l post.published_at.to_date, :format => :default %>" class=
|
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
|
-
|
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=
|
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=
|
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=
|
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=
|
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 %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% if @tags.any? %>
|
2
2
|
<h2><%= t('.title') %></h2>
|
3
|
-
<nav id=
|
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
|
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
|
-
|
5
|
-
load File.expand_path('../../spec/dummy/bin/rails'
|
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
|
data/certs/parndt.pem
ADDED
@@ -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-----
|
data/config/locales/ru.yml
CHANGED
@@ -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: Короткий зміст
|