From c852fb83d0db3aeeb98780fedc85a6c38f8c3eb2 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 22 Feb 2016 15:17:47 +0800 Subject: [PATCH 01/16] Upgrade Logster. --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a614c28a8..0793f77ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,7 +149,7 @@ GEM thor (~> 0.15) libv8 (3.16.14.13) listen (0.7.3) - logster (1.0.1) + logster (1.1.1) loofah (2.0.3) nokogiri (>= 1.5.9) lru_redux (1.1.0) From 3142eb76dc2af77090a6eff25a0d899b1d3cb381 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 22 Feb 2016 15:55:48 +0800 Subject: [PATCH 02/16] Revert "FIX: find_by_attribute method in Rails 4.5 is case insensitive." This reverts commit 2af587005bc639f6b41bfafd7e4cbf5736222086. --- app/models/discourse_single_sign_on.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/discourse_single_sign_on.rb b/app/models/discourse_single_sign_on.rb index 492e4a704..894d545ad 100644 --- a/app/models/discourse_single_sign_on.rb +++ b/app/models/discourse_single_sign_on.rb @@ -81,7 +81,7 @@ class DiscourseSingleSignOn < SingleSignOn private def match_email_or_create_user(ip_address) - user = User.find_by(email: email) + user = User.find_by_email(email) try_name = name.blank? ? nil : name try_username = username.blank? ? nil : username From f6b1238d6c22b518a7ef3d2331ee56f5f869bcf1 Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Sat, 13 Feb 2016 16:13:49 -0800 Subject: [PATCH 03/16] reduce maximum_backups default from 7 to 5 --- config/site_settings.yml | 2 +- test/javascripts/helpers/site-settings.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/site_settings.yml b/config/site_settings.yml index dbf80b3a3..275dedf24 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -871,7 +871,7 @@ backups: default: false maximum_backups: client: true - default: 7 + default: 5 shadowed_by_global: true automatic_backups_enabled: default: true diff --git a/test/javascripts/helpers/site-settings.js b/test/javascripts/helpers/site-settings.js index 7adde6c88..0beed5c97 100644 --- a/test/javascripts/helpers/site-settings.js +++ b/test/javascripts/helpers/site-settings.js @@ -80,7 +80,7 @@ Discourse.SiteSettingsOriginal = { "tos_accept_required":false, "faq_url":"", "allow_restore":false, - "maximum_backups":7, + "maximum_backups":5, "version_checks":true, "suppress_uncategorized_badge":true, "min_search_term_length":3, From 6a6e3a6a3a1629ae99f2bb4c7b6c0e2c25e856da Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Mon, 22 Feb 2016 01:17:50 -0800 Subject: [PATCH 04/16] FIX: add global hidden overflow on all topic bodies --- app/assets/stylesheets/common/base/discourse.scss | 1 - app/assets/stylesheets/common/base/topic-post.scss | 4 ++++ app/assets/stylesheets/desktop/topic-post.scss | 1 + app/assets/stylesheets/embed.css.scss | 1 - 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/common/base/discourse.scss b/app/assets/stylesheets/common/base/discourse.scss index 8b8ab8040..a0b23c263 100644 --- a/app/assets/stylesheets/common/base/discourse.scss +++ b/app/assets/stylesheets/common/base/discourse.scss @@ -33,7 +33,6 @@ small { blockquote { @include post-aside; - overflow: hidden; clear: both; } diff --git a/app/assets/stylesheets/common/base/topic-post.scss b/app/assets/stylesheets/common/base/topic-post.scss index 0e2f63e5c..5b3ecebf4 100644 --- a/app/assets/stylesheets/common/base/topic-post.scss +++ b/app/assets/stylesheets/common/base/topic-post.scss @@ -152,6 +152,10 @@ aside.quote { } .topic-body { + // this is necessary for ANYTHING that extends past the right edge of + // the post body, such as an image in a deeply nested list, image in + // a deeply nested blockquote, and so on.. you get the idea. + overflow: hidden; &.highlighted { background-color: dark-light-diff($tertiary, $secondary, 85%, -65%); } diff --git a/app/assets/stylesheets/desktop/topic-post.scss b/app/assets/stylesheets/desktop/topic-post.scss index 8744a17ed..8717c698c 100644 --- a/app/assets/stylesheets/desktop/topic-post.scss +++ b/app/assets/stylesheets/desktop/topic-post.scss @@ -706,6 +706,7 @@ $topic-avatar-width: 45px; border-top: 1px solid dark-light-diff($primary, $secondary, 90%, -75%); padding: 12px $topic-body-width-padding 15px $topic-body-width-padding; } + .topic-avatar { border-top: 1px solid dark-light-diff($primary, $secondary, 90%, -75%); padding-top: 15px; diff --git a/app/assets/stylesheets/embed.css.scss b/app/assets/stylesheets/embed.css.scss index 3b1fd3974..826b4e284 100644 --- a/app/assets/stylesheets/embed.css.scss +++ b/app/assets/stylesheets/embed.css.scss @@ -28,7 +28,6 @@ article.post { margin: 0 0 10px 0; background-color: dark-light-diff($primary, $secondary, 97%, -45%); border-left: 5px solid darken(dark-light-diff($primary, $secondary, 97%, -45%), 10%); - overflow: hidden; p { margin: 0 0 10px 0; } From 23063ea094607601d2e081baa3d0c05d11575e3f Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Mon, 22 Feb 2016 01:40:28 -0800 Subject: [PATCH 05/16] mobile needs different post body overflow handling --- app/assets/stylesheets/mobile/topic-post.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/assets/stylesheets/mobile/topic-post.scss b/app/assets/stylesheets/mobile/topic-post.scss index 05ae0a664..496f1ef92 100644 --- a/app/assets/stylesheets/mobile/topic-post.scss +++ b/app/assets/stylesheets/mobile/topic-post.scss @@ -352,6 +352,17 @@ span.post-count { padding: 15px 0; } +// mobile has no fixed width on topic-body so overflow: hidden causes problems +.topic-body { + overflow:inherit; +} + +// instead, for mobile we set overflow hidden on the cooked part of post body +// this prevents image overflow on deeply nested blockquotes, lists, etc +.cooked { + overflow: hidden; +} + .moderator .topic-body { background-color: dark-light-diff($highlight, $secondary, 70%, -80%); } From 66fa836d88012267419a56fe05098546cf012016 Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Mon, 22 Feb 2016 01:53:51 -0800 Subject: [PATCH 06/16] we don't want a clear for notification options --- app/assets/stylesheets/mobile/topic.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/stylesheets/mobile/topic.scss b/app/assets/stylesheets/mobile/topic.scss index 75b772802..2b421b8ae 100644 --- a/app/assets/stylesheets/mobile/topic.scss +++ b/app/assets/stylesheets/mobile/topic.scss @@ -38,7 +38,6 @@ /* both blocks that appear under the standard post control buttons */ .notification-options, .pinned-options { - clear: both; float: left; margin-top: 0px; padding-top: 1px; From 2ab901bec46c67482d7dceba7e11b5d91504f5cf Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Mon, 22 Feb 2016 02:03:50 -0800 Subject: [PATCH 07/16] adjust bad styling on mobile user page --- app/assets/stylesheets/mobile/user.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/mobile/user.scss b/app/assets/stylesheets/mobile/user.scss index 1b7d8c9f3..46198040c 100644 --- a/app/assets/stylesheets/mobile/user.scss +++ b/app/assets/stylesheets/mobile/user.scss @@ -305,6 +305,7 @@ .primary-textual { float: left; + padding-left: 15px; a[href] { color: dark-light-diff($secondary, $primary, 75%, -10%); } @@ -329,16 +330,15 @@ } .controls { - width: 160px; - float: right; - text-align: right; + float: left; + padding-left: 15px; ul { list-style-type: none; margin: 0; } a { padding: 5px 10px; - width: 140px; + width: 120px; margin-bottom: 10px; } } From c9d19c946220a202ab6b5fa95a3453804899e946 Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Mon, 22 Feb 2016 02:18:34 -0800 Subject: [PATCH 08/16] tighten up mobile profile image size --- app/assets/stylesheets/mobile/user.scss | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/mobile/user.scss b/app/assets/stylesheets/mobile/user.scss index 46198040c..772517243 100644 --- a/app/assets/stylesheets/mobile/user.scss +++ b/app/assets/stylesheets/mobile/user.scss @@ -67,9 +67,8 @@ } .profile-image { - height: 150px; + height: 25px; width: 100%; - background-size: cover; } @@ -209,8 +208,7 @@ } .about { - background-size: cover; - background: dark-light-diff($primary, $secondary, 0%, -75%) center center; + background: dark-light-diff($primary, $secondary, 0%, -75%) center; width: 100%; margin-bottom: 10px; overflow: hidden; From 5f747a74a174226d492cb372f917a45d124d014e Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 22 Feb 2016 16:05:40 +0530 Subject: [PATCH 09/16] Update onebox version --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0793f77ce..2bc7adb15 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -211,7 +211,7 @@ GEM omniauth-twitter (1.2.1) json (~> 1.3) omniauth-oauth (~> 1.1) - onebox (1.5.34) + onebox (1.5.35) moneta (~> 0.8) multi_json (~> 1.11) mustache From 4d981cec53aa80813d50018c2ddab6e9947a1d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Mon, 22 Feb 2016 12:57:24 +0100 Subject: [PATCH 10/16] FIX: don't try to optimize large PNGs (takes too much time) --- app/controllers/uploads_controller.rb | 34 +++++++++++++++------------ app/models/upload.rb | 20 ++++++++++++---- spec/models/upload_spec.rb | 1 - 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb index 65be0cea9..f91f70763 100644 --- a/app/controllers/uploads_controller.rb +++ b/app/controllers/uploads_controller.rb @@ -51,13 +51,16 @@ class UploadsController < ApplicationController render nothing: true, status: 404 end + MAXIMUM_UPLOAD_SIZE ||= 10.megabytes + DOWNSIZE_RATIO ||= 0.8 + def create_upload(type, file, url) begin # ensure we have a file if file.nil? # API can provide a URL if url.present? && is_api? - tempfile = FileHelper.download(url, 10.megabytes, "discourse-upload-#{type}") rescue nil + tempfile = FileHelper.download(url, MAXIMUM_UPLOAD_SIZE, "discourse-upload-#{type}") rescue nil filename = File.basename(URI.parse(url).path) end else @@ -69,20 +72,21 @@ class UploadsController < ApplicationController return { errors: I18n.t("upload.file_missing") } if tempfile.nil? # allow users to upload (not that) large images that will be automatically reduced to allowed size - uploaded_size = File.size(tempfile.path) - if SiteSetting.max_image_size_kb > 0 && FileHelper.is_image?(filename) && uploaded_size > 0 && uploaded_size < 10.megabytes - attempt = 2 - allow_animation = type == "avatar" ? SiteSetting.allow_animated_avatars : SiteSetting.allow_animated_thumbnails - while attempt > 0 - downsized_size = File.size(tempfile.path) - break if downsized_size > uploaded_size - break if downsized_size < SiteSetting.max_image_size_kb.kilobytes - image_info = FastImage.new(tempfile.path) rescue nil - w, h = *(image_info.try(:size) || [0, 0]) - break if w == 0 || h == 0 - dimensions = "#{(w * 0.8).floor}x#{(h * 0.8).floor}" - OptimizedImage.downsize(tempfile.path, tempfile.path, dimensions, filename: filename, allow_animation: allow_animation) - attempt -= 1 + if SiteSetting.max_image_size_kb > 0 && FileHelper.is_image?(filename) + uploaded_size = File.size(tempfile.path) + if 0 < uploaded_size && uploaded_size < MAXIMUM_UPLOAD_SIZE && Upload.should_optimize?(tempfile.path) + attempt = 2 + allow_animation = type == "avatar" ? SiteSetting.allow_animated_avatars : SiteSetting.allow_animated_thumbnails + while attempt > 0 + downsized_size = File.size(tempfile.path) + break if uploaded_size < downsized_size || downsized_size < SiteSetting.max_image_size_kb.kilobytes + image_info = FastImage.new(tempfile.path) rescue nil + w, h = *(image_info.try(:size) || [0, 0]) + break if w == 0 || h == 0 + dimensions = "#{(w * DOWNSIZE_RATIO).floor}x#{(h * DOWNSIZE_RATIO).floor}" + OptimizedImage.downsize(tempfile.path, tempfile.path, dimensions, filename: filename, allow_animation: allow_animation) + attempt -= 1 + end end end diff --git a/app/models/upload.rb b/app/models/upload.rb index 6c6937301..49480639d 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -73,8 +73,8 @@ class Upload < ActiveRecord::Base w = svg["width"].to_i h = svg["height"].to_i else - # fix orientation first (but not for GIFs) - fix_image_orientation(file.path) unless filename =~ /\.GIF$/i + # fix orientation first + fix_image_orientation(file.path) if should_optimize?(file.path) # retrieve image info image_info = FastImage.new(file) rescue nil w, h = *(image_info.try(:size) || [0, 0]) @@ -107,8 +107,8 @@ class Upload < ActiveRecord::Base end end - # optimize image (but not for GIFs) - if filename !~ /\.GIF$/i + # optimize image (except GIFs and large PNGs) + if should_optimize?(file.path) ImageOptim.new.optimize_image!(file.path) rescue nil # update the file size filesize = File.size(file.path) @@ -163,6 +163,18 @@ class Upload < ActiveRecord::Base end end + LARGE_PNG_SIZE ||= 3.megabytes + + def self.should_optimize?(path) + # don't optimize GIFs + return false if path =~ /\.gif$/i + return true if path !~ /\.png$/i + image_info = FastImage.new(path) rescue nil + w, h = *(image_info.try(:size) || [0, 0]) + # don't optimize large PNGs + w > 0 && h > 0 && w * h < LARGE_PNG_SIZE + end + def self.is_dimensionless_image?(filename, width, height) FileHelper.is_image?(filename) && (width.blank? || width == 0 || height.blank? || height == 0) end diff --git a/spec/models/upload_spec.rb b/spec/models/upload_spec.rb index b67196ec6..deddf2b79 100644 --- a/spec/models/upload_spec.rb +++ b/spec/models/upload_spec.rb @@ -62,7 +62,6 @@ describe Upload do end it "computes width & height for images" do - FastImage.any_instance.expects(:size).returns([100, 200]) ImageSizer.expects(:resize) image.expects(:rewind).twice Upload.create_for(user_id, image, image_filename, image_filesize) From c2caf90de6c6be14165e4728ee4edf8f6308888e Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 22 Feb 2016 18:28:02 +0530 Subject: [PATCH 11/16] FIX: RSS feed must have unique GUID --- app/views/list/list.rss.erb | 2 +- app/views/posts/latest.rss.erb | 2 +- app/views/topics/show.rss.erb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/list/list.rss.erb b/app/views/list/list.rss.erb index b1eb41f10..7cc954ec2 100644 --- a/app/views/list/list.rss.erb +++ b/app/views/list/list.rss.erb @@ -30,7 +30,7 @@ <%= topic.pinned_at ? 'Yes' : 'No' %> <%= topic.closed ? 'Yes' : 'No' %> <%= topic.archived ? 'Yes' : 'No' %> - topic-<%= topic.id %> + <%= Discourse.current_hostname %>-topic-<%= topic.id %> <%= topic.title %> <% end %> diff --git a/app/views/posts/latest.rss.erb b/app/views/posts/latest.rss.erb index 7cfb0a8e1..8f97eff3f 100644 --- a/app/views/posts/latest.rss.erb +++ b/app/views/posts/latest.rss.erb @@ -14,7 +14,7 @@ ]]> <%= Discourse.base_url + post.url %> <%= post.created_at.rfc2822 %> - post-<%= post.id %> + <%= Discourse.current_hostname %>-post-<%= post.id %> <% end %> diff --git a/app/views/topics/show.rss.erb b/app/views/topics/show.rss.erb index e49890e2d..aa7d08c4a 100644 --- a/app/views/topics/show.rss.erb +++ b/app/views/topics/show.rss.erb @@ -30,7 +30,7 @@ ]]> <%= post_url %> <%= post.created_at.rfc2822 %> - post-<%= post.topic_id %>-<%= post.post_number %> + <%= Discourse.current_hostname %>-post-<%= post.topic_id %>-<%= post.post_number %> <%= @topic_view.title %> <% end %> From 6763a9923ade32e6a8638f44f210b82b0f7d00c7 Mon Sep 17 00:00:00 2001 From: Joe Buhlig Date: Fri, 12 Feb 2016 11:09:29 -0600 Subject: [PATCH 12/16] Added tertiary color to digest Added hash to color in helper Added anchor_color to topic and site name links Styled the unsubscribe link --- app/helpers/user_notifications_helper.rb | 4 ++-- app/mailers/user_notifications.rb | 1 + app/views/user_notifications/digest.html.erb | 14 +++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/helpers/user_notifications_helper.rb b/app/helpers/user_notifications_helper.rb index 51a5e7ffe..24ca2ef22 100644 --- a/app/helpers/user_notifications_helper.rb +++ b/app/helpers/user_notifications_helper.rb @@ -28,8 +28,8 @@ module UserNotificationsHelper logo_url end - def html_site_link - "#{@site_name}" + def html_site_link(color) + "#{@site_name}" end def first_paragraph_from(html) diff --git a/app/mailers/user_notifications.rb b/app/mailers/user_notifications.rb index 517294278..a338e607f 100644 --- a/app/mailers/user_notifications.rb +++ b/app/mailers/user_notifications.rb @@ -62,6 +62,7 @@ class UserNotifications < ActionMailer::Base @site_name = SiteSetting.email_prefix.presence || SiteSetting.title @header_color = ColorScheme.hex_for_name('header_background') + @anchor_color = ColorScheme.hex_for_name('tertiary') @last_seen_at = short_date(@user.last_seen_at || @user.created_at) # A list of topics to show the user diff --git a/app/views/user_notifications/digest.html.erb b/app/views/user_notifications/digest.html.erb index 959562b2e..304250e12 100644 --- a/app/views/user_notifications/digest.html.erb +++ b/app/views/user_notifications/digest.html.erb @@ -1,7 +1,7 @@ - + diff --git a/app/models/incoming_links_report.rb b/app/models/incoming_links_report.rb index 57531025e..388ea57cc 100644 --- a/app/models/incoming_links_report.rb +++ b/app/models/incoming_links_report.rb @@ -35,9 +35,10 @@ class IncomingLinksReport num_clicks = link_count_per_user num_topics = topic_count_per_user + user_id_lookup = User.where(username: num_clicks.keys).select(:id, :username).inject({}) {|sum,v| sum[v.username] = v.id; sum;} report.data = [] num_clicks.each_key do |username| - report.data << {username: username, num_clicks: num_clicks[username], num_topics: num_topics[username]} + report.data << {username: username, user_id: user_id_lookup[username], num_clicks: num_clicks[username], num_topics: num_topics[username]} end report.data = report.data.sort_by {|x| x[:num_clicks]}.reverse[0,10] end diff --git a/spec/models/incoming_links_report_spec.rb b/spec/models/incoming_links_report_spec.rb index d85e4bd7c..1ed432f74 100644 --- a/spec/models/incoming_links_report_spec.rb +++ b/spec/models/incoming_links_report_spec.rb @@ -40,8 +40,8 @@ describe IncomingLinksReport do r = IncomingLinksReport.find('top_referrers').as_json expect(r[:data]).to eq [ - {username: p1.user.username, num_clicks: 7 + 2, num_topics: 2}, - {username: p2.user.username, num_clicks: 3, num_topics: 1} + {username: p1.user.username, user_id: p1.user.id, num_clicks: 7 + 2, num_topics: 2}, + {username: p2.user.username, user_id: p2.user.id, num_clicks: 3, num_topics: 1} ] r = IncomingLinksReport.find('top_traffic_sources').as_json @@ -98,8 +98,8 @@ describe IncomingLinksReport do Fabricate(:incoming_link, user: bob, post: post1).save end - expect(top_referrers[:data][0]).to eq({username: 'amy', num_clicks: 3, num_topics: 2}) - expect(top_referrers[:data][1]).to eq({username: 'bob', num_clicks: 2, num_topics: 1}) + expect(top_referrers[:data][0]).to eq({username: 'amy', user_id: amy.id, num_clicks: 3, num_topics: 2}) + expect(top_referrers[:data][1]).to eq({username: 'bob', user_id: bob.id, num_clicks: 2, num_topics: 1}) end end
- + <%- if logo_url.blank? %> <%= SiteSetting.title %> <%- else %> @@ -11,7 +11,7 @@
- <%= raw(t 'user_notifications.digest.why', site_link: html_site_link, last_seen_at: @last_seen_at) %> + <%= raw(t 'user_notifications.digest.why', site_link: html_site_link(@anchor_color), last_seen_at: @last_seen_at) %> <%- if @featured_topics.present? %>
@@ -20,7 +20,7 @@ <%- @featured_topics.each_with_index do |t, i| %> @@ -43,7 +43,7 @@ <%- @new_topics.each do |t| %>
  • - <%= raw unescape_emoji(t.title) %> + <%= raw unescape_emoji(t.title) %> <%= t.posts_count %> <%= category_badge(t.category, inline_style: true, absolute_url: true) %>
  • @@ -58,7 +58,7 @@
    <%- @new_by_category.first(10).each do |c| %> - <%= c[0].name %> <%= c[1] %> + <%= c[0].name %> <%= c[1] %> <%- end %>
    @@ -72,6 +72,6 @@ From 7e39619bc9196becee0ee77918e56fdc0c3f1678 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 22 Feb 2016 11:10:12 -0500 Subject: [PATCH 13/16] Update translations --- config/locales/client.ar.yml | 52 ++ config/locales/client.bs_BA.yml | 10 +- config/locales/client.de.yml | 26 +- config/locales/client.es.yml | 4 + config/locales/client.fi.yml | 6 +- config/locales/client.fr.yml | 4 + config/locales/client.it.yml | 2 +- config/locales/client.ja.yml | 40 ++ config/locales/client.ko.yml | 40 +- config/locales/client.pt_BR.yml | 27 + config/locales/client.ro.yml | 187 +++++- config/locales/client.vi.yml | 556 +++++++++++++++++- config/locales/client.zh_CN.yml | 77 ++- config/locales/server.ar.yml | 14 + config/locales/server.de.yml | 48 +- config/locales/server.es.yml | 12 +- config/locales/server.fi.yml | 1 + config/locales/server.fr.yml | 112 ++++ config/locales/server.ja.yml | 9 +- config/locales/server.pt_BR.yml | 7 + config/locales/server.ru.yml | 49 +- config/locales/server.sk.yml | 36 +- config/locales/server.vi.yml | 127 +++- config/locales/server.zh_CN.yml | 8 +- plugins/poll/config/locales/client.ja.yml | 6 + plugins/poll/config/locales/client.vi.yml | 16 +- plugins/poll/config/locales/server.ja.yml | 4 + plugins/poll/config/locales/server.vi.yml | 14 +- public/403.vi.html | 1 - public/422.vi.html | 1 - public/500.vi.html | 1 - public/503.vi.html | 1 - .../lib/discourse_imgur/locale/server.vi.yml | 12 +- 33 files changed, 1416 insertions(+), 94 deletions(-) diff --git a/config/locales/client.ar.yml b/config/locales/client.ar.yml index 0dd9c71b5..c89836ac1 100644 --- a/config/locales/client.ar.yml +++ b/config/locales/client.ar.yml @@ -176,6 +176,8 @@ ar: few: "بعد %{count} سنوات" many: "بعد %{count} سنة" other: "بعد %{count} سنة" + previous_month: 'الشهر السابق' + next_month: 'الشهر التالي' share: topic: 'شارك رابط هذا الموضوع' post: 'الموضوع رقم %{postNumber}' @@ -186,6 +188,8 @@ ar: email: 'شارك هذا الرابط في بريد إلكتروني' action_codes: split_topic: "قسم هذا الموضوع في %{when}" + invited_user: "دعوة %{who} %{when}" + removed_user: "ازالة %{who} %{when}" autoclosed: enabled: 'أُغلق في %{when}' disabled: 'فُتح في %{when}' @@ -257,6 +261,7 @@ ar: other: "{{count}} حرف" suggested_topics: title: "مواضيع مقترحة" + pm_title: "رسائلة مقترحة " about: simple_title: "نبذة" title: "عن %{title}" @@ -533,6 +538,7 @@ ar: not_supported: "عذراً , الإشعارات غير مدعومة على هذا المتصفح " perm_default: "تفعيل الإشعارات" perm_denied_btn: "الصلاحيات ممنوعة " + perm_denied_expl: "لقد قمت بالغاء الاشعارات . قم بتفعيل الاشعارات عن طريق اعدادات االمتصفح" disable: "إيقاف الإشعارات " currently_enabled: "( مفعل مسبقاً )" enable: "تفعيل الإشعارات" @@ -586,6 +592,7 @@ ar: groups: "مجموعاتي" bulk_select: "إختيار رسائل" move_to_inbox: "الذهاب إلى الرسائل الواردة" + move_to_archive: "الارشيف" failed_to_move: "فشل في نقل الرسائل المحددة (ربما يكون اتصالك ضعيفاً)" select_all: "إختيار الكل" change_password: @@ -752,6 +759,20 @@ ar: same_as_email: "كلمة المرور مطابقة للبريد الإليكتروني." ok: "كلمة المرور هذة تعتبر جيدة." instructions: "على الاقل %{count} حرف" + summary: + title: "ملخص" + stats: "احصائيات" + topic_count: "مواضيع منشئة" + post_count: "مشاركات منشئة" + likes_given: "اجابات معطاة" + likes_received: "اعجابات مستقبلة" + days_visited: "ايام الزياره" + posts_read_count: "قراء المواضيع" + top_topics: "افضل المواضيع" + top_badges: "افضل الاوسمه" + more_topics: "المزيد من المواضيع" + more_replies: "المزيد من الردود" + more_badges: "المزيد من الاوسمه" associated_accounts: "حساب مرتبط" ip_address: title: "أخر عنوان أيبي" @@ -794,6 +815,7 @@ ar: logout: "تم تسجيل خروجك" refresh: "تحديث" read_only_mode: + enabled: "الموقع في وضع القراءه فقط. الرجاء الاستمرار بالتصفح , لكن الردود و الاعجابات و الخصائص الاخرى معطله للان ." login_disabled: "تسجيل الدخول معطل لأن الموقع في خالة القراءة فقط" too_few_topics_and_posts_notice: "دعونا الحصول على هذه المناقشة بدأت! يوجد حاليا%{currentTopics} / %{requiredTopics} المواضيع و %{currentPosts} / %{requiredPosts} المشاركات. الزوار الجدد بحاجة إلى بعض الأحاديث لقراءة والرد على." too_few_topics_notice: "دعونا الحصول على هذه المناقشة التي! وهناك حاليا %{currentTopics} / %{requiredTopics} المواضيع. الزوار الجديدة بحاجة إلى بعض الأحاديث قراءة والرد عليها." @@ -912,6 +934,7 @@ ar: ctrl: 'التحكم' alt: 'Alt' composer: + emoji: "الرموز التعبيرية :)" more_emoji: "أكثر..." options: "خيارات" whisper: "همس" @@ -1021,6 +1044,7 @@ ar: moved_post: "مشاركتك نقلت بواسطة" linked: "رابط لمشاركتك" granted_badge: "تم منح الوسام" + group_message_summary: "الرسائل في صندوق رسائل المجموعه" popup: mentioned: '{{username}} أشار لك في "{{topic}}" - {{site_title}}' group_mentioned: '{{username}} ذكرك في "{{topic}}" - {{site_title}}' @@ -1083,6 +1107,7 @@ ar: dismiss_read: "تجاهل المشاركات غير المقروءة" dismiss_button: "تجاهل..." dismiss_tooltip: "تجاهل فقط المشاركات الجديدة او توقف عن تتبع المواضيع" + also_dismiss_topics: "التوقف عن متابعه المواضيع حتي لا تظهر كغير مقروء مره اخرى " dismiss_new: "إخفاء الجديد" toggle: "إيقاف/تشغيل الاختيار المتعدد للمواضيع" actions: "عمليات تنفذ دفعة واحدة" @@ -1339,6 +1364,7 @@ ar: success: "لقد دعونا ذلك المستخدم للمشاركة في هذه الرسالة." error: "للأسف, حدثت مشكلة في دعوة المستخدم" group_name: "اسم المجموعة" + controls: "خصائص الموضوع" invite_reply: title: 'دعوة' username_placeholder: "اسم المستخدم" @@ -2049,6 +2075,7 @@ ar: refresh_report: "تحديث التقرير " start_date: "تاريخ البدء" end_date: "تاريخ الإنتهاء" + groups: "جميع الفئات" commits: latest_changes: "آخر تغيير: يرجى التحديث" by: "بواسطة" @@ -2351,13 +2378,17 @@ ar: name: 'ويكي' description: "اللون الأساسي المستخدم كخلفية لمشاركات الويكي." email: + title: "رسائل البريد الالكتروني" settings: "اعدادات" + templates: "نماذج" preview_digest: "ملخص المعاينة." sending_test: "إرسال بريد إلكتروني للتجربة..." error: "خطأ - %{server_error}" test_error: "حدث خطأ أثناء إرسال رسالة تجريبية. الرجاء فحص إعدادات البريد الإلكتروني و التأكد من أن الاستضافة لا تمنع مرور البريد الإلكتروني والمحاولة مرة أخرى." sent: "تم الإرسال" skipped: "تم التجاوز" + received: "وارد" + rejected: "مرفوض" sent_at: "أرسلت في" time: "الوقت" user: "المستخدم" @@ -2375,6 +2406,19 @@ ar: last_seen_user: "آخر مستخدم تواجد:" reply_key: "مفتاح الرد" skipped_reason: "تجاوز السبب" + incoming_emails: + from_address: "من" + to_addresses: "الى" + cc_addresses: "Cc" + subject: "موضوع" + error: "خطأ" + none: "لا يوجد بريد وارد" + filters: + from_placeholder: "from@example.com" + to_placeholder: "to@example.com" + cc_placeholder: "cc@example.com" + subject_placeholder: "موضوع..." + error_placeholder: "خطأ" logs: none: "لا يوجد سجلات." filters: @@ -2438,6 +2482,10 @@ ar: change_category_settings: "تغيير إعدادات الفئة" delete_category: "حذف الفئة" create_category: "أنشئ فئة" + block_user: "حظر" + unblock_user: "رفع الحظر" + grant_admin: "منح صلاحيات ادارية" + revoke_admin: "سحب الصلاحيات الادارية" screened_emails: title: "عناوين بريد إلكتروني محجوبة." description: "عندما تتم محاول انشاء حساب جديد, سيتم التحقق من قائمة البريد الالكتروني وسيتم حظر التسجيل لهذا البريد واتخاذ اي اجراء متبع" @@ -2631,6 +2679,8 @@ ar: deactivate_failed: "حدث خطأ عند تعطيل هذا المستخدم." unblock_failed: 'حدث خطأ عند الغاء حظر هذا المستخدم.' block_failed: 'حدث خطأ عند حظر هذا المستخدم.' + block_confirm: 'هل انت متأكد من حظر هذا المستخدم؟ لن يستطيع انشاء مواضيع او ردود جديدة' + block_accept: 'نعم, حظر هذا المستخدم' deactivate_explanation: "المستخدم الغير نشط يحب أن يتأكد من البريد الالكتروني" suspended_explanation: "المستخدم الموقوف لايملك صلاحية تسجيل الدخول" block_explanation: "المستخدم الموقوف لايستطيع أن يشارك" @@ -2705,6 +2755,7 @@ ar: confirm: 'تأكيد' dropdown: "القائمة المنسدلة" site_text: + description: "يمكنك تخصيص اي نص في مدونتك . الرجاء البدء بالبحث في الاسفل:" search: "ابحث عن النص الذي تريد تعديله" title: 'محتوى النص' edit: 'تعديل' @@ -2915,6 +2966,7 @@ ar: mark_tracking: 'm, t تابع الموضوع' mark_watching: 'm, w شاهد الموضوع' badges: + more_with_badge: "اخرون بنفس الدرع" title: أوسمة allow_title: "يمكن استخدامه كعنوان" multiple_grant: "يمكن منحه عدة مرات. " diff --git a/config/locales/client.bs_BA.yml b/config/locales/client.bs_BA.yml index faee9cf52..d2dc34c97 100644 --- a/config/locales/client.bs_BA.yml +++ b/config/locales/client.bs_BA.yml @@ -94,12 +94,12 @@ bs_BA: few: "Prije par godina" other: "%{count} godine/a prije" share: - topic: 'podjeli link ka ovoj temi' - post: 'podjeli link ka ovom postu #%{postNumber}' + topic: 'podijeli link ka ovoj temi' + post: 'podijeli link ka ovom postu #%{postNumber}' close: 'zatvori' - twitter: 'podjeli link na Twitteru' - facebook: 'podjeli link na Facebooku' - google+: 'podjeli link na Google+' + twitter: 'podijeli link na Twitteru' + facebook: 'podijeli link na Facebook-u' + google+: 'podijeli link na Google+' email: 'pošalji ovaj link na email' topic_admin_menu: "topic admin actions" edit: 'izmjeni naslov i kategoriju ove teme' diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml index 5062acb46..30a960553 100644 --- a/config/locales/client.de.yml +++ b/config/locales/client.de.yml @@ -100,6 +100,8 @@ de: x_years: one: "ein Jahr später" other: "%{count} Jahre später" + previous_month: 'Vormonat' + next_month: 'Nächster Monat' share: topic: 'Teile einen Link zu diesem Thema' post: 'Beitrag #%{postNumber}' @@ -188,6 +190,7 @@ de: other: "{{count}} Zeichen" suggested_topics: title: "Vorgeschlagene Themen" + pm_title: "Vorgeschlagene Nachrichten" about: simple_title: "Über uns" title: "Über %{title}" @@ -428,7 +431,7 @@ de: not_supported: "Dieser Browser unterstützt leider keine Benachrichtigungen." perm_default: "Benachrichtigungen einschalten" perm_denied_btn: "Zugriff verweigert" - perm_denied_expl: "Der Zugriff auf Benachrichtigungen wurde verweigert. Verwende Deinen Browser um Benachrichtigungen zu aktivieren. Anschließend klick auf die Schaltfläche. (Desktop: das Symbol ganz links in der Adressfläche. Mobil: \"Seiten Info\".)" + perm_denied_expl: "Du hast Benachrichtigungen blockiert. Aktiviere die Benachrichtigungen über deine Browser Einstellungen." disable: "Benachrichtigungen deaktivieren" currently_enabled: "(derzeit aktiviert)" enable: "Benachrichtigungen aktivieren" @@ -698,6 +701,7 @@ de: logout: "Du wurdest abgemeldet." refresh: "Aktualisieren" read_only_mode: + enabled: "Diese Seite ist im Nur-Lesen Modus. Du kannst weiterhin die Seite lesen, aber antworten, liken und andere Aktionen sind deaktiviert." login_disabled: "Die Anmeldung ist deaktiviert während sich die Website im Nur-Lesen-Modus befindet." too_few_topics_and_posts_notice: "Lass' die Diskussionen starten! Es existieren bisher %{currentTopics} von %{requiredTopics} benötigten Themen und %{currentPosts} von %{requiredPosts} benötigten Beiträgen. Neue Besucher benötigen bestehende Konversationen, die sie lesen und auf die sie antworten können." too_few_topics_notice: "Lass' die Diskussionen starten! Es existieren bisher %{currentTopics} von %{requiredTopics} benötigten Themen. Neue Besucher benötigen bestehende Konversationen, die sie lesen und auf die sie antworten können." @@ -909,6 +913,9 @@ de: moved_post: "

    {{username}} hat {{description}} verschoben

    " linked: "

    {{username}} {{description}}

    " granted_badge: "

    Abzeichen '{{description}}' erhalten

    " + group_message_summary: + one: "

    Eine Nachricht in deinem {{group_name}} Postfach

    " + other: "

    {{count}} Nachrichten in deinem {{group_name}} Postfach

    " alt: mentioned: "Erwähnt von" quoted: "Zitiert von" @@ -923,6 +930,7 @@ de: moved_post: "Dein Beitrag wurde verschoben von" linked: "Link zu deinem Beitrag" granted_badge: "Abzeichen erhalten" + group_message_summary: "Nachrichten in dem Gruppenpostfach" popup: mentioned: '{{username}} hat dich in "{{topic}}" - {{site_title}} erwähnt' group_mentioned: '{{username}} hat dich in "{{topic}}" - {{site_title}} erwähnt' @@ -1752,6 +1760,7 @@ de: refresh_report: "Bericht aktualisieren" start_date: "Startdatum" end_date: "Enddatum" + groups: "Alle Gruppen" commits: latest_changes: "Letzte Änderungen: bitte häufig updaten!" by: "von" @@ -2043,6 +2052,8 @@ de: test_error: "Es gab ein Problem beim Senden der Test-E-Mail. Bitte überprüfe nochmals deine E-Mail-Einstellungen, stelle sicher dass dein Anbieter keine E-Mail-Verbindungen blockiert und probiere es erneut." sent: "Gesendet" skipped: "Übersprungen" + received: "Empfangen" + rejected: "Abgelehnt" sent_at: "Gesendet am" time: "Zeit" user: "Benutzer" @@ -2066,6 +2077,7 @@ de: cc_addresses: "Cc" subject: "Betreff" error: "Fehler" + none: "Keine eingehenden E-Mails gefunden." filters: from_placeholder: "von@example.com" to_placeholder: "an@example.com" @@ -2137,6 +2149,10 @@ de: create_category: "Kategorie erstellen" block_user: "Benutzer blockieren" unblock_user: "Blockierung von Benutzer aufheben" + grant_admin: "Administration gewähren" + revoke_admin: "Administration entziehen" + grant_moderation: "Moderation gewähren" + revoke_moderation: "Moderation entziehen" screened_emails: title: "Gefilterte E-Mails" description: "Wenn jemand ein Konto erstellt, werden die folgenden E-Mail-Adressen überprüft und es wird die Anmeldung blockiert oder eine andere Aktion ausgeführt." @@ -2238,6 +2254,7 @@ de: moderator: "Moderator?" admin: "Administrator?" blocked: "Geblockt?" + staged: "Insziniert?" show_admin_profile: "Administration" edit_title: "Titel bearbeiten" save_title: "Titel speichern" @@ -2302,9 +2319,12 @@ de: deactivate_failed: "Beim Deaktivieren des Benutzers ist ein Fehler aufgetreten." unblock_failed: 'Beim Aufheben der Blockierung des Benutzers ist ein Fehler aufgetreten.' block_failed: 'Beim Blocken des Benutzers ist ein Fehler aufgetreten.' + block_confirm: 'Bust du sicher, dass du diesen Benutzer blockieren willst? Sie werden keine Möglichkeit mehr haben, Themen oder Beiträge zu erstellen.' + block_accept: 'Ja, den Nutzer blockieren.' deactivate_explanation: "Ein deaktivierter Benutzer muss seine E-Mail-Adresse erneut bestätigen." suspended_explanation: "Ein gesperrter Benutzer kann sich nicht anmelden." block_explanation: "Ein geblockter Benutzer kann keine Themen erstellen oder Beiträge veröffentlichen." + stage_explanation: "Ein inszenierter Nutzer kann nur via E-Mail zu gewissen Themen beitragen." trust_level_change_failed: "Beim Wechsel der Vertrauensstufe ist ein Fehler aufgetreten." suspend_modal_title: "Benutzer sperren" trust_level_2_users: "Benutzer mit Vertrauensstufe 2" @@ -2583,6 +2603,10 @@ de: mark_tracking: 'm, t Thema verfolgen' mark_watching: 'm, w Thema beobachten' badges: + earned_n_times: + one: "Einmal dieses Abzeichen erhalten" + other: "%{count} mal dieses Abzeichen erhalten" + more_with_badge: "Andere mit diesem Abzeichen" title: Abzeichen allow_title: "kann als Titel verwendet werden" multiple_grant: "kann mehrfach verliehen werden" diff --git a/config/locales/client.es.yml b/config/locales/client.es.yml index 0be0a1026..b65b51343 100644 --- a/config/locales/client.es.yml +++ b/config/locales/client.es.yml @@ -100,6 +100,8 @@ es: x_years: one: "%{count} año después" other: "%{count} años después" + previous_month: 'Anterior mes' + next_month: 'Próximo mes' share: topic: 'comparte un enlace a este tema' post: 'post #%{postNumber}' @@ -188,6 +190,7 @@ es: other: "{{count}} caracteres" suggested_topics: title: "Temas Sugeridos" + pm_title: "Mensajes sugeridos" about: simple_title: "Acerca de" title: "Sobre %{title}" @@ -1759,6 +1762,7 @@ es: refresh_report: "Actualizar reporte" start_date: "Desde fecha" end_date: "Hasta fecha" + groups: "Todos los grupos" commits: latest_changes: "Cambios recientes: ¡actualiza a menudo!" by: "por" diff --git a/config/locales/client.fi.yml b/config/locales/client.fi.yml index 4ebf5199d..e3f9a1181 100644 --- a/config/locales/client.fi.yml +++ b/config/locales/client.fi.yml @@ -100,6 +100,8 @@ fi: x_years: one: "1 vuosi myöhemmin" other: "%{count} vuotta myöhemmin" + previous_month: 'Edellinen kuukausi' + next_month: 'Seuraava kuukausi' share: topic: 'jaa linkki tähän ketjuun' post: '%{postNumber}. viesti' @@ -188,6 +190,7 @@ fi: other: "{{count}} merkkiä" suggested_topics: title: "Suositellut ketjut" + pm_title: "Suositellut viestit" about: simple_title: "Tietoja" title: "Tietoja sivustosta %{title}" @@ -1053,7 +1056,7 @@ fi: login_required: "Sinun täytyy kirjautua sisään nähdäksesi tämän ketjun." server_error: title: "Ketjun lataaminen epäonnistui" - description: "Pahoittelut, ketjun lataaminen epäonnistui. Kyse saattaa olla yhteysongelmsta. Kokeile sivun lataamista uudestaan ja jos ongelma jatkuu, ota yhteyttä." + description: "Pahoittelut, ketjun lataaminen epäonnistui. Kyse saattaa olla yhteysongelmasta. Kokeile sivun lataamista uudestaan ja jos ongelma jatkuu, ota yhteyttä." not_found: title: "Ketjua ei löytynyt" description: "Pahoittelut, ketjua ei löytynyt. Ehkäpä valvoja on siirtänyt sen muualle?" @@ -1759,6 +1762,7 @@ fi: refresh_report: "Päivitä raportti" start_date: "Alkupäivämäärä" end_date: "Loppupäivämäärä" + groups: "Kaikki ryhmät" commits: latest_changes: "Viimeisimmät muutokset: päivitä usein!" by: "käyttäjältä" diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml index 3600bedc8..9b5f0f066 100644 --- a/config/locales/client.fr.yml +++ b/config/locales/client.fr.yml @@ -100,6 +100,8 @@ fr: x_years: one: "1 année plus tard" other: "%{count} années plus tard" + previous_month: 'Mois précédent' + next_month: 'Mois suivant' share: topic: 'partager ce sujet' post: 'message #%{postNumber}' @@ -188,6 +190,7 @@ fr: other: "{{count}} caractères" suggested_topics: title: "Sujets similaires" + pm_title: "Messages Proposés" about: simple_title: "A propos" title: "A propos de %{title}" @@ -1763,6 +1766,7 @@ fr: refresh_report: "Actualiser le rapport" start_date: "Date de début" end_date: "Date de fin" + groups: "Tous les groupes" commits: latest_changes: "Dernières modifications: merci de mettre à jour régulièrement!" by: "par" diff --git a/config/locales/client.it.yml b/config/locales/client.it.yml index d76d658f0..01638e495 100644 --- a/config/locales/client.it.yml +++ b/config/locales/client.it.yml @@ -109,7 +109,7 @@ it: google+: 'Condividi questo link su Google+' email: 'invia questo collegamento via email' action_codes: - split_topic: "suddividi questo argomento %{when}" + split_topic: "ha separato questo argomento %{when}" invited_user: "Invitato %{who} %{when}" removed_user: "rimosso %{who} %{when}" autoclosed: diff --git a/config/locales/client.ja.yml b/config/locales/client.ja.yml index 9ea38f58c..dd1989681 100644 --- a/config/locales/client.ja.yml +++ b/config/locales/client.ja.yml @@ -81,6 +81,8 @@ ja: other: "%{count} 月後" x_years: other: "%{count} 年後" + previous_month: '前月' + next_month: '来月' share: topic: 'このトピックのリンクをシェアする' post: 'ポスト #%{postNumber}' @@ -91,6 +93,19 @@ ja: email: 'メールでこのリンクを送る' topic_admin_menu: "トピック管理" emails_are_disabled: "全てのメールアドレスの送信が管理者によって無効化されています。全ての種類のメール通知は行われません" + s3: + regions: + us_east_1: "US East (N. Virginia)" + us_west_1: "US West (N. California)" + us_west_2: "US West (Oregon)" + us_gov_west_1: "AWS GovCloud (US)" + eu_west_1: "EU (Ireland)" + eu_central_1: "EU (Frankfurt)" + ap_southeast_1: "Asia Pacific (Singapore)" + ap_southeast_2: "Asia Pacific (Sydney)" + ap_northeast_1: "Asia Pacific (Tokyo)" + ap_northeast_2: "Asia Pacific (Seoul)" + sa_east_1: "South America (Sao Paulo)" edit: 'このトピックのタイトルとカテゴリを編集' not_implemented: "申し訳ありませんが、この機能はまだ実装されていません" no_value: "いいえ" @@ -282,6 +297,7 @@ ja: category: "カテゴリ" reorder: title: "カテゴリを並び替える" + apply_all: "適用" posts: "ポスト" topics: "トピック" latest: "最新ポスト" @@ -376,6 +392,8 @@ ja: warnings_received: "注意" messages: all: "すべて" + inbox: "インボックス" + select_all: "全てを選択する" change_password: success: "(メールを送信しました)" in_progress: "(メールを送信中)" @@ -474,6 +492,13 @@ ja: auto_track_options: never: "トラックしない" immediately: "今すぐ" + after_30_seconds: "30秒後" + after_1_minute: "1分後" + after_2_minutes: "2分後" + after_3_minutes: "3分後" + after_4_minutes: "4分後" + after_5_minutes: "5分後" + after_10_minutes: "10分後" invited: search: "招待履歴を検索するためにキーワードを入力してください..." title: "招待" @@ -646,6 +671,7 @@ ja: twitter: "Twitter" emoji_one: "Emoji One" composer: + options: "オプション" add_warning: "これは公式の警告です。" posting_not_on_topic: "回答したいトピックはどれですか?" saving_draft_tip: "保存中..." @@ -674,6 +700,7 @@ ja: edit_reason_placeholder: "編集する理由は何ですか?" show_edit_reason: "(編集理由を追加)" view_new_post: "新規ポストを見る。" + saving: "保存中" saved: "保存完了!" saved_draft: "編集中の投稿があります。選択すると再開します" uploading: "アップロード中..." @@ -702,6 +729,7 @@ ja: hr_title: "水平線" help: "Markdown 編集のヘルプ" toggler: "編集パネルの表示/非表示" + modal_cancel: "キャンセル" admin_options_title: "このトピックの詳細設定" auto_close: label: "このトピックを自動的に終了する時間:" @@ -749,6 +777,7 @@ ja: select_file: "ファイル選択" image_link: "イメージのリンク先" search: + select_all: "全てを選択する" title: "トピック、ポスト、ユーザ、カテゴリを探す" no_results: "何も見つかりませんでした。" no_more_results: "これ以上結果が見つかりませんでした。" @@ -1723,6 +1752,10 @@ ja: last_seen_user: "ユーザが最後にサイトを訪れた日:" reply_key: "回答キー" skipped_reason: "スキップの理由" + incoming_emails: + error: "エラー" + filters: + error_placeholder: "エラー" logs: none: "ログなし" filters: @@ -1741,6 +1774,7 @@ ja: ip_address: "IP" topic_id: "トピックID" post_id: "ポストID" + category_id: "カテゴリID" delete: '削除' edit: '編集' save: '保存' @@ -1782,6 +1816,12 @@ ja: anonymize_user: "匿名ユーザ" roll_up: "IPブロックをロールアップ" delete_category: "カテゴリを削除する" + block_user: "ユーザをブロック" + unblock_user: "ユーザをブロック解除" + grant_admin: "管理者権限を付与" + revoke_admin: "管理者権限を剥奪" + grant_moderation: "モデレータ権限を付与" + revoke_moderation: "モデレータ権限を剥奪" screened_emails: title: "ブロック対象アドレス" description: "新規アカウント作成時、次のメールアドレスからの登録をブロックする。" diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml index 03b14e28e..b68af5771 100644 --- a/config/locales/client.ko.yml +++ b/config/locales/client.ko.yml @@ -81,6 +81,8 @@ ko: other: "%{count}달 후" x_years: other: "%{count}년 후" + previous_month: '이전 달' + next_month: '다음 달' share: topic: '토픽을 공유합니다.' post: '게시글 #%{postNumber}' @@ -118,6 +120,7 @@ ko: us_east_1: "미국 동부 (N. 버지니아)" us_west_1: "미국 서부 (N. 캘리포니아)" us_west_2: "미국 서부 (오레곤)" + us_gov_west_1: "AWS GovCloud(US)" eu_west_1: "유럽연합 (아일랜드)" eu_central_1: "유럽연합 (프랑크푸르트)" ap_southeast_1: "아시아 태평양 (싱가폴)" @@ -166,6 +169,7 @@ ko: other: "{{count}} 자" suggested_topics: title: "추천 토픽" + pm_title: "추천 메세지" about: simple_title: "About" title: "About %{title}" @@ -391,12 +395,13 @@ ko: invited_by: "(이)가 초대했습니다." trust_level: "신뢰도" notifications: "알림" + statistics: "통계" desktop_notifications: label: "데스크탑 알림" not_supported: "안타깝게도 지금 사용하고 계시는 브라우저는 알림을 지원하지 않습니다." perm_default: "알림 켜기" perm_denied_btn: "권한 거부" - perm_denied_expl: "알림에 대한 권한이 없습니다. 알림을 활성화하기위해 브라우저의 알림설정을 하시고 난 후에 버튼을 눌러주세요. (데스크탑: 주소 표시 막대 가장 왼쪽에 있는 아이콘, 모바일: '사이트 정보'.)" + perm_denied_expl: "통지를 위한 허용을 거절했었습니다. 브라우저 설정을 통해서 통지를 허용해주세요." disable: "알림 비활성화" currently_enabled: "(현재 활성화됨)" enable: "알림 활성화" @@ -450,6 +455,7 @@ ko: groups: "내 그룹" bulk_select: "메시지 선택" move_to_inbox: "수신함으로 이동" + move_to_archive: "보관하기" failed_to_move: "선택한 메시지를 이동할 수 없습니다 (아마도 네트워크가 다운됨)" select_all: "모두 선택" change_password: @@ -574,6 +580,7 @@ ko: other: "앞 {{count}}개의 초대를 보여줍니다." redeemed: "초대를 받았습니다." redeemed_tab: "Redeemed" + redeemed_tab_with_count: "교환된 ({{count}})" redeemed_at: "에 초대되었습니다." pending: "초대를 보류합니다." pending_tab: "보류" @@ -607,6 +614,7 @@ ko: instructions: "글자 수가 %{count}자 이상이어야 합니다." summary: title: "요약" + stats: "통계" topic_count: "생성된 토픽" post_count: "생성된 포스트" likes_given: "좋아요 누름" @@ -617,6 +625,8 @@ ko: top_topics: "최고 인기 토픽" top_badges: "최고 뱃지" more_topics: "다른이에게 준 좋아요" + more_replies: "더 많은 답글" + more_badges: "뱃지 더 보기" associated_accounts: "로그인" ip_address: title: "마지막 IP 주소" @@ -648,6 +658,7 @@ ko: network_fixed: "문제가 해결된 것으로 보입니다." server: "에러 코드: {{status}}" forbidden: "볼 수 있도록 허용되지 않았습니다." + not_found: "에구, 어플리케이션이 없는 URL를 가져오려고 시도했습니다." unknown: "문제가 발생했습니다." buttons: back: "뒤로가기" @@ -741,6 +752,7 @@ ko: sent_activation_email_again: " {{currentEmail}} 주소로 인증 이메일을 보냈습니다. 이메일이 도착하기까지 몇 분 정도 걸릴 수 있습니다. 또한 스팸 메일을 확인하십시오." to_continue: "로그인 해주세요" preferences: "사용자 환경을 변경하려면 로그인이 필요합니다." + forgot: "내 계정의 상세내역 기억하지 않는다." google: title: "Google" message: "Google 인증 중(팝업 차단을 해제 하세요)" @@ -768,9 +780,12 @@ ko: ctrl: 'Ctrl' alt: 'Alt' composer: + emoji: "이모지 :)" more_emoji: "더보기..." options: "온셥" + whisper: "귓속말" add_warning: "공식적인 경고입니다." + toggle_whisper: "귀속말 켜고 끄기" posting_not_on_topic: "어떤 토픽에 답글을 작성하시겠습니까?" saving_draft_tip: "저장 중..." saved_draft_tip: "저장 완료" @@ -798,6 +813,7 @@ ko: edit_reason_placeholder: "why are you editing?" show_edit_reason: "(add edit reason)" view_new_post: "새로운 글을 볼 수 있습니다." + saving: "저장 중..." saved: "저장 완료!" saved_draft: "작성중인 글이 있습니다. 계속 작성하려면 여기를 클릭하세요." uploading: "업로딩 중..." @@ -812,6 +828,7 @@ ko: link_description: "링크 설명을 입력" link_dialog_title: "하이퍼링크 삽입" link_optional_text: "옵션 제목" + link_placeholder: "http://example.com \"선택적 텍스트\"" quote_title: "인용구" quote_text: "인용구" code_title: "코드 샘플" @@ -828,6 +845,7 @@ ko: toggler: "작성 패널을 숨기거나 표시" modal_ok: "OK" modal_cancel: "취소" + cant_send_pm: "죄송합니다. %{username}님에게 메시지를 보낼 수 없습니다." admin_options_title: "이 토픽에 대한 옵션 설정" auto_close: label: "토픽 자동-닫기 시간:" @@ -859,7 +877,18 @@ ko: alt: mentioned: "멘션 by" quoted: "인용 by" + replied: "답글을 전송했습니다." posted: "포스트 by" + edited: "당신 글이 다음 이용자에 의해 수정" + liked: "당신의 글을 좋아했음." + private_message: "다음 사람에게서온 개인 메시지" + invited_to_private_message: "다음 사람으로부터 개인 메시지가 초대됨" + invited_to_topic: "다음 사람으로부터 한 주제로 초대됨" + invitee_accepted: "다음 사람에 의해 초대가 수락됨." + moved_post: "다음 사람에 의해서 당신의 글이 이동됨" + linked: "당신 글로 링크하기" + granted_badge: "뱃지가 수여됨." + group_message_summary: "그룹 메시지함의 메시지" popup: mentioned: '"{{topic}}" - {{site_title}}에서 {{username}} 님이 나를 멘션했습니다' quoted: '"{{topic}}" - {{site_title}}에서 {{username}} 님이 나를 인용했습니다' @@ -879,7 +908,12 @@ ko: select_file: "파일 선택" image_link: "이 이미지를 누르면 이동할 링크" search: + sort_by: "다음으로 정렬" + latest_post: "가장 최근 글" + most_viewed: "가장 많이 본" + most_liked: "가장 많이 좋아요를 받은" select_all: "모두 선택" + clear_all: "다 지우기" title: "토픽, 글, 사용자, 카테고리 검색" no_results: "검색 결과가 없습니다" no_more_results: "더 이상 결과가 없습니다." @@ -892,6 +926,7 @@ ko: topic: "이 토픽을 검색" private_messages: "메시지 검색" hamburger_menu: "다른 토픽 목록이나 카테고리로 가기" + new_item: "새로운" go_back: '돌아가기' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: '사용자 페이지로 이동' @@ -899,6 +934,9 @@ ko: bulk: reset_read: "읽기 초기화" delete: "토픽 삭제" + dismiss: "해지" + dismiss_read: "읽지않음 전부 해지" + dismiss_button: "해지..." dismiss_new: "새글 제거" toggle: "토픽 복수 선택" actions: "일괄 적용" diff --git a/config/locales/client.pt_BR.yml b/config/locales/client.pt_BR.yml index 215061353..84dbeab8a 100644 --- a/config/locales/client.pt_BR.yml +++ b/config/locales/client.pt_BR.yml @@ -100,6 +100,8 @@ pt_BR: x_years: one: "1 ano depois" other: "%{count} anos depois" + previous_month: 'Mês Anterior' + next_month: 'Próximo Mês' share: topic: 'compartilhe o link desse tópico' post: 'post #%{postNumber}' @@ -110,6 +112,7 @@ pt_BR: email: 'enviar esse link para um email' action_codes: split_topic: "dividiu este tópico %{when}" + invited_user: "convidou %{who} %{when}" autoclosed: enabled: 'fechou %{when}' disabled: 'abriu %{when}' @@ -130,6 +133,9 @@ pt_BR: disabled: 'desalistou %{when}' topic_admin_menu: "ações administrativas do tópico" emails_are_disabled: "Todo o envio de email foi globalmente desabilitado por algum administrador. Nenhum email de notificações de qualquer tipo será enviado." + s3: + regions: + sa_east_1: "América do Sul (São Paulo)" edit: 'edite o título e a categoria deste tópico' not_implemented: "Esse recurso ainda não foi implementado, desculpe!" no_value: "Não" @@ -173,6 +179,7 @@ pt_BR: other: "{{count}} caracteres" suggested_topics: title: "Tópicos sugeridos" + pm_title: "Mensagens Sugeridas" about: simple_title: "Sobre" title: "Sobre %{title}" @@ -294,6 +301,12 @@ pt_BR: one: "1 usuário" other: "%{count} usuários" groups: + empty: + posts: "Não há postagens por membros deste grupo." + members: "Não há membros neste grupo." + mentions: "Não há menção a este grupo." + messages: "Não há mensagens para este grupo." + topics: "Não há topicos por membros deste grupo." add: "Adicionar" selector_placeholder: "Adicionar membros" owner: "proprietário" @@ -304,6 +317,7 @@ pt_BR: members: "Membros" posts: "Mensagens" alias_levels: + title: "Quem pode enviar mensagem e @mention a este grupo?" nobody: "Ninguém" only_admins: "Somente administradores" mods_and_admins: "Somente moderadores e Administradores" @@ -312,6 +326,18 @@ pt_BR: trust_levels: title: "Nível de Confiança automaticamente concedido aos membros quando eles são incluídos" none: "Nenhum" + notifications: + watching: + description: "Você será notificado sobre toda nova postagem em toda mensagem, e uma contagem de novas mensagens será mostrada." + tracking: + title: "Rastreando" + description: "Você será notificado se alguém mencionar seu @name ou responder a você, e uma contagem de novas respostas será mostrada." + regular: + title: "Normal" + description: "Você será notificado se alguém mencionar seu @name ou responder a você." + muted: + title: "Mudo" + description: "Você será notificado sobre qualquer coisa sobre novos tópicos neste grupo." user_action_groups: '1': "Curtidas dadas" '2': "Curtidas recebidas" @@ -330,6 +356,7 @@ pt_BR: all_subcategories: "todos" no_subcategory: "nenhum" category: "Categoria" + category_list: "Exibir lista de categorias." reorder: title: "Reordenar Categorias" title_long: "Reorganizar a lista de categorias" diff --git a/config/locales/client.ro.yml b/config/locales/client.ro.yml index 7e4c3935d..d0ddfd41d 100644 --- a/config/locales/client.ro.yml +++ b/config/locales/client.ro.yml @@ -8,24 +8,32 @@ ro: js: number: + format: + separator: "." + delimiter: "," human: storage_units: format: '%n %u' units: byte: - one: Bit - few: Biți - other: Biți + one: Byte + few: Byte + other: Byte gb: GB kb: KB mb: MB tb: TB + short: + thousands: "{{number}}k" + millions: "{{number}}M" dates: time: "HH:mm" long_no_year: "DD MMM HH:mm" long_no_year_no_time: "DD MMM" + full_no_year_no_time: "Do MMMM " long_with_year: "DD MMM YYYY HH:mm" long_with_year_no_time: "DD MMM YYYY" + full_with_year_no_time: "Do MMMM YYYY" long_date_with_year: "DD MMM 'YY HH:mm" long_date_without_year: "DD MMM HH:mm" long_date_with_year_without_time: "DD MMM 'YY" @@ -69,8 +77,8 @@ ro: one: "1a" few: "%{count}a" other: "%{count}a" - date_month: "Z LLL" - date_year: "LLL 'AA" + date_month: "DD MMMM" + date_year: "MMM 'YY" medium: x_minutes: one: "1 min" @@ -84,10 +92,10 @@ ro: one: "1 zi" few: "%{count} zile" other: "%{count} zile" - date_year: "Z LL AAAA" + date_year: "D MM YYYY" medium_with_ago: x_minutes: - one: "acum 1 min" + one: "acum un min" few: "acum %{count} min" other: "acum %{count} min" x_hours: @@ -100,28 +108,34 @@ ro: other: "acum %{count} zile" later: x_days: - one: "După 1 zi" + one: "După o zi" few: "După %{count} zile" other: "După %{count} zile" + x_months: + one: "o lună mai târziu" + few: "%{count} luni mai târziu" + other: "%{count} de luni mai târziu" x_years: - one: "După 1 an" + one: "După un an" few: "După %{count} ani" other: "După %{count} ani" + previous_month: 'Luna anterioară' + next_month: 'Luna următoare' share: - topic: 'distribuie adresă către această discuție' - post: 'distribuie o adresă către postarea #%{postNumber}' + topic: 'distribuie această discuție' + post: 'distribuie postarea #%{postNumber}' close: 'închide' - twitter: 'distribuie această adresă pe Twitter' - facebook: 'distribuie această adresă pe Facebook' - google+: 'distribuie această adresă pe Google+' - email: 'trimite această adresă în email' + twitter: 'distribuie pe Twitter' + facebook: 'distribuie pe Facebook' + google+: 'distribuie pe Google+' + email: 'trimite această adresă peemail' action_codes: - split_topic: "despartiti acest topic %{when}" + split_topic: "desparțiți acest topic %{when}" autoclosed: - enabled: 'inchis %{count}' + enabled: 'închis %{count}' disabled: 'deschis %{when}' closed: - enabled: 'inchis %{when}' + enabled: 'închis %{when}' disabled: 'deschis %{when}' archived: enabled: 'arhivat %{when}' @@ -137,6 +151,19 @@ ro: disabled: 'retras %{when}' topic_admin_menu: "acțiuni subiect administrator" emails_are_disabled: "Trimiterea de emailuri a fost dezactivată global de către un administrator. Nu vor fi trimise notificări email de nici un fel." + s3: + regions: + us_east_1: "US East (N. Virginia)" + us_west_1: "US West (N. California)" + us_west_2: "US West (Oregon)" + us_gov_west_1: "AWS GovCloud (US)" + eu_west_1: "EU (Irlanda)" + eu_central_1: "EU (Frankfurt)" + ap_southeast_1: "Asia Pacific (Singapore)" + ap_southeast_2: "Asia Pacific (Sydney)" + ap_northeast_1: "Asia Pacific (Tokyo)" + ap_northeast_2: "Asia Pacific (Seoul)" + sa_east_1: "South America (Sao Paulo)" edit: 'editează titlul și categoria acestui subiect' not_implemented: "Această caracteristică nu a fost implementată încă, ne pare rău!" no_value: "Nu" @@ -150,7 +177,7 @@ ro: admin_title: "Admin" flags_title: "Semnalare" show_more: "Detaliază" - show_help: "Optiuni" + show_help: "Opțiuni" links: "Adrese" links_lowercase: one: "adresă" @@ -182,6 +209,7 @@ ro: other: "{{count}} caractere" suggested_topics: title: "Subiecte Propuse" + pm_title: "Subiecte Propuse" about: simple_title: "Despre" title: "Despre %{title}" @@ -228,7 +256,7 @@ ro: preview: "vizualizează" cancel: "anulează" save: "Salvează Schimbările" - saving: "Salvează..." + saving: "Se Salvează..." saved: "Salvat!" upload: "Încarcă" uploading: "Încărcare..." @@ -310,6 +338,8 @@ ro: other: "%{count} utilizatori" groups: add: "Adăugați" + selector_placeholder: "Adaugă membri" + owner: "proprietar" visible: "Grupul este vizibil tuturor utilizatorilor" title: one: "grup" @@ -323,6 +353,9 @@ ro: mods_and_admins: "Doar moderatorii și adminii" members_mods_and_admins: "Doar membri grupului, moderatorii și adminii" everyone: "Toată lumea" + notifications: + regular: + title: "Normal" user_action_groups: '1': "Aprecieri Date" '2': "Aprecieri Primite" @@ -447,6 +480,9 @@ ro: warnings_received: "avertizări" messages: all: "Toate" + sent: "Trimise" + archive: "Arhivează" + move_to_archive: "Arhivează" change_password: success: "(email trimis)" in_progress: "(se trimite email)" @@ -592,6 +628,9 @@ ro: same_as_email: "Parolă este identică cu adresa de email" ok: "Parola dumneavoastră arată bine." instructions: "Trebuiesc minim %{count} de caractere." + summary: + likes_given: "Aprecieri Date" + likes_received: "Aprecieri Primite" associated_accounts: "Conectări" ip_address: title: "Ultima adresă de IP" @@ -915,6 +954,8 @@ ro: create: 'Crează discuție' create_long: 'Crează discuție nouă' private_message: 'Scrie un mesaj.' + archive_message: + title: 'Arhivează' list: 'Discuții' new: 'discuție nouă' unread: 'necitită' @@ -1002,6 +1043,10 @@ ro: title: "Urmărind" tracking: title: "Urmărind" + regular: + title: "Normal" + regular_pm: + title: "Normal" muted_pm: title: "Silențios" description: "Nu veţi fi niciodată notificat despre acest mesaj." @@ -1324,6 +1369,7 @@ ro: category: can: 'can… ' none: '(nicio categorie)' + all: 'Toate categoriile' choose: 'Selectează o categorie…' edit: 'editează' edit_long: "Editează" @@ -1375,6 +1421,8 @@ ro: title: "Vizualizare" tracking: title: "Urmărire" + regular: + title: "Normal" muted: title: "Silențios" flagging: @@ -1391,6 +1439,7 @@ ro: submit_tooltip: "Acceptă marcarea privată" take_action_tooltip: "Accesati permisiunea marcarii imediat, nu mai asteptati alte marcaje comune" cant: "Ne pare rău nu puteți marca această postare deocamdată." + notify_staff: 'Anunță moderatorii' formatted_name: off_topic: "În afară discuției" inappropriate: "Inadecvat" @@ -1467,6 +1516,7 @@ ro: with_topics: "%{filter} Discuții" with_category: "%{filter} %{category} discuții" latest: + title: "Ultimele" help: "Discuții cu postări recente" hot: title: "Interesant" @@ -1482,9 +1532,15 @@ ro: title_in: "Categoria - {{categoryName}}" help: "toate discuțiile grupate pe categorii" unread: + title: "Necitite" + title_with_count: + one: "Necitit (1)" + few: "Necitite ({{count}})" + other: "Necitite ({{count}})" help: "discuțiile pe care le vizualizați sau urmariți momentan ce includ postări necitite" new: lower_title: "noi" + title: "Nou" help: "discuții create în ultimele zile" posted: title: "Postările mele" @@ -1501,6 +1557,8 @@ ro: title: "Dintotdeauna" yearly: title: "Anual" + quarterly: + title: "Trimestrial" monthly: title: "Lunar" weekly: @@ -1508,7 +1566,12 @@ ro: daily: title: "Zilnic" all_time: "Dintotdeauna" + this_year: "An" + this_quarter: "Trimestru" + this_month: "Lună" + this_week: "Săptămană" today: "Astăzi" + other_periods: "vezi topul" browser_update: 'Din nefericire, browserul dumneavoastră este prea vechi pentru a funcționa pe acest forum . Va rugăm reânoiți browserul.' permission_types: full: "Crează / Răspunde / Vizualizează" @@ -1542,9 +1605,10 @@ ro: suspended: 'Suspendați:' private_messages_short: "Msgs" private_messages_title: "Mesaje" + mobile_title: "Mobil" space_free: "{{size}} liber" uploads: "încărcări" - backups: "salvări" + backups: "backups" traffic_short: "trafic" traffic: "Cereri web" page_views: "Cereri API" @@ -1564,6 +1628,7 @@ ro: refresh_report: "Reactualizează Raportul" start_date: "Data de început " end_date: "Data de sfârşit" + groups: "Toate grupurile" commits: latest_changes: "Ultimele schimbări: Vă rugăm reactualizați des!" by: "de către" @@ -1649,15 +1714,23 @@ ro: delete_confirm: "Șterg acest grup?" delete_failed: "Imposibil de șters grupul. Dacă este unul automat, nu se poate șterge." delete_member_confirm: "Şterge '%{username}' din grupul '%{group}'?" + delete_owner_confirm: "Revocă dreptul de proprietar pentru '%{username}'?" name: "Nume" add: "Adaugă" add_members: "Adaugă membri" custom: "Personalizat" + bulk_complete: "Utilizatorii au fost adăugați în grup." + bulk: "Adaugă în grup la grămadă" + bulk_paste: "Lipiți o listă de utilizatori sau email-uri, unul pe linie:" + bulk_select: "(selectați un grup)" automatic: "Automat" automatic_membership_email_domains: "Utilizatorii care se înregistrează cu un domeniu de email care se potriveşte cu unul din lista va fi adăugat automat în aces grup:" automatic_membership_retroactive: "Aplicaţi aceeaşi regulă pentru domeniul de email pentru a adaugă utilizatorii existenţi" default_title: "Titlu automat pentru toţi utilizatorii din acest grup" primary_group: "Setează automat că grup primar" + group_owners: Proprietari + add_owners: Adaugă proprietari + incoming_email_placeholder: "introduceți adresa de email" api: generate_master: "Generează cheie API principală" none: "Nu sunt chei API principale active deocamdată." @@ -1678,12 +1751,16 @@ ro: name: "Nume" none_installed: "Nu aveţi nici un plugin instalat." version: "Versiune" + enabled: "Activat?" + is_enabled: "D" + not_enabled: "N" change_settings: "Schimbă Setările" + change_settings_short: "Setări" howto: "Cum instalez un plugin?" backups: - title: "Rezervare" + title: "Backups" menu: - backups: "Rezerve" + backups: "Backups" logs: "Rapoarte" none: "Nicio rezervare valabilă." read_only: @@ -1711,7 +1788,7 @@ ro: cancel: label: "Anulează" title: "Anulează operația curentă" - confirm: "Sunteți sigur că doriți să anulati operația curentă?" + confirm: "Sunteți sigur că doriți să anulați operația curentă?" backup: label: "Salvare de siguranţă" title: "Creați o rezervă" @@ -1744,6 +1821,8 @@ ro: screened_email: "Exportă lista totală a adreselor de email verificate în format CSV." screened_ip: "Exportă lista totală a adreselor de IP verificate în format CSV." screened_url: "Exportă lista totală a adreselor URL verificate în format CSV." + export_json: + button_text: "Exportă" invite: button_text: "Trimite o invitație" button_title: "Trimite o invitație" @@ -1754,6 +1833,7 @@ ro: header: "Titlu" top: "Top" footer: "Subsol" + embedded_css: "Embedded CSS" head_tag: text: "" title: "HTML care va fi inserat înaintea de tag-ul " @@ -1771,12 +1851,22 @@ ro: save: "Salvează" new: "Nou" new_style: "Stil nou" + import: "Importă" + import_title: "Selectați un fișier sau lipiți un text" delete: "Șterge" delete_confirm: "Șterge aceste preferințe?" about: "Modifică foaia de stil CSS și capetele HTML Modify CSS din site. Adaugă o preferința pentru a începe." color: "Culoare" opacity: "Opacitate" copy: "Copiază" + email_templates: + title: "Sabloane" + subject: "Subiect" + multiple_subjects: "Acest șablon are mai multe subiecte" + body: "Body" + none_selected: "Selectați un șablon pentru a începe editarea" + revert: "Revocați schimbările" + revert_confirm: "Ești sigur că vreți să revocați schimbările?" css_html: title: "CSS/HTML" long_title: "Customizarile CSS and HTML" @@ -1825,13 +1915,17 @@ ro: name: 'wiki' description: "Culoarea de bază folosită pentru fundalul postărilor pe wiki." email: + title: "Emails" settings: "Opțiuni" + templates: "Șabloane" preview_digest: "Previzualizează rezumat" sending_test: "Trimite email de test..." error: "EROARE - %{server_error}" test_error: "S-a semnalat o problemă la trimtirerea email-ului. Vă rugăm verificați setările mailului, Verificați ca gazda sa nu bocheze conexiunile de email și reâncercați." sent: "Trimise" skipped: "Omise" + received: "Primite" + rejected: "Respinse" sent_at: "Trimise la" time: "Timp" user: "Utilizator" @@ -1848,6 +1942,18 @@ ro: last_seen_user: "Ultimul utilizator văzut:" reply_key: "Cheie de răspuns" skipped_reason: "Motiv omiterii" + incoming_emails: + from_address: "De la" + to_addresses: "Către" + cc_addresses: "Cc" + subject: "Subiect" + error: "Eroare" + filters: + from_placeholder: "from@example.com" + to_placeholder: "to@example.com" + cc_placeholder: "cc@example.com" + subject_placeholder: "Subiect..." + error_placeholder: "Eroare" logs: none: "Nu s-au găsit rapoarte." filters: @@ -1897,6 +2003,7 @@ ro: change_site_setting: "schimbă setările site-ului" change_site_customization: "schimbă preferințele site-ului" delete_site_customization: "șterge preferințele site-ului" + change_site_text: "schimbă textul site-ului" suspend_user: "suspendă utilizator" unsuspend_user: "reactivează utilizator" grant_badge: "acordă insignă" @@ -1906,6 +2013,15 @@ ro: delete_post: "şterge mesajul" impersonate: "joacă rolul" anonymize_user: "fă userul anonim" + change_category_settings: "schimbă setările categoriei" + delete_category: "șterge categorie" + create_category: "crează categorie" + block_user: "blochează utilizator" + unblock_user: "deblochează utilizator" + grant_admin: "Acordă titlul de Admin" + revoke_admin: "Revocă titlul de Admin" + grant_moderation: "Acordă titlul de Moderator" + revoke_moderation: "Revocă titlul de Moderator" screened_emails: title: "Email-uri filtrate" description: "Când cineva încearcă să creeze un nou cont, următorul email va fi verificat iar înregistrarea va fi blocată, sau o altă acțiune va fi inițiată." @@ -1970,6 +2086,9 @@ ro: pending: 'Utilizatori în așteptare de previzualizare' newuser: 'Utilizatori la nielul de încredere 0 (utilizator nou)' basic: 'Utilizatori la nivel de încredere 1 (utilizator de baza)' + member: 'Utilizatori la nivel de încredere 2 (Membri)' + regular: 'Utilizatori la nivel de încredere 3 (Utilizator activ)' + leader: 'Utilizatori la nivel de încredere 4 (Lider)' staff: "Personalul" admins: 'Utilizatori admin' moderators: 'Moderatori' @@ -2071,6 +2190,7 @@ ro: deactivate_failed: "S-a semnalat o problemă la dezactivarea utilizatoprului." unblock_failed: 'S-a semnalat o problemă la deblocarea utlizatorului.' block_failed: 'S-a semnalat o problemă la blocarea utilizatorului.' + block_accept: 'Blochează utilizatorul' deactivate_explanation: "Un utilizator dezactivat va trebuii sa-și reactvieze emailul." suspended_explanation: "Un utilizator suspendat nu se poate autentifica" block_explanation: "Un utilizator blocat nu poate posta sau pornii o discuție." @@ -2126,6 +2246,7 @@ ro: delete: "Șterge" cancel: "Anulează" delete_confirm: "Sunteți sigur că stergeți acest câmp utilizator?" + options: "Optiuni" required: title: "Necesar la înscriere?" enabled: "necesar" @@ -2141,8 +2262,14 @@ ro: field_types: text: 'Câmp Text' confirm: 'Confirmare' + dropdown: "Select" site_text: title: 'Conținut' + edit: 'editează' + revert: "Revocați schimbările" + revert_confirm: "Ești sigur că vreți să revocați schimbările?" + go_back: "Înapoi la căutare" + show_overriden: 'Arată doar rescrierile' site_settings: show_overriden: 'Arată doar rescrierile' title: 'Setări' @@ -2172,6 +2299,7 @@ ro: backups: "Rezervări" login: "Autentificare" plugins: "Plugin-uri" + user_preferences: "Preferințe" badges: title: Insigne new_badge: Insignă nouă @@ -2241,6 +2369,16 @@ ro: image: "Imagine" delete_confirm: "Sunteţi sigur că doriţi să ștergeți :%{name}: emoji?" embedding: + confirm_delete: "Sunteți sigur că vreți să ștergeți acest host?" + sample: "Folosiți următorul cod HTML în site-ul dvs. pentru a crea și pentru a embed-ui topic-uri discourse. Înlocuiți REPLACE_ME cu URL-ul canonic al paginii pe care doriți să o embed-uiți." + title: "Embedding" + host: "Host-uri permise" + edit: "editează" + category: "Postează în categoria" + add_host: "Adaugă host" + settings: "Setări pentru embeding" + feed_settings: "Setări Feed" + embed_post_limit: "Numărul maxim de postări de încorporat." save: "Salvați setările pentru embeding" permalink: title: "Link-uri" @@ -2312,6 +2450,7 @@ ro: mark_tracking: 'm, t Urmăriți discuția' mark_watching: 'm, w Urmăriți discuția îndeaproape' badges: + more_with_badge: "Alții cu această insignă" title: Insigne allow_title: "poate fi folosit ca titlu" multiple_grant: "pot fi acordate de mai multe ori" diff --git a/config/locales/client.vi.yml b/config/locales/client.vi.yml index a3da01812..7623c339b 100644 --- a/config/locales/client.vi.yml +++ b/config/locales/client.vi.yml @@ -81,6 +81,8 @@ vi: other: "còn %{count} tháng" x_years: other: "còn %{count} năm" + previous_month: 'Tháng Trước' + next_month: 'Tháng Sau' share: topic: 'chia sẽ chủ đề này' post: 'đăng #%{Bài đăng số}' @@ -91,6 +93,8 @@ vi: email: 'Gửi liên kết này qua thư điện tử' action_codes: split_topic: "chìa chủ đề này lúc %{when}" + invited_user: "đã mời bởi %{who} %{when}" + removed_user: "loại bỏ bởi %{who} %{when}" autoclosed: enabled: 'đóng lúc %{when}' disabled: 'mở lúc %{when}' @@ -111,6 +115,19 @@ vi: disabled: 'bỏ lưu %{when}' topic_admin_menu: "quản lí chủ đề." emails_are_disabled: "Ban quản trị đã chặn mọi email đang gửi. Sẽ không có bắt kỳ thông báo nào về email được gửi đi." + s3: + regions: + us_east_1: "US East (N. Virginia)" + us_west_1: "US West (N. California)" + us_west_2: "US West (Oregon)" + us_gov_west_1: "AWS GovCloud (US)" + eu_west_1: "EU (Ireland)" + eu_central_1: "EU (Frankfurt)" + ap_southeast_1: "Asia Pacific (Singapore)" + ap_southeast_2: "Asia Pacific (Sydney)" + ap_northeast_1: "Asia Pacific (Tokyo)" + ap_northeast_2: "Asia Pacific (Seoul)" + sa_east_1: "South America (Sao Paulo)" edit: 'thay đổi tiêu đề và chuyên mục của chủ đề' not_implemented: "Tính năng này chưa được hoàn thiện hết, xin lỗi!" no_value: "Không" @@ -152,6 +169,7 @@ vi: other: "{{count}} ký tự" suggested_topics: title: "Chủ đề tương tự" + pm_title: "Tin nhắn gợi ý" about: simple_title: "Giới thiệu" title: "Giới thiệu về %{title}" @@ -267,12 +285,22 @@ vi: total_rows: other: "%{count} người dùng" groups: + empty: + posts: "Không có chủ đề của các thành viên trong nhóm" + members: "Không có thành viên nào trong nhóm" + mentions: "Không có thành viên nào trong nhóm" + messages: "Không có tin nhắn nào trong nhóm" + topics: "Không có chủ đề của các thành viên trong nhóm" + add: "Thêm" + selector_placeholder: "Thêm thành viên" + owner: "chủ" visible: "Mọi thành viên có thể nhìn thấy nhóm" title: other: "các nhóm" members: "Các thành viên" posts: "Các bài viết" alias_levels: + title: "Ai có thể nhắn tin và @mention trong nhóm này?" nobody: "Không ai cả" only_admins: "Chỉ các quản trị viên" mods_and_admins: "Chỉ có người điều hành và ban quản trị" @@ -281,6 +309,19 @@ vi: trust_levels: title: "Cấp độ tin tưởng tự động tăng cho thành viên khi họ thêm:" none: "Không có gì" + notifications: + watching: + title: "Đang xem" + description: "Bạn sẽ được thông báo khi có bài viết mới trong mỗi tin nhắn, và số lượng trả lời mới sẽ được hiển thị" + tracking: + title: "Đang theo dõi" + description: "Bạn sẽ được thông báo nếu ai đó đề cập đến @tên bạn hoặc trả lời bạn, và số lượng trả lời mới sẽ được hiển thị" + regular: + title: "Bình thường" + description: "Bạn sẽ được thông báo nếu ai đó đề cập đến @tên bạn hoặc trả lời bạn" + muted: + title: "Im lặng" + description: "Bạn sẽ không bao giờ được thông báo về bất cứ chủ đề mới nào trong nhóm này" user_action_groups: '1': "Lần thích" '2': "Lần được thích" @@ -299,6 +340,7 @@ vi: all_subcategories: "Tất cả" no_subcategory: "không có gì" category: "Chuyên mục" + category_list: "Hiễn thị danh sách chuyên mục" reorder: title: "Sắp xếp lại danh mục" title_long: "Tổ chức lại danh sách danh mục" @@ -353,12 +395,13 @@ vi: invited_by: "Được mời bởi" trust_level: "Độ tin tưởng" notifications: "Thông báo" + statistics: "Thống kê" desktop_notifications: label: "Desktop Notifications" not_supported: "Xin lỗi. Trình duyệt của bạn không hỗ trợ Notification." perm_default: "Mở thông báo" perm_denied_btn: "Không có quyền" - perm_denied_expl: "Bạn bị từ chối quyền cho notification. Dùng trình duyệt của bạn để kích hoạt notification, sau đó nhấp nút này khi hoàn thành. (Desktop: Icon bên trái của thanh địa chỉ. Mobile: 'Site Info'.)" + perm_denied_expl: "Bạn đã từ chối nhận thông báo, để nhận lại bạn cần thiết lập trình duyệt." disable: "Khóa Notification" currently_enabled: "(đang cho phép)" enable: "Cho phép Notification" @@ -386,6 +429,7 @@ vi: tracked_categories: "Theo dõi" tracked_categories_instructions: "Bạn sẽ tự động theo dõi tất cả các chủ đề trong các chuyên mục này. Một số bài viết mới sẽ xuất hiện ở chủ đề kế tiếp." muted_categories: "Im lặng" + muted_categories_instructions: "Bạn sẽ không bao giờ được thông báo về bất cứ điều gì về các chủ đề mới trong các chuyên mục này, và chúng sẽ không hiển thị mới nhất" delete_account: "Xoá Tài khoản của tôi" delete_account_confirm: "Bạn có chắc chắn muốn xóa vĩnh viễn tài khoản của bạn? Hành động này không thể được hoàn tác!" deleted_yourself: "Tài khoản của bạn đã được xóa thành công." @@ -395,6 +439,8 @@ vi: users: "Thành viên" muted_users: "Im lặng" muted_users_instructions: "Ngăn chặn tất cả các thông báo từ những thành viên." + muted_topics_link: "Hiển thị chủ đề Im Lặng" + automatically_unpin_topics: "Tự động theo dõi tiêu đề bạn vào " staff_counters: flags_given: "cờ hữu ích" flagged_posts: "bài viết gắn cờ" @@ -403,6 +449,15 @@ vi: warnings_received: "cảnh báo" messages: all: "Tất cả" + inbox: "Hộp thư" + sent: "Đã gửi" + archive: "Lưu Trữ" + groups: "Nhóm của tôi" + bulk_select: "Chọn tin nhắn" + move_to_inbox: "Chuyển sang hộp thư" + move_to_archive: "Lưu trữ" + failed_to_move: "Lỗi khi chuyển các tin nhắn đã chọn (có thể do lỗi mạng)" + select_all: "Chọn tất cả" change_password: success: "(email đã gửi)" in_progress: "(đang gửi email)" @@ -447,6 +502,9 @@ vi: ok: "Chúng tôi sẽ gửi thư điện tử xác nhận đến cho bạn" invalid: "Vùi lòng nhập một thư điện tử hợp lệ" authenticated: "Thư điện tử của bạn đã được xác nhận bởi {{provider}}" + frequency_immediately: "Chúng tôi sẽ gửi email cho bạn ngay lập tức nếu bạn đã chưa đọc những điều chúng tôi đã gửi cho bạn qua email." + frequency: + other: "Chúng tôi sẽ chỉ gửi email cho bạn nếu chúng tôi đã không nhìn thấy bạn trong {{count}} phút cuối." name: title: "Tên" instructions: "Tên đầy đủ của bạn (tùy chọn)" @@ -517,6 +575,9 @@ vi: title: "Lời mời" user: "User được mời" sent: "Đã gửi" + none: "Không có thư mời nào đang chờ để hiển thị" + truncated: + other: "Hiện {{count}} thư mời đầu tiên" redeemed: "Lời mời bù lại" redeemed_tab: "Làm lại" redeemed_tab_with_count: "Làm lại ({{count}})" @@ -536,6 +597,7 @@ vi: account_age_days: "Thời gian của tài khoản theo ngày" create: "Gửi một lời mời" generate_link: "Chép liên kết Mời" + generated_link_message: '

    Liên kết thư mời được tạo thành công!

    Liên kết thư mời chỉ hợp lệ cho email này: %{invitedEmail}

    ' bulk_invite: none: "Bạn đã mời ai ở đây chưa. Bạn có thể mời một hoặc một nhóm bằng tải lên hàng loạt file mời." text: "Mời hàng loạt bằng file" @@ -550,6 +612,21 @@ vi: same_as_email: "Mật khẩu của bạn trùng với email của bạn." ok: "Mật khẩu của bạn có vẻ ổn." instructions: "Ít nhất %{count} ký tự" + summary: + title: "Tóm tắt" + stats: "Thống kê" + topic_count: "Chủ đề đã tạo" + post_count: "Bài viết đã tạo" + likes_given: "Lượt Likes" + likes_received: "Likes đã nhận" + days_visited: "Ngày đã ghé thăm" + posts_read_count: "Bài viết đã đọc" + top_replies: "Top trả lời" + top_topics: "Top chủ đề" + top_badges: "Top huy hiệu" + more_topics: "Thêm chủ đề" + more_replies: "Thêm trả lời" + more_badges: "Thêm huy hiệu" associated_accounts: "Đăng nhập" ip_address: title: "Địa chỉ IP cuối cùng" @@ -581,6 +658,7 @@ vi: network_fixed: "Hình như nó trở lại." server: "Mã lỗi : {{status}}" forbidden: "Bạn không được cho phép để xem mục này" + not_found: "Oops, ứng dụng đang tải đường dẫn không tồn tại" unknown: "Có một lỗi gì đó đang xảy ra" buttons: back: "Quay trở lại" @@ -591,8 +669,11 @@ vi: logout: "Bạn đã đăng xuất" refresh: "Tải lại" read_only_mode: - enabled: "Chế độ chỉ đọc được kích hoạt. Bạn có thể tiếp tục duyệt tới trang web, nhưng các tương tác có thể không hoạt động." + enabled: "Website đang ở chế độ chỉ đọc, bạn có thể duyệt xem nhưng không thể trả lời, likes, hay thực hiện các hành động khác." login_disabled: "Chức năng Đăng nhập đã bị tắt khi website trong trạng thái chỉ đọc" + too_few_topics_and_posts_notice: "Hãy bắt đầu thảo luận! Hiện có %{currentTopics} / %{requiredTopics} chủ đề và %{currentPosts} / %{requiredPosts} bài viết. Khách ghé thăm cần một số chủ đề để đọc và trả lời." + too_few_topics_notice: "Hãy bắt đầu thảo luận! Hiện có %{currentTopics} / %{requiredTopics} chủ đề. Khách ghé thăm cần một số chủ đề để đọc và trả lời." + too_few_posts_notice: "Hãy bắt đầu thảo luận! Hiện có %{currentPosts} / %{requiredPosts} bài viết. Khách ghé thăm cần một số chủ đề để đọc và trả lời." learn_more: "tìm hiểu thêm..." year: 'năm' year_desc: 'chủ đề được tạo ra trong 365 ngày qua' @@ -612,6 +693,9 @@ vi: sign_up: "Đăng ký" hide_session: "Nhắc vào ngày mai" hide_forever: "không, cảm ơn" + hidden_for_session: "OK, Tôi sẽ hỏi bạn vào ngày mai. Bạn có thể luôn luôn sử dụng chức năng đăng nhập để tạo tài khoản." + intro: "Xin chào! :heart_eyes: Có vẻ như bạn đang thích thú để thảo luận, nhưng bạn chưa đăng nhập." + value_prop: "Khi bạn tạo tài khoản, website nhớ chính xác những gì bạn đã đọc, vì vậy bạn sẽ luôn trở lại đúng nơi đã rời đi. Bạn cũng có thể nhận thông báo ở đây hoặc qua email mỗi khi có bài viết mới. Bạn cũng có thể like bài viết để chia sẻ cảm xúc của mình. :heartbeat:" summary: enabled_description: "Bạn đang xem một bản tóm tắt của chủ đề này: các bài viết thú vị nhất được xác định bởi cộng đồng." description: "Có {{count}} trả lời" @@ -670,6 +754,8 @@ vi: resend_activation_email: "Bấm đây để gửi lại email kích hoạt" sent_activation_email_again: "Chúng tôi gửi email kích hoạt tới cho bạn ở {{currentEmail}}. Nó sẽ mất vài phút để đến; bạn nhớ check cả hồm thư spam nhe. " to_continue: "Vui lòng đăng nhập" + preferences: "Bạn cần phải đăng nhập để thay đổi cài đặt tài khoản." + forgot: "Tôi không thể nhớ lại chi tiết tài khoản của tôi." google: title: "với Google " message: "Chứng thực với Google (Bạn hãy chắc chắn là chặn popup không bật)" @@ -692,8 +778,13 @@ vi: google: "Google" twitter: "Twitter" emoji_one: "Emoji One" + shortcut_modifier_key: + shift: 'Shift' + ctrl: 'Ctrl' + alt: 'Alt' composer: - emoji: "Emoji :smile:" + emoji: "Emoji :)" + more_emoji: "thêm..." options: "Lựa chọn" whisper: "nói chuyện" add_warning: "Đây là một cảnh báo chính thức" @@ -704,6 +795,7 @@ vi: saved_local_draft_tip: "Đã lưu locally" similar_topics: "Bài viết của bạn tương tự với " drafts_offline: "Nháp offline" + group_mentioned: "Bằng cách sử dụng {{group}}, bạn có thể thông báo tới {{count}} người." error: title_missing: "Tiêu đề là bắt buộc" title_too_short: "Tiêu để phải có ít nhất {{min}} ký tự" @@ -726,6 +818,7 @@ vi: show_edit_reason: "(thêm lý do sửa)" reply_placeholder: "Gõ ở đây. Sử dụng Markdown, BBCode, hoặc HTML để định dạng. Kéo hoặc dán ảnh." view_new_post: "Xem bài đăng mới của bạn. " + saving: "Đang lưu" saved: "Đã lưu" saved_draft: "Bài nháp đang lưu. Chọn để tiếp tục." uploading: "Đang đăng " @@ -740,6 +833,7 @@ vi: link_description: "Nhập mô tả liên kết ở đây" link_dialog_title: "Chèn liên kết" link_optional_text: "tiêu đề tùy chọn" + link_placeholder: "http://example.com \"chữ tuỳ chọn\"" quote_title: "Trích dẫn" quote_text: "Trích dẫn" code_title: "Văn bản định dạng trước" @@ -754,7 +848,9 @@ vi: hr_title: "Căn ngang" help: "Trợ giúp soạn thảo bằng Markdown" toggler: "ẩn hoặc hiển thị bảng điều khiển soạn thảo" + modal_ok: "OK" modal_cancel: "Hủy" + cant_send_pm: "Xin lỗi, bạn không thể gởi tin nhắn đến %{username}." admin_options_title: "Tùy chọn quản trị viên cho chủ đề này" auto_close: label: "Thời gian tự khóa chủ đề:" @@ -771,6 +867,7 @@ vi: more: "xem thông báo cũ hơn" total_flagged: "tổng số bài viết gắn cờ" mentioned: "

    {{username}} {{description}}

    " + group_mentioned: "

    {{username}} {{description}}

    " quoted: "

    {{username}} {{description}}

    " replied: "

    {{username}} {{description}}

    " posted: "

    {{username}} {{description}}

    " @@ -783,6 +880,8 @@ vi: moved_post: "

    {{username}} chuyển {{description}}

    " linked: "

    {{username}} {{description}}

    " granted_badge: "

    Thu được '{{description}}'

    " + group_message_summary: + other: "

    {{count}} tin nhắn trong {{group_name}} của bạn

    " alt: mentioned: "Được nhắc đến bởi" quoted: "Trích dẫn bởi" @@ -791,11 +890,16 @@ vi: edited: "Bài viết của bạn được sửa bởi" liked: "Bạn đã like bài viết" private_message: "Tin nhắn riêng từ" + invited_to_private_message: "Lời mời thảo luận riêng từ" + invited_to_topic: "Lời mời tham gia chủ đề từ" invitee_accepted: "Lời mời được chấp nhận bởi" moved_post: "Bài viết của bạn đã được di chuyển bởi" linked: "Liên kết đến bài viết của bạn" + granted_badge: "Cấp huy hiệu" + group_message_summary: "Tin nhắn trong hộp thư đến" popup: mentioned: '{{username}} nhắc đến bạn trong "{{topic}}" - {{site_title}}' + group_mentioned: '{{username}} nhắc đến bạn trong "{{topic}}" - {{site_title}}' quoted: '{{username}} trích lời bạn trong "{{topic}}" - {{site_title}}' replied: '{{username}} trả lời cho bạn trong "{{topic}}" - {{site_title}}' posted: '{{username}} gửi bài trong "{{topic}}" - {{site_title}}' @@ -807,7 +911,9 @@ vi: from_my_computer: "Từ thiết bị của tôi" from_the_web: "Từ Web" remote_tip: "đường dẫn tới hình ảnh" + remote_tip_with_attachments: "chọn ảnh hoặc file {{authorized_extensions}}" local_tip: "chọn hình từ thiết bị của bạn" + local_tip_with_attachments: "chọn ảnh hoặc file {{authorized_extensions}} từ thiết bị của bạn" hint: "(Bạn cũng có thể kéo & thả vào trình soạn thảo để tải chúng lên)" hint_for_supported_browsers: "bạn có thể kéo và thả ảnh vào trình soan thảo này" uploading: "Đang tải lên" @@ -841,9 +947,17 @@ vi: current_user: 'đi đến trang cá nhân của bạn' topics: bulk: + unlist_topics: "Chủ đề không công khai" reset_read: "Đặt lại lượt đọc" delete: "Xóa chủ đề" + dismiss: "Bỏ qua" + dismiss_read: "Bỏ qua tất cả thư chưa đọc" + dismiss_button: "Bỏ qua..." + dismiss_tooltip: "Bỏ qua chỉ bài viết mới hoặc ngừng theo dõi chủ đề" + also_dismiss_topics: "Ngừng theo dõi các chủ đề này để không hiển thị lại là chủ đề chưa đọc" dismiss_new: "Bỏ " + toggle: "chuyển sang chọn chủ đề theo lô" + actions: "Hành động theo lô" change_category: "Chuyển chuyên mục" close_topics: "Đóng các chủ đề" archive_topics: "Chủ đề Lưu trữ" @@ -884,6 +998,12 @@ vi: create: 'Chủ đề Mới' create_long: 'Tạo một Chủ đề mới' private_message: 'Bắt đầu một thông điệp' + archive_message: + help: 'Chuyển tin nhắn sang lưu trữ' + title: 'Lưu trữ' + move_to_inbox: + title: 'Chuyển sang hộp thư' + help: 'Chuyển tin nhắn trở lại hộp thư' list: 'Chủ đề' new: 'chủ đề mới' unread: 'chưa đọc' @@ -928,6 +1048,7 @@ vi: auto_close_title: 'Tự động-Đóng các Cài đặt' auto_close_save: "Lưu" auto_close_remove: "Đừng Tự Động-Đóng Chủ Đề Này" + auto_close_immediate: "Bài viết cuối cùng trong chủ đề đã xảy ra %{hours} giờ qua, vì vậy chủ đề sẽ tự động đóng." progress: title: tiến trình của chủ đề go_top: "trên cùng" @@ -968,13 +1089,16 @@ vi: description: "Một số trả lời mới sẽ được hiển thị trong chủ đề này. Bạn sẽ được thông báo nếu ai đó đề cập đến @tên của bạn hoặc trả lời bạn" regular: title: "Bình thường" + description: "Bạn sẽ được thông báo nếu ai đó đề cập đến @tên bạn hoặc trả lời bạn" regular_pm: title: "Bình thường" + description: "Bạn sẽ được thông báo nếu ai đó đề cập đến @tên bạn hoặc trả lời bạn" muted_pm: title: "Im lặng" description: "Bạn sẽ không bao giờ được thông báo về bất cứ điều gì về tin nhắn này. " muted: title: "Im lặng" + description: "Bạn sẽ không nhận được bất kỳ thông báo nào trong chủ đề này, và chúng sẽ không hiển thị là mới nhất." actions: recover: "Không-Xóa Chủ Đề Này" delete: "Xóa-Chủ Đề Này" @@ -986,6 +1110,8 @@ vi: unpin: "Bỏ-Ghim Chủ Đề..." unarchive: "Chủ đề Không Lưu Trữ" archive: "Chủ Đề Lưu Trữ" + invisible: "Make Unlisted" + visible: "Make Listed" reset_read: "Đặt lại dữ liệu đọc" feature: pin: "Ghim Chủ Đề" @@ -1007,26 +1133,56 @@ vi: help: 'đánh dấu riêng tư chủ đề này cho sự chú ý hoặc gửi một thông báo riêng về nó' success_message: 'Bạn đã đánh dấu thành công chủ đề này' feature_topic: + title: "Đề cao chủ đề này" + pin: "Làm cho chủ đề này xuất hiện trên top của chuyên mục {{categoryLink}}" confirm_pin: "Bạn đã có {{count}} chủ đề được ghim. Qúa nhiều chủ đề được ghim có thể là một trở ngại cho những thành viên mới và thành viên ẩn danh. Bạn có chắc chắn muốn ghim chủ đề khác trong chuyên mục này?" unpin: "Xóa chủ đề này từ phần trên cùng của chủ đề {{categoryLink}}" + unpin_until: "Gỡ bỏ chủ đề này khỏi top của chuyên mục {{categoryLink}} và đợi cho đến %{until}." pin_note: "Người dùng có thể bỏ ghim chủ đề riêng cho mình" pin_validation: "Ngày được yêu câu để gắn chủ đề này" + not_pinned: "Không có chủ đề được ghim trong {{categoryLink}}." + already_pinned: + other: "Chủ đề gần đây được ghim trong {{categoryLink}}: {{count}}" + pin_globally: "Làm cho chủ đề này xuất hiện trên top của tất cả các chủ đề" + confirm_pin_globally: "Bạn đã có {{count}} chủ đề được ghim. Ghim quá nhiều chủ đề có thể là trở ngại cho những thành viên mới và ẩn danh. Bạn có chắc chắn muốn ghim chủ đề khác?" unpin_globally: "Bỏ chủ đề này khỏi phần trên cùng của danh sách tất cả các chủ đề" + unpin_globally_until: "Gỡ bỏ chủ đề này khỏi top của danh sách tất cả các chủ đề và đợi cho đến %{until}." global_pin_note: "Người dùng có thể bỏ ghim chủ đề riêng cho mình" + not_pinned_globally: "Không có chủ đề nào được ghim." + already_pinned_globally: + other: "Chủ đề gần đây được ghim trong: {{count}}" + make_banner: "Đặt chủ đề này là một banner xuất hiện trên top của tất cả các trang." + remove_banner: "Gỡ bỏ banner xuất hiện trên top của tất cả các trang." + banner_note: "Người dùng có thể bỏ qua banner này bằng cách đóng nó. Chỉ một chủ đề có thể được đặt là banner tại một thời điểm." + no_banner_exists: "Không có chủ đề banner nào." + banner_exists: "Có is đang là chủ đề banner." inviting: "Đang mời..." + automatically_add_to_groups_optional: "Lời mời này cũng bao gồm quyền truy cập vào các nhóm: (optional, admin only)" + automatically_add_to_groups_required: "Lời mời này cũng bao gồm quyền truy cập vào các nhóm: (Required, admin only)" invite_private: + title: 'Mời thảo luận' + email_or_username: "Email hoặc username người được mời" email_or_username_placeholder: "địa chỉ thư điện tử hoặc tên người dùng" action: "Mời" + success: "Chúng tôi đã mời người đó tham gia thảo luận này." error: "Xin lỗi, có lỗi khi mời người dùng này." group_name: "Nhóm tên" + controls: "Topic Controls" invite_reply: title: 'Mời' username_placeholder: "tên người dùng" action: 'Gửi Lời Mời' + help: 'mời người khác tham gia chủ đề thông qua email hoặc thông báo' to_forum: "Chúng tôi sẽ gửi một email tóm tắt cho phép bạn của bạn gia nhập trực tiệp bằng cách nhấp chuột vào một đường dẫn, không cần phải đăng nhập." sso_enabled: "Nhập tên đăng nhập hoặc địa chỉ email của người mà bạn muốn mời vào chủ đề này." to_topic_blank: "Nhập tên đăng nhập hoặc địa chỉ email của người bạn muốn mời đến chủ đề này." + to_topic_email: "Bạn vừa điền địa chỉ email, website sẽ gửi lời mời cho phép bạn bè của bạn có thể trả lời chủ đề này." + to_topic_username: "Bạn vừa điền tên thành viên, website sẽ gửi thông báo kèm theo lời mời họ tham gia chủ đề này." + to_username: "Điền tên thành viên bạn muốn mời, website sẽ gửi thông báo kèm theo lời mời họ tham gia chủ đề này." email_placeholder: 'name@example.com' + success_email: "Website vừa gửi lời mời tới {{emailOrUsername}} và sẽ thông báo cho bạn khi lời mời đó được chấp nhận. Kiểm tra tab lời mời trên trang tài khoản để theo dõi lời mời của bạn." + success_username: "Website đã mời người đó tham gia thảo luận này." + error: "Xin lỗi, chúng tôi không thể mời người đó. Có lẽ họ đã được mời? (giới hạn lời mời)" login_reply: 'Đăng nhập để trả lời' filters: n_posts: @@ -1037,20 +1193,29 @@ vi: action: "di chuyển tới chủ đề mới" topic_name: "Tên chủ đề mới" error: "Có lỗi khi di chuyển bài viết tới chủ đề mới." + instructions: + other: "Bạn muốn tạo chủ đề mới và phổ biến nó với {{count}} bài viết đã chọn." merge_topic: title: "Di chuyển tới chủ đề đang tồn tại" action: "di chuyển tới chủ đề đang tồn tại" error: "Có lỗi khi di chuyển bài viết đến chủ đề này." + instructions: + other: "Hãy chọn chủ đề bạn muốn di chuyển {{count}} bài viết này tới." change_owner: title: "Chuyển chủ sở hữu bài viết" action: "chuyển chủ sở hữu" + error: "Có lỗi xảy ra khi thay đổi quyền sở hữu của các bài viết." label: "Chủ sở hữ mới của Bài viết" placeholder: "tên đăng nhập của chủ sở hữu mới" + instructions: + other: "Hãy chọn chủ sở hữu mới cho {{count}} bài viết của {{old_user}}." + instructions_warn: "Lưu ý rằng bất kỳ thông báo nào về bài viết này sẽ không được chuyển giao cho thành viên mới trở về trước.
    Cảnh báo: Hiện không có dữ liệu bài viết phụ thuộc được chuyển giao cho thành viên mới. Hãy thận trọng!" change_timestamp: title: "Đổi Timestamp" action: "đổi timestamp" invalid_timestamp: "Timestamp không thể trong tương lai." error: "Có lỗi khi thay đổi timestamp của chủ đề." + instructions: "Hãy chọn dòng thời gian mới cho chủ đề, các bài viết trong chủ đề sẽ được cập nhật để có sự khác biệt cùng một lúc." multi_select: select: 'chọn' selected: 'đã chọn ({{count}})' @@ -1074,6 +1239,8 @@ vi: follow_quote: "đến bài viết trích dẫn" show_full: "Hiển thị đầy đủ bài viết" show_hidden: 'Xem nội dung ẩn' + deleted_by_author: + other: "(bài viết theo tác giả sẽ được xóa tự động sau %{count} giờ, trừ khi đã đánh dấu)" expand_collapse: "mở/đóng" gap: other: "xem {{count}} trả lời bị ẩn" @@ -1085,6 +1252,9 @@ vi: other: "{{count}} Thích" has_likes_title: other: "{{count}} người thích bài viết này" + has_likes_title_only_you: "bạn đã like bài viết này" + has_likes_title_you: + other: "bạn và {{count}} người khác đã like bài viết này" errors: create: "Xin lỗi, có lỗi xảy ra khi tạo bài viết của bạn. Vui lòng thử lại." edit: "Xin lỗi, có lỗi xảy ra khi sửa bài viết của bạn. Vui lòng thử lại." @@ -1104,7 +1274,7 @@ vi: via_email: "bài viết này đăng qua email" whisper: "bài viết này là lời nhắn từ điều hành viên" wiki: - about: "bài viết này là wiki; người dùng cơ bản có thể sửa nó" + about: "bài viết này là wiki" archetypes: save: 'Lưu lựa chọn' controls: @@ -1114,6 +1284,7 @@ vi: undo_like: "hủy like" edit: "sửa bài viết này" edit_anonymous: "Xin lỗi, nhưng bạn cần đăng nhập để sửa bài viết này." + flag: "đánh dấu bài viết này để tạo chú ý hoặc gửi một thông báo riêng về nó" delete: "xóa bài viết này" undelete: "hủy xóa bài viết này" share: "chia sẻ liên kết đến bài viết này" @@ -1123,14 +1294,18 @@ vi: other: "Bạn muốn xóa {{count}} trả lời cho bài viết này?" yes_value: "Đồng ý, xóa những trả lời" no_value: "Không, chỉ xóa chủ đề" + admin: "quản lý bài viết" wiki: "Tạo Wiki" unwiki: "Xóa Wiki" convert_to_moderator: "Thêm màu Nhân viên" revert_to_regular: "Xóa màu Nhân viên" rebake: "Tạo lại HTML" unhide: "Bỏ ẩn" + change_owner: "Đổi chủ sở hữu" actions: flag: 'Gắn cờ' + defer_flags: + other: "Đánh dấu hoãn" it_too: off_topic: "Gắn cờ nó" spam: "Gắn cờ nó" @@ -1191,6 +1366,8 @@ vi: other: "{{count}} người khác đánh dấu là rác" inappropriate: other: "{{count}} người khác đã đánh dấu là không phù hợp" + notify_moderators: + other: "{{count}} người đã đánh dấu để chờ duyệt" notify_user: other: "{{count}} gửi tin nhắn đến người dùng này" bookmark: @@ -1210,6 +1387,7 @@ vi: last: "Sửa đổi gần nhất" hide: "Ẩn sửa đổi" show: "Hiện sửa đổi" + comparing_previous_to_current_out_of_total: "{{previous}} {{current}} / {{total}}" displays: inline: button: ' HTML' @@ -1221,6 +1399,7 @@ vi: can: 'can…' none: '(không danh mục)' all: 'Tất cả danh mục' + choose: 'Chọn chuyên mục…' edit: 'sửa' edit_long: "Sửa" view: 'Xem Chủ đề trong Danh mục' @@ -1231,6 +1410,8 @@ vi: create: 'Chuyên mục mới' create_long: 'Tạo Chủ đề mới' save: 'Lưu chuyên mục' + slug: 'Đường dẫn chuyên mục' + slug_placeholder: '(Tùy chọn) các từ sử dụng trong url' creation_error: Có lỗi xảy ra khi tạo chuyên mục save_error: Có lỗi xảy ra khi lưu chuyên mục name: "Tên chuyên mục" @@ -1238,7 +1419,9 @@ vi: topic: "chủ đề chuyên mục" logo: "Logo của chuyên mục" background_image: "Ảnh nền của chuyên mục" + badge_colors: "Màu huy hiệu" background_color: "Màu nền" + foreground_color: "Màu mặt trước" name_placeholder: "Tối đa một hoặc hai từ" color_placeholder: "Bất cứ màu nào" delete_confirm: "Bạn có chắc sẽ xóa chuyên mục này chứ?" @@ -1248,46 +1431,71 @@ vi: change_in_category_topic: "Sửa mô tả" already_used: 'Màu này đã được dùng bởi chuyên mục khác' security: "Bảo mật" + special_warning: "Cảnh báo: Đây là chuyên mục có sẵn nên bạn không thể chỉnh sửa các thiết lập bảo mật. Nếu bạn muốn sử dụng chuyên mục này, hãy xóa nó thay vì tái sử dụng." images: "Hình ảnh" auto_close_label: "Tự động khóa chủ đề sau:" auto_close_units: "giờ" email_in: "Tùy chỉnh địa chỉ nhận thư điện tử " email_in_allow_strangers: "Nhận thư điện tử từ người gửi vô danh không tài khoản" + email_in_disabled: "Tạo chủ đề mới thông qua email đã được tắt trong thiết lập. Để bật tính năng này, " email_in_disabled_click: 'kích hoạt thiết lập thư điện tử' + suppress_from_homepage: "Ngăn chặn chuyên mục này hiển thị trên trang chủ." allow_badges_label: "Cho phép thưởng huy hiệu trong chuyên mục này" edit_permissions: "Sửa quyền" add_permission: "Thêm quyền" this_year: "năm nay" position: "vị trí" default_position: "vị trí mặc định" + position_disabled: "Chuyên mục sẽ được hiển thị theo thứ tự hoạt động. Để kiểm soát thứ tự chuyên mục trong danh sách, " + position_disabled_click: 'bật thiết lập "cố định vị trí chuyên mục".' parent: "Danh mục cha" notifications: watching: title: "Theo dõi" + description: "Bạn sẽ tự động xem tất cả các chủ đề mới trong các chuyên mục này. Bạn sẽ được thông báo về tất các các chủ đề mới, và một số bài viết mới sẽ được hiển thị." tracking: title: "Đang theo dõi" + description: "Bạn sẽ tự động theo dõi tất cả các chủ đề mới trong các chuyên mục này. Bạn sẽ được thông báo nếu ai đó đề cập đến @tên của bạn hoặc trả lời bạn, và một số bài viết mới sẽ được hiển thị." regular: title: "Bình thường" + description: "Bạn sẽ được thông báo nếu ai đó đề cập đến @tên bạn hoặc trả lời bạn" muted: title: "Im lặng" + description: "Bạn sẽ không nhận được thông báo về bất cứ chủ đề mới nào trong các chuyên mục này, và chúng sẽ không hiển thị là mới nhất." flagging: + title: 'Cám ơn bạn đã giúp phát triển cộng đồng!' + private_reminder: 'đánh dấu là riêng tư, chỉ hiển thị với quản trị viên' action: 'Đánh dấu Bài viết' + take_action: "Thực hiện" notify_action: 'Tin nhắn' delete_spammer: "Xóa người Spam" delete_confirm: "Bạn đang định xóa %{posts} bài đăng và %{topics} chủ đề từ người dùng này, loại tài khoản, ngăn đăng ký từ địa chỉ IP %{ip_address} của họ, và thêm địa chỉ email %{email} vào danh sách chặn vĩnh viễn. Bạn có chắc người dùng này thật sự là một spammer?" + yes_delete_spammer: "Có, xóa người spam" ip_address_missing: "(N/A)" hidden_email_address: "(ẩn)" + submit_tooltip: "Đánh dấu riêng tư" + take_action_tooltip: "Tiếp cận ngưỡng đánh dấu ngay lập tức, thay vì đợi cộng đồng" + cant: "Xin lỗi, bạn không thể đánh dấu bài viết lúc này." + notify_staff: 'Thông báo quản trị viên' formatted_name: off_topic: "Nó là sai chủ đề" + inappropriate: "Không phù hợp" spam: "Nó là rác" + custom_placeholder_notify_user: "Phải hảo tâm và mang tính xây dựng." + custom_placeholder_notify_moderators: "Hãy cho chúng tôi biết cụ thể những gì bạn quan tâm, và cung cấp các liên kết hoặc ví dụ liên quan nếu có thể." custom_message: + at_least: "điền ít nhất {{n}} ký tự" more: "còn {{n}}" + left: "{{n}} còn lại" flagging_topic: + title: "Cám ơn bạn đã giúp phát triển cộng đồng!" action: "Gắn cờ Chủ đề" notify_action: "Tin nhắn" topic_map: title: "Tóm tắt Chủ đề" + participants_title: "Poster thường xuyên" links_title: "Liên kết phổ biến" + links_shown: "hiện tất cả {{totalLinks}} liên kết..." clicks: other: "%{count} nhấp chuột" topic_statuses: @@ -1297,10 +1505,21 @@ vi: help: "Bạn đã đánh dấu chủ đề này" locked: help: "Chủ đề đã đóng; không cho phép trả lời mới" + archived: + help: "Chủ đề này đã được lưu trữ, bạn không thể sửa đổi nữa" + locked_and_archived: + help: "Chủ đề này đã đóng và lưu trữ, không cho phép trả lời mới và sửa đổi nữa" unpinned: title: "Hủy gắn" + help: "Chủ đề này không còn được ghim nữa, nó sẽ hiển thị theo thứ tự thông thường" + pinned_globally: + title: "Ghim toàn trang" + help: "Chủ đề này được ghim toàn trang, nó sẽ hiển thị ở trên cùng các chủ đề mới và trong chuyên mục" pinned: title: "Gắn" + help: "Chủ đề này đã được ghim, nó sẽ hiển thị ở trên cùng chuyên mục" + invisible: + help: "Chủ đề này ẩn, nó sẽ không hiển thị trong danh sách chủ đề, và chỉ có thể truy cập thông qua liên kết trực tiếp" posts: "Bài viết" posts_lowercase: "bài viết" posts_long: "Có {{number}} bài đăng trong chủ đề này" @@ -1335,19 +1554,37 @@ vi: with_topics: "%{filter} chủ đề" with_category: "%{filter} %{category} chủ đề" latest: + title: "Mới nhất" + title_with_count: + other: "Mới nhất ({{count}})" help: "chủ đề với bài viết gần nhất" hot: title: "Nổi bật" + help: "chọn các chủ đề nóng nhất" read: title: "Đọc" + help: "chủ đề bạn đã đọc, theo thứ tự bạn đọc lần cuối cùng" search: title: "Tìm kiếm" help: "tìm trong tất cả chủ đề" categories: title: "Danh mục" title_in: "Danh mục - {{categoryName}}" + help: "tất cả các chủ đề được nhóm theo chuyên mục" + unread: + title: "Chưa đọc" + title_with_count: + other: "Chưa đọc ({{count}})" + help: "chủ đề bạn đang xem hoặc theo dõi có bài viết chưa đọc" + lower_title_with_count: + other: "{{count}} chưa đọc" new: + lower_title_with_count: + other: "{{count}} mới" lower_title: "mới" + title: "Mới" + title_with_count: + other: "Mới ({{count}})" help: "chủ đề đã tạo cách đây vài ngày" posted: title: "Bài viết của tôi" @@ -1356,9 +1593,13 @@ vi: title: "Đánh dấu" help: "chủ để của bạn đã được đánh dấu" category: + title: "{{categoryName}}" + title_with_count: + other: "{{categoryName}} ({{count}})" help: "Những chủ đề mới nhất trong chuyên mục{{categoryName}} " top: title: "Trên" + help: "Các chủ đề tích cực nhất trong năm, tháng, tuần, hoặc ngày trước" all: title: "Từ trước tới nay" yearly: @@ -1378,6 +1619,7 @@ vi: this_week: "Tuần" today: "Ngày" other_periods: "xem top" + browser_update: 'Không may, trình duyệt của bạn quá cũ để website hoạt động. Hãy nâng cấp trình duyệt của bạn.' permission_types: full: "Tạo / Trả lời / Xem" create_post: "Trả lời / Xem" @@ -1395,6 +1637,9 @@ vi: critical_available: "Bản cập nhật quan trọng sẵn sằng." updates_available: "Cập nhật đang sẵng sàng" please_upgrade: "Vui lòng cập nhật!" + no_check_performed: "Kiểm tra phiên bản mới đã không được thực hiện, đảm bảo rằng Sidekiq đang chạy." + stale_data: "Kiểm tra phiên bản mới đã không được thực hiện gần đây, đảm bảo rằng Sidekiq đang chạy." + version_check_pending: "Hình như bạn mới nâng cấp, thật tuyệt!" installed_version: "Đã cài đặt" latest_version: "Mới nhất" problems_found: "Tìm thấy vấn đề với bản cài đặt Discourse của bạn:" @@ -1430,6 +1675,7 @@ vi: refresh_report: "Làm mới báo cáo" start_date: "Từ ngày" end_date: "Đến ngày" + groups: "Các nhóm" commits: latest_changes: "Thay đổi cuối: vui lòng cập nhật thường xuyên!" by: "bởi" @@ -1438,6 +1684,7 @@ vi: old: "Cũ" active: "Kích hoạt" agree: "Đồng ý" + agree_title: "Xác nhận đánh dấu này hợp lệ và chính xác" agree_flag_modal_title: "Đồng ý và..." agree_flag_hide_post: "Đồng ý (ẩn bài viết + gửi PM)" agree_flag_hide_post_title: "Ẩn bài viết này và tự động gửi tin nhắn đến người dùng hối thúc họ sửa nó" @@ -1448,6 +1695,8 @@ vi: defer_flag: "Hoãn" defer_flag_title: "Xóa cờ này; nó yêu cầu không có hành động nào vào thời điểm này." delete: "Xóa" + delete_title: "Xóa bài viết đánh dấu này đề cập đến." + delete_post_defer_flag: "Xóa bài viết và Hoãn đánh dấu" delete_post_defer_flag_title: "Xóa bài viết; nếu là bài viết đầu tiên, xóa chủ đề này" delete_post_agree_flag: "Xóa bài viết và Đồng ý với cờ" delete_post_agree_flag_title: "Xóa bài viết; nếu là bài viết đầu tiên, xóa chủ đề này" @@ -1455,21 +1704,38 @@ vi: delete_spammer: "Xóa người Spam" delete_spammer_title: "Xóa người dùng này và tất cả bài viết à chủ để của người dùng này." disagree_flag_unhide_post: "Không đồng ý (ẩn bài viết)" + disagree_flag_unhide_post_title: "Loại bỏ bất kỳ đánh dấu nào khỏi bài viết này và làm cho bài viết hiển thị trở lại" disagree_flag: "Không đồng ý" + disagree_flag_title: "Từ chối đánh dấu này là không hợp lệ hoặc chính xác" clear_topic_flags: "Hoàn tất" + clear_topic_flags_title: "Chủ đề đã được xem xét vấn đề và giải quyết, click để loại bỏ đánh dấu." more: "(thêm trả lời...)" dispositions: agreed: "đồng ý" disagreed: "không đồng ý" deferred: "hoãn" flagged_by: "Gắn cờ bởi" + resolved_by: "Xử lý bởi" + took_action: "Thực hiện" system: "Hệ thống" error: "Có lỗi xảy ra" reply_message: "Trả lời " no_results: "Không được gắn cờ" + topic_flagged: "Chủ đề này đã được đánh dấu." + visit_topic: "Tới chủ đề để thực hiện" + was_edited: "Bài viết đã được chỉnh sửa sau khi đánh dấu đầu tiên" + previous_flags_count: "Bài viết này đã được đánh dấu {{count}} lần." summary: action_type_3: other: "sai chủ đề x{{count}}" + action_type_4: + other: "Không phù hợp x{{count}}" + action_type_6: + other: "tùy chỉnh x{{count}}" + action_type_7: + other: "tùy chỉnh x{{count}}" + action_type_8: + other: "spam x{{count}}" groups: primary: "Nhóm Chính" no_primary: "(không có nhóm chính)" @@ -1479,15 +1745,30 @@ vi: new: "Mới" selector_placeholder: "nhập tên tài khoản" name_placeholder: "Tên nhóm, không khoản trắng, cùng luật với tên tài khoản" + about: "Chỉnh sửa nhóm thành viên và tên của bạn ở đây" group_members: "Nhóm thành viên" delete: "Xóa" delete_confirm: "Xóa nhóm này?" + delete_failed: "Không thể xóa nhóm. Nếu đây là một nhóm tự động, nó không thể hủy bỏ." + delete_member_confirm: "Loại bỏ '%{username}' khỏi nhóm '%{group}'?" + delete_owner_confirm: "Loại bỏ quyền sở hữu của '%{username}'?" name: "Tên" add: "Thêm" add_members: "Thêm thành viên" custom: "Tùy biến" + bulk_complete: "Các thành viên đã được thêm vào nhóm." + bulk: "Thêm vào nhóm theo lô" + bulk_paste: "Dán danh sách username hoặc email, mỗi mục một dòng:" + bulk_select: "(chọn nhóm)" automatic: "Tự động" + automatic_membership_email_domains: "Các thành viên đã đăng ký với đuôi email khớp với một trong danh sách này sẽ được tự động thêm vào nhóm:" + automatic_membership_retroactive: "Áp dụng quy tắc đuôi email tương tự để thêm thành viên đăng ký hiện tại" + default_title: "Tên mặc định cho tất cả các thành viên trong nhóm này" primary_group: "Tự động cài là nhóm chính" + group_owners: Chủ sở hữu + add_owners: Thêm chủ sở hữu + incoming_email: "Tùy chỉnh địa chỉ email đến" + incoming_email_placeholder: "điền địa chỉ email" api: generate_master: "Tạo Master API Key" none: "Không có API keys nào kích hoạt lúc này." @@ -1498,6 +1779,8 @@ vi: regenerate: "Khởi tạo lại" revoke: "Thu hồi" confirm_regen: "Bạn muốn thay API Key hiện tại bằng cái mới?" + confirm_revoke: "Bạn có chắc chắn muốn hủy bỏ khóa đó?" + info_html: "Khóa API cho phép bạn tạo và cập nhật chủ đề sử dụng JSON." all_users: "Tất cả Thành viên" note_html: "Giữ khóa nào bảo mật, tất cả tài khoản có thể dùng khóa này để tạo bài viết với bất kỳ tài khoản nào." plugins: @@ -1562,13 +1845,20 @@ vi: confirm: "Bạn muốn khôi phục bản sao lưu này?" rollback: label: "Rollback" + title: "Đưa csdl về trạng thái làm việc trước" + confirm: "Bạn có chắc chắn muốn đưa csdl về trạng thái làm việc trước?" export_csv: + user_archive_confirm: "Bạn có chắc chắn muốn download các bài viết của mình?" + success: "Export đang được khởi tạo, bạn sẽ nhận được tin nhắn thông báo khi quá trình hoàn tất." failed: "Xuất lỗi. Vui lòng kiểm tra log." rate_limit_error: "Bài viết có thể tải về 1 lần mỗi này, vui lòng thử lại vào ngày mai." button_text: "Xuất" button_title: user: "Xuất danh sách người dùng đầy đủ với định dạng CSV." staff_action: "Xuất đầy đủ log hành động của nhân viên với định dạng CSV." + screened_email: "Export danh sách email theo định dạng CSV." + screened_ip: "Export danh sách IP theo định dạng CSV." + screened_url: "Export danh sách URL theo định dạng CSV." export_json: button_text: "Xuất" invite: @@ -1592,8 +1882,13 @@ vi: enabled: "Cho phép?" preview: "xem trước" undo_preview: "xóa xem trước" + rescue_preview: "default style" + explain_preview: "Xem website với stylesheet tùy chỉnh" + explain_undo_preview: "Quay trở lại với kiểu tùy chỉnh stylesheet hiện tại" + explain_rescue_preview: "Xem website với stylesheet mặc định" save: "Lưu" new: "Mới" + new_style: "Style mới" import: "Nhập" import_title: "Chọn một file hoặc paste chữ." delete: "Xóa" @@ -1602,6 +1897,14 @@ vi: color: "Màu sắc" opacity: "Độ mờ" copy: "Sao chép" + email_templates: + title: "Email Templates" + subject: "Chủ đề" + multiple_subjects: "Email template này có nhiều chủ đề." + body: "Nội dung" + none_selected: "Chọn email template để bắt đầu chỉnh sửa." + revert: "Hoàn nguyên thay đổi" + revert_confirm: "Bạn có chắc chắn muốn hoàn nguyên các thay đổi?" css_html: title: "CSS/HTML" long_title: "Tùy biến CSS và HTML" @@ -1625,31 +1928,42 @@ vi: tertiary: name: 'cấp ba' description: 'Liên kết, một và nút, thông báo, và màu nhấn.' + quaternary: + name: "chia bốn" + description: "Liên kết điều hướng." header_background: name: "nền header" description: "Màu nền header của trang." header_primary: name: "header chính" + description: "Chữ và icon trong header của website." highlight: name: 'highlight' + description: 'Màu nền của các thành phần được đánh dấu trên trang, như là bài viết và chủ đề.' danger: name: 'nguy hiểm' + description: 'Màu đánh dấu cho thao tác xóa bài viết và chủ đề.' success: name: 'thành công' + description: 'Sử dụng để chỉ một thao tác đã thành công.' love: name: 'đáng yêu' description: "Màu của nút like" wiki: name: 'wiki' + description: "Màu cơ bản sử dụng cho nền của các bài viết wiki." email: - title: "Email" + title: "Emails" settings: "Cấu hình" - all: "Tất cả" + templates: "Templates" + preview_digest: "Xem trước tập san" sending_test: "Đang gửi Email test..." error: "LỖI - %{server_error}" test_error: "Có vấn đề khi gửi email test. Vui lòng kiểm tra lại cấu hình email của bạn, chắc chắn host mail của bạn không bị khóa kết nối, và thử lại." sent: "Đã gửi" skipped: "Đã bỏ qua" + received: "Đã nhận" + rejected: "Từ chối" sent_at: "Đã gửi vào lúc" time: "Thời gian" user: "Thành viên" @@ -1658,6 +1972,8 @@ vi: test_email_address: "địa chỉ email để test" send_test: "Gửi Email test" sent_test: "đã gửi!" + delivery_method: "Phương thức chuyển giao" + preview_digest_desc: "Xem trước nội dung của tập san email đã gửi cho các thành viên không hoạt động." refresh: "Tải lại" format: "Định dạng" html: "html" @@ -1665,18 +1981,34 @@ vi: last_seen_user: "Người dùng cuối:" reply_key: "Key phản hồi" skipped_reason: "Bỏ qua Lý do" + incoming_emails: + from_address: "Từ" + to_addresses: "Tới" + cc_addresses: "Cc" + subject: "Chủ đề" + error: "Lỗi" + none: "Không tìm tháy các email đến." + filters: + from_placeholder: "from@example.com" + to_placeholder: "to@example.com" + cc_placeholder: "cc@example.com" + subject_placeholder: "Chủ đề..." + error_placeholder: "Lỗi" logs: none: "Không tìm thấy log." filters: title: "Lọc" user_placeholder: "tên người dùng" address_placeholder: "name@example.com" + type_placeholder: "tập san, đăng ký..." reply_key_placeholder: "key phản hồi" skipped_reason_placeholder: "lý do" logs: title: "Log" action: "Hành động" created_at: "Đã tạo" + last_match_at: "Khớp lần cuối" + match_count: "Khớp" ip_address: "IP" topic_id: "ID Chủ đề" post_id: "ID Bài viết" @@ -1688,16 +2020,22 @@ vi: block: "khóa" do_nothing: "không làm gì" staff_actions: + title: "Staff Actions" + instructions: "Click username và thực hiện lọc danh sách, click ảnh hồ sơ để đến trang thành viên." clear_filters: "Hiện thị mọi thứ" staff_user: "Tài khoản Nhân viên" + target_user: "Target User" subject: "Chủ đề" when: "Khi" + context: "Ngữ cảnh" details: "Chi tiết" previous_value: "Trước" new_value: "Mới" diff: "So sánh" show: "Hiển thị" modal_title: "Chi tiết" + no_previous: "Không có giá trị trước đó." + deleted: "Không có giá trị mới, bản ghi đã được xóa." actions: delete_user: "xóa người dùng" change_trust_level: "thay đổi cấp tin cậy" @@ -1705,20 +2043,43 @@ vi: change_site_setting: "thay đổi cấu hình trang" change_site_customization: "thay đổi tùy biến trang" delete_site_customization: "xóa tùy biến trang" + change_site_text: "thay đổi chữ trên website" + suspend_user: "tạm khóa thành viên" + unsuspend_user: "hủy tạm khóa thành viên" + grant_badge: "cấp huy hiệu" + revoke_badge: "hủy bỏ huy hiệu" check_email: "kiểm tra email" delete_topic: "xóa chủ đề" delete_post: "xóa bài viết" + impersonate: "mạo danh" + anonymize_user: "thành viên ẩn danh" + roll_up: "cuộn lên khối IP" change_category_settings: "thay đổi cấu hình danh mục" delete_category: "xóa danh mục" create_category: "tạo danh mục" + block_user: "khóa tài khoản" + unblock_user: "mở khóa tài khoản" + grant_admin: "cấp quản trị" + revoke_admin: "hủy bỏ quản trị" + grant_moderation: "cấp điều hành" + revoke_moderation: "hủy bỏ điều hành" screened_emails: + title: "Screened Emails" + description: "Khi ai đó cố gắng tạo tài khoản mới, các địa chỉ email sau sẽ được kiểm tra và đăng ký sẽ bị chặn, hoặc một số hành động khác được thực hiện." email: "Địa chỉ Email" actions: allow: "Cho phép" screened_urls: + title: "Screened URLs" + description: "Các URL được liệt kê ở đây được sử dụng trong các bài viết của người dùng đã được xác định là spammer." url: "URL" domain: "Tên miền" screened_ips: + title: "Screened IPs" + description: 'Các địa chỉ IP đã được xem, sử dụng "Cho phép" để tạo danh sách trắng các địa chỉ.' + delete_confirm: "Bạn có chắc chắn muốn xóa quy tắc cho %{ip_address}?" + roll_up_confirm: "Bạn có chắc chắn muốn cuộn các địa chỉ IP thông thường vào các mạng con?" + rolled_up_some_subnets: "Cuộn thành công các IP cấm vào các mạng con: %{subnets}." rolled_up_no_subnet: "Không có gì để cuộn lên." actions: block: "Khóa" @@ -1731,11 +2092,14 @@ vi: filter: "Tìm kiếm" roll_up: text: "Cuộn lên" + title: "Tạo mạng con mới các entry cấm nếu có ít nhất 'min_ban_entries_for_roll_up' entry." logster: title: "Log lỗi" impersonate: title: "Mạo danh" + help: "Sử dụng công cụ này để mạo danh một tài khoản thành viên cho mục đích gỡ lỗi, bạn sẽ phải đăng xuất sau khi hoàn tất." not_found: "Không tìm thấy người dùng này." + invalid: "Xin lỗi, bạn không thể mạo danh tài khoản đó." users: title: 'Tài khoản' create: 'Thêm tài khoản Quản trị' @@ -1751,6 +2115,7 @@ vi: staff: 'Nhân viên' suspended: 'Đã tạm khóa' blocked: 'Đã khóa' + suspect: 'Nghi ngờ' approved: "Đã duyệt?" approved_selected: other: "duyệt tài khoản ({{count}})" @@ -1762,49 +2127,69 @@ vi: pending: 'Hoãn Xem xét Tài khoản' newuser: 'Tài khoản ở Cấp độ Tin tưởng 0 (Tài khoản mới)' basic: 'Tài khoản ở Cấp độ Tin tưởng 1 (Tài khoản Cơ bản)' + member: 'Tài khoản ở Độ tin cậy mức 2 (Member)' + regular: 'Tài khoản ở Độ tin cậy mức 3 (Regular)' + leader: 'Tài khoản ở Độ tin cậy mức 4 (Leader)' staff: "Nhân viên" admins: 'Tài khoản Quản trị' moderators: 'Điều hành viên' blocked: 'Tài khoản Khóa' suspended: 'Tài khoản Tạm khóa' + suspect: 'Tài khoản đáng ngờ' reject_successful: other: "Từ chối thành công %{count} tài khoản." reject_failures: other: "Từ chối thất bại %{count} tài khoản." not_verified: "Chưa xác thực" check_email: + title: "Khám phá email của tài khoản này" text: "Hiển thị" user: + suspend_failed: "Có gì đó đã sai khi đình chỉ tài khoản này {{error}}" + unsuspend_failed: "Có gì đó sai khi gỡ bỏ đình chỉ tài khoản này {{error}}" + suspend_duration: "Tài khoản này sẽ bị đình chỉ bao lâu?" suspend_duration_units: "(ngày)" + suspend_reason_label: "Tại sao bạn bị đình chỉ? Dòng chữ hiển thị cho tất cả mọi người sẽ hiển thị trên trang hồ sơ tài khoản của người dùng này, và sẽ hiển thị cho thành viên khi họ đăng nhập, hãy viết ngắn." suspend_reason: "Lý do" suspended_by: "Tạm khóa bởi" delete_all_posts: "Xóa tất cả bài viết" + delete_all_posts_confirm: "Bạn có chắc chắn muốn xóa %{posts} bài viết và %{topics} chủ đề?" suspend: "Tạm khóa" unsuspend: "Đã mở khóa" suspended: "Đã tạm khóa?" moderator: "Mod?" admin: "Quản trị?" blocked: "Đã khóa?" + staged: "Cấp bậc?" show_admin_profile: "Quản trị" edit_title: "Sửa Tiêu đề" save_title: "Lưu Tiêu đề" + refresh_browsers: "Bắt buộc làm mới trình duyệt" refresh_browsers_message: "Tin nhắn đã gửi cho tất cả người dùng!" show_public_profile: "Hiển thị hồ sơ công khai" impersonate: 'Mạo danh' ip_lookup: "Tìm kiếm địa chỉ IP" log_out: "Đăng suất" logged_out: "Thành viên đã đăng xuất trên tất cả thiết bị" + revoke_admin: 'Thu hồi quản trị' + grant_admin: 'Cấp quản trị' + revoke_moderation: 'Thu hồi điều hành' + grant_moderation: 'Cấp điều hành' unblock: 'Mở khóa' block: 'Khóa' reputation: Danh tiếng permissions: Quyền activity: Hoạt động + like_count: Đã like / Nhận last_100_days: 'trong 100 ngày gần đây' private_topics_count: Chủ đề riêng tư posts_read_count: Đọc bài viết post_count: Bài đăng đã được tạo topics_entered: Chủ để đã xem + flags_given_count: Đã đánh dấu + flags_received_count: Flags Received warnings_received_count: Đã nhận Cảnh báo + flags_given_received_count: 'Đã đánh dấu / Nhận' approve: 'Duyệt' approved_by: "duyệt bởi" approve_success: "Thành viên được duyệt và đã gửi email hướng đẫn kích hoạt." @@ -1817,6 +2202,12 @@ vi: delete: "Xóa thành viên" delete_forbidden_because_staff: "Admin và mod không thể xóa." delete_posts_forbidden_because_staff: "Không thể xóa tất cả bài viết của quản trị và điều hành viên." + delete_forbidden: + other: "Không thể xóa tài khoản nếu họ có bài viết, hãy xóa tất cả các bài viết trước khi xóa tài khoản. (Không thể xóa các bài viết cũ hơn %{count} ngày.)" + cant_delete_all_posts: + other: "Không thể xóa tất cả các bài viết, một số bài viết cũ hơn %{count} ngày. (Thiết lập delete_user_max_post_age.)" + cant_delete_all_too_many_posts: + other: "Không thể xóa tất cả các bài viết do tài khoản có hơn %{count} bài viết. (delete_all_posts_max)" delete_confirm: "Bạn CHẮC CHẮN muốn xóa thành viên này? Nó là vĩnh viễn!" delete_and_block: "Xóa và khóa email này và địa chỉ IP" delete_dont_block: "Chỉ xóa" @@ -1831,22 +2222,45 @@ vi: deactivate_failed: "Có vấn đề khi bỏ kích hoạt thành viên này." unblock_failed: 'Có vẫn đề khi gỡ khóa thành viên này.' block_failed: 'Có vấn đề khi khóa thành viên này.' + block_confirm: 'Bạn có chắc chắn muốn chặn người dùng này? Họ sẽ không thể tạo bất kỳ chủ đề hoặc bài viết mới nào.' + block_accept: 'Có, chặn người dùng này' + deactivate_explanation: "Tài khoản chờ kích hoạt phải xác thực email của họ." suspended_explanation: "Tài khoản tạm khóa không thể đăng nhập." block_explanation: "Tài khoản bị khóa không thể đăng bài hoặc tạo chủ đề." + stage_explanation: "Người dùng có cấp bậc chỉ có thể gửi bài qua email trong các chủ đề cụ thể." trust_level_change_failed: "Có lỗi xảy ra khi thay đổi mức độ tin tưởng của tài khoản." suspend_modal_title: "Tạm khóa Thành viên" + trust_level_2_users: "Độ tin cậy tài khoản mức 2" + trust_level_3_requirements: "Độ tin cậy bắt buộc mức 3" + trust_level_locked_tip: "mức độ tin cậy đang khóa, hệ thống sẽ không thể thăng hoặc giáng chức người dùng" + trust_level_unlocked_tip: "độ tin cậy đang được mở, hệ thống có thể thăng hoặc giáng chức người dùng" lock_trust_level: "Khóa Cấp độ Tin tưởng" + unlock_trust_level: "Mở khóa độ tin cậy" tl3_requirements: title: "Yêu cầu Cấp độ tin tưởng 3" + table_title: "Trong %{time_period} ngày qua:" value_heading: "Giá trị" requirement_heading: "Yêu cầu" visits: "Lượt xem" days: "ngày" + topics_replied_to: "Topics Replied To" topics_viewed: "Đã xem chủ đề" topics_viewed_all_time: "Đã xem chủ đề (mọi lúc)" posts_read: "Đọc bài viết" posts_read_all_time: "Đọc bài viết (mọi lúc)" flagged_posts: "Đã gắn cờ Bài viết" + flagged_by_users: "Users Who Flagged" + likes_given: "Lượt Likes" + likes_received: "Likes Đã Nhận" + likes_received_days: "Like nhận được: ngày độc nhất" + likes_received_users: "Like nhận được: tài khoản độc nhất" + qualifies: "Đủ điều kiện cho độ tin cậy mức 3." + does_not_qualify: "Không đủ điều kiện cho độ tin cậy mức 3." + will_be_promoted: "Sẽ sớm được thăng chức." + will_be_demoted: "Sẽ sớm bị giáng chức." + on_grace_period: "Hiện đang trong khoảng thời gian gia hạn thăng chức, sẽ không thể giáng chức." + locked_will_not_be_promoted: "Mức độ tin cậy đang khóa, sẽ không thể thăng chức." + locked_will_not_be_demoted: "Mức độ tin cậy đang khóa, sẽ không thể giáng chức." sso: title: "Single Sign On" external_id: "ID Bên ngoài" @@ -1855,6 +2269,9 @@ vi: external_email: "Email" external_avatar_url: "URL Ảnh đại diện" user_fields: + title: "Trường tài khoản" + help: "Thêm trường dữ liệu cho người dùng nhập." + create: "Tạo trường tài khoản" untitled: "Không có tiêu đề" name: "Tên Trường" type: "Loại Trường" @@ -1882,7 +2299,15 @@ vi: confirm: 'Xác nhận' dropdown: "Xổ xuống" site_text: + description: "Bạn có thể tùy chỉnh bất kỳ nội dung nào trên diễn đàn. Hãy bắt đầu bằng cách tìm kiếm dưới đây:" + search: "Tìm kiếm nội dung bạn muốn sửa" title: 'Nội Dung Chữ' + edit: 'sửa' + revert: "Hoàn nguyên thay đổi" + revert_confirm: "Bạn có chắc chắn muốn hoàn nguyên các thay đổi?" + go_back: "Quay lại tìm kiếm" + recommended: "Bạn nên tùy biến các nội dung sau đây cho phù hợp với nhu cầu:" + show_overriden: 'Chỉ hiển thị chỗ ghi đè' site_settings: show_overriden: 'Chỉ hiện thị đã ghi đè' title: 'Xác lập' @@ -1905,46 +2330,109 @@ vi: onebox: "Onebox" seo: 'SEO' spam: 'Rác' + rate_limits: 'Rate Limits' developer: 'Nhà phát triển' + embedding: "Embedding" + legal: "Legal" uncategorized: 'Khác' backups: "Sao lưu" login: "Đăng nhập" plugins: "Plugins" user_preferences: "Tùy chỉnh Tài khoản" badges: + title: Huy hiệu + new_badge: Thêm huy hiệu new: Mới name: Tên + badge: Huy hiệu display_name: Tên Hiển thị description: Mô tả + badge_type: Kiểu huy hiệu badge_grouping: Nhóm + badge_groupings: + modal_title: Nhóm huy hiệu + granted_by: Cấp bởi + granted_at: Cấp lúc reason_help: (Liên kết đến bài viết hoặc chủ đề) save: Lưu delete: Xóa + delete_confirm: Bạn có chắc chắn muốn xóa huy hiệu này? + revoke: Thu hồi reason: Lý do + expand: Mở rộng … + revoke_confirm: Bạn có chắc chắn muốn thu hồi huy hiệu này? + edit_badges: Sửa huy hiệu + grant_badge: Cấp huy hiệu + granted_badges: Cấp huy hiệu + grant: Cấp + no_user_badges: "%{name} chưa được cấp bất kỳ huy hiệu nào." + no_badges: Không có huy hiệu có thể được cấp. + none_selected: "Chọn một huy hiệu để bắt đầu" + allow_title: Cho phép huy hiệu được sử dụng như là tên + multiple_grant: Có thể được cấp nhiều lần + listable: Hiện huy hiệu trên trang huy hiệu công khai + enabled: Bật huy hiệu icon: Biểu tượng image: Hình ảnh + icon_help: "Sử dụng Font Awesome class hoặc URL của ảnh" + query: Truy vấn huy hiệu (SQL) + target_posts: Truy vấn bài viết mục tiêu + auto_revoke: Chạy truy vấn hủy bỏ hàng ngày + show_posts: Hiện bài viết được cấp huy hiệu trên trang huy hiệu + trigger: Phát động trigger_type: none: "Cập nhật hàng ngày" + post_revision: "Khi người dùng sửa hoặc tạo bài viết" + trust_level_change: "Khi người dùng thay đổi mức độ tin cậy" + user_change: "Khi người dùng được sửa hoặc được tạo" preview: + link_text: "Xem trước cấp huy hiệu" + plan_text: "Xem trước kế hoạch truy vấn" + modal_title: "Xem trước truy vấn huy hiệu" + sql_error_header: "Có lỗi xảy ra với truy vấn." + error_help: "Xem các liên kết sau đây để trợ giúp các truy vấn huy hiệu." bad_count_warning: header: "CẢNH BÁO!" + text: "Thiếu mẫu cấp độ huy hiệu, điều này xảy ra khi truy vấn huy hiệu trả về IDs tài khoản hoặc IDs bài viết không tồn tại. Điều này có thể gây ra kết quả bất ngờ sau này - hãy kiểm tra lại truy vấn của bạn lần nữa." + no_grant_count: "Không có huy hiệu nào được gán." + grant_count: + other: "%{count} huy hiệu đã được gán." sample: "Ví dụ:" grant: with: %{username} with_post: %{username} for post in %{link} + with_post_time: %{username} viết bài trong %{link} lúc %{time} + with_time: %{username} lúc %{time} emoji: + title: "Emoji" + help: "Thêm emoji mới có sẵn cho tất cả mọi người. (MẸO: kéo & thả nhiều file cùng lúc)" + add: "Thêm emoji mới" name: "Tên" image: "Hình ảnh" + delete_confirm: "Bạn có chắc chắn muốn xóa emoji :%{name}:?" embedding: + get_started: "Nếu bạn muốn nhúng Discourse trên một website khác, bắt đầu bằng cách thêm host." confirm_delete: "Bạn muốn xóa host này?" + sample: "Sử dụng mã HTML sau vào website để tạo và nhúng các chủ đề. Thay thế REPLACE_ME với Canonical URL của trang bạn muốn nhúng." + title: "Nhúng" host: "Cho phép Host" edit: "sửa" category: "Đăng vào Danh mục" add_host: "Thêm Host" + settings: "Thiết lập nhúng" feed_settings: "Cấu hình Feed" + feed_description: "Cung cấp RSS/ATOM cho website để cải thiện khả năng Discourse import nội dung của bạn." crawling_settings: "Cấu hình Crawler" + crawling_description: "Khi Discourse tạo chủ đề cho các bài viết của bạn, nếu không có RSS/ATOM thì hệ thống sẽ thử phân tích nội dung HTML. Đôi khi có thể gặp khó khăn khi trích xuất nội dung, vì vậy hệ thống cung cấp khả năng chỉ định quy tắc CSS để giúp quá trình trích xuất dễ dàng hơn." + embed_by_username: "Tên thành viên để tạo chủ đề" + embed_post_limit: "Số lượng tối đa bài viết được nhúng" + embed_username_key_from_feed: "Key to pull discourse username from feed" + embed_truncate: "Cắt ngắn các bài viết được nhúng" + embed_whitelist_selector: "Bộ chọn các thành phần CSS được hỗ trợ khi nhúng" embed_blacklist_selector: "CSS selector for elements that are removed from embeds" feed_polling_enabled: "Nhập bài viết bằng RSS/ATOM" + feed_polling_url: "URL của RSS/ATOM để thu thập" + save: "Lưu thiết lập nhúng" permalink: title: "Liên kết cố định" url: "URL" @@ -1955,6 +2443,7 @@ vi: category_id: "ID Danh mục" category_title: "Danh mục" external_url: "URL Bên ngoài" + delete_confirm: Bạn có chắc chắn muốn xóa liên kết tĩnh này? form: label: "Mới:" add: "Thêm" @@ -1980,35 +2469,54 @@ vi: title: 'Điều hướng' jump: '# Đến bài viết #' back: 'u Quay lại' + up_down: 'k/j Move selection ↑ ↓' open: 'o or Enter Mở chủ để đã chọn' next_prev: 'shift+j/shift+k Next/previous section' application: title: 'Ứng dụng' create: 'c Tạo mới chủ đề' notifications: 'n Mở thông báo' + hamburger_menu: '= Mở menu mobile' user_profile_menu: 'p Mở trình đơn thành viên' show_incoming_updated_topics: '. Show updated topics' search: '/ Tìm kiếm' + help: '? Mở trợ giúp bàn phím' dismiss_new_posts: 'x, r Dismiss New/Posts' dismiss_topics: 'x, t Bỏ qua bài viết' log_out: 'shift+z shift+z Đăng xuất' actions: title: 'Hành động' + bookmark_topic: 'f Chuyển chủ đề đánh dấu' pin_unpin_topic: 'shift+p Pin/Unpin bài viết' share_topic: 'shift+s Chia sẻ bài viết' share_post: 's Chia sẻ bài viết' reply_as_new_topic: 't Trả lời như là một liên kết đến bài viết' reply_topic: 'shift+r Trả lời bài viết' reply_post: 'r Trả lời bài viết' + quote_post: 'q Trích dẫn bài viết' like: 'l Thích bài viết' + flag: '! Đánh dấu bài viết' bookmark: 'b Đánh dấu bài viết' edit: 'e Sửa bài viết' delete: 'd Xóa bài viết' + mark_muted: 'm, m Mute topic' + mark_regular: 'm, r Chủ đề thông thường (mặc định)' + mark_tracking: 'm, t Theo dõi chủ đề' mark_watching: 'm, w theo dõi chủ đề' badges: + earned_n_times: + other: "Đạt được huy hiệu này %{count} lần" + more_with_badge: "Others with this badge" + title: Huy hiệu allow_title: "có thể sử dụng như là tiêu đề" + multiple_grant: "có thể trao tặng nhiều lần" + badge_count: + other: "%{count} Huy hiệu" more_badges: other: "+%{count} Thêm" + granted: + other: "%{count} được cấp" + select_badge_for_title: Chọn huy hiệu để sử dụng như là tên none: "" badge_grouping: getting_started: @@ -2027,32 +2535,51 @@ vi: description: Chỉnh sửa bàn viết lần đầu basic_user: name: Cơ bản + description: Các cấp chức năng cần thiết của cộng đồng member: name: Thành viên + description: Các cấp lời mời regular: name: Thường xuyên + description: Các cấp phân hạng, đổi tên và theo đuôi liên kết leader: name: Lãnh đạo + description: Các cấp sửa tổng thể, ghim, đóng, lưu trữ, tách và hợp nhất welcome: name: Chào mừng description: Đã nhận 1 lượt thích autobiographer: + name: Tự truyện description: Filled user profile information anniversary: name: Ngày kỷ niệm + description: Thành viên hoạt động trong năm, đăng bài ít nhất một lần + nice_post: + name: Bài viết hay + description: Được 10 like cho một bài viết, huy hiệu này có thể được cấp nhiều lần good_post: name: Bài viết tốt + description: Được 25 like cho một bài viết, huy hiệu này có thể được cấp nhiều lần great_post: name: Bài viết tuyệt vời + description: Được 50 like cho một bài viết, huy hiệu này có thể được cấp nhiều lần nice_topic: name: Bài viết hay + description: Được 10 like cho một chủ đề, huy hiệu này có thể được cấp nhiều lần good_topic: name: Chủ đề tốt + description: Được 25 like cho một chủ đề, huy hiệu này có thể được cấp nhiều lần + great_topic: + name: Chủ đề hay + description: Được 50 like cho một chủ đề, huy hiệu này có thể được cấp nhiều lần nice_share: + name: Nice Share description: Đã chia sẻ bài viết với 25 lượt người truy cập good_share: + name: Good Share description: Đã chia sẻ bài viết với 300 lượt người truy cập great_share: + name: Great Share description: Đã chia sẻ bài viết với 1000 lượt người truy cập first_like: name: Lượt thích đầu tiên @@ -2061,10 +2588,13 @@ vi: name: Đánh dấu đầu tiên description: Đánh dấu bài viết promoter: + name: Promoter description: Đã mời một thành viên campaigner: + name: Campaigner description: Mời 3 thành viên (Độ tin cậy 1) champion: + name: Champion description: Mời 5 thành viên (Độ tin cậy 2) first_share: name: Chia sẽ đầu tiên @@ -2077,13 +2607,25 @@ vi: description: Trích dẫn thành viên read_guidelines: name: Xem hướng dẫn + description: Xem nguyên tắc cộng đồng reader: name: Người xem description: Đọc tất cả bài viết trong các chủ để có hơn 100 bài popular_link: name: Liên kết phổ biến + description: Đăng một liên kết ngoài với ít nhất 50 click hot_link: name: Liên kết hấp dẫn + description: Đăng một liên kết ngoài với ít nhất 300 click famous_link: name: Liên kết phổ biến - + description: Đăng một liên kết ngoài với ít nhất 1000 click + google_search: | +

    Tìm kiếm với Google

    +

    +

    +

    diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml index d34227a06..e65ef2746 100644 --- a/config/locales/client.zh_CN.yml +++ b/config/locales/client.zh_CN.yml @@ -81,6 +81,8 @@ zh_CN: other: "%{count}月后" x_years: other: "%{count}年后" + previous_month: '上个月' + next_month: '下个月' share: topic: '分享本主题的链接' post: '#%{postNumber} 楼' @@ -111,6 +113,19 @@ zh_CN: disabled: '于%{when}移除出列表' topic_admin_menu: "主题管理操作" emails_are_disabled: "所有的出站邮件已经被管理员全局禁用。将不发送任何邮件提醒。" + s3: + regions: + us_east_1: "美国东部(N. Virginia)" + us_west_1: "美国西部(N. California)" + us_west_2: "美国西部(Oregon)" + us_gov_west_1: "AWS GovCloud(美国)" + eu_west_1: "欧洲(Ireland)" + eu_central_1: "欧洲(Frankfurt)" + ap_southeast_1: "亚洲太平洋(Singapore)" + ap_southeast_2: "亚洲太平洋(Sydney)" + ap_northeast_1: "亚洲太平洋(Tokyo)" + ap_northeast_2: "亚洲太平洋(Seoul)" + sa_east_1: "南美(Sao Paulo)" edit: '编辑本主题的标题和分类' not_implemented: "非常抱歉,此功能暂时尚未实现!" no_value: "否" @@ -152,6 +167,7 @@ zh_CN: other: "%{count} 个字符" suggested_topics: title: "推荐主题" + pm_title: "推荐消息" about: simple_title: "关于" title: "关于%{title}" @@ -294,12 +310,16 @@ zh_CN: notifications: watching: title: "关注" + description: "你将会在该消息中的每个新帖子发布后收到通知,并且会显示新回复数量。" tracking: title: "追踪" + description: "你会在别人@你或回复你时收到通知,并且新帖数量也将在这些主题后显示。" regular: title: "普通" + description: "如果某人@你或者回复你,你将收到通知。" muted: title: "忽略" + description: "你不会收到组内关于新主题中的任何通知。" user_action_groups: '1': "给赞" '2': "被赞" @@ -379,6 +399,7 @@ zh_CN: not_supported: "通知功能暂不支持该浏览器。抱歉。" perm_default: "启用通知" perm_denied_btn: "拒绝授权" + perm_denied_expl: "你拒绝了通知提醒的权限。设置浏览器允许通知提醒。" disable: "禁用通知" currently_enabled: "(目前已启用)" enable: "启用通知" @@ -432,6 +453,8 @@ zh_CN: groups: "我的小组" bulk_select: "选择消息" move_to_inbox: "移动到收件箱" + move_to_archive: "存档" + failed_to_move: "移动选中消息失败(可能你的网络出问题了)" select_all: "全选" change_password: success: "(电子邮件已发送)" @@ -587,6 +610,21 @@ zh_CN: same_as_email: "你的密码与电子邮箱相同。" ok: "你设置的密码符合要求。" instructions: "至少需要 %{count} 个字符。" + summary: + title: "概要" + stats: "统计" + topic_count: "创建的主题" + post_count: "创建的帖子" + likes_given: "给出的赞" + likes_received: "收到的赞" + days_visited: "访问天数" + posts_read_count: "已读帖子" + top_replies: "热门回复" + top_topics: "热门帖子" + top_badges: "热门勋章" + more_topics: "更多主题" + more_replies: "更多回复" + more_badges: "更多徽章" associated_accounts: "登录" ip_address: title: "最后使用的 IP 地址" @@ -629,6 +667,7 @@ zh_CN: logout: "你已登出。" refresh: "刷新" read_only_mode: + enabled: "这个站点正处于只读模式。请继续浏览,但是回复、赞和其他操作暂时被禁用。" login_disabled: "只读模式下不允许登录。" too_few_topics_and_posts_notice: "让我们开始讨论!目前有 %{currentTopics} / %{requiredTopics} 个主题和 %{currentPosts} / %{requiredPosts} 个帖子。新访客需要能够阅读和回复一些讨论。" too_few_topics_notice: "让我们开始讨论!目前有 %{currentTopics} / %{requiredTopics} 个主题。新访客需要能够阅读和回复一些讨论。" @@ -742,6 +781,7 @@ zh_CN: ctrl: 'Ctrl' alt: 'Alt' composer: + emoji: "Emoji :)" more_emoji: "更多…" options: "选项" whisper: "密语" @@ -838,6 +878,8 @@ zh_CN: moved_post: "

    {{username}} 移动了 {{description}}

    " linked: "

    {{username}} {{description}}

    " granted_badge: "

    获得“{{description}}”

    " + group_message_summary: + other: "

    {{count}} 条消息在你的{{group_name}}组内的收件箱中

    " alt: mentioned: "被提及" quoted: "被引用" @@ -852,6 +894,7 @@ zh_CN: moved_post: "你的帖子被移动自" linked: "链接至你的帖子" granted_badge: "勋章授予" + group_message_summary: "在群组收件箱中的消息" popup: mentioned: '{{username}}在“{{topic}}”提到了你 - {{site_title}}' group_mentioned: '{{username}}在“{{topic}}”提到了你 - {{site_title}}' @@ -1003,6 +1046,7 @@ zh_CN: auto_close_title: '自动关闭设置' auto_close_save: "保存" auto_close_remove: "不要自动关闭该主题" + auto_close_immediate: "主题中的上个帖子是 %{hours} 小时前发出的,所以主题将会立即关闭。" progress: title: 主题进度 go_top: "顶部" @@ -1087,7 +1131,7 @@ zh_CN: help: '私下报告本帖以引起注意或者发送一条匿名通知' success_message: '你已成功报告本帖。' feature_topic: - title: "设为精华主题" + title: "聚焦该主题" pin: "将该主题置于{{categoryLink}}分类最上方至" confirm_pin: "你已经有了{{count}}个置顶主题。太多的置顶主题可能会困扰新用户和访客。你确定想要在该分类再置顶一个主题么?" unpin: "从{{categoryLink}}分类最上方移除主题。" @@ -1632,6 +1676,7 @@ zh_CN: refresh_report: "刷新报告" start_date: "开始日期" end_date: "结束日期" + groups: "所有群组" commits: latest_changes: "最近的更新:请经常升级!" by: "来自" @@ -1909,13 +1954,17 @@ zh_CN: name: '维基编辑' description: "维基帖子的背景颜色" email: + title: "邮件" settings: "设置" + templates: "模板" preview_digest: "预览" sending_test: "发送测试邮件..." error: "错误 - %{server_error}" test_error: "发送测试邮件时遇到问题。请再检查一遍邮件设置,确认你的主机没有封锁邮件链接,然后重试。" sent: "已发送" skipped: "跳过" + received: "收到" + rejected: "拒绝" sent_at: "发送时间" time: "时间" user: "用户" @@ -1933,6 +1982,19 @@ zh_CN: last_seen_user: "用户最后登录时间:" reply_key: "回复关键字" skipped_reason: "跳过理由" + incoming_emails: + from_address: "来自" + to_addresses: "发至" + cc_addresses: "抄送" + subject: "主题" + error: "错误" + none: "没有找到进站邮件。" + filters: + from_placeholder: "from@example.com" + to_placeholder: "to@example.com" + cc_placeholder: "cc@example.com" + subject_placeholder: "主题..." + error_placeholder: "错误" logs: none: "未发现日志。" filters: @@ -1996,6 +2058,12 @@ zh_CN: change_category_settings: "更改分类设置" delete_category: "删除分类" create_category: "创建分类" + block_user: "封禁用户" + unblock_user: "解封用户" + grant_admin: "授予管理员权限" + revoke_admin: "撤销管理员权限" + grant_moderation: "授予版主权限" + revoke_moderation: "撤销版主权限" screened_emails: title: "被屏蔽的邮件地址" description: "当有人试图用以下邮件地址注册时,将受到阻止或其它系统操作。" @@ -2093,6 +2161,7 @@ zh_CN: moderator: "版主?" admin: "管理员?" blocked: "已封?" + staged: "部分权限?" show_admin_profile: "管理员" edit_title: "编辑头衔" save_title: "保存头衔" @@ -2154,9 +2223,12 @@ zh_CN: deactivate_failed: "在停用用户帐号时发生了错误。" unblock_failed: '在解除用户帐号封禁时发生了错误。' block_failed: '在封禁用户帐号时发生了错误。' + block_confirm: '你确定要封禁用户吗?他们将没有办法创建任何主题或者帖子。' + block_accept: '是的,封禁用户' deactivate_explanation: "已停用的用户必须重新验证他们的电子邮件。" suspended_explanation: "一个被封禁的用户不能登录。" block_explanation: "被封禁的用户不能发表主题或者评论。" + stage_explanation: "部分访问权限的用户只能通过邮件在特定主题内发表帖子。" trust_level_change_failed: "改变用户等级时出现了一个问题。" suspend_modal_title: "被禁用户" trust_level_2_users: "二级信任等级用户" @@ -2434,6 +2506,9 @@ zh_CN: mark_tracking: 'm 然后 t 追踪主题' mark_watching: 'm 然后 w 关注主题' badges: + earned_n_times: + other: "授予徽章 %{count} 次" + more_with_badge: "其他有这些徽章的人" title: 徽章 allow_title: "能用作头衔" multiple_grant: "能被授予多次" diff --git a/config/locales/server.ar.yml b/config/locales/server.ar.yml index a63a9a598..f6d09f617 100644 --- a/config/locales/server.ar.yml +++ b/config/locales/server.ar.yml @@ -27,6 +27,9 @@ ar: purge_reason: "حُذف آليا باعتباره حسابا إما مهجورا أو غير منشّطا" disable_remote_images_download_reason: "عُطّل تنزيل الصور عن بعد بسبب نفاذ مساحة القرص الحرّة." anonymous: "مجهول" + emails: + incoming: + default_subject: "رسالة ورادة من %{email}" errors: &errors format: '%{attribute} %{message}' messages: @@ -1110,6 +1113,7 @@ ar: strip_images_from_short_emails: "شريط الصور من البريد الإلكتروني لها حجم أقل من 2800 بايت" short_email_length: "طول أقصر بريد الكتروني بـ Bytes." display_name_on_email_from: "أعرض الاسماء كاملة في البريد الالكتروني من المجال." + delete_email_logs_after_days: "حذف سجل البريد بعد (ن) يوم. 0 لحفظ السجل للابد" pop3_polling_enabled: "تصويت عبرPOP3 لردود البريد الإلكتروني." pop3_polling_ssl: "أستخدم SSL عند الأتصال بمخدم POP3.(مُستحسن)" pop3_polling_period_mins: "الفترة دقائق بين التحقق من حساب POP3 للبريد الإلكتروني. ملاحظة : تتطلب إعادة تشغيل." @@ -1758,6 +1762,16 @@ ar: --- %{respond_instructions} + user_replied_pm: + text_body_template: | + %{header_instructions} + + %{message} + + %{context} + + --- + %{respond_instructions} user_quoted: subject_template: "[%{site_name}] %{topic_title}" text_body_template: | diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml index 66051a31f..34bef2d42 100644 --- a/config/locales/server.de.yml +++ b/config/locales/server.de.yml @@ -27,6 +27,9 @@ de: purge_reason: "Stillgelegtes, nicht aktives Konto wurde automatisch gelöscht." disable_remote_images_download_reason: "Der Download von Bildern wurde deaktiviert, weil nicht mehr genug Plattenplatz vorhanden war." anonymous: "Anonym" + emails: + incoming: + default_subject: "Eingehende E-Mail von %{email}" errors: &errors format: '%{attribute} %{message}' messages: @@ -288,6 +291,7 @@ de: one: "Diese Kategorie kann nicht gelöscht werden, weil sie ein Thema enthält. Das Thema ist %{topic_link}." other: "Diese Kategorie kann nicht gelöscht werden, weil sie %{count} Themen enthält. Das älteste Thema ist %{topic_link}." topic_exists_no_oldest: "Diese Kategorie kann nicht gelöscht werden, weil sie #{category.topic_count} Themen enthält." + uncategorized_description: "Themen welche keine Kategorie benötigen oder in keine existierende Kategorie passen." trust_levels: newuser: title: "Neuer Benutzer" @@ -822,6 +826,7 @@ de: active_user_rate_limit_secs: "Sekunden, nach denen das 'last_seen_at'-Feld aktualisiert wird." verbose_localization: "Erweiterte Lokalisierungstipps in der Benutzeroberfläche anzeigen " previous_visit_timeout_hours: "Stunden, die ein Besuch dauert, bevor er als 'früherer' Besuch gezählt wird." + top_topics_formula_log_views_multiplier: "Wert von Log Ansichten Multiplikator (n) in Top Themen Formel: `log(views_count) * (n) + op_likes_count * 0.5 + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`" rate_limit_create_topic: "Nach Erstellen eines Themas muss ein Nutzer (n) Sekunden warten, bevor ein weiteres Thema erstellt werden kann." rate_limit_create_post: "Nach Schreiben eines Beitrags muss ein Nutzer (n) Sekunden warten, bevor ein weiterer Beitrag erstellt werden kann." rate_limit_new_user_create_topic: "Nach Erstellen eines Themas muss ein neuer Nutzer (n) Sekunden warten, bevor ein weiteres Thema erstellt werden kann." @@ -865,6 +870,7 @@ de: tl2_requires_likes_given: "Die Anzahl der Likes, die ein Benutzer vergeben muss, bevor er in die Vertrauensstufe 2 befördert wird." tl2_requires_topic_reply_count: "Die Anzahl der Beiträge, auf die ein Benutzer antworten muss, bevor er in die Vertrauensstufe 2 befördert wird." tl3_time_period: "Zeitraum für die Bedingungen für Vertrauensstufe 3" + tl3_requires_days_visited: "Minimale Anzahl an Tagen, an denen der Nutzer die Seite besuchen haben muss, in den letzten 100 Tagen, um sich für eine Beförderung zu Vertrauenslevel 3 zu qualifizieren. Setze tl3 höher als die Zeitperiode um Beförderungen zu Vertrauenslevel 3 zu deaktivieren. (0 oder höher)" tl3_requires_topics_replied_to: "Die Mindestanzahl an Themen, auf die ein Benutzer in den letzten 100 Tagen geantwortet haben muss, um die Vertrauensstufe 3 erreichen zu können. (0 oder mehr)" tl3_requires_topics_viewed: "Prozentualer Anteil aller Themen der letzten 100 Tage, die ein Nutzer mindestens gelesen haben muss, um die Vertrauensstufe Anführer (3) erreichen zu können. (0 bis 100)" tl3_requires_posts_read: "Prozentualer Anteil aller Beiträge der letzten 100 Tage, die ein Nutzer mindestens gelesen haben muss, um die Vertrauensstufe Anführer (3) erreichen zu können. (0 bis 100)" @@ -877,6 +883,7 @@ de: tl3_links_no_follow: "rel=nofollow nicht von Links entfernen, die von Benutzern mit Vertrauensstufe 3 erstellt wurden." min_trust_to_create_topic: "Die minimale Vertrauensstufe wird benötigt um eine neues Thema zu erstellen." min_trust_to_edit_wiki_post: "Die minimal benötigte Vertrauensstufe, um als Wiki markierte Beiträge bearbeiten zu können." + min_trust_to_allow_self_wiki: "Das mindeste Vertrauenslevel, das ein Nutzer haben muss, um einen eigenen Wiki Eintrag zu erstellen." min_trust_to_send_messages: "Benötigte Vertrauensstufe um neue private Nachrichten erstellen zu dürfen." newuser_max_links: "Maximale Anzahl der Links, die neue Benutzer Beiträgen hinzufügen dürfen." newuser_max_images: "Maximale Anzahl der Bilder, die neue Benutzer Beiträgen hinzufügen dürfen." @@ -887,6 +894,7 @@ de: max_users_notified_per_group_mention: "Maximale Anzahl an Nutzern die benachrichtigt werden wenn eine Gruppe erwähnt wird (wird die Grenze erreicht, werden keine Nutzer benachrichtigt)" create_thumbnails: "Erzeuge ein Vorschaubild und eine Lightbox für Bilder, die zu groß sind, um in einem Beitrag angezeigt zu werden." email_time_window_mins: "Warte (n) Minuten, bevor Nutzern eine Hinweis-E-Mail geschickt wird, um ihnen Gelegenheit zu geben, ihre Beiträge abschließend bearbeiten zu können." + private_email_time_window_seconds: "Warte (n) Sekunden, bevor irgendwelche private E-Mail Benachrichtigungen gesendet werden, um den Nutzer die Möglichkeit zu geben, den Beitrag zu bearbeiten und finalisieren." email_posts_context: "Anzahl der Antworten welche als Konext einer Notifikations-Mail hinzugefügt werden." flush_timings_secs: "Sekunden, nach denen Zeiteinstellungen auf den Server übertragen werden." title_max_word_length: "Maximal erlaubte Wortlänge in Thementiteln, in Zeichen." @@ -943,6 +951,7 @@ de: display_name_on_email_from: "Zeige vollständige Namen im Absender-Feld von E-Mails" unsubscribe_via_email: "Erlaube es Benutzern eine E-Mail mit dem Betreff oder Text: \"unsubscribe\" zum abbestellen der E-Mails zu senden." unsubscribe_via_email_footer: "Hänge einen Link zum abbestellen ans Ende der E-Mail." + delete_email_logs_after_days: "Lösche E-Mail Logs nach (N) Tagen. 0 um sie für immer zu behalten." pop3_polling_enabled: "E-Mail-Antworten über POP3 abholen." pop3_polling_ssl: "SSL für die Verbindung zum POP3-Server verwenden. (Empfohlen)" pop3_polling_period_mins: "Intervall in Minuten zum Abholen neuer E-Mails vom POP3-Konto. HINWEIS: benötigt Neustart." @@ -969,7 +978,7 @@ de: automatically_download_gravatars: "Avatare von Gravatar herunterladen, wenn ein Nutzer sich registriert oder seine E-Mail-Adresse ändert." digest_topics: "Maximale Anzahl von Themen, die in der E-Mail-Zusammenfassung angezeigt werden." digest_min_excerpt_length: "Minimale Länge des Auszugs aus einem Beitrag in der E-Mail-Zusammenfassung, in Zeichen." - delete_digest_email_after_days: "Sende keine E-Mail-Zusammenfassungen an Benutzer, die die Seite seit mehr als (n) Tagen nicht mehr besucht haben." + delete_digest_email_after_days: "Keine Zusammenfassungen an Nutzer senden, welche für mehr als (n) Tage nicht auf der Seite aktiv waren." disable_digest_emails: "E-Mail-Zusammenfassungen für alle Benutzer deaktivieren." detect_custom_avatars: "Aktiviere diese Option, um zu überprüfen, ob Benutzer eigene Profilbilder hochgeladen haben." max_daily_gravatar_crawls: "Wie oft pro Tag Discourse höchstens auf Gravatar nach benuterdefinierten Avataren suchen soll." @@ -981,6 +990,7 @@ de: anonymous_account_duration_minutes: "Um die Anonymität der virtuellen anonymen Nutzer zu erhalten, erzeuge ein neues anonymes Konto alle N Minuten je Benutzer. Beispiel: wenn dies auf 600 gesetzt ist wird ein neues anonymes Konto erzeugt, wenn ein Benutzer in den anonymen Modus wechselt UND mindestens 600 Minuten seit der letzten anonymen Nachricht dieses Nutzers vergangen sind." hide_user_profiles_from_public: "Deaktiviert Benutzerkarten, Nutzerprofile und das Benutzerverzeichnis für anonyme Nutzer." allow_profile_backgrounds: "Erlaube Benutzern Profilhintergründe hochzuladen." + sequential_replies_threshold: "Anzahl an Beiträgen die ein Nutzer machen muss, um benachrichtigt zu werden, dass er zu viele aufeinanderfolgende Antworten schreibt." enable_mobile_theme: "Mobilgeräte verwenden eine mobile Darstellung mit der Möglichkeit zur vollständigen Seite zu wechseln. Deaktiviere diese Option, wenn du ein eigenes Full-Responsive-Stylesheet verwenden möchtest." dominating_topic_minimum_percent: "Anteil der Nachrichten eines Themas in Prozent, die ein einzelner Nutzer verfassen darf, bevor dieser Nutzer darauf hingewiesen wird, dass er dieses Thema dominiert." disable_avatar_education_message: "Weise Benutzer nicht darauf hin, dass sie ihren Avatar ändern können" @@ -990,6 +1000,7 @@ de: global_notice: "Zeigt allen Besuchern eine DRINGENDE NOTFALL-NACHRICHT als global sichtbares Banner an. Deaktiviert bei leerer Nachricht. (HTML ist erlaubt.)" disable_edit_notifications: "Unterdrückt Bearbeitungshinweise durch den System-Nutzer, wenn die 'download_remote_images_to_local' Einstellung aktiviert ist." automatically_unpin_topics: "Themen automatisch loslösen, wenn ein Nutzer das Ende erreicht." + read_time_word_count: "Wörteranzahl pro Minute um die abgeschätzte Lesezeit zu berechnen." full_name_required: "Der voller Name wird für das Benutzerprofil benötigt." enable_names: "Zeigt den vollen Namen eines Benutzers auf dem Profil, der Benutzerkarte und in E-Mails an. Wenn deaktiviert wird der volle Name überall ausgeblendet." display_name_on_posts: "Zeige zusätzlich zum @Benutzernamen auch den vollen Namen des Benutzers bei seinen Beiträgen." @@ -1013,6 +1024,7 @@ de: enable_cdn_js_debugging: "Ermöglicht die Anzeige vollständiger Fehler auf /logs, indem alle eingebetteten JavaScripts Cross-Origin Zugriffsberechtigungen erhalten." show_create_topics_notice: "Administratoren eine Warnmeldung anzeigen, wenn im Forum weniger als 5 öffentlich sichtbare Themen existieren." delete_drafts_older_than_n_days: Lösche Entwürfe, die mehr als (n) Tage alt sind. + vacuum_db_days: "Führe VACUUM ANALYZE aus, um Datenbankspeicher nach Migrationen zurückzuerhalten (0 um zu deaktivieren)" prevent_anons_from_downloading_files: "Nichtangemeldeten Benutzern das Herunterladen von Anhängen verbieten. WARNUNG: dies verhindert auch das Herunterladen jeglicher Ressourcen für Website-Anpassungen, die als Anhänge gespeichert wurden." slug_generation_method: "Gib eine Methode an, wie Kürzel in URLs generiert werden sollen. 'encoded' verwendet einen Prozent-Encodierten String, bei 'none' wird kein Kürzel verwendet." enable_emoji: "Aktiviere emoji" @@ -1051,7 +1063,12 @@ de: invalid_string_min: "Muss mindestens %{min} Zeichen lang sein." invalid_string_max: "Darf nicht länger als %{max} Zeichen sein." invalid_reply_by_email_address: "Adresse muss '%{reply_key}' enthalten und sich von der Benachrichtigungs E-Mail-Adresse unterscheiden." + pop3_polling_host_is_empty: "Du musst einen 'POP3 Abfrage Host' definieren, um POP3 Abfragen zu aktivieren." + pop3_polling_username_is_empty: "Du musst einen 'POP3 Abfrage Nutzername' definieren, um POP3 Abfragen zu aktivieren." + pop3_polling_password_is_empty: "Du must ein 'POP3 Abfrage Passwort' definieren, um POP3 Abfragen zu aktivieren." + pop3_polling_authentication_failed: "POP3 Authentifizierung ist fehlgeschlagen. Bitte überprüfe die POP3 Anmeldedaten." notification_types: + group_mentioned: "%{group_name} wurde auf %{link} erwähnt" mentioned: "%{display_username} hat Dich in %{link} erwähnt." liked: "%{display_username} gefällt deinen Beitrag in %{link}." replied: "%{display_username} hat auf deinen Beitrag in %{link} geantwortet." @@ -1161,12 +1178,23 @@ de: must_begin_with_alphanumeric: "muss mit einem Buchstaben, einer Zahl oder einem Unterstrich beginnen" must_end_with_alphanumeric: "muss mit einem Buchstaben, einer Zahl oder einem Unterstrich enden" must_not_contain_two_special_chars_in_seq: "muss keine Reihenfolge von 2 oder mehr Sonderzeichen (.-_) haben" + must_not_end_with_confusing_suffix: "Darf nicht mit einem Suffix wie json, png, etc. enden." email: not_allowed: "ist für diesen Mailprovider nicht erlaubt. Bitte verwende eine andere Mailadresse." blocked: "ist nicht erlaubt." ip_address: blocked: "Von Deiner IP Adresse aus ist es nicht erlaub sich zu registrieren." max_new_accounts_per_registration_ip: "Weitere Registrierungen sind von deiner IP-Adresse aus nicht gestattet (limit erreicht). Kontaktiere einen Administrator mit dem Problem damit er dir helfen kann." + unsubscribe_mailer: + subject_template: "Bestätige, dass du nicht länger E-Mail Updates von %{site_title} erhalten möchtest" + text_body_template: | + Jemand (wahrscheinlich du?) hat angefragt, nicht länger E-Mail Updates von %{site_domain_name} auf dieser Adresse zu erhalten. + Wenn du nicht länger Benachrichtigungen erhalten möchtest, dann klicke bitte diesen Link: + + %{confirm_unsubscribe_link} + + + Wenn du weiterhin E-Mail Updates erhalten möchtest, dann kannst du diese E-Mail ignorieren. invite_mailer: subject_template: "%{invitee_name} hat dich zum Thema '%{topic_title}' auf %{site_domain_name} eingeladen" text_body_template: | @@ -1411,12 +1439,22 @@ de: csv_export_failed: subject_template: "Datenexport fehlgeschlagen" text_body_template: "Entschuldigung, beim Exportieren deiner Daten trat ein Fehler auf. Bitte kontaktiere einen Mitarbeiter oder sieh in die Logs." + email_reject_insufficient_trust_level: + subject_template: "[%{site_name}] E-Mail Problem -- Unzureichendes Vertrauenslevel" + text_body_template: | + Es tut uns leid, aber das Senden deiner E-Mail Nachricht an %{destination} (betitelt mit %{former_title}) hat nicht funktioniert. + + Dein Benutzerkonto hat nicht das benötigte Vertrauenslevel um neue Themen an diese E-Mail Adresse zu senden. Wenn du glaubst, dass dies ein Fehler ist, dann kontaktiere bitte einen Mitarbeiter. + email_reject_inactive_user: + subject_template: "[%{site_name}] E-Mail Problem -- Inaktiver Nutzer" + text_body_template: | + Es tut uns leid, aber das Senden deiner E-Mail Nachricht an %{destination} (betitelt mit %{former_title}) hat nicht funktioniert. + + Dein Benutzerkonto, assoziiert mit dieser E-Mail Adresse ist nicht aktiviert. Bitte aktiviere dein Konto bevor du E-Mails sendest. + email_reject_reply_user_not_matching: + subject_template: "[%{site_name}] E-Mail Problem -- Antwort Nutzer stimmt nicht überein" email_reject_no_account: subject_template: "[%{site_name}] E-Mail-Problem -- Unbekanntes Konto" - text_body_template: | - Es tut uns leid, aber deine E-Mail-Nachricht an %{destination} (Titel: %{former_title}) konnte nicht verarbeitet werden! - - Es ist kein Konto mit dieser E-Mail-Adresse bekannt. Versuche die Nachricht von einer anderen, im Forum registrierten E-Mail-Adresse zu verschicken oder kontaktiere einen Mitarbeiter. email_reject_empty: subject_template: "[%{site_name}] E-Mail-Problem -- Kein Inhalt" text_body_template: | diff --git a/config/locales/server.es.yml b/config/locales/server.es.yml index e4cd55c40..22dc369c5 100644 --- a/config/locales/server.es.yml +++ b/config/locales/server.es.yml @@ -904,6 +904,7 @@ es: max_users_notified_per_group_mention: "Número de usuarios máximos que serán notificados si un grupo es mencionado (si se llega al límite no se mandarán más invitaciones)" create_thumbnails: "Crear miniaturas de imágenes y lightbox cuando estas son demasiado grandes para encajar en un post." email_time_window_mins: "Esperar (n) minutos antes de enviar cualquier email de notificación, para dar a los usuarios margen con el que editar y finalizar sus posts." + private_email_time_window_seconds: "Espera (n) segundos antes de enviar emails de notificación privada, para dar tiempo a los usuarios a editar y finalizar sus posts." email_posts_context: "Cuántas respuestas previas se incluirán como contexto en los emails de notificación." flush_timings_secs: "Cuán frecuente, en segundos, se alinean los datos de sincronización con el servidor." title_max_word_length: "La longitud máxima permitida de una palabra, en caracteres, en el título del tema." @@ -960,6 +961,7 @@ es: display_name_on_email_from: "Mostrar nombres completos en los campos de remitente de emails" unsubscribe_via_email: "Permitir a los usuarios darse de baja de los emails respondiendo con el texto 'unsubscribe' en el asunto o el cuerpo del mensaje" unsubscribe_via_email_footer: "Adjuntar un enlace para darse de baja al pie de los emails enviados" + delete_email_logs_after_days: "Eliminar logs de email después de (N) días. Si es 0 permanecerán de forma indefinida." pop3_polling_enabled: "Poll vía POP3 para respuestas de e-mail." pop3_polling_ssl: "Usar SSL mientras se conecta al servidor POP3. (Recomendado)" pop3_polling_period_mins: "El período en minutos entre revisiones de correo de la cuenta POP3. NOTA: requiere reiniciar." @@ -986,7 +988,7 @@ es: automatically_download_gravatars: "Descargar Gravatars para usuarios cuando se creen una cuenta o cambien el email." digest_topics: "El número máximo de temas a mostrar en el resumen por email." digest_min_excerpt_length: "La extensión mínima, en caracteres, del extracto de un post en el resumen por email." - delete_digest_email_after_days: "Suprimir los emails de resumen para aquellos usuarios que no han visto el sitio desde más de (n) días." + delete_digest_email_after_days: "Omitir los emails de resumen para usuarios que no hayan visto el sitio después de (n) días." disable_digest_emails: "Inhabilitar e-mails de resumen para todos los usuarios." detect_custom_avatars: "Verificar o no que los usuarios han subido una imagen de perfil." max_daily_gravatar_crawls: "Máximo número de veces que Discourse comprobará Gravatar en busca de avatares personalizados en un día" @@ -1353,6 +1355,8 @@ es: Sin embargo, si el post fuera ocultado por la comunidad una segunda vez, permanecerá oculto hasta que sea revisado por un moderador – y en ese caso puede que se tomen medidas, incluyendo la posible suspesión de tu cuenta. Para más información, por favor consulta nuestras [directrices](%{base_url}/guidelines). + usage_tips: + text_body_template: "Aquí tienes unos breves consejos para empezar:\n\n## Lectura\n\nPara leer más, **¡tan solo tienes que hacer scroll!**\n\nTan pronto como se publiquen nuevas respuestas o temas, aparecerán automáticamente – sin necesidad de actualizar la página.\n\n## Navegación\n\n- Para realizar una búsqueda, ver tu perfil de usuario, o el menú , usa los **botones de la esquina superior derecha**.\n\n- Entrar a un tema desde su título te llevará a la **última respuesta sin leer** del hilo. Para ir al primer o al último post, haz clic en el contador de respuestas o en la fecha de última respuesta..\n\n \n\n- Mientras lees un tema, selecciona la barra de progreso en la esquina inferior derecha para ver los controles de navegación. Podrás ir al inicio del hilo seleccionando su título. Teclea ? para ver una lista de rápidos atajos de teclado.\n\n \n\n## Participación\n\n- Para responder al **tema en general**, utiliza al final del hilo.\n\n- Para responder a **una persona en específico**, utiliza en su post.\n\n- Para responder **creando un nuevo tema**, utiliza la derecha del post. Tanto el tema original como el nuevo serán enlazados entre sí automáticamente.\n\nTu respuesta puede estar en varios formatos como HTML simple, BBCode, o [Markdown](http://commonmark.org/help/):\n\n Esto es **negrita**.\n Esto es negrita.\n Esto es [b]negrita[/b].\n\n¿Quieres aprender Markdown? [¡Echa un vistazo a nuestro divertido tutorial interactivo de 10 minutos!](http://commonmark.org/help/tutorial/)\n\nPara escribir una cita, selecciona el texto que quieres citar, después haz clic en el botón citar. ¡Puedes repetir para realizar múltiples citas!\n\n\n\nPara notificar a alguien en tu respuesta, menciónale. Empieza a escribir `@` para elegir su nombre de usuario.\n\n\n\nPara usar [Emojis](http://www.emoji.codes/), teclea `:` para elegir por nombre, o usa los tradicionales smileys `;)`\n\n\n\nPara generar un extracto desde un enlace, pégalo en una línea aparte para él solo:\n\n\n\n## Acciones\n\nHay algunos botones de acción al final de cada post:\n\n\n\nPara hacerle saber a alguien que aprecias su post, utiliza el botón de **Me gusta**. ¡Compartir es amor!\n\nSi ves algún problema en la publicación de alguien, escríbele un privado, o házselo saber [a nuestros moderadores](%{base_url}/about), con el botón **reporte**. También puedes **compartir** un enlace a un post, o guardarlo en **marcadores** para tenerlo de referencia en tu página de perfil.\n\n## Notificaciones\n\nCuando alguien te responde, cita tu post, o bien menciona tu `@usuario`, inmediatamente aparecerá un número en la esquina superior derecha de la página. Usa ese botón para acceder a tus **notificaciones**.\n\n\n\nNo te preocupes si te pierdes alguna respuesta – te enviaremos un email con las notificaciones que lleguen cuando estés fuera.\n\n## Tus preferencias\n\n - Todos los temas creados hace menos de **dos días** se consideran nuevos..\n\n - Aquellos temas en los que hayas **participado activamente** (porque lo hayas creado, o respondido o leído durante un período razonable) serán seguidos por tu usuario automáticamente. \n\nVerás los indicadores de temas nuevos o número de respuestas no leídas al lado de estos temas::\n\n\n\nPuedes cambiar tus notificaciones para cualquier tema mediante el control de notificaciones al final del tema.\n\n\n\nTambién puedes establecer el estado de notificación de una categoría entera, si quieres vigilar cualquier nuevo tema en una categoría específica.\n\nPara cambiar cualquiera de estas opciones, puedes ver [tus preferencias](%{base_url}/my/preferences).\n\n## Confianza y comunidad\n\nAl participar aquí, con el tiempo te ganarás la confianza de la comunidad, te convertirás en usuario de pleno derecho y te serán retiradas las limitaciones de nuevo usuario. Llegado a un punto de un alto [nivel de confianza](https://meta.discourse.org/t/what-do-user-trust-levels-do/4924), obtendrás además nuevas habilidades para ayudarnos a gestionar la comunidad juntos.\n" welcome_user: subject_template: "¡Bienvenido a %{site_name}!" text_body_template: | @@ -1575,8 +1579,10 @@ es: unsubscribe: title: "Darse de baja" description: "¿No estás interesado en recibir estos emails? ¡No hay problema! Haz clic abajo para darte de baja de forma instantánea:" - reply_by_email: "[Visita el tema](%{base_url}%{url}) o responde a este email para publicar." - visit_link_to_respond: "[Visita el tema](%{base_url}%{url}) para responder." + reply_by_email: "[Visita el tema](%{base_url}%{url}) o responde a este email para comentar" + visit_link_to_respond: "[Visita el tema](%{base_url}%{url}) para comentar" + reply_by_email_pm: "[Visita el mensaje](%{base_url}%{url}) o responde a este email para comentar" + visit_link_to_respond_pm: "[Visita el mensaje](%{base_url}%{url}) para comentar" posted_by: "Publicado por %{username} el %{post_date}" user_invited_to_private_message_pm: subject_template: "[%{site_name}] %{username} te ha invitado a un hilo de mensajes '%{topic_title}'" diff --git a/config/locales/server.fi.yml b/config/locales/server.fi.yml index 48c387f36..ee1b40ac8 100644 --- a/config/locales/server.fi.yml +++ b/config/locales/server.fi.yml @@ -915,6 +915,7 @@ fi: max_users_notified_per_group_mention: "Kuinka moni voi saada ilmoituksen, kun ryhmään viitataan (jos raja ylittyy, kukaan ei saa ilmoitusta)" create_thumbnails: "Luo esikatselu- ja lightbox-kuvia, jotka ovat liian suuria mahtuakseen viestiin." email_time_window_mins: "Odota (n) minuuttia ennen ilmoitussähköpostien lähettämistä, jotta käyttäjällä on aikaa muokata ja viimeistellä viestinsä." + private_email_time_window_seconds: "Odota (n) sekuntia ennen ilmoitusten lähettämistä käyttäjille, jotta kirjoittajalla on mahdollisuus muokata ja viimeistellä viestinsä." email_posts_context: "Kuinka monta edellistä vastausta liitetään kontekstiksi sähköposti-ilmoituksessa." flush_timings_secs: "Kuinka usein timing data päivitetään palvelimelle, sekunneissa." title_max_word_length: "Sanan enimmäispituus merkkeinä ketjun otsikossa" diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml index d07d23a93..a86d2f685 100644 --- a/config/locales/server.fr.yml +++ b/config/locales/server.fr.yml @@ -1060,6 +1060,7 @@ fr: invalid_string_min: "Doit être d'au moins %{count} caractères." invalid_string_max: "Ne doit pas être supérieur à %{max} caractères." invalid_reply_by_email_address: "La valeur doit contenir '%{reply_key}' et être différente de la notification email." + pop3_polling_authentication_failed: "Echec d'authentication POP3. Veuillez contrôler vos détails POP3." notification_types: group_mentioned: "%{group_name} a été mentionné dans %{link}" mentioned: "%{display_username} vous a mentionné dans %{link}" @@ -1171,12 +1172,23 @@ fr: must_begin_with_alphanumeric: "doit débuter par une lettre ou un nombre ou un underscore" must_end_with_alphanumeric: "doit terminer par une lettre, un chiffre ou un caractère souligné (underscore)" must_not_contain_two_special_chars_in_seq: "ne doit pas contenir une séquence de 2 caractères spéciaux ou plus (.-_)" + must_not_end_with_confusing_suffix: "ne doit pas se terminer avec un suffixe déroutant comme .json ou .png etc." email: not_allowed: "n'est pas autorisé pour ce fournisseur de courriels. Merci d'utiliser une autre adresse." blocked: "n'est pas autorisé." ip_address: blocked: "Les nouvelles inscriptions ne sont pas acceptées depuis votre adresse IP." max_new_accounts_per_registration_ip: "Les nouvelles inscriptions ne sont pas autorisées depuis votre adresse IP (limite atteinte). Contactez un responsable." + unsubscribe_mailer: + subject_template: "Confirmez que vous ne souhaitez plus recevoir d'email de mise à jour de %{site_title}" + text_body_template: | + Quelqu’un (est-ce vous?) a demandé à ne plus envoyer d'email de mise à jour de %{site_domain_name} a cette adresse. + Pour confirmer, merci de cliquer sur ce lien: + + %{confirm_unsubscribe_link} + + + Si vous souhaitez continuer à recevoir les emails, vous pouvez ignorer cette email. invite_mailer: subject_template: "%{invitee_name} vous a invité(e) à participer à '%{topic_title}' sur %{site_domain_name}" text_body_template: | @@ -1339,6 +1351,103 @@ fr: Afin d'être guider, merci de vous référer à notre [charte](%{base_url}/guidelines). + usage_tips: + text_body_template: | + Vous trouverez ci-dessous quelques astuces pour vous aider à démarrer : + + ## Lire + + Pour en lire plus, **faites défiler vers le bas !** + + Lorsque de nouveaux sujets ou de nouvelles réponses sont publiés, ils apparaissent automatiquement ; inutile de rafraîchir la page. + + ## Navigation + + - Pour effectuer une recherche, accéder à votre profil ou au utiliser le menu , cliquez sur les icônes en haut à droite. + + - Sélectionner le titre d'un article, vous dirigera toujours vers **la nouvelle réponse non lue** dans celui-ci. Pour aller au début ou à la fin, sélectionnez le compteur de réponses ou la date de la dernière réponse. + + + + - Pendant la lecture d'un article, sélectionnez la barre de progression en bas à droite pour utiliser les commandes de navigation. Revenez directement au début en cliquant sur le titre de l'article. Appuyez sur ? pour afficher la liste des raccourcis clavier. + + + + ## Répondre + + - Pour répondre **de manière générale à une conversation**, utilisez tout en bas de celle-ci. + + - Pour répondre à **une personne en particulier**, utilisez sur leur message. + + - Pour répondre en initiant **une nouvelle conversation**, utilisez qui se trouve à la droite du message. L'ancien et le nouveau sujet seront alors automatiquement liés. + + Votre réponse peut être mise page en utilisant soit du HTML simple, soit les syntaxes BBCode ou [Markdown](http://commonmark.org/help/) : + + Ceci est **gras**. + Ceci est gras. + Ceci est [b]gras<[/b]. + + Vous voulez apprendre Markdown ? [Suivez notre amusant tutoriel interactif de 10 minutes !](http://commonmark.org/help/tutorial/) + + Pour insérer une citation, sélectionnez le texte que vous souhaitez citer, puis cliquez sur n'importe quel bouton Répondre. Répétez l'opération pour insérer d'autres citations. + + + + Pour signaler à quelqu'un votre réponse, mentionnez son nom. Tapez un `@` pour commencer à choisir un utilisateur. + + + + Pour insérer un [émoticône standard Emoji](http://www.emoji.codes/), utilisez le caractère `:` et tapez son nom ou utilisez des des émoticônes traditionnels comme `;)`. + + + + Pour générer l'aperçu d'un lien, mettez le lien seul sur une ligne. + + + + ## Actions + + Il y a des boutons d'actions en bas de chaque commentaire : + + + + Pour prévenir quelqu'un que vous appréciez son commentaire, cliquez **sur le cœur**. Partagez votre amour ! + + Si un commentaire vous pose problème, prévenez soit son auteur en privé, soit [l'équipe de modération](%{base_url}/about) grâce au bouton **drapeau**. + + Vous pouvez aussi partager un lien vers une contribution ou lui mettre un signet afin de la retrouver plus tard dans votre page utilisateur. + + ## Notifications + + Quand quelqu'un vous répond, vous cite ou mentionne votre `@pseudo`, un numéro apparaîtra immédiatement en haut à droite de la page. Cliquez dessus pour accéder à vos **notifications**. + + + + N'ayez pas la crainte de manquer une réponse ; vous serez notifié par courriel de toutes les notifications survenant pendant que vous n'êtes pas connecté. + + ## Vos préférences + + - Tout article vieux de **moins de 2 jours** est considéré comme nouveau. + + - Toute conversation à laquelle vous avez **participé** (création, réponses ou lecture pendant une période prolongée) sera automatiquement suivie. + + En face de ces articles, vous verrez en bleu la mention "nouveau" ou bien le nombre de notifications non lues : + + + + Vous pouvez changer les paramètres de notification de chaque article en utilisant la commande de notification, en bas de l'article. + + + + Vous pouvez aussi configurer les notifications par catégorie, si vous voulez voir chaque nouvel article d'une catégorie spécifique. + + Pour changer n'importe lequel de ces paramètres, allez dans [vos préférences](%{base_url}/my/preferences). + + ## Une communauté basé sur la confiance + + Au fur et à mesure de votre participation, vous allez progressivement gagner la confiance de la communauté, vous deviendrez un membre à part entière et les limitations fonctionnelles propres à chaque nouvel utilisateur seront levées. + + À un niveau de confiance [suffisamment élevé](https://meta.discourse.org/t/what-do-user-trust-levels-do/4924), vous aurez accès à de nouvelles fonctionnalités vous permettant de nous aider à gérer la communauté. welcome_user: subject_template: "Bienvenue sur %{site_name} !" text_body_template: "Merci d'avoir rejoint %{site_name} et bienvenue ! \n\n%{new_user_tips}\n\nNous croyons au [comportement communautaire civilisé](%{base_url}/guidelines) en tous temps. \n\nAmusez-vous bien ! \n\n(Si, en tant que nouvel utilisateur, vous avez besoin de communiquer avec un [responsable](%{base_url}/about), répondez simplement à ce message.)\n" @@ -1565,6 +1674,8 @@ fr: description: "Ces courriels ne vous intéressent pas ? Aucun problème ! Cliquez ci-dessous pour vous désabonner immédiatement :" reply_by_email: "[Visiter sujet](%{base_url}%{url}) ou répondre à ce courriel pour répondre." visit_link_to_respond: "[Visiter sujet](%{base_url}%{url}) pour répondre." + reply_by_email_pm: "[Visiter message](%{base_url}%{url}) ou répondre à ce courriel pour répondre." + visit_link_to_respond_pm: "[Visiter message](%{base_url}%{url}) pour répondre." posted_by: "Ecrit par %{username} le %{post_date}" user_invited_to_private_message_pm: subject_template: "[%{site_name}] %{username} vous a invité dans la conversation '%{topic_title}'" @@ -1665,6 +1776,7 @@ fr: --- %{respond_instructions} user_posted_pm_staged: + subject_template: "%{optional_re}%{topic_title}" text_body_template: |2 %{message} diff --git a/config/locales/server.ja.yml b/config/locales/server.ja.yml index dcfe7301d..ab3086d59 100644 --- a/config/locales/server.ja.yml +++ b/config/locales/server.ja.yml @@ -10,6 +10,8 @@ ja: short_date_no_year: "MMM D" short_date: "MMM D, YYYY" long_date: "MMMM D, YYYY h:mma" + date: + month_names: [null, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月] title: "Discourse" topics: "トピック" posts: "投稿" @@ -19,6 +21,9 @@ ja: purge_reason: "アクティブでないアカウントは放棄されたとして削除されました" disable_remote_images_download_reason: "ディスク容量が不足しているため、リモートでの画像ダウンロードは無効になっています。" anonymous: "匿名" + emails: + incoming: + default_subject: "%{email}からメール" errors: &errors format: '%{attribute} %{message}' messages: @@ -35,8 +40,10 @@ ja: exclusion: は予約されています greater_than: は%{count}より大きい値にしてください greater_than_or_equal_to: は%{count}以上の値にしてください + has_already_been_used: "は既に使用されています" inclusion: は一覧にありません invalid: は不正な値です + is_invalid: "は不正です。もう少し説明を追加してください" less_than: は%{count}より小さい値にしてください less_than_or_equal_to: は%{count}以下の値にしてください not_a_number: は数値で入力してください @@ -168,7 +175,7 @@ ja: post: raw: "本文" user_profile: - bio_raw: "About Me" + bio_raw: "自己紹介" errors: models: topic: diff --git a/config/locales/server.pt_BR.yml b/config/locales/server.pt_BR.yml index 160aca462..fb549bbba 100644 --- a/config/locales/server.pt_BR.yml +++ b/config/locales/server.pt_BR.yml @@ -90,6 +90,8 @@ pt_BR: not_found: "A URL ou recurso solicitado não pôde ser encontrado." invalid_access: "Você não tem permissão para ver o recurso solicitado." read_only_mode_enabled: "O site está em modo somente leitura. As interações estão desativadas." + reading_time: "Tempo de leitura" + likes: "Curtidas" too_many_replies: one: "Lamentamos, mas usuários novos estão temporariamente limitados a 1 resposta no mesmo tópico." other: "Lamentamos, mas usuários novos estão temporariamente limitados a %{count} respostas no mesmo tópico." @@ -295,6 +297,7 @@ pt_BR: one: "Não é possível excluir esta categoria porque ela tem um tópico. O tópico mais velho é %{topic_link}." other: "Não é possível excluir essa categoria porque ela tem %{count} tópicos. O tópico mais velho é %{topic_link}." topic_exists_no_oldest: "Não é possível excluir esta categoria porque contagem tópico é %{count}." + uncategorized_description: "Tópicos que não precisam de uma categoria, ou que não se encaixam em nenhuma outra categoria existente." trust_levels: newuser: title: "usuário novo" @@ -316,6 +319,7 @@ pt_BR: create_topic: "Você está criando tópicos muito rápido. Por favor aguarde %{time_left} antes de tentar novamente." create_post: "Você está respondendo muito rápido. Por favor aguarde %{time_left} antes de tentar novamente." topics_per_day: "Você atingiu o número máximo de novos tópicos hoje. Por favor aguarde %{time_left} antes de tentar novamente." + pms_per_day: "Você alcançou o número máximo de mensagens por hoje. Por favor aguarde %{time_left} antes de tentar de novo." create_like: "Você atingiu o número máximo de curtidas hoje. Por favor aguarde% {time_left} antes de tentar novamente." create_bookmark: "Você atingiu o número máximo de marcadores hoje. Por favor aguarde% {time_left} antes de tentar novamente." edit_post: "Você atingiu o número máximo de edições hoje. Por favor aguarde% {tempo} esquerda antes de tentar novamente." @@ -445,6 +449,8 @@ pt_BR: notify_moderators: title: "Algo mais" description: 'Esta postagem requer atenção da moderação por outra razão não listada acima.' + long_form: 'sinalizou isto para a atenção da equipe' + email_title: 'Um post em "%{title}" requer a atenção da equipe' email_body: "%{link}\n\n%{message}" bookmark: title: 'Adicionar Marcador' @@ -469,6 +475,7 @@ pt_BR: long_form: 'sinalizar como impróprio' notify_moderators: title: "Algo mais" + description: 'Este tópico requer a atenção geral da equipe baseado nas diretrizes da comunidade, no Termos de Serviço, ou em outra razão não listada acima.' long_form: 'sinalizar isso para atenção da moderação' email_title: 'O tópico "%{title}" requer atenção do moderador' email_body: "%{link}\n\n%{message}" diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml index 415b548b5..a1b600844 100644 --- a/config/locales/server.ru.yml +++ b/config/locales/server.ru.yml @@ -10,6 +10,12 @@ ru: short_date_no_year: "D MMM" short_date: "D MMM YYYY" long_date: "D MMMM YYYY, HH:mm" + datetime_formats: &datetime_formats + formats: + short: "%m-%d-%Y" + date: + month_names: [null, Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь] + <<: *datetime_formats title: "Discourse" topics: "Темы" posts: "сообщения" @@ -446,29 +452,31 @@ ru: missing_session: "В данный момент, мы не можем подтвердить, была ли учетная запись создана. Убедитесь что в вашем браузере включены cookies и повторите попытку. В случае неудачи, обратитесь в техническую поддержку сайта." post_action_types: off_topic: - title: 'Не по теме' - description: 'Это сообщение не имеет отношения к данному обсуждению. Возможно, его стоит перенести в соответствующий раздел.' - long_form: 'отмечена как не по теме' + title: 'Офтопик (не по теме)' + description: 'Это сообщение не имеет отношения к теме, учитывая ее название и текст. Возможно, его стоит перенести.' + long_form: 'отметили это как офтопик (не по теме)' spam: - title: 'СПАМ' - description: 'Это реклама! Данное сообщение не представляет особого интереса или не относится к начальной теме. ' - long_form: 'отмечено как СПАМ' - email_title: '"%{title}" отмечено как спам' + title: 'Спам' + description: 'Это сообщение носит рекламный характер и не представляет особого интереса для темы.' + long_form: 'отметили это как спам' + email_title: 'Отмечено как спам: "%{title}"' email_body: "%{link}\n\n%{message}" inappropriate: - title: 'Неуместно' + title: 'Неприемлемо' description: 'Это сообщение может быть оскорбительным или нарушает правила поведения.' long_form: 'отметить как неуместное' notify_user: - title: 'Отправить @{{username}} сообщение' - description: 'Я хочу пообщаться приватно с этим человеком о его посте.' + title: 'Отправить @{{username}} личное сообщение' + description: 'Я хочу обсудить это сообщение с автором приватно и не привлекая внимания модераторов.' long_form: 'оповещаемый пользователь' email_title: 'Ваше сообщение в теме "%{title}"' email_body: "%{link}\n\n%{message}\n" notify_moderators: - title: "Другое" - description: 'Этот пост требует внимания администрации по другой причине.' - email_body: "%{link}\n\n%{message}\n" + title: "Другая причина" + description: 'Это сообщение требует модерации по иной причине, которая отсутствует в списке выше.' + long_form: 'отметили это для модерации' + email_title: 'Сообщение в теме "%{title}" требует модерации' + email_body: "%{link}\n\n%{message}" bookmark: title: 'Добавить в закладки' description: 'Добавить сообщение в закладки' @@ -1040,6 +1048,17 @@ ru: redirected_to_top_reasons: new_user: "Добро пожаловать в наше сообщество! Вот самые популярные недавние темы." not_seen_in_a_month: "С возвращением! Т.к. вас не было какое-то время, мы собрали список популярных тем за время вашего отсутсвия. Вот они." + move_posts: + new_topic_moderator_post: + one: "Сообщение перенесено в новую тему: %{topic_link}" + few: "%{count} сообщения перенесены в новую тему: %{topic_link}" + many: "%{count} сообщений перенесены в новую тему: %{topic_link}" + other: "%{count} сообщений перенесены в новую тему: %{topic_link}" + existing_topic_moderator_post: + one: "Сообщение перенесено в тему %{topic_link}" + few: "%{count} сообщения перенесены в тему %{topic_link}" + many: "%{count} сообщений перенесены в тему %{topic_link}" + other: "%{count} сообщений перенесены в тему %{topic_link}" change_owner: post_revision_text: "Владелец сменен с %{old_user} на %{new_user}" deleted_user: "Удаленный пользователь" @@ -1291,6 +1310,8 @@ ru: Тем не менее, если сообщение окажется скрытым второй раз, об этом будут оповещены модераторы, которые могут отреагировать на жалобы, вплоть до приостановления доступа к вашей учетной записи. Дополнительная информация доступна в [часто задаваемых вопросах](%{base_url}/guidelines). + usage_tips: + text_body_template: "Несколько советов, чтобы помочь вам освоиться на форуме:\n\n## Чтение\n\nЗдесь нет кнопок \"Следующая страница\" или номеров страниц -- чтобы читать дальше, просто прокручивайте страницу вниз, и следующие темы и сообщения будут автоматически подгружаться.\n\n## Навигация\n\n- Обратите внимание на **иконки в правом верхнем углу страницы**. Там есть поиск по форуму, меню и ссылка на вашу пользовательскую страницу с индивидуальными настройками. \n\n- Если нажать на заголовок любой темы в списке тем, вы попадёте к **первому непрочитанному сообщению** в этой теме. Если же вы хотите перейти в начало или конец темы, то вместо заголовка следует кликнуть на количество ответов или на дату последнего ответа в этой теме, соответственно:\n\n \n\n- Для быстрого перемещения к нужному сообщению внутри темы используйте индикатор с номерами постов в правом нижнем углу страницы:\n\n \n\n- Чтобы перейти в самое начало темы, можно кликнуть на заголовок наверху.\n\n- Перемещаться по форуму можно также с помощью \"горячих клавиш\". Нажмите ?, чтобы ознакомиться с их списком.\n\n## Как отвечать\n\n- Чтобы **ответить в теме**, без привязки к какому-либо предыдущему комментарию в ней, следует нажать на кнопку в самом низу на странице темы.\n\n- Чтобы ответить **конкретному человеку**, надо нажать на иконку внизу поста, на который вы хотите ответить.\n\n- Ещё есть возможность ответить на сообщение новой темой. Так имеет смысл делать, когда обсуждение значительно отклоняется от темы, заявленной в заголовке. Чтобы ответить **новой темой**, нажмите на знак справа от поста, на который вы отвечаете. Система автоматически свяжет старую и новую темы между собой ссылками.\n\nДля форматирования текста в сообщениях можно использовать HTML, BBCode и [Markdown](https://ru.wikipedia.org/wiki/Markdown). Например, чтобы выделить фрагмент текста жирным шрифтом, можно использовать любой из следующих вариантов разметки:\n\n Этот текст **будет жирным**.\n Этот текст будет жирным.\n Этот текст [b]будет жирным[/b].\n\nЧтобы при ответе использовать цитату из другого сообщения, выделите текст, который вы хотите процитировать, и нажмите кнопку \"Ответить\". И так можно проделать для нескольких цитат.\n\n\n\nЧтобы оповестить определённого участника форума о вашем сообщении, упомяните в тексте его имя пользователя (\"ник\"), начиная со знака @. Наберите `@`, и откроется список пользователей, из которого вы сможете выбрать адресата.\n\n\n\nЧтобы использовать [иконки Emoji](http://www.emoji.codes/), достаточно ввести с клавиатуры символ `:`, и откроется меню с выбором иконок. Разумеется, можно и вручную вводить традиционные смайлики `;)`\n\n\n\nЕсли вы хотите поделиться ссылкой, то можно сделать так, чтобы в сообщении автоматически показывался небольшой фрагмент с той страницы, куда ведёт ссылка. Для этого надо эту ссылку размещать в отдельной строке сообщения, не внутри текста:\n\n\n\n## Дополнительные возможности\n\nВнизу каждого сообщения есть кнопки действий:\n\n\n\nЕсли вам понравился чей-либо пост, обязательно поблагодарите автора, нажав на кнопочку с сердечком (**\"мне нравится\"**).\n\nЕсли же какое-либо сообщение вам кажется неприемлемым или нарушающим [правила форума](%{base_url}/guidelines), пожалуйста, сообщите об этом приватно автору этого сообщения или [команде форума](%{base_url}/about) (по вашему усмотрению) с помощью кнопки c флажком (\"**пожаловаться**\").\n\nКнопка с цепочкой позволяет получить ссылку на пост, чтобы сохранить её или **поделиться** через социальную сеть.\n\nИ, наконец, есть кнопка с изображением книжной закладки, которая позволяет сохранить пост в **избранное** и потом быстро вернуться к нему со своей страницы пользователя.\n\n## Оповещения\n\nКогда кто-нибудь отвечает вам, цитирует ваше сообщение или упоминает по `@имени_пользователя`, в правом верхнем углу страницы появится иконка с цифрой. Эта цифра означает количество ожидаемых вас **оповещений**. Кликните на неё, чтобы увидеть список.\n\n\n\nЕсли новое оповещение появится когда вас нет на сайте, то оно продублируется на электронную почту. На всякий случай, проверьте свои [настройки оповещений](%{base_url}/my/preferences), чтобы убедиться, что там всё как вам удобно.\n\n## Настройки\n\n - По умолчанию, темы будут считаться новыми, если они созданы **за последние два дня**.\n\n - Любая тема, в которой вы **активно участвовали** (отвечали, создали эту тему или просто читали её достаточно долгое время) будет автоматически отслеживаться на предмет новых сообщений.\n\nВы увидите синий индикатор \"новый\" и число новых сообщений рядом с отслеживаемыми темами.\n\n\n\nВы можете изменить настройки уведомлений и отслеживания отдельно для любой темы с помощью меню внизу этой темы:\n\n\n\nАналогичным образом можно настроить желаемый режим оповещений для разделов форума, чтобы получать оповещения о новых темах в этих разделах.\n\nОбщие для всех тем настройки отслеживания и классификация тем как \"новые\" задаются в [пользовательских настройках](%{base_url}/my/preferences).\n" welcome_user: subject_template: "Добро пожаловать на %{site_name}!" text_body_template: | @@ -1690,6 +1711,8 @@ ru: performance_report: initial_post_raw: Эта тема содержит ежедневные отчеты активности форума. initial_topic_title: Отчеты активности форума + time: + <<: *datetime_formats activemodel: errors: <<: *errors diff --git a/config/locales/server.sk.yml b/config/locales/server.sk.yml index 2b2431e3f..5ad1ce158 100644 --- a/config/locales/server.sk.yml +++ b/config/locales/server.sk.yml @@ -27,6 +27,9 @@ sk: purge_reason: "Automaticky vymazaný ako opustený, neaktivovaný účet" disable_remote_images_download_reason: "Sťahovanie vzdialených obrázkov je vypnuté kvôli nedostatku diskového priestoru." anonymous: "Anonymný" + emails: + incoming: + default_subject: "Prijatý email od %{email}" errors: &errors format: '%{attribute} %{message}' messages: @@ -322,6 +325,7 @@ sk: few: "Nemôžte vymazať kategóriu pretože obsahuje %{count} témy. Najstaršia téma je %{topic_link}." other: "Nemôžte vymazať kategóriu pretože obsahuje %{count} tém. Najstaršia téma je %{topic_link}." topic_exists_no_oldest: "Nemôžte vymazať túto kategóriu pretože obsahuje %{count} tém." + uncategorized_description: "Témy, ktoré nepotrebujú kategóriu, alebo sa do žiadnej existujúcej nehodia." trust_levels: newuser: title: "nový používateľ" @@ -951,6 +955,7 @@ sk: max_users_notified_per_group_mention: "Maximálny počet používateľov, ktorý môžu dostať notifikácie, v prípade notifikovania celej skupiny (ak sa dosiahne maximum, žiadne ďalšie notifikácie nebudú zaslané)" create_thumbnails: "Vytvor náhľad a okraje pre obrázoky, ktoré sú príliš veľké aby sa zmestili do príspevku." email_time_window_mins: "Počkať (n) minút pred poslaním akýchkoľvek notifikačných emailov, aby mali používatelia čas úpraviť a dokončiť svoje príspevky." + private_email_time_window_seconds: "Počkať (n) sekúnd pred poslaním akýchkoľvek súkromných notifikačných emailov, aby mali používatelia čas úpraviť a dokončiť svoje príspevky." email_posts_context: "Koľko posledných odpovedí zahrnúť do obsahu v notifikačných emailoch." flush_timings_secs: "Ako často posielať časové dáta na server, v sekundách." title_max_word_length: "Maximálna povolená dĺžka slov v názve témy, v znakoch." @@ -1007,6 +1012,7 @@ sk: display_name_on_email_from: "V emailovom poli Od zobraziť plné mená" unsubscribe_via_email: "Umožniť používateľom odhlásiť sa z emailov pomocou zaslania emailu s textom 'unsubscribe' v predmete alebo v tele emailu" unsubscribe_via_email_footer: "Do päty stránky posielaných emailov pridať odkaz na odhlásenie sa" + delete_email_logs_after_days: "Zmazať logy o emailoch po (N) dňoch. 0 pre neobmedzene. " pop3_polling_enabled: "Získavať emailové odpovede pomocou POP3" pop3_polling_ssl: "Na spojenie s POP3 serverom použiť SSL. (Doporučované)" pop3_polling_period_mins: "Doba v minutách medzi POP3 kontrolami emailov. POZNÁMKA: vyžaduje reštart." @@ -1033,7 +1039,7 @@ sk: automatically_download_gravatars: "Po vytvorení účtu alebo zmene heslo stiahnuť používateľov Gravatar." digest_topics: "Maximálny počet tém, ktoré sa zobrazia v súhrnnom emaile." digest_min_excerpt_length: "Minimálny výťah príspevku v sumarizačnom emaile, v znakoch." - delete_digest_email_after_days: "Zakázat súhrnný email používateľom, ktorý neboli na stránkach viac ako (n) dní." + delete_digest_email_after_days: "Zakázat súhrnný email používateľom, ktorí neboli na stránkach viac ako (n) dní." disable_digest_emails: "Vypnúť sumárny email pre všetkých používateľov." detect_custom_avatars: "Má alebo nemá sa kontrolovať nahratie vlastného profilového obrázka používateľa?" max_daily_gravatar_crawls: "Koľkokrát denne má Discourse kontrolovať Gravatar na zistenie vlastného avatara." @@ -1546,12 +1552,12 @@ sk: ``` csv_export_succeeded: subject_template: "Export dát kompletný" + csv_export_failed: + subject_template: "Export dát zlyhal" + email_reject_inactive_user: + subject_template: "[%{site_name}] Problém s emailom -- Neaktívny užívateľ" email_reject_no_account: subject_template: "[%{site_name}] Problém s emailom -- Neznámy účet" - text_body_template: | - Prepáčte, ale Vaša emailová správa na %{destination} (titled %{former_title}) nefungovala. - - S touto emailovou adresou neexistuje žiadny používateľský účet. Pokúste za zaslať správu pomocou inej email adresy alebo kontaktujte zamestnanca stránok. email_reject_empty: subject_template: "[%{site_name}] Problém s emailom -- Žiadny obsah" text_body_template: | @@ -1572,18 +1578,18 @@ sk: Prepáčte, ale Vaša emailová správa na %{destination} (titled %{former_title}) nefungovala. Na založenie novej témy v tejto kategórií Váš účet nemá dostatočné oprávnenia. Ak si myslíte, že ide o chybu, kontaktujte zamestnanca stránok. + email_reject_strangers_not_allowed: + subject_template: "[%{site_name}] Problém s emailom -- Nesprávny prístup" + email_reject_invalid_post: + subject_template: "[%{site_name}] Problém s emailom -- Chyba pri uverejnení" + email_reject_invalid_post_specified: + subject_template: "[%{site_name}] Problém s emailom -- Chyba pri uverejnení" email_reject_reply_key: subject_template: "[%{site_name}] Problém s emailom -- Neznámy kľúč odpovede" - text_body_template: | - Prepáčte, ale Vaša emailová správa na %{destination} (titled %{former_title}) nefungovala. - - Poskytnutý kľúč odpovede je neplatný, alebo neznámy, takže nedokážeme určiť, k čomu táto emailová odpoveď patrí. Kontaktujte zamestnanca stránok. + email_reject_bad_destination_address: + subject_template: "[%{site_name}] Problém s emailom -- Neznáma adresa príjemcu - Komu:" email_reject_topic_not_found: subject_template: "[%{site_name}] Problém s emailom -- Téma nebola nájdená" - text_body_template: | - Prepáčte, ale Vaša emailová správa na %{destination} (titled %{former_title}) nefungovala. - - Téma, na ktorú odpovedáte už neexistuje. možno bola vymazaná Ak si mysíte, že ide o chybu, kontaktujte zamestnanca stránok. email_reject_topic_closed: subject_template: "[%{site_name}] Problém s emailom -- Téma je uzavretá" text_body_template: | @@ -1733,6 +1739,10 @@ sk: subject_template: "[%{site_name}] Váš nový účet" authorize_email: subject_template: "[%{site_name}] Potvrďte Vašu novú email adresu" + text_body_template: | + Potvrďte Vašu novú emailovú adresu pre %{site_name} kliknutím na nasledujúci odkaz: + + %{base_url}/users/authorize-email/%{email_token} signup_after_approval: subject_template: "Váš účet bol schválený na %{site_name}!" signup: diff --git a/config/locales/server.vi.yml b/config/locales/server.vi.yml index e02c1a55d..094d7b116 100644 --- a/config/locales/server.vi.yml +++ b/config/locales/server.vi.yml @@ -10,6 +10,14 @@ vi: short_date_no_year: "D MMM" short_date: "D MMM, YYYY" long_date: "MMMM D, YYYY h:mma" + datetime_formats: &datetime_formats + formats: + short: "%m-%d-%Y" + short_no_year: "%B %-d" + date_only: "%b %-d, %Y" + date: + month_names: [null, Tháng Một, Tháng Hai, Tháng Ba, Tháng Tư, Tháng Năm, Tháng Sáu, Tháng Bảy, Tháng Tám, Tháng Chín, Tháng Mười, Tháng Mười Một, Tháng Mười Hai] + <<: *datetime_formats title: "Discourse" topics: "Chủ đề" posts: "bài viết" @@ -19,11 +27,14 @@ vi: purge_reason: "Tự động xóa tài khoản không sử dụng, không kích hoạt." disable_remote_images_download_reason: "Không thể tải ảnh về máy chủ vì thiếu dung lượng." anonymous: "Ẩn danh" - errors: + emails: + incoming: + default_subject: "Email đến từ %{email}" + errors: &errors format: '%{attribute} %{message}' messages: too_long_validation: "cho phép tối đa %{max} ký tự; bạn đã nhập %{length}." - invalid_boolean: "Giá trị boolean không hợp lệ" + invalid_boolean: "Giá trị logic không hợp lệ" taken: "đã được lấy trước" accepted: phải được chấp nhận blank: không thể để rỗng @@ -78,6 +89,8 @@ vi: not_found: "Không thể tìm thấy đường dẫn hoặc tài nguyên yêu cầu." invalid_access: "Bạn không được phép xem tài nguyên đã yêu cầu." read_only_mode_enabled: "Trang web đang ở chế độ chỉ đọc. Tất cả các tương tác đã bị tắt." + reading_time: "Thời gian đọc" + likes: "Lượt Thích" too_many_replies: other: "Xin lỗi bạn, người dùng mới tạm thời bị giới hạn với %{count} câu trả lời trong một chủ đề." embed: @@ -92,6 +105,20 @@ vi: replies: other: "%{count} câu trả lời" no_mentions_allowed: "Xin lỗi, bạn không thể nhắc tới thành viên khác." + too_many_mentions: + other: "Xin lỗi, bạn chỉ có thể nhắc tới %{count} thành viên trong một bài viết." + no_mentions_allowed_newuser: "Xin lỗi, thành viên mới không thể nhắc tới thành viên khác." + too_many_mentions_newuser: + other: "Xin lỗi, thành viên mới chỉ có thể nhắc tới %{count} thành viên khác trong một bài viết." + no_images_allowed: "Xin lỗi, thành viên mới chưa được chèn hình ảnh vào bài viết." + too_many_images: + other: "Xin lỗi, thành viên mới chỉ có thể chèn %{count} hình ảnh trong một bài viết." + no_attachments_allowed: "Xin lỗi, thành viên mới chưa được chèn tập tin trong bài viết." + too_many_attachments: + other: "Xin lỗi, thành viên mới chỉ được chèn %{count} file đính kèm trong một bài viết." + no_links_allowed: "Xin lỗi, thành viên mới chưa được chèn liên kết trong bài viết." + too_many_links: + other: "Xin lỗi, thành viên mới chỉ được chèn %{count} liên kết trong một bài viết." spamming_host: "Xin lỗi bạn không thể chèn liên kết tới trang đó." user_is_suspended: "Người dùng đang bị treo không được phép đăng bài." topic_not_found: "Có gì đó đã sai. Có lẽ chủ đề này đã bị đóng hoặc bị xóa trong khi bạn đang xem?" @@ -123,6 +150,8 @@ vi: errors: can_not_modify_automatic: "Bạn không thể sửa đổi một nhóm tự động" member_already_exist: "'%{username}' đã là thành viên của nhóm" + invalid_domain: "'%{domain}' không phải là tên miền hợp lệ." + invalid_incoming_email: "'%{incoming_email}' không phải là một địa chỉ mail hợp lệ." default_names: everyone: "Mọi người" admins: "quản trị" @@ -209,6 +238,7 @@ vi: attributes: hex: invalid: "không phải là một màu không hợp lệ" + <<: *errors user_profile: no_info_me: "
    Mục nói về bản thân bạn trong hồ sơ của bạn hiện đang trống, bạn muốn điền vào nó? " no_info_other: "
    %{name} đã không nhập bất cứ điều gì nói về bản thân của họ " @@ -244,6 +274,8 @@ vi: [trust]: https://meta.discourse.org/t/what-do-user-trust-levels-do/4924 category: topic_prefix: "Giới thiệu chuyên mục %{category}" + replace_paragraph: "(Thay thế đoạn này với miêu tả về category mới. Bản hướng dẫn này sẽ được xuất hiện trong vùng chọn của category, vì thế nó chỉ giới hạn trong 200 kí tự. **Cho đến khi bạn chỉnh sửa phần miêu tả này hoặc tạo topic cho nó, category này sẽ không xuất hiện trên trang web.**)" + post_template: "%{replace_paragraph}\n\nSử dụng những đoạn sau để viết mô tả dài, hướng dẫn sử dụng hoặc điều luật sử dụng:\n\n- Mục đích sử dụng của category này là gì?\n\n- Category này khác với những cái khác như thế nào?\n\n- Những topic trong category này thường có nội dung gì?\n\n- Chúng ta có thể ghép với category khác không?\n" errors: uncategorized_parent: "Mục \"Chưa được phân loại\" không thể có một chuyên mục chính" self_parent: "Cha của chủ đề phụ không thể nào là chính nó" @@ -255,14 +287,32 @@ vi: topic_exists: other: "Không thể xoá phân loại này được bởi vì nó có %{count} chủ đề. Các chủ đề cũ là %{topic_link}." topic_exists_no_oldest: "Không thể xoá chuyên mục này vì nó có %{count} chủ để." + uncategorized_description: "Chủ đề không cần chuyên mục, hoặc không phù hợp với bất kỳ chuyên mục nào hiện có." trust_levels: newuser: title: "thành viên mới" basic: title: "thành viên cơ bản" + member: + title: "thành viên" + regular: + title: "thường xuyên" + leader: + title: "người khởi xướng" change_failed_explanation: "Bạn đã cố gắng để giảm hạng %{user_name} xuống '%{new_trust_level}'. Tuy nhiên cấp độ tin cậy hiện tại của họ đã là '%{current_trust_level}'. %{user_name} sẽ được giữ lại ở cấp độ '%{current_trust_level}' - nếu bạn muốn giảm hạng thành viên, trước tiên hãy khóa cấp độ tin cậy" rate_limiter: + slow_down: "Hành động này đã được thực hiện quá nhiều lần. Bạn vui lòng thử lại sau." too_many_requests: "Hành động bạn vừa thực hiện bị giới hạn theo ngày. Hãy chờ %{time_left} và thử lại." + by_type: + first_day_replies_per_day: "Bạn vừa vượt quá số lần trả lời tối đa trong ngày đầu của thành viên mới. Xin hãy chờ %{time_left} và thử lại sau." + first_day_topics_per_day: "Bạn vừa đạt tới số lần mở topic tối đa cho thành viên mới. Xin vui lòng chờ %{time_left} trước khi thử lại." + create_topic: "Bạn đang tạo topic quá nhanh. Vui lòng chờ %{time_left} trước khi thử lại." + create_post: "Bạn đang trả lời quá nhanh. Xin vui lòng chờ %{time_left} trước khi thử lại." + topics_per_day: "Bạn vừa đạt tới số lần mở topic mới tối đa trong ngày hôm nay. Vui lòng chờ %{time_left} trước khi thử lại." + pms_per_day: "Bạn vừa đạt tới số lần gửi tin nhắn tối đa trong ngày. Xin vui lòng chờ %{time_left} trước khi thử lại." + create_like: "Bạn vừa đạt tới số lần tối đa được Like trong ngày. Xin vui lòng chờ %{time_left} trước khi thử lại." + create_bookmark: "Bạn vừa đạt tới số lần đánh dấu tối đa trong ngày. Xin vui lòng chờ %{time_left} trước khi thử lại." + edit_post: "Bạn vừa đạt tới số lần chỉnh sửa tối đa trong ngày. Xin vui lòng chờ %{time_left} trước khi thử lại." hours: other: "%{count} giờ" minutes: @@ -356,11 +406,16 @@ vi: description: 'Chủ để này chứa nội dung mà bình thường được xem là xúc phạm, lạm dụng, hoặc vi phạm nguyên tắc cộng đồng.' long_form: 'đánh dấu cái này không thích hợp' notify_user: + title: 'Gửi tin nhắn cho @{{username}}.' + description: 'Tôi muốn trao đổi riêng, trực tiếp với người này về bài viết của họ.' long_form: 'đã nhắn tin cho thành viên' email_title: 'Bài đăng của bạn trong "%{title}"' email_body: "%{link}\n\n%{message}" notify_moderators: title: "Một thứ khác" + description: 'Bài viết này cần được Ban quản trị chú ý. Lý do chưa được liệt kê trong danh sách.' + long_form: 'đã đánh dấu thông báo cho Ban quản trị' + email_title: 'Một bài viết trong "%{title}" cần Ban quản trị lưu ý' email_body: "%{link}\n\n %{message}" bookmark: title: "Đánh dấu chỉ mục \x1C" @@ -385,6 +440,7 @@ vi: long_form: 'đã đánh dấu bài này không phù hợp' notify_moderators: title: "Một cái khác" + description: 'Bài viết này cần Ban quản trị lưu ý theo dựa trên hướng dẫnđiều khoản sử dụng.' long_form: 'đã đánh dấu cho điều hành viên xem xét' email_title: 'Chủ đề "%{title}" cần được ban điều hành quan tâm' email_body: "%{link}\n\n%{message}" @@ -557,6 +613,7 @@ vi: host_names_warning: "Cài đặt của bạn config/database.yml đang sử dụng hostname mặc định. Cập nhật lại để sử dụng hostname của bạn" gc_warning: 'Máy chủ của bạn hiện tại sử dụng cơ chế dọn rác mặc định của ruby, điều này khiến cho hiệu năng của máy chủ không tốt lắm. Đọc chủ đề sau cho việc tối ưu hiệu năng Tối ưu Ruby and Rails cho Discourse.' sidekiq_warning: ' Sidekiq đang không hoạt động. Rất nhiều tác vụ, như gửi email, là được thực thi không đồng bộ bởi sidekiq. Hãy chắc chắn rằng ít nhất một tiến trình sidekiq phải đang hoạt động. Đọc thêm về Sidekiq tại đây.' + queue_size_warning: 'Có %{queue_size} công việc đang chờ xử lý trong hàng đợi. Điều này chứng tỏ có vấn đề đã xảy ra với tiến trình Sidekiq, hoặc bạn cần tăng số lượng Sidekiq workers ().' memory_warning: 'Máy chủ của bạn có bộ nhớ ít hơn 1 GB. Khuyến cáo sử dụng bộ nhớ tối thiểu 1 GB .' google_oauth2_config_warning: 'Máy chủ được cấu hình cho phép đăng ký và đăng nhập với Google OAuth2 (enable_google_oauth2_logins), tuy nhiên giá trị của client id và client secret thì không được thiết lập. Truy cập Cấu hình Site và bổ sung các thiết lập đó. Xem hướng dẫn này để biết thêm chi tiết.' facebook_config_warning: 'Máy chủ được cấu hình cho phép đăng ký và đăng nhập với Facebook (enable_facebook_logins), tuy nhiên giá trị của client id và client secret thì không được thiết lập. Truy cập Cấu hình Site và bổ sung các thiết lập đó. Xem hướng dẫn này để biết thêm chi tiết.' @@ -567,9 +624,14 @@ vi: image_magick_warning: 'Máy chủ đã cấu hình để tạo hình đại diện nhỏ từ những hình lới, nhưng ImageMagick chưa được cài đặt. Cài ImageMagick sử dụng trình quản lý package yêu thích của bạn hoặc tải về phiên bản mới nhất.' failing_emails_warning: 'Có %{num_failed_jobs} email jobs thấ bại. Kiểm tra app.yml và chắc chắn rằng cấu hình máy chủ email đúng. Xem jobs thất bại ở Sidekiq.' default_logo_warning: "Cập nhập logo của trang. Cập nhập logo_url, logo_small_url, và favicon_url trong Thiết lập trang." + contact_email_missing: "Điền địa chỉ email liên hệ để có thể nhận được các vấn đề cấp bách liên quan đến website của bạn, cập nhật trong Thiết lập website." contact_email_invalid: "Email liên lạc của trang không hợp lệ. Cập nhật trong Thiết lập trang/a>." title_nag: "Nhập tên trang của bạn. Cập nhập tiêu đề trong Thiết lập trang." + site_description_missing: "Điền một câu mô tả về website để hiển thị trên trang kết quả tìm kiếm, cập nhật site_description trong Thiết lập website." consumer_email_warning: "Trang web của bạn được cài đặt sử dụng Gmail (hoặc một dịch vụ email khác) để gửi email. Gmail có giới hạn số lượng email bạn có thể gửi. Hãy xem xét sử dụng một dịch vụ email khác như mandrill.com để đảm bảo khả năng vận chuyển tất cả các email." + site_contact_username_warning: "Điền tên tài khoản điều hành viên để gửi tin nhắn tự động, cập nhật site_contact_username trong Thiết lập website." + notification_email_warning: "Email thông báo không thể gửi từ một địa chỉ email với tên miền của bạn, gửi email sẽ thất thường và không đáng tin cậy. Hãy thiết lập notification_email tới một địa chỉ tin cậy trong Thiết lập website." + subfolder_ends_in_slash: "Thư mục con của bạn được thiết lập không đúng, DISCOURSE_RELATIVE_URL_ROOT phải được kết thúc bằng dấu gạch chéo." site_settings: censored_words: "Từ sẽ tự động thay thế bằng ■■■■" delete_old_hidden_posts: "Tự động ẩn bất kỳ bài viết ở ẩn hơn 30 ngày." @@ -583,9 +645,11 @@ vi: max_topic_title_length: "Số kí tự tối đa trong tiêu đề chủ đề." min_private_message_title_length: "Chiều dài tối thiểu cho phép theo số kí tự của một thông điệp" min_search_term_length: "Số kí tự tối thiểu trong từ khóa tìm kiếm." - uncategorized_description: "Mô tả của chuyên mục \"Không phân loại\". Để trống khi không muốn mô tả." + search_tokenize_chinese_japanese_korean: "Bắt buộc tìm kiếm tách từ Chinese/Japanese/Korean ngay cả trên các site không phải là CJK" + allow_uncategorized_topics: "Cho phép các chủ đề được tạo ra mà không gán chuyên mục. LƯU Ý: Nếu có bất kỳ chủ đề nào chưa gán chuyên mục, bạn phải phân loại chúng trước khi thay đổi." allow_duplicate_topic_titles: "Cho phép các chủ đề trùng tiêu đề." unique_posts_mins: "Trong bao nhiêu phút người sử dụng có thể viết bài khác với nội dung giống nhau" + educate_until_posts: "Khi người dùng bắt đầu đăng (n) bài viết đầu tiên, hiện pop-up để hướng dẫn họ khi soạn thảo." title: "Tên của trang này, sử dụng trong thẻ tiêu đề" site_description: "Mô tả trang này trong một câu, nó sẽ được sử dụng trong thẻ meta description" contact_email: "Địa chỉ email liên hệ của người chịu trách nhiệm trang này. Sử dụng cho những thông báo quan trọng giống như cờ không được quản lý, cũng giống form liện hệ /about cho những vấn đề cấp bách." @@ -595,6 +659,7 @@ vi: download_remote_images_to_local: "Tải ảnh về lưu trữ để tránh ảnh bị hư." download_remote_images_threshold: "Dung lượng tối thiểu cần để tải ảnh từ xa về lưu trữ (tính bằng phần trăm)" disabled_image_download_domains: "Tải ảnh từ xa sẽ không áp dụng với các tên miền sau. Phân cách bằng dấu |" + editing_grace_period: "Trong khoảng (n) giây sau khi gửi bài, chỉnh sửa sẽ không tạo ra một phiên bản mới trong bài lịch sử bài viết." post_edit_time_limit: "Tác giả có thể sửa hoặc xóa bài viết của họ trong (n) phút sau khi đăng. 0 là mãi mãi." edit_history_visible_to_public: "Cho phép mọi người nhìn thấy phiên bản trước khi chỉnh sửa bài viết. Khi không cho phép, chỉ nhân viên có thể xem." delete_removed_posts_after: "Bài viết đã được xóa bởi tác giả sẽ được tự động xóa sau (n) giờ. Nếu cài là 0, bài viết sẽ được xóa ngay lập tức." @@ -604,10 +669,18 @@ vi: show_subcategory_list: "Hiện danh sách chuyên mục con thay vì danh sách chủ đề khi truy cập vào chuyên mục." fixed_category_positions: "Nếu được bật, bạn sẽ có thể sắp xếp chuyên mục theo một thứ tự cố định. Nếu không bật, chuyên mục sẽ được sắp xếp theo thứ tử hoạt động." fixed_category_positions_on_create: "Nếu chọn, sắp xếp danh mục sẽ được thực hiện trong cửa sổ tạo chủ đề (yêu cầu fixed_category_positions)." + add_rel_nofollow_to_user_content: "Thêm rel='nofollow' cho tất cả các nội dung mà người dùng gửi, ngoại trừ các liên kết nội bộ (của tên miền chính). Nếu thay đổi, bạn phải thực hiện lại cho tất cả các bài viết với: \"rake posts:rebake\"" + exclude_rel_nofollow_domains: "Một danh sách tên miền mà rel='nofollow' không được thêm vào các liên kết, các tên miền con sẽ được tự động áp dụng như với tên miền chính. Tối thiểu, bạn nên thêm tên miền cấp cao nhất của website này để giúp search engine tìm kiếm tất cả các nội dung. Nếu các phần khác của website thuộc tên miền khác, cũng nên thêm vào." post_excerpt_maxlength: "Chiều dài tối đa của đoạn trích / tóm tắt chủ đề." + post_onebox_maxlength: "Số ký tự tối đa của một bài onebox Discourse." + onebox_domains_whitelist: "Danh sách các tên miền cho phép onebox, các tên miền này phải hỗ trợ OpenGraph hoặc oEmbed. Kiểm tra tại http://iframely.com/debug" + logo_url: "Logo ở vị trí trên cùng của website nên là hình chữ nhật, nếu để trống thì tên website sẽ hiển thị." + digest_logo_url: "Logo thay thế đặt ở trên cùng của tập san email nên là hình chữ nhật, nếu để trống thì 'logo_url' sẽ được sử dụng." + logo_small_url: "Logo nhỏ ở vị trí trên cùng của website hiển thị khi cuộn xuống nên là hình vuông, nếu để trống thì icon trang chủ sẽ hiển thị." favicon_url: "Favicon cho trang của bạn, xem tại http://en.wikipedia.org/wiki/Favicon, để chạy được với CDN ảnh phải là png" mobile_logo_url: "Cố định vị trí hình logo sử dụng tại phía trên bên trái trang mobile của bạn. Nên là hình vuông. Nếu để trống, sẽ sử dụng `logo_url`. Ví dụ: http://example.com/uploads/default/logo.png" apple_touch_icon_url: "Biểu tượng sử dụng trong các thiết bị cảm ứng của Apple. Kích thước gợi ý 144px x 144px" + notification_email: "Địa chỉ email 'Từ:' được dùng để gửi các email thiết yếu của hệ thống. Các tên miền quy định ở đây phải có SPF, DKIM và bản ghi PTR phải được thiết lập chính xác cho email đến." email_custom_headers: "Danh sách xác định email header tùy chỉnh" email_subject: "Tùy biến định dạng chủ đề cho chuẩn email. Xem tại https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801" use_https: "URL đầy đủ đến trang (Discourse.base_url) là http hoặc https? KHÔNG BẬT NÓ CHO TỚI KHI HTTPS ĐÃ CÀI ĐẶT SẴN SẰNG VÀ ĐÃ CHẠY!" @@ -616,12 +689,29 @@ vi: summary_likes_required: "Số lượt thích trong một chủ đề trước khi 'Tóm tắt chủ đề này' được kích hoạt" summary_percent_filter: "Khi người dùng nhấn 'Tóm tắt chủ đề này', hiển thị phí trên % của bài viết" summary_max_results: "Số bài viết tối đa trả ra bởi 'Tóm tắt chủ đề này'" + enable_private_messages: "Cho phép thành viên có cấp độ tin cậy mức 1 (cấu hình thông qua cấp độ tin cậy tối thiểu khi gửi tin nhắn) tạo và trả lời tin nhắn" + enable_long_polling: "Message Bus sử dụng để thông báo có thể sử dụng vòng gọi dài" + long_polling_base_url: "URL chính sử dụng cho vòng gọi dài (khi một CDN phục vụ nội dung động, hãy chắc chắn để thiết lập này là vòng gọi gốc), vd: http://origin.site.com" + long_polling_interval: "Thời gian server phải đợi trước khi gửi trả lời khi không có dữ liệu để gửi (chỉ với tài khoản đăng nhập)" + polling_interval: "When not long polling, how often should logged on clients poll in milliseconds" + anon_polling_interval: "How often should anonymous clients poll in milliseconds" + background_polling_interval: "How often should the clients poll in milliseconds (when the window is in the background)" + flags_required_to_hide_post: "Số lần đánh dấu để bài viết tự động ẩn và gửi tin nhắn đến người dùng (điền 0 để tắt)" cooldown_minutes_after_hiding_posts: "Số phút một người dùng phải chờ trước khi họ có thể sửa một bài viết ẩn bởi gắn cờ cộng đồng" max_topics_in_first_day: "Số chủ đề tối đa một thành viên được tạo trong ngày đầu tiên." max_replies_in_first_day: "Số trả lời tối đa một thành viên được tạo trong ngày đầu tiên" tl2_additional_likes_per_day_multiplier: "Tăng giới hạn thích mỗi ngày cho mức độ tin tưởng 2 (thành viên) bằng cách nhân với số này" tl3_additional_likes_per_day_multiplier: "Tăng giới hạn thích mỗi ngày cho mức độ tin tưởng 3 (bình thường) bằng cách nhân với số này" tl4_additional_likes_per_day_multiplier: "Tăng giới hạn thích mỗi ngày cho mức độ tin tưởng 4 (dẫn đầu) bằng cách nhân với số này" + num_flags_to_block_new_user: "Nếu bài viết của thành viên mới nhận được nhiều đánh dấu spam từ num_users_to_block_new_user thành viên khác, ẩn tất cả các bài viết của họ và ngăn chặn gửi bài trong tương lai, điền 0 để tắt." + num_users_to_block_new_user: "Nếu bài viết của thành viên mới nhận được num_flags_to_block_new_user đánh dấu spam từ các thành viên khác, ẩn tất cả các bài viết của họ và ngăn chặn gửi bài trong tương lai, điền 0 để tắt." + notify_mods_when_user_blocked: "Nếu một thành viên được khóa tự động, gửi tin nhắn đến tất cả các điều hành viên." + flag_sockpuppets: "Nếu thành viên mới trả lời chủ đề có cùng địa chỉ IP với thành viên mới tạo chủ đề, đánh dấu các bài viết của họ là spam tiềm năng." + traditional_markdown_linebreaks: "Sử dụng ngắt dòng truyền thống trong Markdown, đòi hỏi hai khoảng trống kế tiếp cho một ngắt dòng." + allow_html_tables: "Cho phép nhập bảng trong Markdown sử dụng các thẻ HTML. TABLE, THEAD, TD, TR, TH sẽ được sử dụng (đòi hỏi thực hiện lại cho các bài viết cũ có chứa bảng)" + post_undo_action_window_mins: "Số phút thành viên được phép làm lại các hành động gần đây với bài viết (like, đánh dấu...)." + must_approve_users: "Quản trị viên phải duyệt tất cả các tài khoản thành viên mới trước khi họ có quyền truy cập website. LƯU Ý: bật tính năng này trên site đang hoạt động sẽ hủy bỏ quyền truy cập đối với các tài khoản thành viên hiện tại!" + pending_users_reminder_delay: "Thông báo cho quản trị viên nếu thành viên mới đã chờ duyệt lâu hơn số giờ được thiết lập ở đây, đặt là -1 để tắt thông báo." ga_tracking_code: "Mã theo dõi Google analytics (ga.js), ví dụu: UA-12345678-9; chi tiết http://google.com/analytics" ga_domain_name: "Tên miền Google analytics (ga.js), ví dụ: mysite.com; chi tiết http://google.com/analytics" ga_universal_tracking_code: "Mã theo dõi Google Universal Analytics (analytics.js) , Ví dụ: UA-12345678-9; chi tiết http://google.com/analytics" @@ -629,6 +719,21 @@ vi: enable_escaped_fragments: "Trả lại tới Google's Ajax-Crawling API nếu không xác định được webcrawler. Xem chi tiết https://support.google.com/webmasters/answer/174992?hl=en" enable_noscript_support: "Cho phép webcrawler search engine chuẩn hỗ trợ bằng thẻ noscript" allow_moderators_to_create_categories: "Cho phép điều hành viên tạo danh mục mới" + cors_origins: "Cho phép CORS (Cross-Origin Requests). Mỗi nguyên gốc phải kèm theo http:// hoặc https://. Biến env DISCOURSE_ENABLE_CORS phải được đặt là 'true' để bật CORS." + use_admin_ip_whitelist: "Admin chỉ có thể đăng nhập nếu có địa chỉ IP được định nghĩa trước trong danh sách Screened IPs (Admin > Logs > Screened Ips)." + top_menu: "Xác định các mục nào hiển thị trong thanh điều hướng trang chủ, và theo thứ tự nào. Ví dụ latest|new|unread|categories|top|read|posted|bookmarks" + post_menu: "Xác định các mục nào hiển thị trên menu bài viết, và theo thứ tự nào. Ví dụ like|edit|flag|delete|share|bookmark|reply" + post_menu_hidden_items: "Các mục được để ẩn theo mặc định trong menu bài viết trừ khi click vào dấu '...' để mở rộng." + share_links: "Xác định các mục nào hiển thị trên hộp thoại chia sẻ, và theo thứ tự nào." + track_external_right_clicks: "Theo dõi các liên kết ngoài được click đúng (vd: mở trong tab mới) bị vô hiệu hóa theo mặc định do Rewrite URL." + site_contact_username: "Tên tài khoản quản trị viên hợp lệ để gửi tất cả các thông báo tự động. Nếu để trống, tài khoản mặc định của hệ thống sẽ được sử dụng." + send_welcome_message: "Gửi tất cả các thành viên mới một thông điệp chào mừng kèm theo hướng dẫn nhanh." + suppress_reply_directly_below: "Không hiện bộ đếm trả lời mở rộng cho bài viết chỉ có duy nhất một trả lời trực tiếp bên dưới bài viết này." + suppress_reply_directly_above: "Không hiện trả lời mở rộng cho bài viết chỉ có duy nhất một trả lời trực tiếp bên trên bài viết này." + suppress_reply_when_quoting: "Không hiện trả lời mở rộng cho bài viết chỉ trích dẫn trả lời." + max_reply_history: "Số tối đa trả lời được mở rộng khi trả lời mở rộng" + experimental_reply_expansion: "Ẩn các trả lời trung gian khi mở rộng trả lời (thử nghiệm)" + topics_per_period_in_top_summary: "Số lượng chủ đề top hiển thị trong tóm tắt các chủ đề top theo mặc định." email_token_valid_hours: "Token quyên mật khẩu / kích hoạt tài khoản có giá trị trong (n) giờ." email_token_grace_period_hours: "Token quyên mật khẩu / kích hoạt tài khoản vẫn còn giá trị (n) giờ sau khi được gia hạn" enable_badges: "Kích hoạt hệ thống huy hiệu" @@ -1018,6 +1123,16 @@ vi: title: "Điều khoản Dịch vụ" privacy_topic: title: "Chính sách Riêng tư" + badges: + long_descriptions: + good_post: | + Huy hiệu này được trao khi câu trả lời nhận được 24 lượt thích. Làm tốt lắm! + good_topic: | + Huy hiệu này được trao khi bài viết nhận được 25 lượt thích. Làm tốt lắm! + great_post: | + Huy hiệu này được trao khi bài viết nhận được 50 lượt thích. Wow! + great_topic: | + Huy hiệu này được trao khi câu trả lời nhận được 50 lượt thích. Wow! admin_login: success: "Gửi mail lỗi" error: "Lỗi!" @@ -1025,4 +1140,8 @@ vi: submit_button: "Gửi email" performance_report: initial_topic_title: Báo cáo hiệu suất website - + time: + <<: *datetime_formats + activemodel: + errors: + <<: *errors diff --git a/config/locales/server.zh_CN.yml b/config/locales/server.zh_CN.yml index eda4df6eb..08abef999 100644 --- a/config/locales/server.zh_CN.yml +++ b/config/locales/server.zh_CN.yml @@ -12,9 +12,9 @@ zh_CN: long_date: "lll" datetime_formats: &datetime_formats formats: - short: "%Y-%m-%d" - short_no_year: "%B %-d" - date_only: "%B %-d, %Y" + short: "%Y 年 %-m 月 %-d 日" + short_no_year: "%-m 月 %-d 日" + date_only: "%Y 年 %-m 月 %-d 日" date: month_names: [null, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月] <<: *datetime_formats @@ -1269,7 +1269,7 @@ zh_CN: off_topic: "你的帖子被标记为 **偏离主题**:鉴于当前的主题标题和第一个帖子,社群成员们感觉它不适合处于这个主题中。" inappropriate: "你的帖子被标记为 **不恰当**:社群成员感觉它有冒犯或者侮辱的意味,亦或是它违反了[社群准则](/guidelines)。" spam: "你的帖子被标记为 **广告**:社群成员觉得它是广告,像是在过度地推广着什么,而不是预期中与主题有关的内容。" - notify_moderators: "你的帖子被标记为 **需要版主关注**:社群成员感觉帖子需要职员的人工干预。" + notify_moderators: "你的帖子被标记为 **需要版主关注**:社群成员认为帖子需要职员介入。" flags_dispositions: agreed: "感谢通知我们。我们认为这是一个问题,并且我们正在了解情况。" agreed_and_deleted: "感谢通知我们。我们认为这是一个问题,并且我们已经删除了帖子。" diff --git a/plugins/poll/config/locales/client.ja.yml b/plugins/poll/config/locales/client.ja.yml index 91f990689..a3b3f1bbb 100644 --- a/plugins/poll/config/locales/client.ja.yml +++ b/plugins/poll/config/locales/client.ja.yml @@ -15,6 +15,12 @@ ja: average_rating: "平均評価: %{average}." multiple: help: + at_least_min_options: + other: "少なくとも %{count} 個のオプションを選んでください。" + up_to_max_options: + other: "%{count} 個のオプションまで選択することができます。" + x_options: + other: "%{count} 個のオプションを選択してください。" between_min_and_max_options: "%{min}%{max} のオプションから選択することができます。" cast-votes: title: "投票する" diff --git a/plugins/poll/config/locales/client.vi.yml b/plugins/poll/config/locales/client.vi.yml index e0fec5709..30d6e6a69 100644 --- a/plugins/poll/config/locales/client.vi.yml +++ b/plugins/poll/config/locales/client.vi.yml @@ -1,13 +1,26 @@ +# encoding: utf-8 +# +# Never edit this file. It will be overwritten when translations are pulled from Transifex. +# +# To work with us on translations, join this project: +# https://www.transifex.com/projects/p/discourse-org/ + vi: js: poll: voters: - other: "người bình chọn" + other: "Người bầu chọn" total_votes: other: "tổng số bình chọn" average_rating: "Đánh giá trung bình: %{average}." multiple: help: + at_least_min_options: + other: "Bạn phải chọn ít nhất %{count} tùy chọn." + up_to_max_options: + other: "Bạn có thể chọn lên tới %{count} tùy chọn." + x_options: + other: "Bạn phải chọn %{count} tùy chọn." between_min_and_max_options: "Bạn có thể chọn giữa %{min}%{max}." cast-votes: title: "Bỏ phiếu của bạn" @@ -28,4 +41,3 @@ vi: confirm: "Bạn có chắc chắn muốn đóng bình chọn này?" error_while_toggling_status: "Có lỗi trong khi chuyển đổi qua lại các trạng thái của bình chọn này." error_while_casting_votes: "Có lỗi trong khi tạo mãu bầu chọn của bạn" - diff --git a/plugins/poll/config/locales/server.ja.yml b/plugins/poll/config/locales/server.ja.yml index cb3b38ce9..6353abfeb 100644 --- a/plugins/poll/config/locales/server.ja.yml +++ b/plugins/poll/config/locales/server.ja.yml @@ -16,6 +16,8 @@ ja: named_poll_must_have_at_least_2_options: "投票 %{name} は少なくとも2つのオプションが必要です。" default_poll_must_have_less_options: other: "投票は%{count}オプション以下でなければいけません。" + named_poll_must_have_less_options: + other: "投票 %{name} は%{count}オプション以下でなければいけません。" default_poll_must_have_different_options: "投票は異なるオプションが必要です。" named_poll_must_have_different_options: "投票 %{name} は異なるオプションが必要です。" default_poll_with_multiple_choices_has_invalid_parameters: "複数の選択肢をもつ投票に無効なパラメータがあります。" @@ -31,3 +33,5 @@ ja: poll_must_be_open_to_vote: "投票するにはオープンになっている必要があります。" topic_must_be_open_to_toggle_status: "状態を切り替えるには、トピックがオープンになっている必要があります。" only_staff_or_op_can_toggle_status: "スタッフやオリジナル投稿者のみが投票状態を切り替えることができます。" + email: + link_to_poll: "クリックして投票を表示。" diff --git a/plugins/poll/config/locales/server.vi.yml b/plugins/poll/config/locales/server.vi.yml index e5c0d30ee..8cd71609a 100644 --- a/plugins/poll/config/locales/server.vi.yml +++ b/plugins/poll/config/locales/server.vi.yml @@ -1,3 +1,10 @@ +# encoding: utf-8 +# +# Never edit this file. It will be overwritten when translations are pulled from Transifex. +# +# To work with us on translations, join this project: +# https://www.transifex.com/projects/p/discourse-org/ + vi: site_settings: poll_enabled: "Cho phép người dùng tạo các cuộc thăm dò?" @@ -7,6 +14,10 @@ vi: multiple_polls_with_same_name: "Có nhiều cuộc thăm dò có cùng tên: %{name}. Sử dụng thuộc tính 'name' để xác định cuộc thăm dò của bạn." default_poll_must_have_at_least_2_options: "Thăm dò ý kiến ​​phải có ít nhất 2 lựa chọn." named_poll_must_have_at_least_2_options: "Thăm dò có tên %{name} phải có ít nhất 2 lựa chọn." + default_poll_must_have_less_options: + other: "Thăm dò phải có ít hơn %{count} lựa chọn." + named_poll_must_have_less_options: + other: "Thăm dò %{name} phải có ít hơn %{count} tùy chọn." default_poll_must_have_different_options: "Thăm dò ý kiến ​​phải có các tùy chọn khác nhau." named_poll_must_have_different_options: "Thăm dò %{name} ​​phải có các tùy chọn khác nhau." default_poll_with_multiple_choices_has_invalid_parameters: "Thăm dò ý kiến ​​với nhiều sự lựa chọn có các tham số không hợp lệ." @@ -22,4 +33,5 @@ vi: poll_must_be_open_to_vote: "Thăm dò ý kiến ​​phải được mở để bầu chọn." topic_must_be_open_to_toggle_status: "Các chủ đề phải được mở để chuyển trạng thái." only_staff_or_op_can_toggle_status: "Chỉ có một BQT hoặc các người đăng bài có thể chuyển đổi một trạng thái thăm dò ý kiến" - + email: + link_to_poll: "Nhấn để hiển thị." diff --git a/public/403.vi.html b/public/403.vi.html index 09a5aa396..20f377052 100644 --- a/public/403.vi.html +++ b/public/403.vi.html @@ -24,4 +24,3 @@
    - diff --git a/public/422.vi.html b/public/422.vi.html index 483475327..082a63b38 100644 --- a/public/422.vi.html +++ b/public/422.vi.html @@ -23,4 +23,3 @@
    - diff --git a/public/500.vi.html b/public/500.vi.html index 831451072..79b74efd3 100644 --- a/public/500.vi.html +++ b/public/500.vi.html @@ -10,4 +10,3 @@

    Không cần tiến hành bất cứ hành động nào. Tuy nhiên, nếu lỗi này vẫn tiếp tục, bạn có thể cung cấp thêm thông tin chi tiết bao gồm các bước để tái tạo lỗi hoặc tạo một thảo luận trên meta category.

    - diff --git a/public/503.vi.html b/public/503.vi.html index 85ca43edc..a952fd3a5 100644 --- a/public/503.vi.html +++ b/public/503.vi.html @@ -9,4 +9,3 @@

    Xin lỗi về sự bất tiện này!

    - diff --git a/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.vi.yml b/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.vi.yml index 6b70e6db4..80b70f96f 100644 --- a/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.vi.yml +++ b/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.vi.yml @@ -1,6 +1,12 @@ +# encoding: utf-8 +# +# Never edit this file. It will be overwritten when translations are pulled from Transifex. +# +# To work with us on translations, join this project: +# https://www.transifex.com/projects/p/discourse-org/ + vi: site_settings: enable_imgur: "Kích hoạt imgur api để tải file lên, không lưu trữ file tại máy chủ." - imgur_client_id: "Client ID imgur.com của bạn, cần cho chức năng tải ảnh lên. " - imgur_client_secret: "Client secret của bạn tạo imgur.com. Hiện tại không cần để tải ảnh lên, nhưng sẽ có trong tương lai." - + imgur_client_id: "Bạn cần client ID của imgur.com cho chức năng tải file lên." + imgur_client_secret: "Client secret của bạn tại imgur.com chưa cần để tải ảnh lên, nhưng nó sẽ được yêu cầu trong tương lai." From 1b9b68cb5128d94451bcdeacc65fe500733ff88d Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 22 Feb 2016 11:27:35 -0500 Subject: [PATCH 14/16] Version bump to v1.5.0.beta11 --- lib/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/version.rb b/lib/version.rb index f7c347c02..881f27a2c 100644 --- a/lib/version.rb +++ b/lib/version.rb @@ -5,7 +5,7 @@ module Discourse MAJOR = 1 MINOR = 5 TINY = 0 - PRE = 'beta10' + PRE = 'beta11' STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') end From 5415b2666df8e16978b06b386eac0b035918bc02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Mon, 22 Feb 2016 19:57:53 +0100 Subject: [PATCH 15/16] FIX: staged users couldn't create new topic in a private category via email --- lib/email/receiver.rb | 2 +- spec/components/email/receiver_spec.rb | 23 ++++++++++--------- ...ient_trust_level.eml => existing_user.eml} | 8 +++---- ...{stranger_not_allowed.eml => new_user.eml} | 0 .../emails/sufficient_trust_level.eml | 11 --------- 5 files changed, 17 insertions(+), 27 deletions(-) rename spec/fixtures/emails/{insufficient_trust_level.eml => existing_user.eml} (52%) rename spec/fixtures/emails/{stranger_not_allowed.eml => new_user.eml} (100%) delete mode 100644 spec/fixtures/emails/sufficient_trust_level.eml diff --git a/lib/email/receiver.rb b/lib/email/receiver.rb index cb45b7d8b..18e3e2dfb 100644 --- a/lib/email/receiver.rb +++ b/lib/email/receiver.rb @@ -78,7 +78,7 @@ module Email raise StrangersNotAllowedError if user.staged? && !category.email_in_allow_strangers raise InsufficientTrustLevelError if !user.has_trust_level?(SiteSetting.email_in_min_trust) - create_topic(user: user, raw: body, title: subject, category: category.id) + create_topic(user: user, raw: body, title: subject, category: category.id, skip_validations: user.staged?) when :reply email_log = destination[:obj] diff --git a/spec/components/email/receiver_spec.rb b/spec/components/email/receiver_spec.rb index 236c37204..04d52f9ec 100644 --- a/spec/components/email/receiver_spec.rb +++ b/spec/components/email/receiver_spec.rb @@ -273,31 +273,32 @@ describe Email::Receiver do let!(:category) { Fabricate(:category, email_in: "category@bar.com", email_in_allow_strangers: false) } it "raises a StrangersNotAllowedError when 'email_in_allow_strangers' is disabled" do - expect { process(:stranger_not_allowed) }.to raise_error(Email::Receiver::StrangersNotAllowedError) + expect { process(:new_user) }.to raise_error(Email::Receiver::StrangersNotAllowedError) end it "raises an InsufficientTrustLevelError when user's trust level isn't enough" do + Fabricate(:user, email: "existing@bar.com", trust_level: 3) SiteSetting.email_in_min_trust = 4 - Fabricate(:user, email: "insufficient@bar.com", trust_level: 3) - expect { process(:insufficient_trust_level) }.to raise_error(Email::Receiver::InsufficientTrustLevelError) + expect { process(:existing_user) }.to raise_error(Email::Receiver::InsufficientTrustLevelError) end - it "raises an InvalidAccess when the user is part of a readonly group" do - user = Fabricate(:user, email: "readonly@bar.com", trust_level: SiteSetting.email_in_min_trust) + it "works" do + user = Fabricate(:user, email: "existing@bar.com", trust_level: SiteSetting.email_in_min_trust) group = Fabricate(:group) group.add(user) group.save - category.set_permissions(group => :readonly) + category.set_permissions(group => :create_post) category.save - expect { process(:readonly) }.to raise_error(Discourse::InvalidAccess) - end + # raises an InvalidAccess when the user doesn't have the privileges to create a topic + expect { process(:existing_user) }.to raise_error(Discourse::InvalidAccess) - it "works" do - Fabricate(:user, email: "sufficient@bar.com", trust_level: SiteSetting.email_in_min_trust) - expect { process(:sufficient_trust_level) }.to change(Topic, :count) + category.update_columns(email_in_allow_strangers: true) + + # allows new user to create a topic + expect { process(:new_user) }.to change(Topic, :count) end end diff --git a/spec/fixtures/emails/insufficient_trust_level.eml b/spec/fixtures/emails/existing_user.eml similarity index 52% rename from spec/fixtures/emails/insufficient_trust_level.eml rename to spec/fixtures/emails/existing_user.eml index 4800b432b..db41b91ac 100644 --- a/spec/fixtures/emails/insufficient_trust_level.eml +++ b/spec/fixtures/emails/existing_user.eml @@ -1,11 +1,11 @@ -Return-Path: -From: Foo Bar +Return-Path: +From: Foo Bar To: category@bar.com -Subject: This is a topic from a complete stranger +Subject: This is a topic from an existing user Date: Fri, 15 Jan 2016 00:12:43 +0100 Message-ID: <32@foo.bar.mail> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable -Hey, this is a topic from a complete stranger ;) +Hey, this is a topic from an existing user ;) diff --git a/spec/fixtures/emails/stranger_not_allowed.eml b/spec/fixtures/emails/new_user.eml similarity index 100% rename from spec/fixtures/emails/stranger_not_allowed.eml rename to spec/fixtures/emails/new_user.eml diff --git a/spec/fixtures/emails/sufficient_trust_level.eml b/spec/fixtures/emails/sufficient_trust_level.eml deleted file mode 100644 index cee56f11b..000000000 --- a/spec/fixtures/emails/sufficient_trust_level.eml +++ /dev/null @@ -1,11 +0,0 @@ -Return-Path: -From: Foo Bar -To: category@bar.com -Subject: This is a topic from a know user -Date: Fri, 15 Jan 2016 00:12:43 +0100 -Message-ID: <33@foo.bar.mail> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: quoted-printable - -Hey, this is a topic from a known user ;) From cab5dd09d3cbdba166eea52c2f2240def57a0146 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 22 Feb 2016 14:30:58 -0500 Subject: [PATCH 16/16] FIX: broken links on admin dashboard in Top Referrers section --- app/assets/javascripts/admin/templates/dashboard.hbs | 2 +- app/models/incoming_links_report.rb | 3 ++- spec/models/incoming_links_report_spec.rb | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/admin/templates/dashboard.hbs b/app/assets/javascripts/admin/templates/dashboard.hbs index ed98e21fc..74356abfa 100644 --- a/app/assets/javascripts/admin/templates/dashboard.hbs +++ b/app/assets/javascripts/admin/templates/dashboard.hbs @@ -285,7 +285,7 @@ {{#each r in top_referrers.data}}
{{#link-to 'adminUser' r}}{{unbound r.username}}{{/link-to}}{{#link-to 'adminUser' r.user_id r.username}}{{unbound r.username}}{{/link-to}} {{r.num_clicks}} {{r.num_topics}}