diff --git a/app/assets/javascripts/admin/components/ip-lookup.js.es6 b/app/assets/javascripts/admin/components/ip-lookup.js.es6 index 06a8387be..b7dbaf764 100644 --- a/app/assets/javascripts/admin/components/ip-lookup.js.es6 +++ b/app/assets/javascripts/admin/components/ip-lookup.js.es6 @@ -39,6 +39,25 @@ export default Ember.Component.extend({ hide: function () { this.set("show", false); + }, + + deleteAllOtherAccounts: function() { + var self = this; + bootbox.confirm(I18n.t("ip_lookup.confirm_delete_other_accounts"), I18n.t("no_value"), I18n.t("yes_value"), function (confirmed) { + if (confirmed) { + self.setProperties({ other_accounts: null, otherAccountsLoading: true }); + Discourse.ajax("/admin/users/delete-others-with-same-ip.json", { + type: "DELETE", + data: { + "ip": self.get("ip"), + "exclude": self.get("user_id"), + "order": "trust_level DESC" + } + }).then(function() { + self.send("lookup"); + }); + } + }); } } }); diff --git a/app/assets/javascripts/discourse/initializers/logout.js.es6 b/app/assets/javascripts/discourse/initializers/logout.js.es6 new file mode 100644 index 000000000..a65de91d7 --- /dev/null +++ b/app/assets/javascripts/discourse/initializers/logout.js.es6 @@ -0,0 +1,23 @@ +/** + Subscribe to "logout" change events via the Message Bus +**/ +export default { + name: "logout", + after: "message-bus", + + initialize: function () { + if (!Discourse.MessageBus) { return; } + + Discourse.MessageBus.subscribe("/logout", function (user_id) { + var refresher = function() { + var redirect = Discourse.SiteSettings.logout_redirect; + if(redirect.length === 0){ + window.location.pathname = Discourse.getURL('/'); + } else { + window.location.href = redirect; + } + }; + bootbox.dialog(I18n.t("logout"), {label: I18n.t("refresh"), callback: refresher}, {onEscape: refresher, backdrop: 'static'}) + }); + } +}; diff --git a/app/assets/javascripts/discourse/models/topic.js b/app/assets/javascripts/discourse/models/topic.js index 08f669aa4..817376fbf 100644 --- a/app/assets/javascripts/discourse/models/topic.js +++ b/app/assets/javascripts/discourse/models/topic.js @@ -207,9 +207,15 @@ Discourse.Topic = Discourse.Model.extend({ // Don't save unless we can if (!this.get('details.can_edit')) return; + var data = { title: this.get('title') }; + + if(this.get('category')){ + data.category_id = this.get('category.id'); + } + return Discourse.ajax(this.get('url'), { type: 'PUT', - data: { title: this.get('title'), category_id: this.get('category.id') } + data: data }); }, diff --git a/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs b/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs index 6fd3bea83..979ee6b4d 100644 --- a/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs +++ b/app/assets/javascripts/discourse/templates/components/ip-lookup.hbs @@ -1,11 +1,11 @@ {{#if ip}} {{/if}} {{#if show}}
- {{fa-icon "times"}} + {{fa-icon "times"}}

{{i18n ip_lookup.title}}

{{#if location}} @@ -37,10 +37,18 @@ {{loading-spinner size="small"}} {{/if}} -
{{i18n ip_lookup.other_accounts}} {{other_accounts.length}}
-
- {{#loading-spinner size="small" condition=otherAccountsLoading}} - {{#if other_accounts}} +
+ {{i18n ip_lookup.other_accounts}} + {{other_accounts.length}} + {{#if other_accounts.length}} + + {{/if}} +
+ {{#loading-spinner size="small" condition=otherAccountsLoading}} + {{#if other_accounts.length}} +
@@ -63,11 +71,9 @@ {{/each}}
- {{else}} - {{i18n ip_lookup.no_other_accounts}} - {{/if}} - {{/loading-spinner}} -
+
+ {{/if}} + {{/loading-spinner}}
{{/if}} diff --git a/app/assets/javascripts/discourse/views/post-menu.js.es6 b/app/assets/javascripts/discourse/views/post-menu.js.es6 index de2ddd298..4925a38c0 100644 --- a/app/assets/javascripts/discourse/views/post-menu.js.es6 +++ b/app/assets/javascripts/discourse/views/post-menu.js.es6 @@ -97,6 +97,10 @@ export default Discourse.View.extend({ } } + if(post.get("bookmarked")){ + hiddenButtons.removeObject("bookmark"); + } + var yours = post.get('yours'); Discourse.SiteSettings.post_menu.split("|").forEach(function(i) { var creator = self["buttonFor" + i.replace(/\+/, '').capitalize()]; diff --git a/app/assets/stylesheets/common/admin/admin_base.scss b/app/assets/stylesheets/common/admin/admin_base.scss index fc25af6e6..8ccc201cc 100644 --- a/app/assets/stylesheets/common/admin/admin_base.scss +++ b/app/assets/stylesheets/common/admin/admin_base.scss @@ -82,16 +82,15 @@ td.flaggers td { margin-top: -2px; background-color: $secondary; padding: 12px 12px 5px; - .close { - float: right; - } .other-accounts { - margin: 0; + margin: 5px 0 0; max-height: 200px; overflow: auto; + width: 455px; ul { margin: 0; } li { list-style: none; } + tr td:first-of-type { width: 130px; } } } } diff --git a/app/assets/stylesheets/desktop/topic-post.scss b/app/assets/stylesheets/desktop/topic-post.scss index 89c505f35..52db9ca6a 100644 --- a/app/assets/stylesheets/desktop/topic-post.scss +++ b/app/assets/stylesheets/desktop/topic-post.scss @@ -1004,7 +1004,7 @@ a.attachment:before { .post-info { display: inline-block; float: right; - font-size: 12px; + font-size: 13px; margin-top: 1px; a {color: scale-color($primary, $lightness: 50%);} } diff --git a/app/assets/stylesheets/mobile/topic-post.scss b/app/assets/stylesheets/mobile/topic-post.scss index 962691d38..068018ff9 100644 --- a/app/assets/stylesheets/mobile/topic-post.scss +++ b/app/assets/stylesheets/mobile/topic-post.scss @@ -475,7 +475,7 @@ span.highlighted { } .post-info { float: right; - font-size: 12px; + font-size: 13px; margin: 4px 10px 0 0; .edits { margin-right: 5px; } } diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index ed69ad463..bd191bbe4 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -68,6 +68,7 @@ class Admin::UsersController < Admin::AdminController def log_out @user.auth_token = nil @user.save! + MessageBus.publish "/logout", @user.id, user_ids: [@user.id] render nothing: true end @@ -264,10 +265,7 @@ class Admin::UsersController < Admin::AdminController end def sync_sso - unless SiteSetting.enable_sso - render nothing: true, status: 404 - return - end + return render nothing: true, status: 404 unless SiteSetting.enable_sso sso = DiscourseSingleSignOn.parse("sso=#{params[:sso]}&sig=#{params[:sig]}") user = sso.lookup_or_create_user @@ -275,6 +273,21 @@ class Admin::UsersController < Admin::AdminController render_serialized(user, AdminDetailedUserSerializer, root: false) end + def delete_other_accounts_with_same_ip + params.require(:ip) + params.require(:exclude) + params.require(:order) + + user_destroyer = UserDestroyer.new(current_user) + options = { delete_posts: true, block_email: true, block_urls: true, block_ip: true, delete_as_spammer: true } + + AdminUserIndexQuery.new(params).find_users.each do |user| + user_destroyer.destroy(user, options) rescue nil + end + + render json: success_json + end + private def fetch_user diff --git a/app/models/color_scheme.rb b/app/models/color_scheme.rb index f79db403c..d4a1b02de 100644 --- a/app/models/color_scheme.rb +++ b/app/models/color_scheme.rb @@ -1,3 +1,5 @@ +require_dependency 'sass/discourse_stylesheets' + class ColorScheme < ActiveRecord::Base attr_accessor :is_base @@ -96,6 +98,7 @@ class ColorScheme < ActiveRecord::Base def publish_discourse_stylesheet MessageBus.publish("/discourse_stylesheet", self.name) + DiscourseStylesheets.cache.clear end end diff --git a/app/models/discourse_single_sign_on.rb b/app/models/discourse_single_sign_on.rb index 0476c384f..610f6aafe 100644 --- a/app/models/discourse_single_sign_on.rb +++ b/app/models/discourse_single_sign_on.rb @@ -134,6 +134,10 @@ class DiscourseSingleSignOn < SingleSignOn upload = Upload.create_for(user.id, tempfile, "external-avatar." + ext, File.size(tempfile.path), { origin: avatar_url }) user.uploaded_avatar_id = upload.id + unless user.user_avatar + user.build_user_avatar + end + if !user.user_avatar.contains_upload?(upload.id) user.user_avatar.custom_upload_id = upload.id end diff --git a/app/models/screened_ip_address.rb b/app/models/screened_ip_address.rb index a4eb6e148..d55476602 100644 --- a/app/models/screened_ip_address.rb +++ b/app/models/screened_ip_address.rb @@ -1,4 +1,5 @@ require_dependency 'screening_model' +require_dependency 'ip_addr' # A ScreenedIpAddress record represents an IP address or subnet that is being watched, # and possibly blocked from creating accounts. @@ -47,18 +48,8 @@ class ScreenedIpAddress < ActiveRecord::Base end # Return a string with the ip address and mask in standard format. e.g., "127.0.0.0/8". - # Ruby's IPAddr class has no method for getting this. def ip_address_with_mask - if ip_address - mask = ip_address.instance_variable_get(:@mask_addr).to_s(2).count('1') - if mask == 32 - ip_address.to_s - else - "#{ip_address}/#{ip_address.instance_variable_get(:@mask_addr).to_s(2).count('1')}" - end - else - nil - end + ip_address.try(:to_cidr_s) end def self.match_for_ip_address(ip_address) diff --git a/app/models/site_customization.rb b/app/models/site_customization.rb index b0ca62459..47d224b6e 100644 --- a/app/models/site_customization.rb +++ b/app/models/site_customization.rb @@ -1,4 +1,5 @@ require_dependency 'sass/discourse_sass_compiler' +require_dependency 'sass/discourse_stylesheets' class SiteCustomization < ActiveRecord::Base ENABLED_KEY = '7e202ef2-56d7-47d5-98d8-a9c8d15e57dd' @@ -43,6 +44,7 @@ class SiteCustomization < ActiveRecord::Base end MessageBus.publish "/header-change/#{key}", header if header_changed? MessageBus.publish "/footer-change/#{key}", footer if footer_changed? + DiscourseStylesheets.cache.clear end after_destroy do diff --git a/app/models/topic_link_click.rb b/app/models/topic_link_click.rb index a682808b4..e06ad2ce7 100644 --- a/app/models/topic_link_click.rb +++ b/app/models/topic_link_click.rb @@ -31,6 +31,12 @@ class TopicLinkClick < ActiveRecord::Base unless link.present? return args[:url] if args[:url] =~ /^\// + begin + uri = URI.parse(args[:url]) + return args[:url] if uri.host == URI.parse(Discourse.base_url).host + rescue + end + # If we have it somewhere else on the site, just allow the redirect. This is # likely due to a onebox of another topic. link = TopicLink.find_by(url: args[:url]) diff --git a/app/services/user_destroyer.rb b/app/services/user_destroyer.rb index def4bc3a9..4c0b34741 100644 --- a/app/services/user_destroyer.rb +++ b/app/services/user_destroyer.rb @@ -1,3 +1,5 @@ +require_dependency 'ip_addr' + # Responsible for destroying a User record class UserDestroyer @@ -45,16 +47,21 @@ class UserDestroyer user.destroy.tap do |u| if u + if opts[:block_email] b = ScreenedEmail.block(u.email, ip_address: u.ip_address) b.record_match! if b end + if opts[:block_ip] && u.ip_address - b.record_match! if b = ScreenedIpAddress.watch(u.ip_address) + b = ScreenedIpAddress.watch(u.ip_address) + b.record_match! if b if u.registration_ip_address && u.ip_address != u.registration_ip_address - b.record_match! if b = ScreenedIpAddress.watch(u.registration_ip_address) + b = ScreenedIpAddress.watch(u.registration_ip_address) + b.record_match! if b end end + Post.with_deleted.where(user_id: user.id).update_all("user_id = NULL") # If this user created categories, fix those up: diff --git a/config/locales/client.cs.yml b/config/locales/client.cs.yml index fcbdcd195..a49d1f90d 100644 --- a/config/locales/client.cs.yml +++ b/config/locales/client.cs.yml @@ -267,7 +267,6 @@ cs: location_not_found: (neznámá) organisation: Organizace phone: Telefon - no_other_accounts: (žádné) user: said: "{{username}}:" profile: "Profil" @@ -351,27 +350,14 @@ cs: title: "Pozadí profilu" email: title: "Emailová adresa" - instructions: "Nikdy nebude zveřejněno." - invalid: "Prosím zadejte platnou emailovou adresu." - authenticated: "Vaše emailová adresa byla autorizována přes službu {{provider}}." frequency: "Budeme vás informovat emailem pouze pokud jste se na našem webu dlouho neukázali a pokud jste obsah, o kterém vás chceme informovat, doposud neviděli." name: title: "Jméno" - too_short: "Vaše jméno je příliš krátké." - ok: "Vaše jméno vypadá dobře" username: title: "Uživatelské jméno" - instructions: "Unikátní, bez mezer, krátké." - short_instructions: "Ostatní vás mohou zmínit pomocí @{{username}}." - available: "Toto uživatelské jméno je volné." - global_match: "Emailová adresa odpovídá registrovaného uživatelskému jménu." global_mismatch: "již zaregistrováno. Co třeba {{suggestion}}?" not_available: "Není k dispozici. Co třeba {{suggestion}}?" - too_short: "Vaše uživatelské jméno je příliš krátké." - too_long: "Vaše uživatelské jméno je příliš dlouhé." checking: "Zjišťuji, zda je uživatelské jméno volné..." - enter_email: 'Uživatelské jméno nalezeno. Zadejte odpovídající emailovou adresu.' - prefilled: "Emailová adresa odpovídá registrovaného uživatelskému jménu." locale: title: "Jazyk rozhraní" instructions: "Jazyk uživatelského prostředí. Změna obnoví stránku." @@ -739,6 +725,7 @@ cs: top: "Nejsou tu žádná další populární témata." topic: filter_to: "{{post_count}} příspěvků v tématu" + create: 'Nové téma' create_long: 'Vytvořit nové téma' private_message: 'Vytvořit soukromou konverzaci' list: 'Témata' @@ -901,6 +888,7 @@ cs: one: "Je zobrazen pouze 1 příspěvek" few: "Jsou zobrazeny pouze {{count}} příspěvky" other: "Je zobrazeno pouze {{count}} příspěvků" + cancel: "Zrušit filtr" split_topic: title: "Rozdělit téma" action: "do nového téma" @@ -1154,6 +1142,7 @@ cs: general: 'Základní' settings: 'Nastavení' delete: 'Smazat kategorii' + create: 'Nová kategorie' save: 'Uložit kategorii' creation_error: Během vytváření nové kategorie nastala chyba. save_error: Během ukládání kategorie nastala chyba. diff --git a/config/locales/client.da.yml b/config/locales/client.da.yml index 2009b810f..80b608b2c 100644 --- a/config/locales/client.da.yml +++ b/config/locales/client.da.yml @@ -90,6 +90,7 @@ da: facebook: 'del dette link på Facebook' google+: 'del dette link på Google+' email: 'send dette link i en e-mail' + topic_admin_menu: "administrationshandlinger på emne" edit: 'redigér titel og kategori for dette emne' not_implemented: "Beklager, denne feature er ikke blevet implementeret endnu." no_value: "Nej" @@ -123,6 +124,7 @@ da: daily: "dagligt" weekly: "ugentligt" every_two_weeks: "hver anden uge" + max_of_count: "max af {{count}}" character_count: one: "{{count}} tegn" other: "{{count}} tegn" @@ -138,6 +140,7 @@ da: all_time: "Alt" last_7_days: "De sidste 7 Dage" topic_count: "Emner" + post_count: "Indlæg" user_count: "Brugere" bookmarks: not_logged_in: "Beklager, du skal været logget ind for at bogmærke indlæg" @@ -242,7 +245,7 @@ da: location_not_found: (ukendt) organisation: Organisation phone: Telefon - no_other_accounts: (ingen) + other_accounts: "Andre konti med denne IP adresse" user: said: "{{username}}:" profile: "Profil" @@ -259,6 +262,7 @@ da: trust_level: "Tillidsniveau" notifications: "Underretninger" dismiss_notifications: "Marker alle som læst" + dismiss_notifications_tooltip: "Marker alle ulæste meddelelser som læst" disable_jump_reply: "Spring ikke til dit nye indlæg efter du har svaret" dynamic_favicon: "Vis indkommende underretninger i favicon" edit_history_public: "Lad andre brugere se mine tidligere revisioner" @@ -276,6 +280,7 @@ da: watched_categories: "Overvåget" watched_categories_instructions: "Du overvåger automatisk alle emner i disse kategorier" tracked_categories: "Fulgt" + tracked_categories_instructions: "Du vil automatisk følge alle nye emner i disse kategorier. En optælling af ulæste og nye indlæg vises ved emnet." muted_categories: "Ignoreret" muted_categories_instructions: "Du ignorerer automatisk alle emner i disse kategorier" delete_account: "Slet min konto" @@ -283,7 +288,9 @@ da: deleted_yourself: "Din konto er nu slettet." delete_yourself_not_allowed: "Du kan ikke slette din konto lige nu. Kontakt en administrator for at få din konto slettet." unread_message_count: "Beskeder" + admin_delete: "Slet" staff_counters: + flags_given: "hjælpsomme markeringer" flagged_posts: "markerede indlæg" deleted_posts: "slettede indlæg" suspensions: "suspenderinger" @@ -326,28 +333,14 @@ da: instructions: "Profil baggrunde vil blive centrerede og have en standard bredde på 850 pixels" email: title: "E-mail" - instructions: "Vis aldrig offentligt" - ok: "Vi sender en email for at bekræfte" - invalid: "Skriv venligst en gyldig e-mail-adresse." - authenticated: "Din e-mail er bekræftet af {{provider}}." frequency: "Vi sender dig kun e-mail, hvis du ikke har været på siden for nylig, og du ikke allerede har set de ting vi ville e-mail’e dig om." name: title: "Navn" - instructions: "Dit fulde navn (valgfrit)" - too_short: "Dit navn er for kort." - ok: "Dit navn ser fint ud." username: title: "Brugernavn" - short_instructions: "Andre brugere kan referere til dig som @{{username}}." - available: "Brugernavnet er tilgængeligt." - global_match: "E-mail-adressen matcher det registrerede brugernavn." global_mismatch: "Allerede registreret. Prøv {{suggestion}}?" not_available: "Ikke ledigt. Prøv {{suggestion}}?" - too_short: "Dit brugernavn er for kort." - too_long: "Dit brugernavn er for langt." checking: "Kontrollerer om brugernavnet er ledigt…" - enter_email: 'Brugernavn fundet. Skriv den tilhørende e-mail-adresse.' - prefilled: "E-mail-adressen matcher det registrerede brugernavn." locale: title: "sprog" instructions: "Brugerinterface sprog. Det skifter når de reloader siden." @@ -565,6 +558,8 @@ da: reply_here: "Svar her" reply: "Svar" cancel: "Annullér" + create_topic: "Nyt emne" + create_pm: "Privat besked" title: "Eller tryk Ctrl+Enter" users_placeholder: "Tilføj bruger" title_placeholder: "Hvad handler diskussionen om i korte træk?" @@ -679,6 +674,8 @@ da: hot: "Der er ingen populære emner." category: "Der er ingen emner i kategorien {{category}}." top: "Der er ingen top emner" + educate: + starred: '

Dine favoritemner optræder her.

For at gøre et emne til favorit, kan du brug: :

' bottom: latest: "Der er ikke flere populære emner." hot: "There are no more hot topics." @@ -691,6 +688,7 @@ da: top: "Der er ikke flere top emner" topic: filter_to: "Vis {{post_count}} indlæg i emnet" + create: 'Nyt emne' create_long: 'Opret et nyt emne i debatten' private_message: 'Start en privat samtale' list: 'Emner' @@ -1064,6 +1062,7 @@ da: general: 'Overordnet' settings: 'Indstillinger' delete: 'Slet kategori' + create: 'Ny kategori' save: 'Gem kategori' creation_error: Der opstod en fejl under oprettelsen af kategorien. save_error: Der opstod en fejl da kategorien skulle gemmes. diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml index 7eff1cae3..3bf5395b1 100644 --- a/config/locales/client.de.yml +++ b/config/locales/client.de.yml @@ -246,7 +246,7 @@ de: location_not_found: (unbekannt) organisation: Organisation phone: Telefon - no_other_accounts: (keine) + other_accounts: "Andere Konten mit dieser IP-Adresse:" user: said: "{{username}}:" profile: "Profil" @@ -337,29 +337,14 @@ de: instructions: "Hintergrundbilder werden zentriert und haben eine Standardbreite von 590px." email: title: "E-Mail" - instructions: "Wird niemals öffentlich angezeigt." - ok: "Wir werden dir eine E-Mail zur Bestätigung senden." - invalid: "Bitte gib eine gültige E-Mail-Adresse ein." - authenticated: "Deine E-Mail-Adresse wurde von {{provider}} bestätigt." frequency: "Wir werden dir nur E-Mails senden, wenn wir dich kürzlich nicht gesehen haben und wenn du die betroffenen Inhalte noch nicht gesehen hast." name: title: "Name" - instructions: "Dein vollständiger Name (optional)." - too_short: "Dein Name ist zu kurz." - ok: "Dein Name schaut gut aus." username: title: "Benutzername" - instructions: "Eindeutig, keine Leerzeichen, kurz." - short_instructions: "Andere Benutzer können dich mit @{{username}} erwähnen." - available: "Dein Benutzername ist verfügbar." - global_match: "Die E-Mail-Adresse stimmt mit dem registrierten Benutzernamen überein." global_mismatch: "Bereits registriert. Wie wäre es mit {{suggestion}}?" not_available: "Nicht verfügbar. Wie wäre es mit {{suggestion}}?" - too_short: "Dein Benutzername ist zu kurz." - too_long: "Dein Benutzername ist zu lang." checking: "Verfügbarkeit wird geprüft..." - enter_email: 'Benutzername gefunden. Gib die zugehörige E-Mail-Adresse ein.' - prefilled: "Die E-Mail-Adresse passt zu diesem registrierten Benutzernamen." locale: title: "Oberflächensprache" instructions: "Die Sprache der Forumsoberfläche. Diese Änderung tritt nach dem Neuladen der Seite in Kraft." @@ -574,7 +559,7 @@ de: drafts_offline: "Entwürfe offline" min_length: need_more_for_title: "im Titel fehlen noch {{n}} Zeichen" - need_more_for_reply: "noch {{n}}" + need_more_for_reply: "noch {{n}} Zeichen" error: title_missing: "Titel ist erforderlich" title_too_short: "Titel muss mindestens {{min}} Zeichen lang sein" @@ -588,6 +573,7 @@ de: reply: "Antworten" cancel: "Abbrechen" create_topic: "Thema erstellen" + create_pm: "Private Nachricht" title: "Oder drücke Strg+Eingabetaste" users_placeholder: "Benutzer hinzufügen" title_placeholder: "Um was geht es in dieser Diskussion? Schreib einen kurzen Satz." @@ -1176,6 +1162,7 @@ de: title: "Stummgeschaltet" description: "Du erhältst keine Benachrichtigungen über neue Themen in diesen Kategorien und sie werden nicht in deiner Liste ungelesener Themen aufscheinen." flagging: + title: 'Danke für deine Mithilfe!' private_reminder: 'Meldungen sind vertraulich und nur für Mitarbeiter sichtbar' action: 'Beitrag melden' take_action: "Reagieren" @@ -1199,6 +1186,7 @@ de: more: "{{n}} weitere..." left: "{{n}} übrig" flagging_topic: + title: "Danke für deine Mithilfe!" action: "Thema melden" notify_action: "Private Nachricht" topic_map: @@ -1601,6 +1589,7 @@ de: sent_test: "Gesendet!" delivery_method: "Versandmethode" preview_digest: "Vorschau auf Neuigkeiten anzeigen" + preview_digest_desc: "Vorschau auf Neuigkeits-Mails anzeigen. Diese werden wöchentlich an inaktive Benutzer gesendet." refresh: "Aktualisieren" format: "Format" html: "HTML" diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 16793af59..f33e0d720 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -279,12 +279,13 @@ en: organisation: Organization phone: Phone other_accounts: "Other accounts with this IP address:" - no_other_accounts: (none) + delete_all: "Delete all" username: "username" trust_level: "TL" read_time: "read time" topics_entered: "topics entered" post_count: "# posts" + confirm_delete_other_accounts: "Are you sure you want to delete these accounts?" user: said: "{{username}}:" @@ -386,30 +387,30 @@ en: email: title: "Email" - instructions: "Never shown to the public." - ok: "We will email you to confirm." - invalid: "Please enter a valid email address." - authenticated: "Your email has been authenticated by {{provider}}." + instructions: "Never shown to the public" + ok: "We will email you to confirm" + invalid: "Please enter a valid email address" + authenticated: "Your email has been authenticated by {{provider}}" frequency: "We'll only email you if we haven't seen you recently and you haven't already seen the thing we're emailing you about." name: title: "Name" - instructions: "Your full name (optional)." - too_short: "Your name is too short." - ok: "Your name looks good." + instructions: "Your full name (optional)" + too_short: "Your name is too short" + ok: "Your name looks good" username: title: "Username" - instructions: "Unique, no spaces, short." - short_instructions: "People can mention you as @{{username}}." - available: "Your username is available." - global_match: "Email matches the registered username." + instructions: "Unique, no spaces, short" + short_instructions: "People can mention you as @{{username}}" + available: "Your username is available" + global_match: "Email matches the registered username" global_mismatch: "Already registered. Try {{suggestion}}?" not_available: "Not available. Try {{suggestion}}?" - too_short: "Your username is too short." - too_long: "Your username is too long." + too_short: "Your username is too short" + too_long: "Your username is too long" checking: "Checking username availability..." - enter_email: 'Username found. Enter matching email.' - prefilled: "Email matches this registered username." + enter_email: 'Username found; enter matching email' + prefilled: "Email matches this registered username" locale: title: "Interface language" @@ -538,6 +539,8 @@ en: fixed: "Load Page" close: "Close" assets_changed_confirm: "This site was just updated. Refresh now for the latest version?" + logout: "You were logged out." + refresh: "Refresh" read_only_mode: enabled: "An administrator enabled read-only mode. You can continue to browse the site but interactions may not work." login_disabled: "Login is disabled while the site is in read only mode." diff --git a/config/locales/client.es.yml b/config/locales/client.es.yml index 2382db1f7..19d81539c 100644 --- a/config/locales/client.es.yml +++ b/config/locales/client.es.yml @@ -246,7 +246,7 @@ es: location_not_found: (desconocido) organisation: Organización phone: Teléfono - no_other_accounts: (ninguna) + other_accounts: "Otras cuentas con esta dirección IP:" user: said: "{{username}}:" profile: "Perfil" @@ -337,29 +337,14 @@ es: instructions: "Imágenes de fondo serán centrados y tendrán un ancho por default de 590px." email: title: "E-mail" - instructions: "Nunca se mostrará públicamente." - ok: "Te enviaremos un email para confirmar." - invalid: "Por favor ingresa una dirección de e-mail válida." - authenticated: "Tu e-mail ha sido autenticado por {{provider}}." frequency: "Sólo te enviaremos e-mails si no te hemos visto recientemente y todavía no has visto lo que te estamos enviando." name: title: "Nombre" - instructions: "Tu nombre completo (opcional)" - too_short: "Tu nombre es demasiado corto." - ok: "Tu nombre es válido." username: title: "Nombre de usuario" - instructions: "Debe ser único, sin espacios y conciso." - short_instructions: "La gente puede mencionarte como @{{username}}." - available: "Tu nombre de usuario está disponible." - global_match: "El e-mail coincide con el nombre de usuario registrado." global_mismatch: "Ya está registrado. ¿Prueba {{suggestion}}?" not_available: "No disponible. ¿Prueba {{suggestion}}?" - too_short: "Tu nombre de usuario es demasiado corto." - too_long: "Tu nombre de usuario es demasiado largo." checking: "Comprobando la disponibilidad del nombre de usuario..." - enter_email: 'Nombre de usuario encontrado. Por favor, Introduce el e-mail correspondiente.' - prefilled: "El e-mail coincide con el nombre de usuario registrado." locale: title: "Idioma de la interfaz" instructions: "El idioma de la interfaz. Cambiará cuando recargues la página." @@ -588,6 +573,7 @@ es: reply: "Responder" cancel: "Cancelar" create_topic: "Crear tema" + create_pm: "Mensaje Privado" title: "O pulsa Ctrl+Intro" users_placeholder: "Añadir usuario" title_placeholder: "En una frase breve, ¿de qué trata este tema?" diff --git a/config/locales/client.fi.yml b/config/locales/client.fi.yml index f58c8625e..4223da737 100644 --- a/config/locales/client.fi.yml +++ b/config/locales/client.fi.yml @@ -246,7 +246,6 @@ fi: location_not_found: (tuntematon) organisation: Yritys phone: Puhelin - no_other_accounts: (ei mitään) user: said: "{{username}}:" profile: "Profiili" @@ -335,28 +334,14 @@ fi: instructions: "Taustakuvan leveys on 590 pikseliä." email: title: "Sähköposti" - instructions: "Ei tule julkiseksi." - invalid: "Ole hyvä ja anna toimiva sähköpostiosoite." - authenticated: "{{provider}} on todentanut sähköpostisi." frequency: "Lähetämme sähköpostia vain aiheista, joita et ole nähnyt, ja kun emme ole nähneet sinua viime aikoina." name: title: "Nimi" - instructions: "Koko nimesi (valinnainen)" - too_short: "Nimesi on liian lyhyt." - ok: "Nimesi vaikuttaa hyvältä." username: title: "Käyttäjätunnus" - instructions: "Uniikki, lyhyt ja ilman välilyöntejä." - short_instructions: "Muut käyttäjät voivat viitata sinuun nimellä @{{username}}." - available: "Käyttäjätunnuksesi on vapaana." - global_match: "Sähköposti vastaa rekisteröityä käyttäjänimeä." global_mismatch: "Nimi on jo käytössä. Kokeile {{suggestion}}?" not_available: "Ei saatavilla. Kokeile {{suggestion}}?" - too_short: "Käyttäjätunnus on liian lyhyt." - too_long: "Käyttäjätunnus on liian pitkä." checking: "Tarkistetaan käyttäjätunnusta..." - enter_email: 'Käyttäjänimi löydetty. Kirjoita sitä vastaava sähköpostiosoite.' - prefilled: "Sähköposti vastaa tätä käyttäjänimeä." locale: title: "Käyttöliittymän kieli" instructions: "Käyttöliittymän kieli. Kieli vaihtuu sivun uudelleen lataamisen yhteydessä." diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml index bab501356..2697f8222 100644 --- a/config/locales/client.fr.yml +++ b/config/locales/client.fr.yml @@ -246,7 +246,7 @@ fr: location_not_found: (inconnu) organisation: Société phone: Téléphone - no_other_accounts: (aucun) + other_accounts: "Autres comptes avec cette adresse IP :" user: said: "{{username}} :" profile: "Profil" @@ -289,6 +289,7 @@ fr: deleted_yourself: "Votre compte a été supprimé avec succès." delete_yourself_not_allowed: "Vous ne pouvez pas supprimer votre compte maintenant. Contactez un administrateur pour faire supprimer votre compte pour vous." unread_message_count: "Messages" + admin_delete: "Supprimer" staff_counters: flags_given: "signalements obligeants" flagged_posts: "messages signalés" @@ -336,29 +337,14 @@ fr: instructions: "Les images d'arrière plan seront centrées avec une taille par défaut de 590 pixels." email: title: "Courriel" - instructions: "Ne sera jamais visible publiquement." - ok: "On vous envoie un mail pour confirmer." - invalid: "Merci de saisir une adresse de courriel valide." - authenticated: "Votre adresse de courriel a été authentifiée par {{provider}}." frequency: "Nous vous envoyons des courriels contenant uniquement des informations que vous n'avez pas déjà vues lors d'une précédente connexion." name: title: "Nom" - instructions: "Votre nom complet (facultatif)." - too_short: "Votre nom est trop court." - ok: "Votre nom semble correct." username: title: "Pseudo" - instructions: "Unique, sans espace, court." - short_instructions: "Les utilisateurs peuvent vous mentionner avec @{{username}}." - available: "Votre pseudo est disponible." - global_match: "L'adresse de courriel correspond au pseudo enregistré." global_mismatch: "Déjà enregistré. Essayez {{suggestion}} ?" not_available: "Non disponible. Essayez {{suggestion}} ?" - too_short: "Votre pseudo est trop court." - too_long: "Votre pseudo est trop long." checking: "Vérification de la disponibilité de votre pseudo..." - enter_email: 'Pseudo trouvé. Entrez l''adresse de courriel correspondante.' - prefilled: "L'adresse de courriel correspond à ce pseudo enregistré." locale: title: "Langue de l'interface" instructions: "Langage de votre interface. Cette dernière changera lorsque vous actualiserez la page." @@ -586,6 +572,7 @@ fr: reply_here: "Répondre ici" reply: "Répondre" cancel: "Annuler" + create_pm: "Message privé" title: "ou appuyez sur Ctrl+Entrée" users_placeholder: "Ajouter un utilisateur" title_placeholder: "Quel est votre sujet en une phrase descriptive ?" diff --git a/config/locales/client.he.yml b/config/locales/client.he.yml index 037dd8339..f05898e17 100644 --- a/config/locales/client.he.yml +++ b/config/locales/client.he.yml @@ -246,7 +246,6 @@ he: location_not_found: (לא ידוע) organisation: ארגון phone: טלפון - no_other_accounts: (ללא) user: said: "{{username}}:" profile: "פרופיל" @@ -336,28 +335,14 @@ he: instructions: "תמונות רקע ימורכזו ויוצגו עם ברירת מחדל של רוחב 590px." email: title: "דואר אלקטרוני" - instructions: "לעולם לא מוצג לציבור." - invalid: "בבקשה הכנס כתובת דואר אלקטרוני חוקית" - authenticated: "כתובת הדואר האלקטרוני שלך אושרה על ידי {{provider}}." frequency: "נשלח לך דואר אלקטרוני רק אם לא ראינו אותך לאחרונה ועדיין לא ראית את מה שאנחנו רוצים לשלוח" name: title: "שם" - instructions: "שמך המלא (רשות)." - too_short: "השם שלך קצר מידי." - ok: "השם נראה טוב." username: title: "שם משתמש" - instructions: "ייחדוי, ללא רווחים, קצר." - short_instructions: "אנשים יכולים לאזכר אותך כ @{{username}}." - available: "שם המשתמש שלך פנוי." - global_match: "הדואר האלקטרוני תואם את שם המשתמש הרשום" global_mismatch: "כבר רשום. נסה {{suggestion}}?" not_available: "לא זמין. נסה {{suggestion}}?" - too_short: "שם המשתמש שלך קצר מידי." - too_long: "שם המשתמש שלך ארוך מידי." checking: "בודק זמינות שם משתמש..." - enter_email: 'נמצא שם משתמש. הכנס דואר אלקטרוני תואם.' - prefilled: "הדואר האלקטרוני תואם את שם המשתמש הזה." locale: title: "שפת ממשק" instructions: "שפת ממשק המשתמש. היא תתחלף כשתרעננו את העמוד." diff --git a/config/locales/client.id.yml b/config/locales/client.id.yml index 868ff8a7a..d0f80c0f6 100644 --- a/config/locales/client.id.yml +++ b/config/locales/client.id.yml @@ -193,15 +193,8 @@ id: private_messages: "Messages" activity_stream: "Activity" bio: "About me" - email: - invalid: "Masukkan email yang valid." name: title: "Name" - too_short: "Nama kamu terlalu pendek." - username: - available: "Username tersedia." - too_short: "Username kamu terlalu pendek." - too_long: "Username kamu terlalu panjang." last_seen: "Seen" created: "Joined" email_settings: "Email" diff --git a/config/locales/client.it.yml b/config/locales/client.it.yml index bbf7e3a15..caa4f4e29 100644 --- a/config/locales/client.it.yml +++ b/config/locales/client.it.yml @@ -246,7 +246,7 @@ it: location_not_found: (sconosciuto) organisation: Organizzazione phone: Telefono - no_other_accounts: (nessuno) + other_accounts: "Altri account con questo indirizzo IP:" user: said: "{{username}}:" profile: "Profilo" @@ -337,29 +337,14 @@ it: instructions: "Le immagini di sfondo saranno centrate e per difetto avranno un'ampiezza di 590px." email: title: "Email" - instructions: "Mai mostrato pubblicamente." - ok: "Ti invieremo una email di conferma." - invalid: "Inserisci un indirizzo email valido." - authenticated: "{{provider}} ha autenticato la tua email." frequency: "Ti invieremo mail solo se è un po' che non ti si vede; le email riguarderanno solo le conversazioni che non hai letto." name: title: "Nome" - instructions: "Nome completo (facoltativo)." - too_short: "Il nome è troppo breve." - ok: "Il nome è adeguato." username: title: "Nome utente" - instructions: "Deve essere univoco, senza spazi e breve." - short_instructions: "Gli utenti possono citarti scrivendo @{{username}}." - available: "Il nome utente è disponibile." - global_match: "L'email corrisponde allo nome utente registrato." global_mismatch: "Già registrato. Prova {{suggestion}}?" not_available: "Non disponibile. Prova {{suggestion}}?" - too_short: "Il nome utente è troppo breve." - too_long: "Il nome utente è troppo lungo." checking: "Controllo la disponibilità del nome utente..." - enter_email: 'Nome utente trovato. Inserisci l''email corrispondente.' - prefilled: "L'email corrisponde allo username registrato." locale: title: "Lingua dell'interfaccia" instructions: "Lingua dell'interfaccia utente. Cambierà quando aggiornerai la pagina." @@ -587,6 +572,8 @@ it: reply_here: "Rispondi Qui" reply: "Rispondi" cancel: "Annulla" + create_topic: "Crea Argomento" + create_pm: "Messaggio Privato" title: "O premi Ctrl+Enter" users_placeholder: "Aggiunti un utente" title_placeholder: "In breve, di cosa tratta questa discussione?" @@ -657,7 +644,10 @@ it: title_with_attachments: "Aggiungi un'immagine o un file" from_my_computer: "Dal mio dispositivo" from_the_web: "Dal web" + remote_tip: "collegamento all'immagine" + remote_tip_with_attachments: "collegamento ad un'immagine o a un file ({{authorized_extensions}})" local_tip: "clicca per selezionare un'immagine dal tuo dispositivo" + local_tip_with_attachments: "clicca per selezionare un'immagine o un file dal tuo dispositivo ({{authorized_extensions}})" hint: "(puoi anche trascinarle nell'editor per caricarle)" hint_for_supported_browsers: "(puoi anche trascinare o incollare immagini nell'editor per caricarle)" uploading: "In caricamento" @@ -724,6 +714,7 @@ it: top: "Non ci sono altri argomenti di punta." topic: filter_to: "{{post_count}} suoi messaggi" + create: 'Nuovo Argomento' create_long: 'Crea un nuovo Argomento' private_message: 'Inizia un messaggio privato' list: 'Argomenti' @@ -1118,6 +1109,7 @@ it: general: 'Generale' settings: 'Impostazioni' delete: 'Elimina Categoria' + create: 'Crea Categoria' save: 'Salva Categoria' creation_error: Si è verificato un errore nella creazione della categoria. save_error: Si è verificato un errore durante il salvataggio della categoria. @@ -1168,6 +1160,7 @@ it: title: "Ignorato" description: "Non ti verrà notificato nulla sui nuovi argomenti di queste categorie, e non compariranno nella tua tab dei non letti." flagging: + title: 'Grazie per aiutarci a mantenere la nostra comunità civile!' action: 'Segnala Messaggio' take_action: "Procedi" notify_action: 'Messaggio privato' @@ -1188,6 +1181,7 @@ it: more: "{{n}} alla fine..." left: "{{n}} rimanenti" flagging_topic: + title: "Grazie per aiutarci a mantenere la nostra comunità civile!" action: "Segnala Argomento" notify_action: "Messaggio privato" topic_map: @@ -1505,7 +1499,9 @@ it: customize: title: "Personalizza" long_title: "Personalizzazioni Sito" + css: "CSS" header: "Intestazione" + footer: "Fondo pagina" override_default: "Non includere fogli di stile standard" enabled: "Attivo?" preview: "anteprima" diff --git a/config/locales/client.ja.yml b/config/locales/client.ja.yml index e838fe7ee..e82e775cd 100644 --- a/config/locales/client.ja.yml +++ b/config/locales/client.ja.yml @@ -219,7 +219,6 @@ ja: location_not_found: (不明) organisation: 組織 phone: 電話 - no_other_accounts: (なし) user: said: "{{username}}:" profile: "プロフィール" @@ -302,27 +301,14 @@ ja: title: "プロフィール背景" email: title: "メールアドレス" - instructions: "Eメールアドレスは外部に公開されません。" - invalid: "正しいメールアドレスを入力してください。" - authenticated: "あたなのメールは {{provider}} により認証されました。" frequency: "メールは、あなたがしばらくの間サイトにログインせず未読トピックが溜まった時のみ送信されます。" name: title: "名前" - too_short: "名前が短すぎます。" - ok: "名前 OK。" username: title: "ユーザ名" - instructions: "空白を含まないユニークな名前を入力してください。" - short_instructions: "他のユーザはあなたを @{{username}} でタグ付けできます。" - available: "ユーザ名は利用可能です。" - global_match: "メールアドレスが登録済のユーザ名と一致しました。" global_mismatch: "既に利用されています。{{suggestion}} などはいかがでしょう?" not_available: "利用できません。{{suggestion}} などはいかがでしょう?" - too_short: "ユーザ名が短すぎます。" - too_long: "ユーザ名が長すぎます。" checking: "ユーザ名が利用可能か確認しています..." - enter_email: 'ユーザ名が見つかりました。メールアドレスを入力してください。' - prefilled: "この登録ユーザが使用するメールアドレスが見つかりました。" locale: title: "表示言語" instructions: "ユーザインタフェイス表示言語。ページを更新する際には、表示言語を更新されます。" diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml index 80bd4f76a..b916965da 100644 --- a/config/locales/client.ko.yml +++ b/config/locales/client.ko.yml @@ -223,7 +223,7 @@ ko: location_not_found: (알수없음) organisation: 소속 phone: 전화 - no_other_accounts: (없음) + other_accounts: "현재 IP주소의 다른 계정들:" user: said: "{{username}}:" profile: "프로필" @@ -266,6 +266,7 @@ ko: deleted_yourself: "성공적으로 당신의 계정이 삭제 되었습니다." delete_yourself_not_allowed: "지금은 당신의 계정을 삭제할 수 없습니다. 관리자에게 당신의 계정을 삭제해달라고 연락해보세요." unread_message_count: "메시지" + admin_delete: "삭제" staff_counters: flags_given: "유용한 신고" flagged_posts: "신고된 게시글" @@ -313,29 +314,14 @@ ko: instructions: "배경 이미지는 가운데를 기준으로 표시되며 590px이 기본 가로 사이즈 입니다." email: title: "이메일" - instructions: "절대로 공개되지 않습니다." - ok: "당신에게 확인 메일을 보내겠습니다." - invalid: "유효한 이메일 주소를 입력해주세요." - authenticated: "당신의 이메일은 {{provider}}에 의해 인증되었습니다." frequency: "당신의 활동이 뜸해지거나 저희가 보낸 이메일에 포함된 글들을 읽지 못하셨다면 확인 이메일을 보내드립니다." name: title: "이름" - instructions: "이름을 적어주세요. (선택사항)" - too_short: "이름이 너무 짧습니다." - ok: "사용 가능한 이름입니다." username: title: "아이디" - instructions: "중복될 수 없으며 띄어쓰기 사용이 불가합니다. 짧을 수록 좋아요." - short_instructions: "@{{username}}으로 언급이 가능합니다." - available: "아이디\x1D로 사용가능합니다." - global_match: "이메일이 등록된 아이디와 일치합니다." global_mismatch: "이미 등록된 아이디입니다. 다시 시도해보세요. {{suggestion}}" not_available: "사용할 수 없는 아이디입니다. 다시 시도해보세요. {{suggestion}}" - too_short: "아이디가 너무 짧습니다." - too_long: "아이디가 너무 깁니다." checking: "사용가능한지 확인 중..." - enter_email: '아이디를 찾았습니다. 일치하는 이메일을 입력해주세요.' - prefilled: "이메일이 등록된 아이디와 연결되어 있습니다." locale: title: "인터페이스 언어" instructions: "UI 언어. 변경 후 새로 고침하면 반영됩니다." @@ -559,6 +545,8 @@ ko: reply_here: "여기에 답글을 작성하세요." reply: "답글 전송" cancel: "취소" + create_topic: "토픽 게시" + create_pm: "비공개 메세지" title: "혹은 Ctrl + Enter 누름" users_placeholder: "사용자 추가" title_placeholder: "이야기 나누고자 하는 내용을 한문장으로 적는다면?" @@ -601,6 +589,7 @@ ko: auto_close: label: "자동-닫기 토픽 시간:" error: "유효한 값은 눌러주세요." + based_on_last_post: "적어도 토픽의 마지막 글이 이만큼 오래되지 않았으면 닫지 마세요." all: examples: '시간을 숫자(24이하)로 입력하거나 분을 포함한 시간(17:30) 혹은 타임스탬프(2013-11-22 14:00) 형식으로 입력하세요.' limited: @@ -628,7 +617,10 @@ ko: title_with_attachments: "이미지 또는 파일 추가하기" from_my_computer: "컴퓨터에서 가져오기" from_the_web: "인터넷에서 가져오기" + remote_tip: "이미지 링크" + remote_tip_with_attachments: "이미지 또는 파일 링크 ({{authorized_extensions}})" local_tip: "내 컴퓨터에서 이미지를 가져오기" + local_tip_with_attachments: "기기에서 이미지나 파일 선택을 위해 클릭 ({{authorized_extensions}})" hint: "(드래그&드랍으로 업로드 가능)" hint_for_supported_browsers: "(이미지 파일을 드래그&드랍하거나 붙여넣기하여 업로드 할 수 있습니다.)" uploading: "업로드 중입니다..." @@ -694,6 +686,7 @@ ko: top: "더 이상 인기 토픽이 없습니다." topic: filter_to: "이 토픽에서 {{username}}님의 {{post_count}}건의 게시물만 보기" + create: '새 토픽 만들기' create_long: '새로운 토픽을 개설' private_message: '개인 메시지를 작성' list: '토픽 목록' @@ -774,12 +767,16 @@ ko: description: "이 토픽의 새로운 게시글은 항상 알림이 동작합니다. 읽지 않은 글의 수는 토픽 옆에 표시됩니다." tracking_pm: title: "알림 : 새 글 표시 중" + description: "읽지 않은 글과 새로운 게시물 수를 볼 수 있습니다. 누군가 당신의 @이름 을 언급했거나 당신의 글에 답글을 작성하면 알림을 받습니다." tracking: title: "새 글 표시 중" + description: "읽지 않은 게시글의 수는 토픽 옆에 표시됩니다. 당신의 @이름 을 언급하거나 당신의 게시글에 답글을 작성한 경우에 알림이 작동합니다." regular: title: "알림: 일반" + description: "누군가 당신의 @이름 을 언급했거나 당신의 글에 답글이 달릴 때 알림을 받게 됩니다." regular_pm: title: "알림: 일반" + description: "누군가 당신의 @이름을 언급했거나 당신의 글에 답글이 달릴 때만 알림을 받게 됩니다." muted_pm: title: "알림 : 끔" description: "이 개인 메시지에 대해 어떠한 알림도 받지 않지 않습니다." @@ -1051,6 +1048,7 @@ ko: general: '일반' settings: '설정' delete: '카테고리 삭제' + create: '새 카테고리' save: '카테고리 저장' creation_error: 카테고리 생성 중 오류가 발생했습니다. save_error: 카테고리 저장 중 오류가 발생했습니다. @@ -1101,6 +1099,8 @@ ko: title: "알림 꺼짐" description: "이 카테고리의 새로운 토픽에 대한 알림을 받지 않고 읽지 않\x1C은 탭에도 표시하지 않습니다." flagging: + title: '우리 커뮤니티에 기여해 주셔서 감사합니다.' + private_reminder: '신고는 오직 관리자만 볼 수 있습니다.' action: '게시물 신고하기' take_action: "조치를 취하기" notify_action: '알림' @@ -1116,11 +1116,14 @@ ko: off_topic: "오프 토픽입니다." inappropriate: "부적절함" spam: "스팸입니다" + custom_placeholder_notify_user: "구체적이고, 건설적이며, 항상 친절하세요." + custom_placeholder_notify_moderators: "구체적으로 사용자님께서 걱정하는 것과 가능한 모든 관련된 링크를 제공해주세요." custom_message: at_least: "최소한 {{n}}자를 입력하세요" more: "{{n}} 이동합니다" left: "{{n}} 나머지" flagging_topic: + title: "우리 커뮤니티에 기여해 주셔서 감사합니다." action: "신고된 토픽" notify_action: "비공개 메시지" topic_map: @@ -1432,7 +1435,9 @@ ko: customize: title: "사용자 지정" long_title: "사이트 사용자 지정" + css: "CSS" header: "헤더" + footer: "푸터(하단영역)" override_default: "표준 스타일 시트를 포함하지 마십시오" enabled: "사용가능?" preview: "미리 보기" @@ -1515,6 +1520,7 @@ ko: sent_test: "전송됨!" delivery_method: "전달 방법" preview_digest: "요약 미리보기" + preview_digest_desc: "비활성화중인 사용자에게 보내는 매주 요약된 이메일링의 컨텐츠 미리보기" refresh: "새로고침" format: "형식" html: "html" @@ -1576,6 +1582,7 @@ ko: check_email: "이메일 확인" delete_topic: "토픽 삭제" delete_post: "게시글 삭제" + impersonate: "대역" screened_emails: title: "블락된 이메일들" description: "누군가가 새로운 계정을 만들면 아래 이메일 주소는 체크되고 등록은 블락됩니다, 또는 다른 조치가 취해집니다." @@ -1913,6 +1920,7 @@ ko: actions: title: 'Actions' star: 'f 별표시 토픽' + pin_unpin_topic: 'Shift + p 핀고정/핀해제' share_topic: 'shift s 토픽 공유' share_post: 's 게시글 공유' reply_as_new_topic: 't 링크된 토픽으로 답글 작성하기' diff --git a/config/locales/client.nb_NO.yml b/config/locales/client.nb_NO.yml index 28a4f2325..59bc84240 100644 --- a/config/locales/client.nb_NO.yml +++ b/config/locales/client.nb_NO.yml @@ -246,7 +246,7 @@ nb_NO: location_not_found: (ukjent) organisation: Organisasjon phone: Telefon - no_other_accounts: (ingen) + other_accounts: "Andre kontoer med denne IP-adressen:" user: said: "{{username}}:" profile: "Profil" @@ -333,33 +333,18 @@ nb_NO: title: "Profilbakgrunn" instructions: "Profil bakgrunner vil bli sentrert med en standard bredde på 850px" change_card_background: - title: "Profilbakgrunn" + title: "Brukerkort bakgrunn" instructions: "Bakgrunnsbilder vil bli sentrert og ha en standard bredde på 590px." email: title: "E-post" - instructions: "Vises aldri offentlig" - ok: "Vi sender deg en email for å bekrefte" - invalid: "Vennligst skriv inn en gyldig e-postadresse." - authenticated: "Din e-post har blitt autentisert av {{provider}}." frequency: "Vi sender deg bare en e-post om vi ikke har sett deg nylig og du ikke allerede har sett det vi varsler deg om." name: title: "Navn" - instructions: "Ditt fulle navn (valgfritt)." - too_short: "Navnet ditt er for kort." - ok: "Navnet ditt ser bra ut." username: title: "Brukernavn" - instructions: "Unikt, kort og uten mellomrom." - short_instructions: "Folk kan nevne deg som @{{username}}." - available: "Ditt brukernavn er tilgjengelig." - global_match: "E-post stemmer med det registrerte brukernavnet." global_mismatch: "Allerede registrert. Prøv {{suggestion}}?" not_available: "Ikke tilgjengelig. Prøv {{suggestion}}?" - too_short: "Ditt brukernavn er for kort." - too_long: "Ditt brukernavn er for langt." checking: "Sjekker brukernavnets tilgjengelighet..." - enter_email: 'Brukernavn funnet. Skriv inn tilhørende e-postadresse.' - prefilled: "E-postadresse passer med dette registrerte brukernavnet." locale: title: "Språk for grensesnitt" instructions: "Språk for grensesnitt. Endringen vil tre i kraft når du oppdaterer siden." @@ -587,6 +572,8 @@ nb_NO: reply_here: "Svar her" reply: "Svar" cancel: "Avbryt" + create_topic: "Nytt Emne" + create_pm: "Privat Melding" title: "Eller trykk Ctrl+Enter" users_placeholder: "Legg til en bruker" title_placeholder: "Oppsummert i en setning, hva handler denne diskusjonen om?" @@ -596,6 +583,7 @@ nb_NO: view_new_post: "Se ditt nye innlegg." saving: "Lagrer..." saved: "Lagret!" + saved_draft: "Innleggsutkast. Velg for å fortsette." uploading: "Laster opp..." show_preview: 'se forhånsvisning »' hide_preview: '« skjul forhåndsvisning' @@ -656,6 +644,8 @@ nb_NO: title_with_attachments: "Legg til et bilde eller en fil" from_my_computer: "Fra Min Enhet" from_the_web: "Fra nettet" + remote_tip: "link til bilde" + remote_tip_with_attachments: "link til bilde eller fil ({{authorized_extensions}})" local_tip: "klikk for å velge et bilde fra din enhet." hint: "(du kan også drag & drop inn i editoren for å laste dem opp)" hint_for_supported_browsers: "(du kan også drag og drop eller lime inn bilder inn i editoren for å laste dem opp)" @@ -723,6 +713,7 @@ nb_NO: top: "Det er ingen flere populære emner." topic: filter_to: "{{post_count}} innlegg i dette emnet." + create: 'Nytt Emne' create_long: 'Opprett et nytt emne' private_message: 'Start en privat melding' list: 'Emner' @@ -1117,6 +1108,7 @@ nb_NO: general: 'Generellt' settings: 'Innstillinger' delete: 'Slett kategori' + create: 'Ny Kategori' save: 'Lagre Kategori' creation_error: Det oppstod en feil ved å lage denne kategorien. save_error: Det oppstod en feil ved lagrinen av denne kategorien. @@ -1182,6 +1174,7 @@ nb_NO: off_topic: "Det er off-topic " inappropriate: "Det er upassende" spam: "Det er reklame" + custom_placeholder_notify_user: "Vær spesifikk, konstruktiv og snill." custom_message: at_least: "skriv minst {{n}} bokstaver" more: "{{n}} igjen..." @@ -1344,6 +1337,8 @@ nb_NO: 7_days_ago: "7 Dager Siden" 30_days_ago: "30 Dager Siden" all: "Alle" + start_date: "Startdato" + end_date: "Sluttdato" commits: latest_changes: "Siste endringer: Vennligst oppgrader ofte!" by: "av" @@ -1987,6 +1982,7 @@ nb_NO: actions: title: 'Handlinger' star: 'f Legg emne i favoritter' + pin_unpin_topic: 'shift p Fastsett/Løsgjør emne' share_topic: 'shift s Del emne' share_post: 's Del innlegg' reply_as_new_topic: 't Svar med lenket emne' diff --git a/config/locales/client.nl.yml b/config/locales/client.nl.yml index ec475c511..8fde1c35e 100644 --- a/config/locales/client.nl.yml +++ b/config/locales/client.nl.yml @@ -241,7 +241,6 @@ nl: location_not_found: (onbekend) organisation: Organisatie phone: Telefoon - no_other_accounts: (geen) user: said: "{{username}}:" profile: "Profiel" @@ -324,27 +323,14 @@ nl: title: "Profielachtergrond" email: title: "E-mail" - instructions: "Je e-mail adres zal nooit publieklijk zichtbaar zijn." - invalid: "Vul een geldig e-mailadres in." - authenticated: "Je e-mailadres is bevestigd door {{provider}}." frequency: "We zullen je alleen maar mailen als we je een tijd niet gezien hebben, en als je toevallig hetgeen waarover we je mailen nog niet hebt gezien op onze site." name: title: "Naam" - too_short: "Je naam is te kort." - ok: "Je naam ziet er prima uit." username: title: "Gebruikersnaam" - instructions: "Je gebruikersnaam moet uniek zijn en mag geen spaties bevatten." - short_instructions: "Mensen kunnen naar je verwijzen als @{{username}}." - available: "Je gebruikersnaam is beschikbaar." - global_match: "Je e-mailadres komt overeen met je geregistreerde gebruikersnaam." global_mismatch: "Is al geregistreerd. Gebruikersnaam {{suggestion}} proberen?" not_available: "Niet beschikbaar. Gebruikersnaam {{suggestion}} proberen?" - too_short: "Je gebruikersnaam is te kort." - too_long: "Je gebruikersnaam is te lang." checking: "Kijken of gebruikersnaam beschikbaar is..." - enter_email: 'Gebruikersnaam gevonden. Vul het gekoppelde e-mailadres in.' - prefilled: "E-mail hoort bij deze gebruikersnaam." locale: title: "Interfacetaal" instructions: "De taal van de foruminterface. Deze verandert als je de pagina herlaadt" diff --git a/config/locales/client.pl_PL.yml b/config/locales/client.pl_PL.yml index c9c802c1e..42ed15d66 100644 --- a/config/locales/client.pl_PL.yml +++ b/config/locales/client.pl_PL.yml @@ -269,7 +269,7 @@ pl_PL: location_not_found: (nieznane) organisation: Organizacja phone: Numer telefonu - no_other_accounts: (brak) + other_accounts: "Inne konta z tym adresem IP:" user: said: "{{username}}:" profile: "Profil" @@ -312,6 +312,7 @@ pl_PL: deleted_yourself: "Twoje konto zostało usunięte." delete_yourself_not_allowed: "Nie możesz usunąć swojego konta w tej chwili. Skontaktuj się z administratorem, by usunął Twoje konto za Ciebie." unread_message_count: "Wiadomości" + admin_delete: "Usuń" staff_counters: flags_given: "uczynnych oflagowań" flagged_posts: "oflagowane wpisy" @@ -359,29 +360,14 @@ pl_PL: instructions: "Tło karty użytkownika est wycentrowane i posiada domyślną szerokość 590px." email: title: "Email" - instructions: "Nie będzie publicznie widoczny." - ok: "Otrzymasz potwierdzenie emailem." - invalid: "Podaj poprawny adres email." - authenticated: "Twój adres email został potwierdzony przez {{provider}}." frequency: "Wyślemy do Ciebie email tylko jeżeli dawno Cię nie widzieliśmy i wyłącznie na temat rzeczy których jeszcze nie widziałeś." name: title: "Pełna nazwa" - instructions: "Twoja pełna nazwa (opcjonalna)" - too_short: "Twoja nazwa jest za krótka." - ok: "Twoja nazwa jest poprawna." username: title: "Nazwa konta" - instructions: "Unikalna, krótka i bez spacji." - short_instructions: "Aby o tobie wspomnieć, wystarczy napisać @{{username}}." - available: "Nazwa jest dostępna." - global_match: "Email zgadza się z zarejestrowaną nazwą użytkownika." global_mismatch: "Zajęta. Może spróbuj {{suggestion}}?" not_available: "Niedostępna. Może spróbuj {{suggestion}}?" - too_short: "Nazwa jest za krótka." - too_long: "Nazwa jest za długa." checking: "Sprawdzanie, czy nazwa jest dostępna…" - enter_email: 'Nazwa znaleziona. Wpisz przypisany adres email.' - prefilled: "Email zgadza się z zarejestrowaną nazwą użytkownika." locale: title: "Język interfejsu" instructions: "Język interfejsu użytkownika. Zmieni się, gdy odświeżysz stronę." @@ -613,6 +599,8 @@ pl_PL: reply_here: "Odpowiedz tutaj" reply: "Odpowiedz" cancel: "Anuluj" + create_topic: "Utwórz temat" + create_pm: "Prywatna wiadomość" title: "Lub naciśnij Ctrl+Enter" users_placeholder: "Dodaj osobę" title_placeholder: "O czym jest ta dyskusja w jednym zwartym zdaniu. " @@ -683,7 +671,10 @@ pl_PL: title_with_attachments: "Dodaj obraz lub plik" from_my_computer: "Z mojego urządzenia" from_the_web: "Z Internetu" + remote_tip: "link do obrazu" + remote_tip_with_attachments: "odnośnik do obrazu lub pliku ({{authorized_extensions}})" local_tip: "kliknij, aby wybrać obraz z Twojego urządzenia" + local_tip_with_attachments: "kliknij aby wybrać obraz lub plik ze swojego urządzenia ({{authorized_extensions}})" hint: "(możesz także upuścić plik z katalogu komputera w okno edytora)" hint_for_supported_browsers: "(możesz przeciągnąć lub wkleić obrazy do edytora, aby je wgrać)" uploading: "Wgrywanie" @@ -753,6 +744,7 @@ pl_PL: top: "Nie ma już więcej najlepszych tematów." topic: filter_to: "{{post_count}} wpisów w temacie" + create: 'Nowy temat' create_long: 'Utwórz nowy temat' private_message: 'Napisz Prywatną Wiadomość' list: 'Tematy' @@ -1180,6 +1172,7 @@ pl_PL: general: 'Ogólne' settings: 'Ustawienia' delete: 'Usuń kategorię' + create: 'Nowa kategoria' save: 'Zapisz kategorię' creation_error: Podczas tworzenia tej kategorii wystąpił błąd. save_error: Podczas zapisywania tej kategorii wystąpił błąd. @@ -1230,6 +1223,8 @@ pl_PL: title: "Wyciszone" description: "Nie będziesz powiadamiany o nowych tematach w tych kategoriach i nie będą się one pojawiać w karcie Nieprzeczytane." flagging: + title: 'Dziękujemy za pomoc w utrzymaniu porządku w naszej społeczności!' + private_reminder: 'oflagowania są poufne i widoczne jedynie dla obsługi serwisu' action: 'Oflaguj wpis' take_action: "Podejmij działanie" notify_action: 'Prywatna wiadomość' @@ -1245,11 +1240,14 @@ pl_PL: off_topic: "Jest nie-na-temat" inappropriate: "Jest nieodpowiednie" spam: "Jest odebrane jako spam" + custom_placeholder_notify_user: "Napisz konkretnie, konstuktywnie i kulturalnie." + custom_placeholder_notify_moderators: "Dlaczego ten wpis wymaga uwagi moderatora? Opisz co konkretnie Cię zaniepokoiło i jeśli to możliwe umieść odpowiednie odnośniki." custom_message: at_least: "wprowadź co najmniej {{n}} znaków" more: "{{n}} aby wysłać…" left: "{{n}} pozostało" flagging_topic: + title: "Dziękujemy za pomoc w utrzymaniu porządku w naszej społeczności!" action: "Zgłoś temat" notify_action: "Wyślij prywatną wiadomość" topic_map: @@ -1652,6 +1650,7 @@ pl_PL: sent_test: "wysłany!" delivery_method: "Metoda Dostarczenia" preview_digest: "Pokaż zestawienie aktywności" + preview_digest_desc: "Podgląd treści emaila z zestawieniem aktywności jaki jest wysyłany nieaktywnym użytkownikom." refresh: "Odśwież" format: "Format" html: "html" @@ -2065,6 +2064,7 @@ pl_PL: actions: title: 'Operacje' star: 'f oznacz temat gwiazdką' + pin_unpin_topic: 'shift p przypnij/odepnij temat' share_topic: 'shift s udostępnij temat' share_post: 's udostępnij wpis' reply_as_new_topic: 't odpowiedz w nowym temacie' diff --git a/config/locales/client.pt.yml b/config/locales/client.pt.yml index feee8df49..2121ee8fc 100644 --- a/config/locales/client.pt.yml +++ b/config/locales/client.pt.yml @@ -239,7 +239,6 @@ pt: location_not_found: (desconhecido) organisation: Organização phone: Telefóne - no_other_accounts: (nenhum) user: profile: "Perfil" mute: "Silenciar" @@ -321,25 +320,14 @@ pt: title: "Fundo de Perfil" email: title: "Email" - invalid: "Por favor coloque um endereço de email válido." - authenticated: "O seu email foi autenticado por {{provider}}." frequency: "Vamos enviar-lhe emails apenas quando não o virmos há algum tempo e não tiver visto as coisas que temos enviado." name: title: "Nome" - too_short: "O seu nome é muito curto." - ok: "O seu nome parece bom." username: title: "Nome de Utilizador" - short_instructions: "As pessoas podem mencioná-lo utilizando @{{username}}." - available: "O seu nome de utilizador está disponível." - global_match: "O email corresponde ao nome de utilizador registado." global_mismatch: "Já está registado. Tente {{suggestion}}?" not_available: "Não está disponível. Tente {{suggestion}}?" - too_short: "O seu nome de utilizador é muito curto." - too_long: "O seu nome de utilizador é muito comprido." checking: "A verificar a disponibilidade do nome de utilizador..." - enter_email: 'Nome de utilizador encontrado. Coloque o email referente a ele.' - prefilled: "O email corresponde ao nome de um utilizador registado." locale: title: "Idioma de Interface" instructions: "Idioma da interface de utilizador. Será alterado quando atualizar a página." diff --git a/config/locales/client.pt_BR.yml b/config/locales/client.pt_BR.yml index 03f139983..2acd38775 100644 --- a/config/locales/client.pt_BR.yml +++ b/config/locales/client.pt_BR.yml @@ -245,7 +245,6 @@ pt_BR: location_not_found: (desconhecido) organisation: Organização phone: Telefone - no_other_accounts: (nenhum) user: said: "{{username}}:" profile: "Perfil" @@ -333,28 +332,14 @@ pt_BR: instructions: "As Imagens de fundo serão centralizadas e deverão ter largura de 590px" email: title: "Email" - instructions: "Não visível publicamente." - invalid: "Por favor, coloque um email válido." - authenticated: "O seu email foi autenticado por {{provider}}." frequency: "Vamos lhe enviar emails apenas quando não o virmos há algum tempo e você não tiver visto as coisas que temos enviado." name: title: "Nome" - instructions: "Nome Completo ( campo opcional )" - too_short: "O seu nome é muito curto." - ok: "O seu nome parece ok." username: title: "Nome de Usuário" - instructions: "Único, sem espaços e curto." - short_instructions: "As pessoas podem mencionar você usando @{{username}}." - available: "O seu Nome de Usuário está disponível." - global_match: "O email corresponde ao Nome de Usuário registado." global_mismatch: "Já está registado. Tente {{suggestion}}?" not_available: "Não está disponível. Tente {{suggestion}}?" - too_short: "O seu Nome de Usuário é muito curto." - too_long: "O seu Nome de Usuário é muito grande." checking: "Verificando disponibilidade do Nome de Usuário..." - enter_email: 'Nome de Usuário encontrado. Coloque o email referente a ele.' - prefilled: "E-mail corresponde a este nome de usuário registrado." locale: title: "idioma da interface" instructions: "Idioma da interface de usuário. Irá mudar quando você atualizar a página." diff --git a/config/locales/client.ru.yml b/config/locales/client.ru.yml index 9e0e7601e..37ecf88e7 100644 --- a/config/locales/client.ru.yml +++ b/config/locales/client.ru.yml @@ -269,7 +269,7 @@ ru: location_not_found: (неизвестно) organisation: Организация phone: Телефон - no_other_accounts: (нет) + other_accounts: "Другие учетные записи с этим IP адресом" user: said: "{{username}}:" profile: "Профиль" @@ -360,28 +360,14 @@ ru: instructions: "Картинки фона будут отцентрированы и по-умолчанию имеют ширину 590 пикселей." email: title: "E-mail" - instructions: "Всегда скрыт от публики." - invalid: "Введите корректный адрес электронной почты." - authenticated: "Ваш адрес электронной почты подтвержден через {{provider}}." frequency: "В случае вашего отсутствия на форуме вы будете получать уведомления, но только о новых сообщениях." name: title: "Имя" - instructions: "Ваше полное имя (опционально)." - too_short: "Ваше имя слишком короткое." - ok: "Допустимое имя." username: title: "Псевдоним" - instructions: "Уникальный, без пробелов и покороче." - short_instructions: "Пользователи могут упоминать вас по @{{username}}." - available: "Псевдоним доступен." - global_match: "Адрес электронной почты совпадает с зарегистрированным." global_mismatch: "Уже занято. Попробуйте {{suggestion}}?" not_available: "Недоступно. Попробуйте {{suggestion}}?" - too_short: "Псевдоним слишком короткий." - too_long: "Псевдоним слишком длинный." checking: "Проверяю доступность псевдонима..." - enter_email: 'Псевдоним найден. Введите соответствующий адрес электронной почты.' - prefilled: "Адрес электронной почты совпадает с зарегистрированным псевдонимом." locale: title: "Язык интерфейса" instructions: "Язык сайта. Необходимо перезагрузить страницу, чтобы изменения вступили в силу." @@ -614,6 +600,7 @@ ru: reply: "Ответить" cancel: "Отменить" create_topic: "Новая тема" + create_pm: "Личное сообщение" title: "Или нажмите Ctrl+Enter" users_placeholder: "Добавить пользователя" title_placeholder: "Название: суть обсуждения коротким предложением" @@ -685,7 +672,9 @@ ru: from_my_computer: "From my device" from_the_web: "From the web" remote_tip: "ссылка на изображение" + remote_tip_with_attachments: "ссылка на изображение или файл ({{authorized_extensions}})" local_tip: "кликните для выбора изображения с вашего устройства" + local_tip_with_attachments: "кликните для выбора изображения с вашего устройства ({{authorized_extensions}})" hint: "(вы так же можете перетащить объект в редактор для его загрузки)" hint_for_supported_browsers: "(вы так же можете перетащить или вставить изображения в редактор для загрузки их на сервер)" uploading: "Загрузка" @@ -1232,6 +1221,7 @@ ru: title: "Без уведомлений" description: "Не получать уведомлений о новых темах из этих разделов и не показывать новые темы во вкладке «Непрочитанные»." flagging: + title: 'Спасибо за вашу помощь!' action: 'Пожаловаться' take_action: "Принять меры" notify_action: 'Личное сообщение' @@ -1247,11 +1237,14 @@ ru: off_topic: "Это не по теме" inappropriate: "Это неприемлемо" spam: "Это спам" + custom_placeholder_notify_user: "Будьте точны, конструктивны и всегда доброжелательны." + custom_placeholder_notify_moderators: "Сообщите нам, чем конкретно вы обеспокоены и предоставьте соответствующие ссылки, если это возможно." custom_message: at_least: "введите как минимум {{n}} символов" more: "ещё {{n}} символов..." left: "осталось {{n}} символов" flagging_topic: + title: "Спасибо за вашу помощь!" action: "Пометить тему" notify_action: "Личное сообщение" topic_map: @@ -1577,6 +1570,7 @@ ru: long_title: "Стили и заголовки" css: "CSS" header: "Заголовок" + footer: "нижний колонтитул" override_default: "Не использовать стандартную таблицу стилей" enabled: "Разрешить?" preview: "как будет" @@ -1659,6 +1653,7 @@ ru: sent_test: "отправлено!" delivery_method: "Метод отправки" preview_digest: "Просмотр сводки" + preview_digest_desc: "Предпросмотр содержимого сводки, отсылаемой форумом по электронной почте пользователям." refresh: "Обновить" format: "Формат" html: "html" @@ -1720,6 +1715,7 @@ ru: check_email: "открыть e-mail" delete_topic: "удаление темы" delete_post: "удаление сообщения" + impersonate: "выдать себя за" screened_emails: title: "Почтовые адреса" description: "Когда кто-то создает новую учетную запись, проверяется данный почтовый адрес и регистрация блокируется или производятся другие дополнительные действия." @@ -2071,6 +2067,7 @@ ru: actions: title: 'Действия' star: 'f Отметить тему' + pin_unpin_topic: 'шифт з Закрепить/Открепить тему' share_topic: 'shift s Поделиться темой' share_post: 's Поделиться сообщением' reply_as_new_topic: 't Ответить в новой связанной теме' diff --git a/config/locales/client.sq.yml b/config/locales/client.sq.yml index cc21a5b8b..8208bc4b0 100644 --- a/config/locales/client.sq.yml +++ b/config/locales/client.sq.yml @@ -163,7 +163,7 @@ sq: cancel: "anulo" save: "Ruaj Ndryshimet" saving: "Duke e ruajtur..." - saved: "Ruajtur!" + saved: "U ruajt!" upload: "Ngarko" uploading: "Duke nga ngarkuar..." uploaded: "U ngarkua!" @@ -221,7 +221,7 @@ sq: '12': "Sent Items" '13': "Inbox" categories: - all: "të gjitha kategoritë" + all: "shfaq kategoritë" all_subcategories: "të gjitha" no_subcategory: "asnjë" category: "Kategori" @@ -246,7 +246,6 @@ sq: location_not_found: (i panjohur) organisation: Organizata phone: Telefoni - no_other_accounts: (asnjë) user: said: "{{username}}:" profile: "Profili" @@ -337,29 +336,14 @@ sq: instructions: "Sfondi profilit do të vendoset në qendër dhe do të ketë një gjerësi prej 590px." email: title: "Email" - instructions: "Mos e shfaq në publik." - ok: "Do ju nisim emailin e konfirmimit." - invalid: "Ju lutemi të vendosni një adresë emaili të vlefshme." - authenticated: "Emaili juaj duhet të aprovohet nga {{provider}}." frequency: "We'll only email you if we haven't seen you recently and you haven't already seen the thing we're emailing you about." name: title: "Emri" - instructions: "Emër Mbiemër (fakultativ)." - too_short: "Emri juaj është shumë i shkurtër." - ok: "Emri juaj është i pranueshëm." username: title: "Pseudonimi" - instructions: "Unik, pa hapësira, i shkurtër." - short_instructions: "Personat mund tu citojnë si @{{username}}." - available: "Pseudonimi është i disponueshëm." - global_match: "Email matches the registered username." global_mismatch: "Jeni vallë regjistruar më parë. Provo {{suggestion}}?" not_available: "Nuk është i disponueshëm. Provo {{suggestion}}?" - too_short: "Pseudonimi është shumë i shkurtër." - too_long: "Pseudonimi është shumë i gjatë." checking: "Duke kontrolluar disponibilitetin e pseudonimit...." - enter_email: 'Pseudonimi u gjet. Shkruaj emailin relativ.' - prefilled: "Email matches this registered username." locale: title: "Gjuha e faqes" instructions: "User interface language. It will change when you refresh the page." @@ -594,7 +578,7 @@ sq: edit_reason_placeholder: "why are you editing?" show_edit_reason: "(add edit reason)" reply_placeholder: "Type here. Use Markdown or BBCode to format. Drag or paste an image to upload it." - view_new_post: "View your new post." + view_new_post: "Shikoni postimin tuaj te ri." saving: "Duke ruajtur..." saved: "U Ruajt!" saved_draft: "Post draft in progress. Select to resume." @@ -881,7 +865,7 @@ sq: email_placeholder: 'name@example.com' success: "We mailed out an invitation to {{email}}. We'll notify you when the invitation is redeemed. Check the invitations tab on your user page to keep track of your invites." error: "Sorry, we couldn't invite that person. Perhaps they are already a user?" - login_reply: 'Log In to Reply' + login_reply: 'Përgjigju tek Diskutimi' filters: n_posts: one: "1 postim" @@ -1259,7 +1243,7 @@ sq: title: "Të Fundit" help: "temat me postime të fundit" hot: - title: "Popullore" + title: "Kryesoret" help: "a selection of the hottest topics" starred: title: "Preferuar" @@ -1286,9 +1270,9 @@ sq: other: "{{count}} të ri" lower_title: "i ri" title: - zero: "I Ri" - one: "I Ri (1)" - other: "New ({{count}})" + zero: "Tema të Reja" + one: "Tema të Reja (1)" + other: "Tema të Reja ({{count}})" help: "topics created in the last few days" posted: title: "Postimet e Mia" @@ -1300,7 +1284,7 @@ sq: other: "{{categoryName}} ({{count}})" help: "latest topics in the {{categoryName}} category" top: - title: "Top" + title: "Kryesoret" help: "the most active topics in the last year, month, week or day" yearly: title: "Top Vjetore" @@ -1996,7 +1980,7 @@ sq: next_prev: 'shift j/shift k Next/previous section' application: title: 'Aplikacion' - create: 'c Create a new topic' + create: 'c Filloni një diskutim të ri' notifications: 'n Open notifications' site_map_menu: '= Open site menu' user_profile_menu: 'p Open user menu' diff --git a/config/locales/client.sv.yml b/config/locales/client.sv.yml index 29e189d2c..9c70d9eee 100644 --- a/config/locales/client.sv.yml +++ b/config/locales/client.sv.yml @@ -84,7 +84,7 @@ sv: other: "%{count} dagar sedan" share: topic: 'dela en länk till denna tråd' - post: 'dela en länk till denna tråd' + post: 'dela en länk till inlägg' close: 'stäng' twitter: 'dela denna länk på Twitter' facebook: 'dela denna länk på Facebook' @@ -127,7 +127,7 @@ sv: one: "{{count}} tecken" other: "{{count}} tecken" suggested_topics: - title: "Föreslagna trådar" + title: "Föreslagna ämnen" about: simple_title: "Om" title: "Om %{title}" @@ -138,6 +138,7 @@ sv: all_time: "Alla dagar" last_7_days: "Senaste 7 dagarna" like_count: "Likes" + topic_count: "Ämnen" post_count: "Inlägg" user_count: "Användare" bookmarks: @@ -168,12 +169,13 @@ sv: disable: "Avaktivera" undo: "Ångra" revert: "Återställ" + failed: "Misslyckades" banner: close: "Stäng denna banner" choose_topic: - none_found: "Inga trådar hittades." + none_found: "Inga ämnen hittades." title: - search: "Sök tråd baserat på namn, url eller id:" + search: "Sök efter ett Ämne baserat på namn, url eller id:" placeholder: "skriv trådens titel här" user_action: user_posted_topic: "{{user}} postade titeln" @@ -242,7 +244,7 @@ sv: location_not_found: (okänd) organisation: Organisation phone: Telefon - no_other_accounts: (ingen) + other_accounts: "Andra konton med samma IP-adress" user: profile: "Profil" mute: "Dämpa" @@ -284,7 +286,9 @@ sv: deleted_yourself: "Ditt konto har framgångsrikt tagits bort." delete_yourself_not_allowed: "Du kan inte ta bort ditt konto just nu. Kontakta en admin och be om att få ditt konto borttaget." unread_message_count: "Meddelanden" + admin_delete: "Radera" staff_counters: + flags_given: "Hjälpsamma flaggor" flagged_posts: "flaggade inlägg" deleted_posts: "borttagna inlägg" suspensions: "avstängningar" @@ -325,31 +329,22 @@ sv: change_profile_background: title: "Profilbakgrund" instructions: "Bakgrunderna är centrerade och har en förinställd bredd på 850px" + change_card_background: + title: "Visitkort Bakgrund" + instructions: "Bakgrundsbilder kommer att vara centrerade och ha en standardbredd på 590 px." email: title: "E-post" - instructions: "Visas aldrig publikt" - invalid: "Vad god ange en giltig e-postadress." - authenticated: "Din e-post har autentiserats av {{provider}}." frequency: "Vi kommer bara maila dig om vi inte har sett dig nyligen och du inte redan sett det vi mailar dig om." name: title: "Namn" - too_short: "Ditt namn är för kort." - ok: "Ditt namn ser bra ut." username: title: "Användarnamn" - instructions: "Måste vara unikt, kort och utan mellanslag." - short_instructions: "Personer kan omnämna dig som @{{username}}." - available: "Ditt användarnamn är tillgängligt." - global_match: "E-posten matchar det registrerade användarnamnet." global_mismatch: "Redan registrerat. Prova {{suggestion}}?" not_available: "Inte tillgängligt. Prova {{suggestion}}?" - too_short: "Ditt användarnamn är för kort." - too_long: "Ditt användarnamn är för långt." checking: "Kollar användarnamnets tillgänglighet..." - enter_email: 'Användarnamn hittat. Ange matchande e-post.' - prefilled: "Email matchar det registrerade användarnamnet." locale: title: "gränssnittsspråk" + instructions: "Språket som används av forumsgränssnittet. Det kommer att ändras när du laddar om sidan." default: "(förvalt värde)" password_confirmation: title: "Lösenord Igen" @@ -368,6 +363,7 @@ sv: bi_weekly: "varannan vecka" email_direct: "Ta emot ett mail när någon citerar dig, svarar på dina inlägg, eller nämner ditt @användarnamn" email_private_messages: "Ta emot ett mail när någon skickar dig ett privat meddelande" + email_always: "Ta emot notifieringar via mail även om jag är aktiv på forumet" other_settings: "Övrigt" categories_settings: "Kategorier" new_topic_duration: @@ -461,6 +457,7 @@ sv: read_only_mode: enabled: "En administratör har aktiverat läsläge. Du kan fortsätta kolla runt på sidan men kanske inte interagera med den." login_disabled: "Det går inte att logga in medan siten är i skrivskyddat läge." + too_few_topics_notice: "Skapa åtminstone 5 publika ämnen och %{posts} publika inlägg för att få igång diskussionen. Nya användare kommer inte kunna nå nya förtroendenivåer om det inte finns innehåll för dem att läsa. Detta meddelande syns enbart för funktionärer." learn_more: "lär dig mer..." year: 'år' year_desc: 'diskussioner skapade de senaste 365 dagarna' @@ -495,6 +492,7 @@ sv: created: 'Skapad' created_lowercase: 'skapad' trust_level: 'Förtroendenivå' + search_hint: 'användarnamn, email eller IP-adress' create_account: title: "Registrera nytt konto" failed: "Något gick fel, kanske är denna e-post redan registrerad, försök glömt lösenordslänken" @@ -505,6 +503,10 @@ sv: reset: "Återställ Lösenord" complete_username: "Om ett konto matchar användarnamnet %{username} bör du inom kort få ett e-postmeddelande med instruktioner för hur du återställer ditt lösenord." complete_email: "Om ett konto matchar %{email} bör du inom kort få ett e-postmeddelande med instruktioner för hur du återställer ditt lösenord." + complete_username_found: "Vi hittade ett konto som matchade användarnamnet %{username} , du kommer snart att få ett email med instruktioner om hur du ska återställa dit lösenord." + complete_email_found: "Vi hittade ett konto som matchade %{email} , du kommer snart att få ett email med instruktioner om hur du ska återställa dit lösenord." + complete_username_not_found: "Det finns inget konto som matchar användarnamnet %{username}" + complete_email_not_found: "Det finns inget konto som matchar %{email}" login: title: "Logga in" username: "Användare" @@ -565,6 +567,8 @@ sv: reply_here: "Svara Här" reply: "Svara" cancel: "Avbryt" + create_topic: "Nytt ämne" + create_pm: "Privat Meddelande" title: "eller tryck Ctrl+Enter" users_placeholder: "Lägg till en användare" title_placeholder: "Vad handlar denna diskussion om i en kort mening?" @@ -574,6 +578,7 @@ sv: view_new_post: "Visa ditt nya inlägg." saving: "Sparar..." saved: "Sparat!" + saved_draft: "Utkast för inlägg. Välj för att fortsätta." uploading: "Laddar upp..." show_preview: 'visa förhandsgranskning »' hide_preview: '« dölj förhandsgranskning' @@ -589,6 +594,7 @@ sv: quote_title: "Citat" quote_text: "Citat" code_title: "Förformaterad text" + code_text: "indentera förformatterad text med 4 mellanslag" upload_title: "Bild" upload_description: "skriv en bildbeskrivning här" olist_title: "Numrerad Lista" @@ -605,6 +611,12 @@ sv: auto_close: label: "Stäng automatiskt tråden efter:" error: "Vänligen ange ett giltigt värde." + based_on_last_post: "Stäng inte förrän det sista inlägget i tråden är åtminstone så här gammalt." + all: + examples: 'Ange antalet timmar (24), klockslag (17:30) eller tidstämpel (2013-11-22 14:00).' + limited: + units: "(# antal timmar)" + examples: 'Ange antal timmar (24).' notifications: title: "notifikationer med omnämnanden av @namn, svar på dina inlägg och trådar, privata meddelanden, etc" none: "Du har inte notifikationer just nu." @@ -627,7 +639,10 @@ sv: title_with_attachments: "Lägg till en bild eller en fil" from_my_computer: "Från min enhet" from_the_web: "Från webben" + remote_tip: "länk till bild" + remote_tip_with_attachments: "länk till bild eller fil ({{authorized_extensions}})" local_tip: "klicka för att välja en bild från din enhet." + local_tip_with_attachments: "klicka för att välja en bild eller fil från din enhet ({{authorized_extensions}})" hint: "(du kan också dra & släppa in i redigeraren för att ladda upp dem)" hint_for_supported_browsers: "(du kan också dra och släppa eller klistra in bilder i redigeraren för att ladda upp dem)" uploading: "Laddar upp bild" @@ -636,6 +651,7 @@ sv: title: "sök efter trådar, inlägg, användare, eller kategorier" no_results: "Inga resultat hittades." searching: "Söker ..." + post_format: "#{{post_number}} av {{username}}" context: user: "Sök inlägg av @{{username}}" category: "Sök i kategorin \"{{category}}\"" @@ -645,7 +661,7 @@ sv: not_logged_in_user: 'användarsida med sammanställning av aktuell aktivitet och inställningar' current_user: 'gå till din användarsida' starred: - title: 'stjärna' + title: 'Stjärnmarkera' help: star: 'stjärnmarkera denna tråd' unstar: 'ta bort stjärnmarkering från denna tråd' @@ -677,6 +693,10 @@ sv: hot: "Det finns inga heta trådar." category: "Det finns inga {{category}}-trådar." top: "Det finns inga topptrådar." + educate: + new: '

Dina nya trådar hamnar här.

Som standard är trådar sedda som nya och kommer att visa en ny indikator om de skapats de senaste 2 dagarna.

Du kan ändra detta i dina inställningar.

' + unread: '

Dina olästa trådar hamnar här

Som standard är trådar sedda som olästa och kommer att visa antal olästa 1 om du:

Eller om du explicit har satt tråden till Följd eller Sedd via notifieringspanelen längst ned i varje tråd.

Du kan ändra detta i dina inställningar.

' + starred: '

Dina stjärnmarkerade trådar hamnar här.

För att stjärnmarkera eller avstjärnmarkera en tråd, använd:

' bottom: latest: "Det finns inga fler senaste trådar att läsa." hot: "Det finns inga fler heta trådar att läsa." @@ -689,6 +709,7 @@ sv: top: "Det finns inga fler topptrådar." topic: filter_to: "{{post_count}} inlägg i tråd" + create: 'Ny tråd' create_long: 'Skapa en nytt Tråd' private_message: 'Starta en privat konversation' list: 'Trådar' @@ -762,21 +783,29 @@ sv: '2_4': 'Du kommer ta emot notifikationer för att du postade ett svar till denna tråd.' '2_2': 'Du kommer ta emot notifikationer för att du följer denna tråd.' '2': 'Du kommer ta emot notifikationer för att du läser denna tråd.' + '1_2': 'Du kommer att få en notifiering om någon nämner ditt @namn eller svarar på ditt inlägg.' + '1': 'Du kommer att få en notifiering om någon nämner ditt @namn eller svarar på ditt inlägg.' '0_7': 'Du ignorerar alla notifikationer i den här kategorin.' '0_2': 'Du ignorerar alla notifikationer för denna tråd.' '0': 'Du ignorerar alla notifikationer för denna tråd.' watching_pm: title: "följda" + description: "Du kommer att bli notifierad om varje nytt inlägg i det här privata meddelandet. En räknare över antalet olästa och nya inlägg kommer också att dyka upp brevid ämnesraden." watching: title: "Kollar" + description: "Du kommer att notifieras om varje nytt inlägg i det här ämnet. En räknare över olästa och nya inlägg kommer också att visas brevid ämnet." tracking_pm: title: "bevakade" + description: "En räknare över olästa och nya poster kommer att visas brevid privata meddelanden. Du kommer att notifieras om någon nämner ditt @namn eller svarar på ditt inlägg." tracking: title: "Följer" + description: "En räknare över olästa och nya inlägg kommer att visas brevid ämnet. Du kommer att notifieras om någon nämner ditt @namn eller svarar på ditt inlägg." regular: title: "Vanlig" + description: "Du kommer att notifieras om någon nämner ditt @namn eller svarar på ditt inlägg." regular_pm: title: "Vanlig(t)" + description: "Du kommer att notifieras om någon nämner ditt @namn eller svarar på ditt inlägg i det privata meddelandet." muted_pm: title: "tystade" description: "Du kommer aldrig att få notifieringar om något angående detta privatmeddelande." @@ -796,6 +825,8 @@ sv: pin_globally: "Nåla diskussionen globalt" unarchive: "Dearkivera Tråd" archive: "Arkivera Tråd" + invisible: "Markera Olistad" + visible: "Markera Listad" reset_read: "Återställ Läsdata" multi_select: "Markera inlägg" reply: @@ -808,7 +839,7 @@ sv: title: 'Dela' help: 'dela en länk till denna tråd' flag_topic: - title: 'flagga' + title: 'Flagga' help: 'flagga privat denna tråd för uppmärksamhet eller skicka en privat notifiering om den' success_message: 'Du flaggade framgångsrikt denna tråd.' inviting: "Bjuder in..." @@ -836,6 +867,7 @@ sv: n_posts: one: "1 inlägg" other: "{{count}} inlägg" + cancel: "Ta bort filter" split_topic: title: "Flytta till nyn tråd" action: "flytta till ny tråd" @@ -903,14 +935,19 @@ sv: edit: "Tyvärr, det uppstod ett fel under ändringen av ditt inlägg. Var god försök igen." upload: "Tyvärr, det uppstod ett fel under uppladdandet av den filen. Vad god försök igen." attachment_too_large: "Tyvärr, filen du försöker ladda upp är för stor (maximal storlek är {{max_size_kb}} kb)." + file_too_large: "Tyvärr, filen du försöker ladda upp är för stor (maximal filstorlek är {{max_size_kb}}kb)" too_many_uploads: "Tyvärr, du kan bara ladda upp en bild i taget." upload_not_authorized: "Tyvärr, filen du försökte ladda upp är inte tillåten (tillåtna filtyper: {{authorized_extensions}})." image_upload_not_allowed_for_new_user: "Tyvärr, nya användare kan inte ladda upp bilder." attachment_upload_not_allowed_for_new_user: "Tyvärr, nya användare kan inte bifoga filer." + attachment_download_requires_login: "Tyvärr, du måste vara inloggad för att kunna ladda ned bifogade filer." abandon: confirm: "Är du säker på att du vill avbryta ditt inlägg?" no_value: "nej, behåll" yes_value: "Ja, överge" + via_email: "det här inlägget har gjorts via epost" + wiki: + about: "det här inlägget är en wiki; vanliga användare kan redigera det" archetypes: save: 'Spara Inställningar' controls: @@ -934,6 +971,7 @@ sv: wiki: "Skapa wiki" unwiki: "Ta bort wiki" convert_to_moderator: "Lägg till " + revert_to_regular: "Ta bort Funktionär färg" rebake: "Generera HTML" unhide: "Visa" actions: @@ -954,6 +992,9 @@ sv: like: "Ångra gillning" vote: "Ångra röstning" people: + off_topic: "{{icons}} flaggade det här som off-topic" + spam: "{{icons}} flaggade det här som spam" + inappropriate: "{{icons}} flaggade det här som olämpligt" notify_moderators: "{{icons}} notifierade moderatorer" notify_moderators_with_url: "{{icons}} notifierade moderatorer" notify_user: "{{icons}} skicka ett privat meddelande" @@ -1046,6 +1087,7 @@ sv: button: ' HTML' side_by_side_markdown: title: "Visa " + button: ' Rå' details: edited_by: "Ändrad av" category: @@ -1058,12 +1100,15 @@ sv: general: 'Allmänt' settings: 'Inställningar' delete: 'Radera Kategori' + create: 'Ny Kategori' save: 'Spara kategori' creation_error: Det uppstod ett fel när kategorin skulle skapas. save_error: Ett fel inträffade då kategorin skulle sparas. name: "Kategorinamn" description: "Beskrivning" topic: "Kategoritråd" + logo: "Kategori Logotypbild" + background_image: "Kategori Bakgrundsbild" badge_colors: "Emblemsfärg" background_color: "Bakgrundsfärg" foreground_color: "Förgrundsfärg" @@ -1072,56 +1117,118 @@ sv: delete_confirm: "Är du säker på att du vill radera den kategorin?" delete_error: "Ett fel inträffade vid borttagning av kategorin." list: "Lista Kategorier" + no_description: "Lägg till en beskrivning för den här kategorin." change_in_category_topic: "besök kategorins tråd för att ändra beskrivning" already_used: 'Den här färgen används redan av en annan kategori' security: "Säkerhet" images: "Bilder" auto_close_label: "Stäng automatiskt tråden efter:" auto_close_units: "timmar" + email_in: "Egenvald inkommande e-postadress:" + email_in_allow_strangers: "Acceptera e-post från anonyma användare utan konton" + email_in_disabled: "Att skapa nya ämnen via e-post är avaktiverat i Inställningarna. För att aktivera ämnen skapade via e-post," + email_in_disabled_click: 'aktivera "inkommande e-post" inställningen.' + allow_badges_label: "Tillåt utmärkelser i den här kategorin" edit_permissions: "Redigera behörigheter" add_permission: "Lägg till behörighet" this_year: "i år" position: "position" default_position: "Standardposition" + position_disabled: "Katergorier kommer att sorteras efter deras aktivitet. För att ställa in sorteringen av kategorier i den här listan," + position_disabled_click: 'aktivera "fast kategori positioner" inställningen.' parent: "Förälderkategori" notifications: + watching: + title: "Bevakar" + description: "Du kommer automatiskt att bevaka alla nya ämnen i de här kategorierna. Du kommer att få notifieringar om alla nya inlägg och ämnen, och en räknare över olästa och nya inlägg kommer att visas brevid ämnen." tracking: title: "Följer" + description: "Du kommer automatiskt följa alla nya ämnen i de här kategorierna. En räknare över olästa och nya inlägg kommer att visas brevid ämnen." + regular: + title: "Vanlig" + description: "Du kommer att notifieras om någon nämner ditt @namn eller svarar på ditt inlägg." muted: title: "Tystad" + description: "Du kommer inte att notifieras om något som rör nya ämnen i de här kategorierna, och de kommer inte att dyka upp i din olästa tabb." flagging: + title: 'Tack för att du hjälper till att hålla vår gemenskap civiliserad!' + private_reminder: 'flaggor är privata, endast synliga för funktionärer' action: 'Flagga Inlägg' take_action: "Åtgärda" notify_action: 'Privat meddelande' delete_spammer: "Radera spammare" delete_confirm: "Du håller på att radera %{posts} inlägg och %{topics} trådar från den här användaren, radera hans/hennes konto, blockera IP-adressen %{ip_address}, och lägga till email-adressen %{email} till en permanent blockeringslista. Är du säker på att den här användaren verkligen är en spammare?" yes_delete_spammer: "Ja, radera spammare" + ip_address_missing: "(N/A)" + hidden_email_address: "(gömd)" + submit_tooltip: "Använd den privata flaggan" + take_action_tooltip: "Nå flaggränsen omedelbart, snarare än att vänta på mer flaggor från användarna" cant: "Tyvärr, du kan inte flagga detta inlägg just nu." + formatted_name: + off_topic: "Det är Off-topic" + inappropriate: "Det är Olämpligt" + spam: "Det är Spam" + custom_placeholder_notify_user: "Var specifik, var konstruktiv och var alltid trevlig." + custom_placeholder_notify_moderators: "Låt oss veta i detalj vad du är bekymrad över, och skicka med relevanta länkar och exempel om möjligt." custom_message: at_least: "skriv åtminstone {{n}} tecken" more: "{{n}} fler..." left: "{{n}} kvar" flagging_topic: + title: "Tack för att du hjälper oss hålla gemenskapen civiliserad!" action: "Flagga tråd" notify_action: "Privatmeddelande" topic_map: title: "Sammanfattning av tråd" links_shown: "visa alla {{totalLinks}} länkar..." + topic_statuses: + warning: + help: "Det här är en officiell varning." + locked: + help: "Det här ämnet är stängt; det går inte längre att svara på inlägg" + unpinned: + title: "Avklistrat" + help: "Det här ämnet är avklistrat, det kommer att visas i standard ordningen" + pinned_globally: + title: "Klistrat Globalt" + help: "Det här ämnet är klistrat globalt; det kommer att visas högst upp i alla listor" + pinned: + title: "Klistrat" + help: "Det här ämnet är klistrat; det kommer att visas högst upp i sin kategori" + archived: + help: "Det här ämnet är arkiverat; det är fryst och kan inte ändras" + invisible: + help: "Det här ämnet är olistat; det kommer inte visas i ämneslistorna och kan bara nås via en direktlänk" posts: "Inlägg" + posts_lowercase: "inlägg" posts_long: "{{number}} inlägg i den här tråden" + posts_likes_MF: | + Det här ämnet har {count, plural, en {1 post} annan {# posts}} {ratio, välj, + låg {med en hög gilla mot inlägg ratio} + medel {med en väldigt hög gilla mot inlägg ratio} + hög {med en extremt hög gilla mot inlägg ratio} + annan {}} original_post: "Originalinlägg" views: "Visningar" + views_lowercase: "visningar" replies: "Svar" views_long: "denna tråd har visats {{number}} gånger" activity: "Aktivitet" likes: "Gillningar" + likes_lowercase: "gillningar" likes_long: "det finns {{number}} gillningar i den här tråden" users: "Användare" + users_lowercase: "användare" category_title: "Kategori" history: "Historik" changed_by: "av {{author}}" + raw_email: + title: "Rå Epost" + not_available: "Ej tillgänglig!" categories_list: "Kategorilista" filters: + with_topics: "%{filter} ämnen" + with_category: "%{filter} %{category} ämnen" latest: title: "Senaste" help: "Trådar med nya inlägg" @@ -1156,6 +1263,7 @@ sv: zero: "Nya" one: "Nya (1)" other: "Nya ({{count}})" + help: "ämnen skapade de senaste dagarna" posted: title: "Mina Inlägg" help: "trådar som du har postat i" @@ -1167,6 +1275,7 @@ sv: help: "senaste trådarna i {{categoryName}}-kategorin" top: title: "Topp" + help: "de mest aktiva ämnena det senaste året, månaden, veckan och dagen" yearly: title: "Topp i år" monthly: @@ -1180,6 +1289,7 @@ sv: this_week: "Den här veckan" today: "Idag" other_periods: "se fler topptrådar" + browser_update: 'Tyvärr, din webbläsare är för gammal för att fungera på den här sidan. Vänligenuppgradera din webbläsare.' permission_types: full: "Skapa / svara / se" create_post: "Svara / se" @@ -1294,6 +1404,7 @@ sv: backup: text: "säkerhetskopia" title: "skapa en säkerhetskopia" + without_uploads: "Ja (inkluder inte filer)" download: text: "ladda ned" title: "ladda ned säkerhetskopian" @@ -1310,18 +1421,59 @@ sv: text: "rollback" title: "Gör rollback på databasen till ett tidigare fungerande tillstånd." confirm: "Är du säker på att du vill göra rollback på databasen till det tidigare fungerande tillståndet?" + export_csv: + users: + text: "Exportera användare" + title: "Exportera användare i en CSV fil." + success: "Exporteringen har påbörjats, du kommer snart att få en notifiering över hur det går." + failed: "Exporteringen misslyckades. Kontrollera loggarna." customize: title: "Anpassa" long_title: "Sidanpassningar" + css: "CSS" header: "Sidhuvud" + footer: "Footer" override_default: "Skriv över standard?" enabled: "Aktiverad?" preview: "förhandsgranska" + undo_preview: "ta bort förhandsgranskning" + rescue_preview: "standard stil" save: "Spara" new: "Ny" new_style: "Ny Stil" delete: "Radera" delete_confirm: "Radera denna anpassning?" + color: "Färg" + opacity: "Opacitet" + copy: "Kopiera" + css_html: + title: "CSS/HTML" + long_title: "CSS och HTML anpassningar" + colors: + title: "Färger" + long_title: "Färgscheman" + about: "Modifiera färgerna som används utan att skriva CSS. Lägg till ett schema för att börja." + new_name: "Nytt färgschema" + copy_name_prefix: "Kopia av" + delete_confirm: "Ta bort det här färgschemat?" + undo: "ångra" + undo_title: "Återställ ändringarna för den här färgen till den senast sparade versionen." + revert: "återställ" + revert_title: "Återställ den här färgen till Discourse standard färgschema." + primary: + name: 'primär' + secondary: + name: 'sekundär' + description: 'Den huvudsakliga bakgrundsfärgen, och textfärgen på vissa knappar.' + quaternary: + description: "Navigationslänkar." + danger: + name: 'fara' + love: + description: "Gillaknappens färg." + wiki: + name: 'wiki' + description: "Huvudfärg som används som bakgrund till wikiinlägg." email: title: "E-postloggar" settings: "Inställningar" @@ -1335,6 +1487,7 @@ sv: email_type: "E-posttyp" to_address: "Till adress" test_email_address: "e-postadress att testa" + send_test: "Skicka Test Mail" sent_test: "skickat!" delivery_method: "Leveransmetod" preview_digest: "Sammandrag" @@ -1350,6 +1503,8 @@ sv: filters: title: "filter" user_placeholder: "användarnamn" + address_placeholder: "namn@exempel.se" + reply_key_placeholder: "svara knapp" skipped_reason_placeholder: "anledning" logs: title: "Loggar" @@ -1358,6 +1513,8 @@ sv: last_match_at: "Senast matchad" match_count: "Träffar" ip_address: "IP" + topic_id: "Tråd ID" + post_id: "Inlägg ID" delete: 'Radera' edit: 'Redigera' save: 'Spara' @@ -1391,6 +1548,9 @@ sv: unsuspend_user: "Ej avstängd användare" grant_badge: "ge utmärkelse" revoke_badge: "upphäv utmärkelse" + check_email: "kolla epost" + delete_topic: "ta bort tråd" + delete_post: "ta bort inlägg" screened_emails: title: "Kontrollerade email" description: "När någon försöker skapa ett nytt konto, kommer följande emailadresser att kontrolleras och registrationen blockeras, eller någon annan åtgärd vidtas." @@ -1422,6 +1582,7 @@ sv: last_emailed: "Senast Mailad" not_found: "Tyvärr den användaren existerar inte i vårt system." active: "Aktiv" + show_emails: "Visa Epost" nav: new: "Ny" active: "Aktiv" @@ -1453,6 +1614,10 @@ sv: reject_failures: one: "Avvisning av användaren misslyckades." other: "Avvisning av %{count} användare misslyckades." + not_verified: "Ej verifierad" + check_email: + title: "Visa den här användarens epostadress" + text: "Visa" user: suspend_failed: "Någonting gick fel under avstängningen av denna användare {{error}}" unsuspend_failed: "Någonting gick fel under upplåsningen av denna användare {{error}}" @@ -1473,8 +1638,12 @@ sv: edit_title: "Redigera titel" save_title: "Spara titel" refresh_browsers: "Tvinga webbläsaruppdatering" + refresh_browsers_message: "Meddelande skickat till alla klienter!" show_public_profile: "Visa Publik Profil" impersonate: 'Imitera' + ip_lookup: "Kolla upp IP-adress" + log_out: "Logga ut" + logged_out: "Användaren loggades ut från alla enheter." revoke_admin: 'Återkalla Administratör' grant_admin: 'Bevilja Administratör' revoke_moderation: 'Återkalla Moderering' @@ -1484,12 +1653,15 @@ sv: reputation: Rykte permissions: Rättigheter activity: Aktivitet + like_count: Gillningar Gedda / Mottagna + last_100_days: 'de senaste 100 dagarna' private_topics_count: Antal Privata Trådar posts_read_count: Inlägg Lästa post_count: Inlägg Skapade topics_entered: Besökta trådar flags_given_count: Givna Flaggnignar flags_received_count: Mottagna Flaggningar + warnings_received_count: Varningar Mottagningar approve: 'Godkänn' approved_by: "godkänd av" approve_success: "Användaren är godkänd och ett email kommer att skickas med aktiveringsinstruktioner." @@ -1535,6 +1707,24 @@ sv: days: "dagar" topics_replied_to: "Trådar svarade på" flagged_posts: "flaggade inlägg" + sso: + external_id: "Externt ID" + external_username: "Användarnamn" + external_name: "Namn" + external_email: "Epost" + user_fields: + title: "Användarfält" + create: "Skapa ett användarfält" + untitled: "Namnlös" + save: "Spara" + edit: "Redigera" + delete: "Ta bort" + cancel: "Avbryt" + delete_confirm: "Är du säker på att fu vill ta bort det här användarfältet?" + required: + title: "Krävs vid registrering?" + enabled: "krävs" + disabled: "krävs ej" site_settings: show_overriden: 'Visa bara överskrivna' title: 'Webbplatsinställningar' @@ -1560,6 +1750,7 @@ sv: title: Utmärkelser new_badge: Ny utmärkelse new: Ny + name: Namn badge: Utmärkelse description: beskrivning badge_type: Utmärkelsetyp @@ -1583,6 +1774,8 @@ sv: multiple_grant: Kan utfärdas flera gånger listable: Visa utmärkelse på den offentliga utmärkelsesidan enabled: Aktivera utmärkelse + icon: Ikon + image: Bild lightbox: download: "ladda ned" keyboard_shortcuts_help: @@ -1661,3 +1854,12 @@ sv: reader: name: Läsare description: Läs varje inlägg i en diskussion med över 100 inlägg + google_search: | +

Sök med Google

+

+

+

diff --git a/config/locales/client.uk.yml b/config/locales/client.uk.yml index 63b0af96f..0bc0f0349 100644 --- a/config/locales/client.uk.yml +++ b/config/locales/client.uk.yml @@ -243,25 +243,14 @@ uk: title: "Фон Профіля" email: title: "Електронна пошта" - invalid: "Будь ласка, введіть правильну адресу електронної пошти." - authenticated: "Вашу скриньку було автентифіковано {{provider}}." frequency: "Ми будемо надсилати Вам листи тільки якщо ми Вас останнім часом не бачили і Ви ще не бачили те, про що ми Вам пишемо." name: title: "Ім'я" - too_short: "Ваше ім'я надто коротке." - ok: "Ваше ім'я виглядає добре." username: title: "Ім'я користувача" - short_instructions: "Інші можуть посилатися на Вас як на @{{username}}." - available: "Ім'я користувача доступне." - global_match: "Електронна пошта відповідає зареєстрованому імені користувача." global_mismatch: "Вже зареєстровано. Спробуєте {{suggestion}}?" not_available: "Не доступно. Спробуєте {{suggestion}}?" - too_short: "Ім'я користувача надто коротке." - too_long: "Ім'я користувача надто довге." checking: "Перевірка доступності імені користувача..." - enter_email: 'Ім''я користувача знайдено. Введіть відповідну електронну скриньку.' - prefilled: "Електронна скринька відповідає цьому зареєстрованому імені користувача." locale: title: "Interface language" default: "(default)" diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml index 396c29b18..6b79753b8 100644 --- a/config/locales/client.zh_CN.yml +++ b/config/locales/client.zh_CN.yml @@ -223,7 +223,7 @@ zh_CN: location_not_found: (未知) organisation: 组织 phone: 电话 - no_other_accounts: (无) + other_accounts: "其他使用该 IP 地址的账户:" user: said: "{{username}}:" profile: "个人资料" @@ -314,29 +314,14 @@ zh_CN: instructions: "背景图片将被居中并且默认宽度为 590px。" email: title: "电子邮箱" - instructions: "绝不会被公开显示。" - ok: "我们将邮件跟您确认。" - invalid: "请填写正确的电子邮箱地址。" - authenticated: "您的电子邮箱已经被 {{provider}} 确认有效。" frequency: "只有当您最近一段时间没有访问时,我们才会把您未读过的内容发送到您的电子邮箱。" name: title: "名字" - instructions: "您的全名(可选)。" - too_short: "您设置的名字太短了。" - ok: "您的名字符合要求。" username: title: "用户名" - instructions: "唯一,没有空格,简短。" - short_instructions: "其他人可以用 @{{username}} 来提及您。" - available: "您的用户名可用。" - global_match: "电子邮箱与注册用户名相匹配。" global_mismatch: "已被注册。试试 {{suggestion}} ?" not_available: "不可用。试试 {{suggestion}} ?" - too_short: "您设置的用户名太短了。" - too_long: "您设置的用户名太长了。" checking: "查看用户名是否可用..." - enter_email: '找到用户名,请输入对应电子邮箱。' - prefilled: "电子邮箱与用户名匹配。" locale: title: "界面语言" instructions: "用户界面语言。将在您刷新页面后改变。" @@ -561,6 +546,7 @@ zh_CN: reply: "回复" cancel: "取消" create_topic: "新主题" + create_pm: "私信" title: "或者按下 Ctrl + 回车" users_placeholder: "添加一个用户" title_placeholder: "简述此讨论内容是关于什么?" @@ -727,7 +713,7 @@ zh_CN: unread_posts: other: "在这个主题中,您有 {{count}} 条未读的帖子" new_posts: - other: "从你最近一次阅读此主题后,又有 {{new_posts}} 个新帖子发表" + other: "自您上一次阅读此主题后,又有 {{count}} 个新帖子发表" likes: other: "本主题已有 {{number}} 次赞" back_to_list: "返回主题列表" diff --git a/config/locales/client.zh_TW.yml b/config/locales/client.zh_TW.yml index 82f958f9c..f43a899a3 100644 --- a/config/locales/client.zh_TW.yml +++ b/config/locales/client.zh_TW.yml @@ -223,7 +223,6 @@ zh_TW: location_not_found: (unknown) organisation: 組織 phone: 電話 - no_other_accounts: (none) user: said: "{{username}}:" profile: "基本資料" @@ -313,28 +312,14 @@ zh_TW: instructions: "背景會被置中,且默認寬度為850px。" email: title: "電子郵件" - instructions: "我們不會公開您的電子郵件信箱。" - invalid: "請輸入有效的電子郵件地址。" - authenticated: "你的電子郵件地址已得到 {{provider}} 的認証。" frequency: "我們只會在一段時間未看到你及你尚未看過我們通知你的事物時才會寄信給你。" name: title: "名稱" - instructions: "您的全名(選填)。" - too_short: "你的名稱太短。" - ok: "你的名稱符合要求。" username: title: "用戶名稱" - instructions: "獨一無二,沒有空白,夠短。" - short_instructions: "其他人可以輸入 @{{username}} 提到你。" - available: "你的用戶名稱可以使用。" - global_match: "電子郵件地址與註冊的用戶名稱相符。" global_mismatch: "已經註冊過了,請試試看 {{suggestion}}?" not_available: "無法使用,請試試看 {{suggestion}}?" - too_short: "你的用戶名稱太短。" - too_long: "你的用戶名稱太長。" checking: "正在檢查用戶名稱是否已經有人使用..." - enter_email: '找到用戶名稱,請輸入相符的電子郵件地址。' - prefilled: "電子郵件地址與此註冊的用戶名稱相符。" locale: title: "界面語言" instructions: "使用者介面的語言,當頁面重新整理的時候會更換成你的設定。" diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index ad5d9e122..09e542ca8 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -941,7 +941,7 @@ en: staff_like_weight: "How much extra weighting factor to give staff likes." levenshtein_distance_spammer_emails: "When matching spammer emails, number of characters difference that will still allow a fuzzy match." - max_new_accounts_per_registration_ip: "If there are already (n) trust level 0 accounts from this IP (and none at TL2 or higher), stop accepting new signups from that IP." + max_new_accounts_per_registration_ip: "If there are already (n) trust level 0 accounts from this IP (and none is a staff member or at TL2 or higher), stop accepting new signups from that IP." reply_by_email_enabled: "Enable replying to topics via email." reply_by_email_address: "Template for reply by email incoming email address, for example: %{reply_key}@reply.example.com or replies+%{reply_key}@example.com" diff --git a/config/locales/server.es.yml b/config/locales/server.es.yml index ac36ce390..fea96f7a7 100644 --- a/config/locales/server.es.yml +++ b/config/locales/server.es.yml @@ -752,6 +752,7 @@ es: purge_inactive_users_grace_period_days: "Periodo de gracia (en días) durante los cuales un usuario que no haya activado su cuenta no será aún eliminado." enable_s3_uploads: "Coloca los archivos subidos en el almacén Amazon S3. IMPORTANTE: requiere de credenciales de S3 validas. (ambas clave de acceso y clave de acceso secreta)." s3_use_iam_profile: 'Usar el rol de AWS EC2 IAM para descargar las llaves. NOTA: habilitando esta opción ignorará la "llave de acceso s3" y "la llave de acceso secreta s3".' + s3_upload_bucket: "El nombre del bucket Amazon S3 donde se subirán los archivos. AVISO: debe ser en minúsculas, sin puntos ni guiones bajos." s3_access_key_id: "La clave id de acceso de Amazon S3 que se utilizará para subir imágenes." s3_secret_access_key: "La clave secreta de acceso de Amazon S3 que se utilizará para subir imágenes." s3_region: "El nombre de región de Amazon S3 que se utilizará para subir imágenes." @@ -848,6 +849,7 @@ es: logout_redirect: "Ubicación a redirigir después que el usuario cierre sesión Ejem: (http://somesite.com/logout)" allow_uploaded_avatars: "Permitir a los usuarios subir su propio avatar personalizado." allow_animated_avatars: "Permitir a los usuarios usar avatares con imágenes animadas tipo gif. AVISO: ejecuta el rake task avatars:refresh después de cambiar esta opción." + allow_animated_thumbnails: "Generar miniaturas en movimiento de los gifs animados." 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." @@ -937,6 +939,18 @@ es: archived_disabled: "Este tema se ha desarchivado. Se desparaliza y ahora puede ser cambiado." closed_enabled: "Este tema está ahora cerrado. No se admiten nuevas respuestas." closed_disabled: "Este tema ahora está abierto. Se admiten nuevas respuestas." + autoclosed_enabled_days: + one: "Este tema se cerró automáticamente después de 1 día. No se permiten nuevas respuestas." + other: "Este tema se cerró automáticamente después de %{count} días. No se permiten nuevas respuestas." + autoclosed_enabled_hours: + one: "Este tema se cerró automáticamente después de 1 hora. No se permiten nuevas respuestas." + other: "Este tema se cerró automáticamente después de %{count} horas. No se permiten nuevas respuestas." + autoclosed_enabled_minutes: + one: "Este tema se cerró automáticamente después de 1 minuto. No se permiten nuevas respuestas." + other: "Este tema se cerró automáticamente después de %{count} minutos. No se permiten nuevas respuestas." + autoclosed_enabled_lastpost_days: + one: "Este tema se cerró automáticamente 1 día después del último post. No se permiten nuevas respuestas." + other: "Este tema se cerró automáticamente %{count} días después del último post. No se permiten nuevas respuestas." autoclosed_disabled: "El tema ahora está en abierto, se permiten respuestas." autoclosed_disabled_lastpost: "Este tema está ahora abierto. Se permiten nuevas respuestas." pinned_enabled: "Este tema ahora está destacado. Aparecerá en primer lugar en la lista de su categoría hasta que se deshaga el destacado de forma general por los moderadores o de forma particular por cada usuario para sí." @@ -1090,6 +1104,7 @@ es: other: "Estos reportes fueron enviados desde hace %{count} horas." please_review: "Por favor, revísalos." post_number: "post" + how_to_disable: 'Puedes desactivar o cambiar la frecuencia de este email de recordatorio mediante la opción "notify about flags after".' subject_template: one: "1 reporte esperando ser atendidos." other: "%{count} reportes esperando ser atendidos." @@ -1353,10 +1368,12 @@ es: --- %{respond_instructions} digest: + why: "Un breve resumen de %{site_link} desde tu última visita el %{last_seen_at}" subject_template: "[%{site_name}] Resumen del %{date}" new_activity: "Actividad nueva en tus temas y posts:" top_topics: "Posts populares" other_new_topics: "Temas populares" + unsubscribe: "Este resumen es enviado desde %{site_link} cuando pasa un tiempo desde tu última visita. Para cancelar tu suscripción %{unsubscribe_link}." click_here: "clic aquí" from: "resumen de %{site_name}" read_more: "Leer más" @@ -1571,3 +1588,25 @@ es: title: "Términos de Servicio" privacy_topic: title: "Políticas de Privacidad" + static: + search_help: | +

Consejos

+

+

+

+

Opciones

+

+ + + + + +
order:viewsorder:latest
status:openstatus:closedstatus:archivedstatus:norepliesstatus:singleuser
category:foouser:foo
in:likesin:postedin:watchingin:tracking
+

+

+ arcoiris category:parques status:open order:latest buscará temas que contengan la palabra "arcoiris" en la categoría "parques" que no estén cerrados o archivados, ordenados por la fecha de la última publicación. +

diff --git a/config/locales/server.fi.yml b/config/locales/server.fi.yml index f3e8fb0a0..d60354327 100644 --- a/config/locales/server.fi.yml +++ b/config/locales/server.fi.yml @@ -933,9 +933,6 @@ fi: autoclosed_enabled_lastpost_days: one: "Tämä ketju suljettiin automaattisesti 1 päivän kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." other: "Tämä ketju suljettiin automaattisesti %{count} päivän kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." - autoclosed_enabled_lastpost_hours: - one: "Tämä ketju suljettiin automaattisesti 1 tunnin kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." - other: "Tämä ketju suljettiin automaattisesti %{count} tunnin kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." autoclosed_enabled_lastpost_minutes: one: "Tämä ketju suljettiin automaattisesti 1 minuutin kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." other: "Tämä ketju suljettiin automaattisesti %{count} minuutin kuluttua viimeisestä viestistä. Uusia vastauksia ei voi enää kirjoittaa." diff --git a/config/locales/server.he.yml b/config/locales/server.he.yml index 40cc52001..bd08cd137 100644 --- a/config/locales/server.he.yml +++ b/config/locales/server.he.yml @@ -926,9 +926,6 @@ he: autoclosed_enabled_lastpost_days: one: "נושא זה ננעל אוטומטית לאחר יום אחד מהתגובה האחרונה. תגובות חדשות לא מתקבלות." other: "נושא זה ננעל אוטומטית לאחר %{count} ימים מהתגובה האחרונה. תגובות חדשות לא מתקבלות." - autoclosed_enabled_lastpost_hours: - one: "נושא זה ננעל אוטומטית לאחר שעה מהתגובה האחרונה. תגובות חדשות לא מתקבלות." - other: "נושא זה ננעל אוטומטית לאחר %{count} שעות מהתגובה האחרונה. תגובות חדשות לא מתקבלות." autoclosed_enabled_lastpost_minutes: one: "נושא זה ננעל אוטומטית לאחר דקה מהתגובה האחרונה. תגובות חדשות לא מתקבלות." other: "נושא זה ננעל אוטומטית לאחר %{count} דקות מהתגובה האחרונה. תגובות חדשות לא מתקבלות." diff --git a/config/locales/server.it.yml b/config/locales/server.it.yml index d077e183e..e5e2e771e 100644 --- a/config/locales/server.it.yml +++ b/config/locales/server.it.yml @@ -798,9 +798,6 @@ it: autoclosed_enabled_lastpost_days: one: "Questo argomento è stato automaticamente chiuso un giorno dopo l'ultima risposta. Non sono permesse altre risposte." other: "Questo argomento è stato automaticamente chiuso %{count} giorni dopo l'ultima risposta. Non sono permesse altre risposte." - autoclosed_enabled_lastpost_hours: - one: "Questo argomento è stato automaticamente chiuso un'ora dopo l'ultima risposta. Non sono permesse altre risposte." - other: "Questo argomento è stato automaticamente chiuso %{count} ore dopo l'ultima risposta. Non sono permesse altre risposte." autoclosed_enabled_lastpost_minutes: one: "Questo argomento è stato automaticamente chiuso un minuto dopo l'ultima risposta. Non sono permesse altre risposte." other: "Questo argomento è stato automaticamente chiuso %{count} minuti dopo l'ultima risposta. Non sono permesse altre risposte." diff --git a/config/locales/server.ko.yml b/config/locales/server.ko.yml index 2b825e7f1..01a1c6b9c 100644 --- a/config/locales/server.ko.yml +++ b/config/locales/server.ko.yml @@ -6,6 +6,16 @@ # https://www.transifex.com/projects/p/discourse-org/ ko: + stringex: + characters: + number: "-" + i18n: + transliterate: + rule: + ț: "t" + Ț: "t" + ș: "s" + Ș: "s" dates: short_date_no_year: "MMM D" short_date: "YYYY-MMM-D" @@ -23,9 +33,13 @@ ko: log_in: "로그인" via: "%{site_name}의 %{username}" is_reserved: "예약됨" + purge_reason: "오래되고 검수되지 않은 글은 자동 삭제" + disable_remote_images_download_reason: "서버에 저장공간이 부족해서 원격 이미지 저장이 비활성화됨. " errors: messages: too_long_validation: "%{length}자를 입력하셨습니다. 최대 %{max}자까지 입력 가능합니다. " + invalid_boolean: "잘못된 값" + taken: "이미 사용 중." embed: load_from_remote: "글 로딩 중 오류가 발생하였습니다." bulk_invite: @@ -309,12 +323,14 @@ ko: activation: action: "계정 활성화" already_done: "죄송합니다. 이 계정 확인 링크는 더 이상 유효하지 않습니다." + please_continue: "계정이 활성화 되었습니다; 홈페이지로 이동합니다." continue_button: "%{site_name}으로 가기" welcome_to: "%{site_name}에 오신것을 환영합니다." approval_required: "이 포럼을 사용하기 위해선 운영자가 수동으로 당신의 새로운 계정을 수락해야 합니다. 계정이 수락이 되면 자동으로 이메일이 발송됩니다." post_action_types: off_topic: title: '오프 토픽' + description: '이 게시물은 이곳의 토픽과 관련된것 같지 않습니다. 다른 토픽으로 옮기거나 새로운 토픽을 시작하는 것이 어떤가요?' long_form: '오프 토픽으로 신고하기' spam: title: '스팸' @@ -325,10 +341,15 @@ ko: description: '이 게시물은 다른 사용자들에게 공격적이나 모욕적 또는 침해적인 글을 담고 있습니다.' long_form: '부적절함으로 신고하기' notify_user: + title: '비공개 메세지 @{{username}}' description: '이 게시물에 내가 작성자와 직접 대화하고 싶은 내용이 있습니다. 신고에서 제외해주세요.' + long_form: '비공개 메세지' email_title: '"%{title}" 내의 당신의 게시글' email_body: "%{link}\n\n%{message}" notify_moderators: + title: "뭔가 다른것" + description: '이 게시물은 리스트에 없는 이유로 관리자의 주의가 필요합니다.' + long_form: '관리자의 주의를 위해 신고' email_title: '"%{title}" 게시물에 대한 운영자의 확인이 필요합니다' email_body: "%{link}\n\n%{message}" bookmark: @@ -355,7 +376,9 @@ ko: 커뮤니티 가이드라인에 맞지 않습니다.' long_form: '부적절함으로 신고하였습니다.' notify_moderators: + title: "뭔가 다른것" description: '이 게시물은 가이드라인, 이용약관, 또는 다른 이유와 관련해서 운영자의 주의가 필요합니다.' + long_form: '관리자의 주의를 위해 신고' email_title: '토픽 "%{title}" 은 운영자의 확인이 필요합니다' email_body: "%{link}\n\n%{message}" flagging: @@ -471,6 +494,7 @@ ko: twitter_config_warning: '당신의 서버는 트위터를 통한 가입을 설정하였습니다(enable_twitter_logins), 그러나 key 와 secret 값이 입력하지 않았습니다. 사이트 설정 에서 업데이트 해주세요. 가이드 읽어보기.' github_config_warning: '당신의 서버는 Github를 통한 가입을 설정하였습니다(enable_github_logins), 그러나 client id 와 secret 값을 입력하지 않았습니다. 사이트 설정 에서 업데이트 해주세요. 가이드 읽어보기.' s3_config_warning: '파일을 Amazon S3로 업로드 하도록 설정하였습니다. 하지만 아직 Access key id(s3_access_key_id), Secret access key(s3_secret_access_key) 혹은 S3 bucket(s3_upload_bucketat) 중 하나를 설정하지 않았습니다. 사이트 세팅에서 설정해주세요. 자세히 알아보기("How to set up image uploads to S3?").' + s3_backup_config_warning: 's3를 이용한 서버 설정이 완료 되지 않았습니다: s3_access_key_id, s3_secret_access_key, s3_secret_access_key 또는 s3_upload_bucket. 사이트 설정 에 가셔서 업데이트 하세요. "How to set up image uploads to S3?" 읽어 보세요.' image_magick_warning: '큰 이미지의 섬네일 만드는 설정이 있지만, ImageMagick가 설치되지 않았습니다. 최신버전 받기.' failing_emails_warning: '%{num_failed_jobs} 개의 이메일 잡이 실패하였습니다. config.action_mailer 설정이 정확한지 config/environments/production.rb 파일을 체크해보세요.' default_logo_warning: "당신은 사이트의 커스텀 로고를 사용하지 않고 있습니다. logo_url, logo_small_url, 와 favicon_url 를 사이트 설정 에서 설정하세요." @@ -491,6 +515,7 @@ ko: description: "새로운 사용자가 첫 두개의 토픽을 작성하면 자동 팝업됩니다." usage_tips: title: "새로운 사용자 가이드" + description: "새로운 사용자를 위한 가이드와 팁." welcome_user: title: "환영: 새로운 사용자" description: "새로운 사용자가 가입하면 자동으로 개인 메시지를 보냅니다." @@ -511,7 +536,10 @@ ko: description: "모든 페이지 상단에 추가할 HTML(헤더 아래, 네비게이션이나 토픽 제목 위)." bottom: title: "페이지 하단" + description: "모든 페이지 하단에 추가할 HTML" site_settings: + censored_words: "단어는 자동적으로 `■■■■` 로 대체 됩니다." + delete_old_hidden_posts: "30일이 지난 숨겨진 글은 자동으로 삭제됩니다." default_locale: "Discourse 인스턴스가 사용하는 기본 언어 (ISO 639-1 Code)" allow_user_locale: "사용자에게 자신이 원하는 언어를 선택할 수 있는 옵션을 제공한다." min_post_length: "포스트의 최소 글자 수" @@ -559,11 +587,14 @@ ko: apple_touch_icon_url: "애플 디바이스는 144px의 아이콘을 사용함. 144px X 144px 사이즈를 추천함" notification_email: "The from: 이 이메일 주소는 모든 기본 시스템 메일을 보내는데 사용됩니다. 여기에 명시된 도메인은 SPF, DKIM가 적용되어 있어야하며, reverse PTR 레코드가 제대로 설정되어 있어야 메일이 도착 할 수 있습니다." email_custom_headers: "커스텀 이메일 해더의 pipe-delimited" + email_subject: "일반 메일을 위한 제목 커스터마이징. 이곳을 참고 https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801" use_https: "사이트의 사이트의 전체 url((Discourse.base_url)이 http인가 아니면 https인가? 이미 HTTPS를 설정하고 동작중이 아니라면 활성화하지 마세요." summary_score_threshold: "요약본에 포함되기 위한 게시글의 최소 점수 값" summary_posts_required: "하나의 토픽에 대하여 요약본 보기 모드가 활성화되기 전까지 요구되는 최소 게시글 수" summary_likes_required: "하나의 토픽에 대하여 요약본 보기 모드가 활성화되기 전까지 요구되는 최소 좋아요 수" summary_percent_filter: "요약본 보기를 클릭시, 글 중에 몇 %의 상위 글을 보여줄 것인가?" + summary_max_results: "이 주제에 대한 요약 글 최대 갯수" + enable_private_messages: "신뢰도 1 사용자들만 개인 메세지와 개인 메세지에 대한 답글을 허용합니다" enable_long_polling: "Message bus used for notification can use long polling" anon_polling_interval: "How often should anonymous clients poll in milliseconds" auto_track_topics_after: "토픽이 자동으로 추적되기까지의 기본 시간, 사용자에 따라 재정의 될 수 있음.(밀리초, 0 : 항상, -1 : 안함)" @@ -594,11 +625,14 @@ ko: send_welcome_message: "신규 사용자에게 가입 환영 메세지를 보냅니까?" suppress_reply_directly_below: "게시글의 바로 아래에 단 하나의 댓글만 있는 경우 '댓글 수'를 보여주지 않음" suppress_reply_directly_above: "단 하나의 댓글 위의 게시글이 하나 있는 상황에서 '~에 대한 댓글'을 보여주지 않음." + max_reply_history: "덧글 확장해서 보여지는 최대 갯수" topics_per_period_in_top_summary: "인기 토픽 요약에 기본으로 보여질 토픽 수" topics_per_period_in_top_page: "인기 토픽에서 '더 보기'를 요청할 시 보여질 토픽 수" redirect_users_to_top_page: "자동으로 신규 사용자와 오래간만에 들어온 사용자를 탑 페이지로 리다이렉트 시킴" + show_email_on_profile: "사용자 프로필에서 자신의 이메일 주소 보기( 오직 본인과 관리자만 볼 수 있음)" email_token_valid_hours: "비밀번호 찾기, 계정 활성화에 사용되는 토큰의 유효 기간(시간)" email_token_grace_period_hours: "비밀번호 찾기, 계정 활성화에 사용되는 토큰은 사용되어진 이후 유효한 기간(시간)" + enable_badges: "훈장 시스템 활성화" allow_index_in_robots_txt: "이 사이트가 검색엔진에 의해 인덱스되는 것을 허용합니다.(robots.txt 수정)" email_domains_blacklist: "허용하지 않는 Email 도메인을 파이프(|)기호로 구분하여 입력. 예: mailinator.com|trashmail.net" email_domains_whitelist: "허용하는 Email 도메인을 파이프(|)기호로 구분하여 입력. 경고: 여기에 주어진 email domain이 아닌 경우 모두 거부됩니다." @@ -636,8 +670,10 @@ ko: allow_restore: "데이터 복원을 허용한다. 이 사이트의 모든 데이터가 변경될 수 있다. 백업이나 복원 계획이 없다면 비활성화로 놔둔다." maximum_backups: "디스크에 유지할 최대 백업 개수. 오래된 백업순으로 자동으로 삭제된다." backup_daily: "하루에 한 번 자동으로 백업한다." + enable_s3_backups: "백업이 완료되면 Amazon S3로 업로드한다. s3 credentials을 기입되어있는지 확인해야한다." s3_backup_bucket: "백업본을 유지할 s3 버켓 이름. 주의 : 프라이빗 버켓인지 확인해야한다." active_user_rate_limit_secs: "'last_seen_at'을 업데이트 하는 주기(초)" + verbose_localization: "UI에 언어 팁을 확장해 보여줌" previous_visit_timeout_hours: "최근 방문한 시간을 저장할 주기(시간)" rate_limit_create_topic: "사용자가 토픽을 생성하고 난 후 다음 토픽을 생성할 때 까지의 대기 기간(초)" rate_limit_create_post: "사용자가 포스팅을하고 난 후 다음 포스팅까지 대기 기간(초)" @@ -655,12 +691,34 @@ ko: clean_up_uploads: "불법 호스팅을 막기 위해서 참조되지 않은 업로드 파일은 제거한다. 주의 : 이 설정을 활성화 하기 전에 `/uploads` 디렉토리를 백업하는 것이 좋다." clean_orphan_uploads_grace_period_hours: "참조되지 않은 업로드 파일을 제거하기 전 기간(시간)" purge_deleted_uploads_grace_period_days: "참조되지 않은 업로드 파일을 완전 삭제하지 전 기간(일)" + purge_inactive_users_grace_period_days: "활성화 되지 않은 사용자를 삭제하기 까지의 기간(일)" s3_access_key_id: "이미지를 업로드 할 때 사용할 Amazon S3의 access key id" s3_secret_access_key: "이미지를 업로드 할 때 사용할 Amazon S3의 secret access key" s3_region: "이미지를 업로드 할 때 사용할 Amazon S3 region" enable_flash_video_onebox: "swf, flv(어도비 플래쉬)링크를 embed 할 수 있도록 함. 주의: 보안에 대한 위험성을 알려주는 것이 좋다." default_invitee_trust_level: "사용자를 초대하기 위한 기본 신뢰도(0-4)" default_trust_level: "새로운 사용자의 기본 신뢰도(0-4)" + tl1_requires_topics_entered: "새로운 사용자가 신뢰받는 사용자-1 이 되기 위해 들어가봐야되는 토픽의 개수" + tl1_requires_read_posts: "새로운 사용자가 신뢰받는 사용자-1 가 되기 위해 읽어야 하는 포스트 개수" + tl1_requires_time_spent_mins: "새로운 사용자가 신뢰받는 사용자-1 이 되기 위해 몇 분 동안 포스트를 읽어야 하는지." + tl2_requires_topics_entered: "기본 사용자가 자주오는 사용자-2 가 되기 위해 들어가 봐야 되는 토픽 갯수" + tl2_requires_read_posts: "기본 사용자가 자주오는 사용자-2 가 되기 위해 읽어야 하는 토픽 갯수" + tl2_requires_time_spent_mins: "기본 사용자가 자주오는 사용자-2 가 되기 위해 몇 분 동안 포스트를 읽어야 하는지." + tl2_requires_days_visited: "기본 사용자가 자주오는 사용자-2 가 되기 위해 몇 일을 방문해야 하는지." + tl2_requires_likes_received: "기본 사용자가 자주오는 사용자-2 가 되기 위해 받아야 하는 좋아요 갯수" + tl2_requires_likes_given: "기본 사용자가 자주오는 사용자-2 가 되기 위해 눌러야하는 좋아요 수" + tl2_requires_topic_reply_count: "기본 사용자가 자주오는 사용자-2 가 되기 위해 달아야 하는 덧글 수" + tl3_requires_days_visited: "VIP 사용자-3 이 되기 위해 지난 100일 동안 최소한 사이트에 방문해야 하는 수 (0 ~ 100)" + tl3_requires_topics_replied_to: "VIP 사용자-3 이 되기 위해 지난 100일 동안 답글을 달아야하는 최소 토픽수(0 ~ )" + tl3_requires_topics_viewed: "VIP 사용자-3 이 되기 위해 지난 100일 동안 생성된 전체 토픽 중 본 토픽의 비율(%, 0 ~ 100)" + tl3_requires_posts_read: "VIP 사용자-3 이 되기 위해 지난 100일 동안 생성된 전체 포스트 중 본 포스트의 비율(%, 0 ~ 100)" + tl3_requires_topics_viewed_all_time: "VIP 사용자-3 이 되기 위해 꼭 보아야 하는 토픽의 전체 개수" + tl3_requires_posts_read_all_time: "VIP 사용자-3 이 되기 위해 꼭 보아야 하는 토픽의 전체 개수" + tl3_requires_max_flagged: "사용자가 VIP 사용자-3 이 되기 위해 지난 100일동안 서로 다른 사용자에게 최소한으로 받지 말아야하는 신고된 포스트 수(0 ~ )" + tl3_promotion_min_duration: "신뢰도가 2로 떨어진 후 다시 VIP 사용자-3 이 될 수 있는 최소 일 수" + tl3_requires_likes_given: "VIP 사용자-3 이 되기 위해 지난 100일 동안 해야 할 좋아요 수" + tl3_requires_likes_received: "VIP 사용자-3 이 되기 위해 지난 100일 동안 받아야 할 좋아요 수" + tl3_links_no_follow: "VIP 사용자-3 의 글에 있는 링크에서 rel=nofollow 를 제거하지 마시오." min_trust_to_create_topic: "새로운 토픽을 생성하기 위한 최소 신뢰도" min_trust_to_edit_wiki_post: "위키로 설정된 포스트를 수정할 수 있는 최소 신뢰도" newuser_max_links: "새로운 사용자가 포스트에 붙일 수 있는 최대 링크 개수" @@ -685,6 +743,12 @@ ko: authorized_extensions: "파일 업로드에 허용되는 확장자 리스트 '*'을 사용하면 모든 타입의 파일이 가능하다." max_similar_results: "새로운 토픽을 작성할 때, 에디터 위에 보여줄 비슷한 토픽들의 개수. 제목과 본문을 바탕으로 비교한다." title_prettify: "일반적인 제목의 오타 및 오류를 수정해준다. 모두 대문자로 쓰거나, 첫자가 소문자이거나(영문), 복수의 !, ? 혹은 마침표(.)가 중복으로 들어간 것 등" + topic_views_heat_low: "토픽이 연하게 하이라이트 되기 위한 조회수" + topic_views_heat_medium: "토픽이 적당하게 하이라이트 되기 위한 조회수" + topic_views_heat_high: "토픽이 진하게 하이라이트 되기 위한 조회수" + cold_age_days_low: "대화가 몇 일 이상 지난 후, 마지막 활동 날짜를 연하게 하이라이트" + cold_age_days_medium: "대화가 몇 일 이상 지난 후, 마지막 활동 날짜를 적당히 하이라이트" + cold_age_days_high: "대화가 몇 일 이상 지난 후, 마지막 활동 날짜를 강하게 하이라이트" faq_url: "FAQ주소가 있으면 전체 URL을 적어주세요." tos_url: "이용약관이 있으면 전체 URL을 적어주세요." privacy_policy_url: "개인정보 보호가 있으면 전체 URL을 적어주세요." @@ -694,6 +758,13 @@ ko: levenshtein_distance_spammer_emails: "스패머 메일을 체크할 때, 허용할 다른 글자 개수(fuzzy match)" reply_by_email_enabled: "이메일을 통해 토픽에 댓글을 달 수 있음." reply_by_email_address: "이메일 주소로 답글을 다는 템플릿. 예: %{reply_key}@reply.myforum.com" + enable_email_names: "이메일에서 사용자의 전체 이름을 보여준다." + pop3_polling_enabled: "POP3를 이용한 이메일 설문조사" + pop3_polling_period_mins: "이메일을 받기 위해 POP3S 계정을 체크하는 분 단위 NOTE: 재시동 필요." + pop3_polling_port: "이메일 설문조사를 위한 POP3 포트번호 " + pop3_polling_host: "이메일 설문조사를 위한 POP3 호스트" + pop3_polling_username: "이메일 설문조사를 위한 POP3 사용자 계정 이름" + pop3_polling_password: "이메일 설문조사를 위한 POP3 사용자 비밀번호" email_in: "이메일을 통해 새로운 토픽을 포스팅할 수 있도록 허가한다.(POP3 polling 필요) 각 카테고리의 \"Setting\" 탭에서 주소를 설정한다." email_in_min_trust: "이메일을 통해 새 토픽을 포스팅 할 수 있는 최소 사용자 신뢰도" email_prefix: "이메일 제목에 쓰일 [라벨]. 설정하지 않으면 기본적으로 'title(필수 설정의)' 이 된다." @@ -716,11 +787,13 @@ ko: public_user_custom_fields: "A whitelist of custom fields for a user that can be shown publically." allow_profile_backgrounds: "사용자에게 프로필 배경 이미지 업로드를 허용한다." enable_mobile_theme: "모바일 디바이스는 모바일 환경에 친화적인 테마를 사용합니다, 그리고 PC용 화면으로 전환할 수 있습니다. 만약 커스텀 스타일 시트를 사용한다면 이것을 비활성화 시키세요." + dominating_topic_minimum_percent: "한 토픽에서 한 사용자의 영향력을 결정하는 게시글 수의 퍼센트" suppress_uncategorized_badge: "토픽 리스트에서 카테고리가 없는 토픽에 대한 훈장을 보여주지 않는다." enable_names: "사용자의 전체 이름을 보여준다." display_name_on_posts: "포스트에 @username 뿐만 아니라 사용자의 전체 이름도 보여준다." short_progress_text_threshold: "토픽의 포스트 개수가 이 값을 넘어서면, 포스트 프로그래스바는 오직 현재 포스트 넘버만 보여준다. 만약 포스트 프로그래스바의 넓이는 변경하면, 이 숫자도 변경해야한다." default_code_lang: "기본 programming language syntax highlighting은 GitHub code blocks이 적용된다. (lang-auto, ruby, python etc.)" + warn_reviving_old_topic_age: "이 값보다 오래된 토픽에 답글을 달면, 오래된 토론이라는 것을 상기시키기 위해 주의 알림이 보여진다. 비활성화 값음 0 이다. " autohighlight_all_code: "형식이 지정되기 전의(되지 않은) 모든 코드 블럭들에 대해, 사용자가 언어를 지정하지 않아도 강제로 code highlighting이 적용된다." errors: invalid_email: "유효하지 않은 이메일 주소입니다." @@ -780,8 +853,6 @@ ko: other: "이 토픽은 %{count}분 뒤 자동적으로 닫혔습니다. 새로운 답글을 다실 수 없습니다." autoclosed_enabled_lastpost_days: other: "이 토픽은 마지막 답글이 달리고 %{count}일 뒤 자동적으로 닫혔습니다. 새로운 답글을 다실 수 없습니다." - autoclosed_enabled_lastpost_hours: - other: "이 토픽은 마지막 답글이 달리고 %{count}시간 뒤 자동적으로 닫혔습니다. 새로운 답글을 다실 수 없습니다." autoclosed_enabled_lastpost_minutes: other: "이 토픽은 마지막 답글이 달리고 %{count}분 뒤 자동적으로 닫혔습니다. 새로운 답글을 다실 수 없습니다." autoclosed_disabled: "이 토픽은 이제 열렸습니다. 새로운 답글을 허용합니다." @@ -798,6 +869,7 @@ ko: wait_approval: "가입해 주셔서 감사합니다. 곧 활성화 메일이 도착할 것 입니다." active: "당신의 계정이 활성화되었습니다." not_activated: "당신은 아직 로그인 할 수 없습니다. 계정 활성화 이메일을 보냈습니다. 계정을 활성화하기 위해 지침을 따라주세요." + not_allowed_from_ip_address: "이 IP 주소에서 %{username} 으로 로그인 할 수 없습니다." suspended: "당신은 %{date} 까지 로그인할 수 없습니다. " suspended_with_reason: "당신은 %{date} 까지 로그인할 수 없습니다. 이유: %{reason}" errors: "%{errors}" @@ -805,7 +877,12 @@ ko: something_already_taken: "뭔가가 이상합니다. 아마도 계정의 아이디 또는 이메일이 이미 등록된것 같습니다. 비밀번호 찾기 링크를 이용해주세요." omniauth_error: "죄송합니다, 당신의 계정을 인증하는데 문제가 있습니다. 이미 인증이 되었나요?" omniauth_error_unknown: "로그인에 문제가 있습니다. 다시 시도해주세요." + new_registrations_disabled: "지금은 새로 가입할 수 없습니다." + password_too_long: "비밀번호는 200글자 이내만 허용됩니다." + missing_user_field: "사용자 정보 입력을 덜 끝마쳤습니다." + close_window: "사용자 인증 완료. 계속하기 위해 브라우저 창을 닫으세요." user: + no_accounts_associated: "연계된 계정이 없음" username: short: "최소 %{min}자 이상이어야 합니다." long: "%{max}자 이상 사용할 수 없습니다." @@ -818,8 +895,36 @@ ko: blocked: "는 허용되지 않습니다" ip_address: blocked: "는 블락되었습니다." + invite_forum_mailer: + subject_template: "%{site_domain_name}의 %{invitee_name}님께서 당신을 초대하였습니다." + text_body_template: | + %{invitee_name} 님께서 당신을 초대하였습니다. + + > **%{site_title}** + > + > %{site_description} + + 초대를 허락하시려면 아래 링크를 클릭하여 주세요. + + %{invite_link} + + 당신은 신뢰받는 사용자로부터 초대를 받으셨습니다. 그래서 로그인 하지 않아도 됩니다. + invite_password_instructions: + subject_template: "%{site_name} 계정을 위해 비밀번호 설정" test_mailer: subject_template: "[%{site_name}] 이메일 발송 테스트" + new_version_mailer: + subject_template: "[%{site_name}] 새 Discourse 버전으로 업데이트 가능." + new_version_mailer_with_notes: + subject_template: "[%{site_name}] 업데이트 가능." + flags_reminder: + post_number: "게시글" + flags_dispositions: + agreed: "알려줘서 감사합니다. 문제가 있음에 동의하며 내용을 살펴보겠습니다." + agreed_and_deleted: "알려줘서 감사합니다. 문제가 있음에 동의하며 해당 글을 삭제했습니다." + disagreed: "알려줘서 감사합니다. 살펴보겠습니다." + deferred: "알려줘서 감사합니다. 살펴보겠습니다." + deferred_and_deleted: "알려줘서 감사합니다. 해당 글을 삭제했습니다." system_messages: post_hidden: subject_template: "포럼 신고로 인한 게시글 숨김" @@ -835,8 +940,26 @@ ko: 다시한번 환영합니다! welcome_invite: subject_template: "%{site_name} 사이트에 오신것을 환영합니다!" + backup_succeeded: + subject_template: "백업 성공" backup_failed: subject_template: "백업에 실패했습니다." + restore_succeeded: + subject_template: "복구 성공" + text_body_template: "복구 성공하였습니다." + restore_failed: + subject_template: "복구 실패" + csv_export_failed: + subject_template: "추출 실패" + text_body_template: "내보내기가 실패했습니다. 로그를 확인해주세요" + email_reject_no_account: + subject_template: "이메일 문제 -- 모르는 계정" + email_reject_empty: + subject_template: "이메일 문제 -- 컨텐츠 없음" + email_reject_post_error: + subject_template: "이메일 문제 -- 글쓰기 에러" + email_reject_post_error_specified: + subject_template: "이메일 문제 -- 글쓰기 에러" too_many_spam_flags: subject_template: "새로운 계정은 블락되었습니다." blocked_by_staff: @@ -857,6 +980,8 @@ ko: [운영자 색션에서 새로운 사용자들을 리뷰하세요](/admin/users/list/pending). unsubscribe_link: "만약 구독해지를 원하시면 [사용자 환경설정](%{user_preferences_url})을 방문하세요." + subject_re: "덧: " + subject_pm: "[PM] " user_notifications: previous_discussion: "이전 답글" unsubscribe: @@ -911,6 +1036,7 @@ ko: click_here: "클릭" from: "%{site_name} 요약" read_more: "더 읽기" + more_topics_category: "더 많은 새글:" posts: other: "%{count} 글" forgot_password: @@ -920,6 +1046,10 @@ ko: 아래 링크를 클릭하여 패스워드를 재설정하세요: %{base_url}/users/password-reset/%{email_token} + set_password: + subject_template: "[%{site_name}] 패스워드 재설정" + account_created: + subject_template: "[%{site_name}] 당신의 새 계정" authorize_email: subject_template: "[%{site_name}] 이메일 확인" text_body_template: | @@ -939,7 +1069,13 @@ ko: 만약 위의 링크를 클릭 할 수 없으면 주소를 복사하여 당신의 웹브라우저에 붙여넣으세요. page_not_found: title: "당신이 요청한 페이지를 찾을 수 없습니다. 혹시 아래와 같은 토픽을 찾으신 것은 아닌가요?" + popular_topics: "인기" + recent_topics: "최근" + see_more: "더" + search_title: "이 사이트 검색" + search_google: "Google" terms_of_service: + title: "서비스 이용약관" signup_form_message: 'I have read and accept the Terms of Service.' deleted: '삭제되었습니다' upload: @@ -954,5 +1090,31 @@ ko: size_not_found: "죄송합니다. 이미지 사이즈가 잘못 되었습니다. 혹시 깨진 이미지가 아닌가요?" flag_reason: sockpuppet: "새로운 사용자가 토픽을 만들었습니다. 그리고 같은 IP를 사용하는 새 사용자가 답글을 달았습니다. 사이트 설정의 flag_sockpuppets를 확인하세요." + email_log: + no_user: "ID %{user_id} 인 사용자를 찾을 수 없습니다" + suspended_not_pm: "사용자는 정지되어 메세지 불가" + seen_recently: "최근 보여진 사용자" + post_not_found: "해당하는 ID %{post_id} 을 찾을 수 없습니다. " + notification_already_read: "이 알림 이미 읽은 것에 대한 이메일 입니다." + topic_nil: "글 제목이 없음" + post_deleted: "글쓴이에 의해 삭제된 글" + user_suspended: "정지된 사용자" + already_read: "이미 읽은 글" + message_blank: "메세지가 비어있음" + message_to_blank: "메세지가 비어있음" + text_part_body_blank: "본문이 비어있음" + body_blank: "본문이 비어있음" color_schemes: base_theme_name: "기본 테마 색상" + guidelines: "가이드라인" + privacy: "개인정보 취급방침" + edit_this_page: "이 페이지 수정" + static_topic_first_reply: |+ + 이 토픽인 %{page_name} 페이지의 첫글 수정. + + guidelines_topic: + title: "FAQ/가이드" + tos_topic: + title: "서비스 이용약관" + privacy_topic: + title: "개인정보취급방침" diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml index 7db295eee..35b6c90ef 100644 --- a/config/locales/server.ru.yml +++ b/config/locales/server.ru.yml @@ -367,12 +367,14 @@ ru: activation: action: "Активируйте вашу учетную запись" already_done: "Извините, ссылка на активацию учетной записи устарела. Возможно, ваша учетная запись уже активирована?" + please_continue: "Ваша новая учетная запись успешно активирована, вы будете перенаправлены на главную страницу." continue_button: "Перейти на %{site_name}" welcome_to: "Добро пожаловать на сайт %{site_name}!" approval_required: "Ваша учетная запись должна быть вручную подтверждена модератором, чтобы вы смогли зайти на форум. Вы получите электронное письмо, когда ваша учетная запись будет подтверждена!" post_action_types: off_topic: title: 'Не по теме' + description: 'Это сообщение не имеет отношения к данному обсуждению. Возможно, его стоит перенести в соответствующий раздел.' long_form: 'отмечена как не по теме' spam: title: 'СПАМ' @@ -383,10 +385,13 @@ ru: description: 'Это сообщение может быть оскорбительным или нарушает правила поведения.' long_form: 'отметить как неуместное' notify_user: + title: 'Отправить личное сообщение @{{username}}' description: 'Это сообщение содержит что-то, на что я хочу обратить внимание автора в приватном диалоге. Не отправлять жалобу модераторам.' + long_form: 'оповещаемый пользователь' email_title: 'Ваше сообщение в теме "%{title}"' email_body: "%{link}\n\n%{message}\n" notify_moderators: + description: 'Это сообщение требует внимания модератора по другой причине.' email_title: 'Сообщение в теме "%{title}" требует внимания модератора' email_body: "%{link}\n\n%{message}\n" bookmark: diff --git a/config/locales/server.sq.yml b/config/locales/server.sq.yml index 3dc45edfc..9418e3ccc 100644 --- a/config/locales/server.sq.yml +++ b/config/locales/server.sq.yml @@ -68,32 +68,32 @@ sq: other: "%{count} përgjigje" too_many_mentions: zero: "Na vjen keq, por s'mund të citosh anëtarë të tjerë." - one: "Sorry, you can only mention one other user in a post." - other: "Sorry, you can only mention %{count} users in a post." + one: "Na vjen keq, you can only mention one other user in a post." + other: "Na vjen keq, you can only mention %{count} users in a post." too_many_mentions_newuser: zero: "Sorry, new users can't mention other users." - one: "Sorry, new users can only mention one other user in a post." - other: "Sorry, new users can only mention %{count} users in a post." + one: "Na vjen keq, new users can only mention one other user in a post." + other: "Na vjen keq, new users can only mention %{count} users in a post." too_many_images: - zero: "Sorry, new users can't put images in posts." - one: "Sorry, new users can only put one image in a post." - other: "Sorry, new users can only put %{count} images in a post." + zero: "Na vjen keq, new users can't put images in posts." + one: "Na vjen keq, new users can only put one image in a post." + other: "Na vjen keq, new users can only put %{count} images in a post." too_many_attachments: - zero: "Sorry, new users can't put attachments in posts." - one: "Sorry, new users can only put one attachment in a post." - other: "Sorry, new users can only put %{count} attachments in a post." + zero: "Na vjen keq, new users can't put attachments in posts." + one: "Na vjen keq, new users can only put one attachment in a post." + other: "Na vjen keq, new users can only put %{count} attachments in a post." too_many_links: - zero: "Sorry, new users can't put links in posts." - one: "Sorry, new users can only put one link in a post." - other: "Sorry, new users can only put %{count} links in a post." - spamming_host: "Sorry you cannot post a link to that host." + zero: "Na vjen keq, new users can't put links in posts." + one: "Na vjen keq, new users can only put one link in a post." + other: "Na vjen keq, new users can only put %{count} links in a post." + spamming_host: "Na vjen keq, you cannot post a link to that host." user_is_suspended: "Suspended users are not allowed to post." just_posted_that: "is too similar to what you recently posted" has_already_been_used: "është përdorur më parë" invalid_characters: "përmban karaktere jo të vlefshëm" is_invalid: "is invalid; try to be a little more descriptive" next_page: "faqja tjetër →" - prev_page: "← previous page" + prev_page: "← faqe mëparshme" page_num: "Faqe %{num}" topics_in_category: "Topics in the '%{category}' category" rss_posts_in_topic: "Burimi RSS i '%{topic}'" @@ -105,7 +105,7 @@ sq: private_message_abbrev: "PM" rss_description: latest: "Temat e fundit" - hot: "Tema të nxehta" + hot: "Temat Kryesore" too_late_to_edit: "That post was created too long ago. It can no longer be edited or deleted." groups: errors: @@ -311,11 +311,11 @@ sq: one: "1y" other: "%{count}y" over_x_years: - one: "> 1y" - other: "> %{count}y" + one: "> 1v" + other: "> %{count}v" almost_x_years: - one: "1y" - other: "%{count}y" + one: "1v" + other: "%{count}v" distance_in_words_verbose: half_a_minute: "tani" less_than_x_seconds: @@ -951,9 +951,6 @@ sq: autoclosed_enabled_lastpost_days: one: "This topic was automatically closed 1 day after the last reply. New replies are no longer allowed." other: "This topic was automatically closed %{count} days after the last reply. New replies are no longer allowed." - autoclosed_enabled_lastpost_hours: - one: "This topic was automatically closed 1 hour after the last reply. New replies are no longer allowed." - other: "This topic was automatically closed count} hours after the last reply. New replies are no longer allowed." autoclosed_enabled_lastpost_minutes: one: "This topic was automatically closed 1 minute after the last reply. New replies are no longer allowed." other: "This topic was automatically closed %{count} minutes after the last reply. New replies are no longer allowed." diff --git a/config/locales/server.zh_CN.yml b/config/locales/server.zh_CN.yml index ea595c2c3..4c1872a9c 100644 --- a/config/locales/server.zh_CN.yml +++ b/config/locales/server.zh_CN.yml @@ -915,8 +915,6 @@ zh_CN: other: "本主题在创建 %{count} 分钟后自动关闭。不再允许添加新回复。" autoclosed_enabled_lastpost_days: other: "本主题在最后一个回复创建后 %{count} 天后自动关闭。不再允许添加新回复。" - autoclosed_enabled_lastpost_hours: - other: "本主题在最后一个回复创建后 %{count} 小时后自动关闭。不再允许添加新回复。" autoclosed_enabled_lastpost_minutes: other: "本主题在最后一个回复创建后 %{count} 分钟后自动关闭。不再允许添加新回复。" autoclosed_disabled: "本主题是开放的,可以添加新的回复。" @@ -1443,6 +1441,7 @@ zh_CN: --- %{respond_instructions} digest: + why: "在您上一次于 %{last_seen_at} 访问后,在 %{site_link} 上的简洁的摘要。" subject_template: "[%{site_name}] %{date} 的摘要" new_activity: "在您的主题和帖子里的动态:" top_topics: "热门帖子" diff --git a/config/routes.rb b/config/routes.rb index abcb00680..fd8c3e357 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -52,6 +52,7 @@ Discourse::Application.routes.draw do collection do get "list/:query" => "users#index" get "ip-info" => "users#ip_info" + delete "delete-others-with-same-ip" => "users#delete_other_accounts_with_same_ip" put "approve-bulk" => "users#approve_bulk" delete "reject-bulk" => "users#reject_bulk" end diff --git a/config/site_settings.yml b/config/site_settings.yml index 284615fe0..8ce50b26f 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -108,7 +108,7 @@ basic: post_menu_hidden_items: client: true type: list - default: 'edit|delete|admin' + default: 'bookmark|edit|delete|admin' choices: - like - edit diff --git a/lib/admin_user_index_query.rb b/lib/admin_user_index_query.rb index c0e11cdc7..17d07feb1 100644 --- a/lib/admin_user_index_query.rb +++ b/lib/admin_user_index_query.rb @@ -42,8 +42,8 @@ class AdminUserIndexQuery def filter_by_search if params[:filter].present? - if params[:filter] =~ Resolv::IPv4::Regex || params[:filter] =~ Resolv::IPv6::Regex - @query.where('ip_address = :ip OR registration_ip_address = :ip', ip: params[:filter]) + if ip = IPAddr.new(params[:filter]) rescue nil + @query.where('ip_address <<= :ip OR registration_ip_address <<= :ip', ip: ip.to_cidr_s) else @query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%") end diff --git a/lib/ip_addr.rb b/lib/ip_addr.rb new file mode 100644 index 000000000..c8afcde48 --- /dev/null +++ b/lib/ip_addr.rb @@ -0,0 +1,16 @@ +class IPAddr + + def to_cidr_s + if @addr + mask = @mask_addr.to_s(2).count('1') + if mask == 32 + to_s + else + "#{to_s}/#{mask}" + end + else + nil + end + end + +end diff --git a/lib/spam_handler.rb b/lib/spam_handler.rb index e6bfdf341..6fc184e74 100644 --- a/lib/spam_handler.rb +++ b/lib/spam_handler.rb @@ -4,14 +4,21 @@ class SpamHandler return false if SiteSetting.max_new_accounts_per_registration_ip <= 0 tl2_plus_accounts_with_same_ip = User.where("trust_level >= ?", TrustLevel[2]) - .where("ip_address = ?", ip_address.to_s) + .where(ip_address: ip_address.to_s) .count return false if tl2_plus_accounts_with_same_ip > 0 + staff_user_ids = Group[:staff].user_ids - [-1] + staff_members_with_same_ip = User.where(id: staff_user_ids) + .where(ip_address: ip_address.to_s) + .count + + return false if staff_members_with_same_ip > 0 + tl0_accounts_with_same_ip = User.unscoped .where(trust_level: TrustLevel[0]) - .where("ip_address = ?", ip_address.to_s) + .where(ip_address: ip_address.to_s) .count tl0_accounts_with_same_ip >= SiteSetting.max_new_accounts_per_registration_ip diff --git a/public/503.sq.html b/public/503.sq.html index 07ab20d4a..1ce9f1306 100644 --- a/public/503.sq.html +++ b/public/503.sq.html @@ -6,6 +6,6 @@

Siç e kishim planifikuar, faqja është në një fazë mirëmbajtje.

Ju lutem na vizitoni pas disa minutash.

-

Na vjen keq për shqetësimin!

+

Sorry for the inconvenience!

diff --git a/spec/components/spam_handler_spec.rb b/spec/components/spam_handler_spec.rb index 532eda072..1f6c02770 100644 --- a/spec/components/spam_handler_spec.rb +++ b/spec/components/spam_handler_spec.rb @@ -22,13 +22,26 @@ describe SpamHandler do -> { Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) }.should raise_error(ActiveRecord::RecordInvalid) end - it "only limit new registrations from an IP if *all* the users from that IP are TL1 or TL0" do + it "doesn't limit registrations since there is a TL2+ user with that IP" do # setup SiteSetting.stubs(:max_new_accounts_per_registration_ip).returns(0) Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[2]) - # should not limit registrations since there is a TL2 user with that IP + # should not limit registration + SiteSetting.stubs(:max_new_accounts_per_registration_ip).returns(1) + Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) + end + + it "doesn't limit registrations since there is a staff member with that IP" do + # setup + SiteSetting.stubs(:max_new_accounts_per_registration_ip).returns(0) + Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) + Fabricate(:moderator, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) + + Group.refresh_automatic_groups!(:staff) + + # should not limit registration SiteSetting.stubs(:max_new_accounts_per_registration_ip).returns(1) Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) end diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index 767dc021f..d65359f22 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -414,6 +414,19 @@ describe Admin::UsersController do end + context "delete_other_accounts_with_same_ip" do + + it "works" do + Fabricate(:user, ip_address: "42.42.42.42") + Fabricate(:user, ip_address: "42.42.42.42") + + UserDestroyer.any_instance.expects(:destroy).twice + + xhr :delete, :delete_other_accounts_with_same_ip, ip: "42.42.42.42", exclude: -1, order: "trust_level DESC" + end + + end + end it 'can sync up sso' do diff --git a/spec/models/api_key_spec.rb b/spec/models/api_key_spec.rb index 7df92e574..4a378a5a0 100644 --- a/spec/models/api_key_spec.rb +++ b/spec/models/api_key_spec.rb @@ -8,7 +8,7 @@ describe ApiKey do it { should validate_presence_of :key } - it 'validates uniqueness of user_id' do + pending 'validates uniqueness of user_id' do Fabricate(:api_key) should validate_uniqueness_of(:user_id) end diff --git a/spec/models/topic_link_click_spec.rb b/spec/models/topic_link_click_spec.rb index 9fd7d1f24..e6c91b623 100644 --- a/spec/models/topic_link_click_spec.rb +++ b/spec/models/topic_link_click_spec.rb @@ -79,6 +79,27 @@ describe TopicLinkClick do end end + context "relative urls" do + let(:host) { URI.parse(Discourse.base_url).host } + + it 'returns the url' do + url = TopicLinkClick.create_from(url: '/relative-url', post_id: @post.id, ip: '127.0.0.1') + url.should == "/relative-url" + end + + it 'finds a protocol relative urls with a host' do + url = "//#{host}/relative-url" + redirect = TopicLinkClick.create_from(url: url) + redirect.should == url + end + + it "returns the url if it's on our host" do + url = "http://#{host}/relative-url" + redirect = TopicLinkClick.create_from(url: url) + redirect.should == url + end + end + context 'with a HTTPS version of the same URL' do before do @url = TopicLinkClick.create_from(url: 'https://twitter.com', topic_id: @topic.id, ip: '127.0.0.3') diff --git a/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.ko.yml b/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.ko.yml index ecf6fffaf..c0c2107c6 100644 --- a/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.ko.yml +++ b/vendor/gems/discourse_imgur/lib/discourse_imgur/locale/server.ko.yml @@ -5,4 +5,8 @@ # To work with us on translations, join this project: # https://www.transifex.com/projects/p/discourse-org/ -ko_KR: {} +ko: + site_settings: + enable_imgur: "로컬에 이미지를 저장하지 않고 imgur api를 통해 이미지 업로드 활성화. " + imgur_client_id: "이미지 업로드를 위해 imgur.com의 client ID 가 필요합니다." + imgur_client_secret: "imgur.com의 client secret 키. 현재 이미지 업로드를 위해 꼭 필요하지는 않지만 언젠가를 위해."