DEV: Remove RSS feed polling in favor of plugin (#8233)
This commit is contained in:
parent
6e481851e7
commit
3dd2f2f701
|
@ -40,16 +40,6 @@
|
|||
{{embedding-setting field="embed_truncate" value=embedding.embed_truncate type="checkbox"}}
|
||||
</div>
|
||||
|
||||
<div class='embedding-secondary'>
|
||||
<h3>{{i18n "admin.embedding.feed_settings"}}</h3>
|
||||
<p class="description">{{i18n "admin.embedding.feed_description"}}</p>
|
||||
|
||||
{{embedding-setting field="feed_polling_enabled" value=embedding.feed_polling_enabled type="checkbox"}}
|
||||
{{embedding-setting field="feed_polling_url" value=embedding.feed_polling_url}}
|
||||
{{embedding-setting field="feed_polling_frequency_mins" value=embedding.feed_polling_frequency_mins}}
|
||||
{{embedding-setting field="embed_username_key_from_feed" value=embedding.embed_username_key_from_feed}}
|
||||
</div>
|
||||
|
||||
<div class='embedding-secondary'>
|
||||
<h3>{{i18n "admin.embedding.crawling_settings"}}</h3>
|
||||
<p class="description">{{i18n "admin.embedding.crawling_description"}}</p>
|
||||
|
|
|
@ -1,185 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# Creates and Updates Topics based on an RSS or ATOM feed.
|
||||
#
|
||||
require 'digest/sha1'
|
||||
require 'excon'
|
||||
|
||||
module Jobs
|
||||
class PollFeed < ::Jobs::Scheduled
|
||||
every 5.minutes
|
||||
|
||||
sidekiq_options retry: false
|
||||
|
||||
def execute(args)
|
||||
poll_feed if SiteSetting.feed_polling_enabled? &&
|
||||
SiteSetting.feed_polling_url.present? &&
|
||||
not_polled_recently?
|
||||
end
|
||||
|
||||
def feed_key
|
||||
"feed-modified:#{Digest::SHA1.hexdigest(SiteSetting.feed_polling_url)}"
|
||||
end
|
||||
|
||||
def poll_feed
|
||||
ensure_rss_loaded
|
||||
# defer loading rss
|
||||
feed = Feed.new
|
||||
import_topics(feed.topics)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@rss_loaded = false
|
||||
|
||||
# rss lib is very expensive memory wise, no need to load it till it is needed
|
||||
def ensure_rss_loaded
|
||||
return if @@rss_loaded
|
||||
require 'rss'
|
||||
@@rss_loaded = true
|
||||
end
|
||||
|
||||
def not_polled_recently?
|
||||
$redis.set(
|
||||
'feed-polled-recently',
|
||||
"1",
|
||||
ex: SiteSetting.feed_polling_frequency_mins.minutes - 10.seconds,
|
||||
nx: true
|
||||
)
|
||||
end
|
||||
|
||||
def import_topics(feed_topics)
|
||||
feed_topics.each do |topic|
|
||||
import_topic(topic)
|
||||
end
|
||||
end
|
||||
|
||||
def import_topic(topic)
|
||||
if topic.user
|
||||
TopicEmbed.import(topic.user, topic.url, topic.title, CGI.unescapeHTML(topic.content))
|
||||
end
|
||||
end
|
||||
|
||||
class Feed
|
||||
def initialize
|
||||
@feed_url = SiteSetting.feed_polling_url
|
||||
@feed_url = "http://#{@feed_url}" if @feed_url !~ /^https?\:\/\//
|
||||
end
|
||||
|
||||
def topics
|
||||
feed_topics = []
|
||||
|
||||
rss = parsed_feed
|
||||
return feed_topics unless rss.present?
|
||||
|
||||
rss.items.each do |i|
|
||||
current_feed_topic = FeedTopic.new(i)
|
||||
feed_topics << current_feed_topic if current_feed_topic.content
|
||||
end
|
||||
|
||||
return feed_topics
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def parsed_feed
|
||||
raw_feed, encoding = fetch_rss
|
||||
return nil if raw_feed.nil?
|
||||
|
||||
encoded_feed = Encodings.try_utf8(raw_feed, encoding) if encoding
|
||||
encoded_feed = Encodings.to_utf8(raw_feed) unless encoded_feed
|
||||
|
||||
return nil if encoded_feed.blank?
|
||||
|
||||
if SiteSetting.embed_username_key_from_feed.present?
|
||||
FeedElementInstaller.install(SiteSetting.embed_username_key_from_feed, encoded_feed)
|
||||
end
|
||||
|
||||
RSS::Parser.parse(encoded_feed)
|
||||
rescue RSS::NotWellFormedError, RSS::InvalidRSSError
|
||||
nil
|
||||
end
|
||||
|
||||
def fetch_rss
|
||||
final_destination = FinalDestination.new(@feed_url, verbose: true)
|
||||
feed_final_url = final_destination.resolve
|
||||
return nil unless final_destination.status == :resolved
|
||||
|
||||
response = Excon.new(feed_final_url.to_s).request(method: :get, expects: 200)
|
||||
[response.body, detect_charset(response)]
|
||||
rescue Excon::Error::HTTPStatus
|
||||
nil
|
||||
end
|
||||
|
||||
def detect_charset(response)
|
||||
if response.headers['Content-Type'] =~ /charset\s*=\s*([a-z0-9\-]+)/i
|
||||
Encoding.find($1)
|
||||
end
|
||||
rescue ArgumentError
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
class FeedTopic
|
||||
def initialize(article_rss_item)
|
||||
@accessor = FeedItemAccessor.new(article_rss_item)
|
||||
end
|
||||
|
||||
def url
|
||||
link = @accessor.link
|
||||
if url?(link)
|
||||
return link
|
||||
else
|
||||
return @accessor.element_content(:id)
|
||||
end
|
||||
end
|
||||
|
||||
def content
|
||||
content = nil
|
||||
|
||||
%i[content_encoded content description].each do |content_element_name|
|
||||
content ||= @accessor.element_content(content_element_name)
|
||||
end
|
||||
|
||||
content&.force_encoding('UTF-8')&.scrub
|
||||
end
|
||||
|
||||
def title
|
||||
@accessor.element_content(:title).force_encoding('UTF-8').scrub
|
||||
end
|
||||
|
||||
def user
|
||||
author_user || default_user
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def url?(link)
|
||||
if link.blank? || link !~ /^https?\:\/\//
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
def author_username
|
||||
@accessor.element_content(SiteSetting.embed_username_key_from_feed.sub(':', '_'))
|
||||
end
|
||||
|
||||
def default_user
|
||||
find_user(SiteSetting.embed_by_username.downcase)
|
||||
end
|
||||
|
||||
def author_user
|
||||
return nil if !author_username.present?
|
||||
|
||||
find_user(author_username)
|
||||
end
|
||||
|
||||
def find_user(user_name)
|
||||
User.where(username_lower: user_name).first
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -12,11 +12,7 @@ class Embedding < OpenStruct
|
|||
embed_truncate
|
||||
embed_whitelist_selector
|
||||
embed_blacklist_selector
|
||||
embed_classname_whitelist
|
||||
feed_polling_enabled
|
||||
feed_polling_url
|
||||
feed_polling_frequency_mins
|
||||
embed_username_key_from_feed)
|
||||
embed_classname_whitelist)
|
||||
end
|
||||
|
||||
def base_url
|
||||
|
|
|
@ -3465,19 +3465,14 @@ ar:
|
|||
category: "انشر في قسم"
|
||||
add_host: "أضف مضيف"
|
||||
settings: "تضمين إعدادات"
|
||||
feed_settings: "إعدادات التغذية "
|
||||
feed_description: " توفير مغذي RSS/ATOM لموقعك سيطور قدرة Discourse على استيراد المحتوى الخاص بك."
|
||||
crawling_settings: "اعدادات الزاحف"
|
||||
crawling_description: "عندما ينشأ Discourse مواضيع لمشاركتك، إذا لم يتوفر مغذي RSS/ATOM سيحاول تحليل محتواك من HTML الخاص بك. أحيانا يمكن أن يكون تحديا استخراج محتواك، لذا نمنحك القدرة لتحديد قواعد CSS لجعل الاستخراج أسهل."
|
||||
embed_by_username: "اسم العضو للموضوع المنشأ"
|
||||
embed_post_limit: "أقصى عدد مشاركات مضمنة"
|
||||
embed_username_key_from_feed: "مفتاح لسحب اسم عضو discourse من المغذي"
|
||||
embed_truncate: "بتر المشاركات المضمنة"
|
||||
embed_whitelist_selector: "منتقي CSS للعناصر التي تسمح في التضمينات."
|
||||
embed_blacklist_selector: "منتقي CSS للعناصر التي حذفت من التضمينات."
|
||||
embed_classname_whitelist: "اسماء اصناف المظاهر الجمالية المسموح بها"
|
||||
feed_polling_enabled: "استورد المشاركات عبر RSS/ATOM"
|
||||
feed_polling_url: "رابط مغذي RSS/ATOM للزحف"
|
||||
save: "أحفظ الإعدادات المضمنة"
|
||||
permalink:
|
||||
title: "الرابط الثابت"
|
||||
|
|
|
@ -1750,7 +1750,6 @@ be:
|
|||
embed_by_username: "Імя карыстальніка для стварэння тэмы"
|
||||
embed_post_limit: "Максімальную колькасць паведамленняў для ўстаўкі"
|
||||
embed_classname_whitelist: "Дазволеныя імёны класаў CSS"
|
||||
feed_polling_enabled: "Імпартаваць паведамленні праз RSS"
|
||||
permalink:
|
||||
title: "Сталыя спасылкі"
|
||||
url: "URL спасылка"
|
||||
|
|
|
@ -2791,18 +2791,13 @@ bg:
|
|||
category: "Пост в Категорията"
|
||||
add_host: "Добави Хост"
|
||||
settings: "Настройки за Ембедване"
|
||||
feed_settings: "Feed настройки"
|
||||
feed_description: "Чрез RSS/ATOM вие може да подобрите възможностите на Discourse да внедри вашето съдържание."
|
||||
crawling_settings: "Crawler настройки"
|
||||
crawling_description: "Когато Discourse създаде теми за вашите мнения и ако RSS / ATOM емисия не присъства, тя ще се опита да направи разбор на съдържанието от вашия HTML. Понякога това може да бъде предизвикателство за извличане на съдържанието ви, така че ние предоставяме възможността да се определи като CSS правила и да се направи екстракцията по-лесно."
|
||||
embed_by_username: "Потребител за създаване на темата"
|
||||
embed_post_limit: "Максимален брой публикации за вграждане."
|
||||
embed_username_key_from_feed: "Ключ за изтегляне на discourse потребителя от feed-а"
|
||||
embed_truncate: "Изтрий вградените постове"
|
||||
embed_whitelist_selector: "Избор на CSS елементи които са разрешени за вграждане"
|
||||
embed_blacklist_selector: "Избор на CSS елементи които не са разрешени за вграждане"
|
||||
feed_polling_enabled: "Внеси постове чреч RSS/ATOM"
|
||||
feed_polling_url: "URL адрес на RSS/ATOM връзката"
|
||||
save: "Запамети настройките за вграждане"
|
||||
permalink:
|
||||
title: "Постоянни адреси"
|
||||
|
|
|
@ -4104,15 +4104,12 @@ bs_BA:
|
|||
category: "Post u kategoriju"
|
||||
add_host: "Dodaj host"
|
||||
settings: "Postavke ugrađivanja"
|
||||
feed_settings: "Postavke feeda"
|
||||
crawling_settings: "Postavke Crawlera"
|
||||
embed_title_scrubber: "Regular expression korišten za čistku naslova objava"
|
||||
embed_truncate: "Skrati embedovane objave"
|
||||
embed_whitelist_selector: "CSS selector za elemente koji su dozvoljeni u embeds"
|
||||
embed_blacklist_selector: "CSS selector za elemente koji su odstranjeni sa embeds"
|
||||
embed_classname_whitelist: "Dopuštena CSS class imena"
|
||||
feed_polling_enabled: "Ubaci objave preko RSS/ATOM"
|
||||
feed_polling_url: "URL ili RSS/ATOM feed za crawl"
|
||||
save: "Sačuvaj Embedding postavke"
|
||||
permalink:
|
||||
title: "Permalink-ovi"
|
||||
|
|
|
@ -4131,21 +4131,15 @@ ca:
|
|||
category: "Publica en la categoria"
|
||||
add_host: "Afegeix amfitrió"
|
||||
settings: "Configuració d'incrustacions"
|
||||
feed_settings: "Configuració de sindicació"
|
||||
feed_description: "Si proporcioneu una sindicació RSS/ATOM al vostre lloc web, millorareu la capacitat de Discourse per a importar els vostres continguts."
|
||||
crawling_settings: "Configuració del rastrejador"
|
||||
crawling_description: "Quan Discourse crea temes per a les vostres publicacions, si no hi ha sindicació RSS/ATOM, es provarà d'analitzar-ne els continguts a partir del vostre HTML. A vegades pot ser complicat extraure el vostre contingut, i per això oferim la possibilitat d'especificar regles CSS per a fer més fàcil l'extracció."
|
||||
embed_by_username: "Nom d'usuari per a crear un tema"
|
||||
embed_post_limit: "Nombre màxim de publicacions que s'incrusten "
|
||||
embed_username_key_from_feed: "Clau per a llevar el nom d'usuari de Discourse de la sindicació"
|
||||
embed_title_scrubber: "Expressió regular emprada per a depurar el títol de les publicacions"
|
||||
embed_truncate: "Trunca les publicacions incrustades"
|
||||
embed_whitelist_selector: "Selector de CSS per a elements permesos en les incrustacions"
|
||||
embed_blacklist_selector: "Selector de CSS per a elements que han estat eliminats de les incrustacions"
|
||||
embed_classname_whitelist: "Noms permesos de classes de CSS"
|
||||
feed_polling_enabled: "Importa publicacions amb RSS/ATOM"
|
||||
feed_polling_url: "URL de la sindicació RSS/ATOM per a rastrejar"
|
||||
feed_polling_frequency_mins: "Freqüència del mostratge del canal (en minuts)"
|
||||
save: "Desa la configuració d'incrustacions"
|
||||
permalink:
|
||||
title: "Enllaços permanents"
|
||||
|
|
|
@ -3687,21 +3687,15 @@ cs:
|
|||
category: "Příspěvek do kategorie"
|
||||
add_host: "Přidat host"
|
||||
settings: "Nastavení zabudování"
|
||||
feed_settings: "Nastavení odebírání"
|
||||
feed_description: "Poskytování RSS/ATOM zdroje pro vaše stránky pomůže zlepšit schopnost Discoursu importovat váš obsah."
|
||||
crawling_settings: "Nastavení procházení"
|
||||
crawling_description: " Discourse vytvoří téma pro tvůj příspěvek, pokud není k dispozici žádný RSS/ATOM zdroj, pokusí se o rozbor vašeho obsahu mimo vaše HTML. Občas může být náročné vybírat obsah, takže jsme schopní upřesnit CSS pravidla, abychom usnadnili vytažení."
|
||||
embed_by_username: "Uživatelské jméno pro vytvářéní témat"
|
||||
embed_post_limit: "Maximální počet příspěvků k zabudování"
|
||||
embed_username_key_from_feed: "Klíč pro smazání uživatelského jména z feedu"
|
||||
embed_title_scrubber: "Běžný výraz užívaný k vyčištění názvů příspěvků"
|
||||
embed_truncate: "Useknout zabudované příspěvky"
|
||||
embed_whitelist_selector: "Volba CSS pro prvky, které jsou povoleny ve vložení."
|
||||
embed_blacklist_selector: "Volba CSS pro prvky, které jsou odstraněny z vložení."
|
||||
embed_classname_whitelist: "Povolená jména CSS tříd"
|
||||
feed_polling_enabled: "Importovat příspěvky pomocí RSS/ATOM"
|
||||
feed_polling_url: "URL adresa RSS/ATOM kanálu pro procházení"
|
||||
feed_polling_frequency_mins: "Frekvece feed pollingu (v minutách)"
|
||||
save: "Uložit nastavení zabudování"
|
||||
permalink:
|
||||
title: "Trvalé odkazy"
|
||||
|
|
|
@ -4069,21 +4069,15 @@ da:
|
|||
category: "Opret i kategorien"
|
||||
add_host: "Tilføj server"
|
||||
settings: "Indlejrings-indstillinger"
|
||||
feed_settings: "Feed-indstillinger"
|
||||
feed_description: "Hvis du angiver et RSS/ATOM-feed for dit site, kan det forbedre Discourses mulighed for at importere dit indhold."
|
||||
crawling_settings: "Robot-indstillinger"
|
||||
crawling_description: "Når Discourse opretter emner for dine indlæg, og der ikke er noget RSS/ATOM-feed, vil den forsøge at parse dit indhold ud fra din HTML. Det kan nogengange være en udfordring at udtrække dit indhold, så vi giver mulighed for at specificere CSS-regler for at gøre udtræk lettere."
|
||||
embed_by_username: "Brugernavn for oprettelse af emne"
|
||||
embed_post_limit: "Maksimalt antal indlæg der kan indlejres."
|
||||
embed_username_key_from_feed: "Nøgle til at udtrække discourse-brugernavn fra feed"
|
||||
embed_title_scrubber: "Regular expression er brugt til at gøre titler pæne på indlæg"
|
||||
embed_truncate: "Beskær de indlejrede indlæg"
|
||||
embed_whitelist_selector: "CSS-selektorer for elementer der er tilladte i indlejringer"
|
||||
embed_blacklist_selector: "CSS-selektorer for elementer der fjernes fra indlejringer"
|
||||
embed_classname_whitelist: "Tillad CSS class names"
|
||||
feed_polling_enabled: "Importer indlæg via RSS/ATOM"
|
||||
feed_polling_url: "URL på RSS/ATOM feed der skal kravles"
|
||||
feed_polling_frequency_mins: "Frekvens af 'feed polling' (i minutter)"
|
||||
save: "Gem indlejrings-indstillinger"
|
||||
permalink:
|
||||
title: "Permalinks"
|
||||
|
|
|
@ -4111,21 +4111,15 @@ de:
|
|||
category: "In Kategorie Beitrag schreiben"
|
||||
add_host: "Host hinzufügen"
|
||||
settings: "Einbettungseinstellungen"
|
||||
feed_settings: "Feed-Einstellungen"
|
||||
feed_description: "Wenn man RSS/ATOM Feeds für eine Website zur Verfügung stellt, können sich die Möglichkeiten des Imports verbessern. "
|
||||
crawling_settings: "Crawler-Einstellungen"
|
||||
crawling_description: "Wenn Discourse Themen für deine Beiträge erstellt wird es falls kein RSS/ATOM-Feed verfügbar ist versuchen, den Inhalt aus dem HTML-Code zu extrahieren. Dies ist teilweise schwierig, weshalb hier CSS-Regeln angegeben werden können, die die Extraktion erleichtern."
|
||||
embed_by_username: "Benutzername für Beitragserstellung"
|
||||
embed_post_limit: "Maximale Anzahl der Beiträge, welche eingebettet werden"
|
||||
embed_username_key_from_feed: "Schlüssel, um Discourse-Benutzernamen aus Feed zu ermitteln."
|
||||
embed_title_scrubber: "Regulärer Ausdruck (Regex) um den Titel eines Beitrags zu bereinigen"
|
||||
embed_truncate: "Kürze die eingebetteten Beiträge"
|
||||
embed_whitelist_selector: "CSS Selektor für Elemente, die in Einbettungen erlaubt sind."
|
||||
embed_blacklist_selector: "CSS Selektor für Elemente, die in Einbettungen entfernt werden."
|
||||
embed_classname_whitelist: "Erlaubte CSS-Klassen"
|
||||
feed_polling_enabled: "Beiträge über RSS/ATOM importieren"
|
||||
feed_polling_url: "URL des RSS/ATOM Feeds für den Import"
|
||||
feed_polling_frequency_mins: "Häufigkeit der Feed-Abfrage (in Minuten)"
|
||||
save: "Einbettungseinstellungen speichern"
|
||||
permalink:
|
||||
title: "Permanentlinks"
|
||||
|
|
|
@ -3163,21 +3163,15 @@ el:
|
|||
category: "Ανάρτηση στην Κατηγορία"
|
||||
add_host: "Προσθήκη host"
|
||||
settings: "Ρυθμίσεις Ενσωμάτωσης"
|
||||
feed_settings: "Ρυθμίσεις Τροφοδοσίας"
|
||||
feed_description: "Με το να συμπεριλαμβάνετε ένα RSS/ATOM feed για τον ιστότοπό σας βελτιώνετε την δυνατότητα του Discourse να εισάγει τα περιεχόμενά σας. "
|
||||
crawling_settings: "Ρυθμίσεις Crawler "
|
||||
crawling_description: "Όταν η ιστοσελίδα δημιουργεί νήματα για τις αναρτήσεις σου, άν δεν υπάρχει RSS/ATOM feed θα προσπαθήσει να αναλύσει το περιεχόμενο του HTML σου. Κάποιες φορές μπορεί να αποτελεί πρόκληση το να εξάγει το περιεχόμενο σου, έτσι σου παρέχουμε την ικανότητα να προσδιορίσεις τα CSS rules για να κάνεις την εξαγωγή ευκολότερη."
|
||||
embed_by_username: "Όνομα χρήστη για δημιουργία νήματος"
|
||||
embed_post_limit: "Μέγιστος αριθμός αναρτήσεων για συγχώνευση"
|
||||
embed_username_key_from_feed: "Κλειδί για λήψη του ονόματος χρήστη από το feed"
|
||||
embed_title_scrubber: "Regular expression που χρησιμοποιείται για την λήψη των τίτλων των αναρτήσεων"
|
||||
embed_truncate: "Truncate the embedded posts"
|
||||
embed_whitelist_selector: "CSS selector για στοιχεία που επιτρέπονται στα συγχωνευμένα"
|
||||
embed_blacklist_selector: "CSS selector για στοιχεία που έχουν απομακρυνθεί από τα συγχωνευμένα"
|
||||
embed_classname_whitelist: "Επιτρεπόμενα CSS class names"
|
||||
feed_polling_enabled: "Εισαγωγή αναρτήσεων μέσω RSS/ATOM"
|
||||
feed_polling_url: "URL of RSS/ATOM feed to crawl"
|
||||
feed_polling_frequency_mins: "Συχνότητα του feed polling (σε λεπτά)"
|
||||
save: "Αποθήκευση των ρυθμίσεων Embedding "
|
||||
permalink:
|
||||
title: "Permalinks"
|
||||
|
|
|
@ -4434,22 +4434,16 @@ en:
|
|||
category: "Post to Category"
|
||||
add_host: "Add Host"
|
||||
settings: "Embedding Settings"
|
||||
feed_settings: "Feed Settings"
|
||||
feed_description: "Providing an RSS/ATOM feed for your site can improve Discourse's ability to import your content."
|
||||
crawling_settings: "Crawler Settings"
|
||||
crawling_description: "When Discourse creates topics for your posts, if no RSS/ATOM feed is present it will attempt to parse your content out of your HTML. Sometimes it can be challenging to extract your content, so we provide the ability to specify CSS rules to make extraction easier."
|
||||
|
||||
embed_by_username: "Username for topic creation"
|
||||
embed_post_limit: "Maximum number of posts to embed"
|
||||
embed_username_key_from_feed: "Key to pull discourse username from feed"
|
||||
embed_title_scrubber: "Regular expression used to scrub the title of posts"
|
||||
embed_truncate: "Truncate the embedded posts"
|
||||
embed_whitelist_selector: "CSS selector for elements that are allowed in embeds"
|
||||
embed_blacklist_selector: "CSS selector for elements that are removed from embeds"
|
||||
embed_classname_whitelist: "Allowed CSS class names"
|
||||
feed_polling_enabled: "Import posts via RSS/ATOM"
|
||||
feed_polling_url: "URL of RSS/ATOM feed to crawl"
|
||||
feed_polling_frequency_mins: "Frequency of feed polling (in minutes)"
|
||||
save: "Save Embedding Settings"
|
||||
|
||||
permalink:
|
||||
|
|
|
@ -4132,21 +4132,15 @@ es:
|
|||
category: "Publicar en categoría"
|
||||
add_host: "Añadir host"
|
||||
settings: "Ajustes de insertado"
|
||||
feed_settings: "Ajustes de feed"
|
||||
feed_description: "Discourse podrá importar tu contenido más facilmente si proporcionas un feed RSS/ATOM de tu sitio."
|
||||
crawling_settings: "Ajustes de crawlers"
|
||||
crawling_description: "Cuando Discourse crea temas para tus publicaciones, si no hay un feed RSS/ATOM presente intentará analizar el contenido de tu HTML. A veces puede ser difícil extraer tu contenido, por lo que damos la posibilidad de especificar las reglas CSS para hacer la extracción más fácil."
|
||||
embed_by_username: "Usuario para la creación de temas"
|
||||
embed_post_limit: "Número máximo de publicaciones que se pueden insertar"
|
||||
embed_username_key_from_feed: "Clave para extraer usuario de discourse del feed"
|
||||
embed_title_scrubber: "Expresión regular utilizada para depurar el título de las publicaciones"
|
||||
embed_truncate: "Truncar las publicaciones insertadas"
|
||||
embed_whitelist_selector: "Selector CSS para elementos permitidos en los insertados"
|
||||
embed_blacklist_selector: "Selector CSS para los elementos que se eliminan de los insertados"
|
||||
embed_classname_whitelist: "Clases CSS permitidas"
|
||||
feed_polling_enabled: "Importar publicaciones mediante RSS/ATOM"
|
||||
feed_polling_url: "URL del feed RSS/ATOM para explorar datos"
|
||||
feed_polling_frequency_mins: "Frecuencia del feed de la encuesta (en minutos)"
|
||||
save: "Guardar ajustes de insertado"
|
||||
permalink:
|
||||
title: "Enlaces permanentes"
|
||||
|
|
|
@ -3212,20 +3212,15 @@ et:
|
|||
category: "Postita foorumisse"
|
||||
add_host: "Lisa host"
|
||||
settings: "Sängitamise sätted"
|
||||
feed_settings: "Voo sätted"
|
||||
feed_description: "Oma saidi RSS/ATOM voo ühendamine võib parendada Discourse'i võimet Sinu saidi sisu importida."
|
||||
crawling_settings: "Ämbliku sätted"
|
||||
crawling_description: "Kui Discourse loob Sinu postitustele teemasid ja RSS/ATOM voogu ei ole, üritab ta sisu Sinu HTML-st välja sõeluda. Mõnikord on sisu eraldamine raskendatud, mistõttu pakume sisu eraldamise hõlbustamiseks võimalust CSS-i reeglid ette anda."
|
||||
embed_by_username: "Kasutajanimi teema loomiseks"
|
||||
embed_post_limit: "Maksimaalne postituste arv, mida sängitada"
|
||||
embed_username_key_from_feed: "Võti discourse kasutajanime eraldamiseks voost"
|
||||
embed_title_scrubber: "Regex postituste päiste puhastamiseks"
|
||||
embed_truncate: "Lühenda sängitatud postitused"
|
||||
embed_whitelist_selector: "CSS valik elementidele, mida lubada sängitamistes"
|
||||
embed_blacklist_selector: "CSS valik elementidele, mida eemaldada sängitamistes"
|
||||
embed_classname_whitelist: "CSS klasside lubatud nimed"
|
||||
feed_polling_enabled: "Impordi postitused RSS/ATOM'i kaudu"
|
||||
feed_polling_url: "URL või RSS/ATOM voog, mida kududa"
|
||||
save: "Salvesta sängitamise sätted"
|
||||
permalink:
|
||||
title: "Püsiviited"
|
||||
|
|
|
@ -3831,21 +3831,15 @@ fa_IR:
|
|||
category: "ارسال به دسته بندی"
|
||||
add_host: "اضافه کردن میزبان"
|
||||
settings: "تنظیمات جاسازی"
|
||||
feed_settings: "تنظیمات خوراک"
|
||||
feed_description: "اضافه کردن یک خوراک RSS/ATOM به وبسایت باعث افزایش توانایی Discourse برای وارد کردن محتوای شما میشود."
|
||||
crawling_settings: "تنظیمات خزنده"
|
||||
crawling_description: "وقتی که Discourse موضوعاتی برای ارسال های شما ایجاد میکند, اگر هیچ خوراک RSS/ATOM موجود نبود سعی میکند که محتوای شما را از HTML تان تجزیه کند. گاهی اوقات استخراج محتوای شما سخت است, برای همین ما قابلیت تعیین قوانین CSS را میدهیم که استخراج را آسان تر میکند."
|
||||
embed_by_username: "نامکاربری برای ایجاد موضوع"
|
||||
embed_post_limit: "حداکثر تعداد نوشتههایی که میتوان جاساز کرد"
|
||||
embed_username_key_from_feed: "کلیدی برای کشیدن نام کاربری Discourse از خوراک"
|
||||
embed_title_scrubber: "regular expressionی که برای بهینهسازی عنوان نوشته استفاده میشود"
|
||||
embed_truncate: "کوتاه کردن نوشته های جاسازی شده"
|
||||
embed_whitelist_selector: "انتخاب کننده CSS برای المان هایی که اجازه دارند جاسازی شوند"
|
||||
embed_blacklist_selector: "انتخاب کننده CSS برای المان هایی که از جاسازی پاک شده اند"
|
||||
embed_classname_whitelist: " دسترسی به کلاس های CSS"
|
||||
feed_polling_enabled: "وارد کردن نوشتهها توسط RSS/ATOM"
|
||||
feed_polling_url: " پیوند خوراک RSS/ATOM برای خزیدن"
|
||||
feed_polling_frequency_mins: "تعداد دفعات رای گیری خوراک (به دقیقه)"
|
||||
save: "ذخیره تنظیمات کدهای جاساز"
|
||||
permalink:
|
||||
title: " پیوند دائمی"
|
||||
|
|
|
@ -4119,21 +4119,15 @@ fi:
|
|||
category: "Julkaise alueelle"
|
||||
add_host: "Lisää isäntä"
|
||||
settings: "Upotuksen asetukset"
|
||||
feed_settings: "Syötteen asetukset"
|
||||
feed_description: "Tarjoamalla RSS/ATOM syötteen sivustollesi, voit lisätä Discoursen kykyä tuoda sisältöä."
|
||||
crawling_settings: "Crawlerin asetukset"
|
||||
crawling_description: "Kun Discourse aloittaa ketjuja kirjoituksistasi, se yrittää jäsentää kirjoitustesi sisältöä HTML:stä, jos RSS/ATOM-syötettä ei ole tarjolla, Joskus kirjoitusten sisällön poimiminen on haastavaa, joten tarjoamme mahdollisuuden määrittää CSS-sääntöjä sen helpottamiseksi."
|
||||
embed_by_username: "Käyttäjänimi, jonka nimissä ketjut aloitetaan"
|
||||
embed_post_limit: "Upotettavien viestien maksimimäärä"
|
||||
embed_username_key_from_feed: "Avain, jolla erotetaan Discourse-käyttäjänimi syötteestä"
|
||||
embed_title_scrubber: "Säännöllinen lauseke, jolla riisutaan viestien otsikkoja"
|
||||
embed_truncate: "Typistä upotetut viestit"
|
||||
embed_whitelist_selector: "CSS valitsin elementeille, jotka sallitaan upotetuissa viesteissä"
|
||||
embed_blacklist_selector: "CSS valitstin elementeille, jotka poistetaan upotetuista viesteistä"
|
||||
embed_classname_whitelist: "Sallitut CSS luokat"
|
||||
feed_polling_enabled: "Tuo kirjoitukset RSS/ATOM syötteen avulla"
|
||||
feed_polling_url: "RSS/ATOM syötteen URL"
|
||||
feed_polling_frequency_mins: "Syötteen kyselyn taajuus (minuutteina)"
|
||||
save: "Tallenna upotusasetukset"
|
||||
permalink:
|
||||
title: "Ikilinkit"
|
||||
|
|
|
@ -4126,21 +4126,15 @@ fr:
|
|||
category: "Écrire dans la catégorie"
|
||||
add_host: "Ajouter un hôte"
|
||||
settings: "Paramètres d'intégration externe"
|
||||
feed_settings: "Paramètres de flux RSS/ATOM"
|
||||
feed_description: "Fournir un flux RSS/ATOM pour votre site peut améliorer la capacité de Discourse à importer votre contenu."
|
||||
crawling_settings: "Paramètres de robot"
|
||||
crawling_description: "Quand Discourse crée des sujets pour vos messages, si aucun flux RSS/ATOM n'est présent, il essayera d'extraire le contenu à partir du HTML. Parfois, cette extraction peut être difficile alors nous donnons la possibilité de définir des règles CSS pour faciliter l'extraction."
|
||||
embed_by_username: "Pseudo pour création de sujet"
|
||||
embed_post_limit: "Le nombre maximum de messages à intégrer"
|
||||
embed_username_key_from_feed: "Clé pour extraire le pseudo du flux."
|
||||
embed_title_scrubber: "Expression régulière utilisée pour nettoyer le titre des messages"
|
||||
embed_truncate: "Tronquer les messages intégrés"
|
||||
embed_whitelist_selector: "Sélecteur CSS pour les éléments qui seront autorisés dans les contenus intégrés"
|
||||
embed_blacklist_selector: "Sélecteur CSS pour les éléments qui seront interdits dans les contenus intégrés"
|
||||
embed_classname_whitelist: "Classes CSS autorisées"
|
||||
feed_polling_enabled: "Importer les messages via flux RSS/ATOM"
|
||||
feed_polling_url: "URL du flux RSS/ATOM à importer"
|
||||
feed_polling_frequency_mins: "Fréquence de rafraichissement du flux (en minutes)"
|
||||
save: "Sauvegarder les paramètres d'intégration"
|
||||
permalink:
|
||||
title: "Permaliens"
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
# encoding: utf-8
|
||||
#
|
||||
# Never edit this file. It will be overwritten when translations are pulled from Transifex.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://www.transifex.com/projects/p/discourse-org/
|
||||
|
||||
|
@ -2417,18 +2414,13 @@ gl:
|
|||
category: "Publicación a categoría"
|
||||
add_host: "Engadir host"
|
||||
settings: "Axustes para o encaixado"
|
||||
feed_settings: "Axustes das fontes"
|
||||
feed_description: "Dotar dunha fonte RSS/ATOM o teu sitio pode mellorar a capacidade de Discourse para importar o teu contido."
|
||||
crawling_settings: "Axustes do extractor"
|
||||
crawling_description: "Cando o Discourse crea temas para as túas publicacións, se non existe unha fonte RSS/ATOM, tentará analizar o contido do teu HTML. Ás veces pode ser difícil extraer o contido, por iso damos a posibilidade de especificar as regras do CSS para facilitar a extracción."
|
||||
embed_by_username: "Nome do usuario para crear o tema"
|
||||
embed_post_limit: "Número máximo de publicacións a encaixar"
|
||||
embed_username_key_from_feed: "Clave para extraer da fonte o nome do usuario do discourse"
|
||||
embed_truncate: "Truncar as publicacións encaixadas"
|
||||
embed_whitelist_selector: "Selector CSS de elementos permitidos nos encaixados"
|
||||
embed_blacklist_selector: "Selector CSS para elementos retirados nos encaixados"
|
||||
feed_polling_enabled: "Importar publicacións vía RSS/ATOM"
|
||||
feed_polling_url: "URL da fonte RSS/ATOM para facer a extracción"
|
||||
save: "Gardar axustes de encaixado"
|
||||
permalink:
|
||||
title: "Ligazóns permanentes"
|
||||
|
|
|
@ -4395,21 +4395,15 @@ he:
|
|||
category: "פרסם לקטגוריה"
|
||||
add_host: "הוספת שרת"
|
||||
settings: "הגדרות הטמעה"
|
||||
feed_settings: "הגדרות פיד"
|
||||
feed_description: "ציון הזנת RSS/ATOM לאתר שלך יכולה לשפר את היכולת של Discourse לייבא את התוכן שלך."
|
||||
crawling_settings: "הגדרות זחלן"
|
||||
crawling_description: "כאשר Discourse יוצר נושאים חדשים עבור פוסטים שלכם, אם לא קיים RSS/ATOM הוא ינסה לפענח את התוכן מתוך ה HTML שלכם. לפעמים זה מאתגר לחלץ את התכנים שלכם אז אנחנו מספקים את האפשרות להגדיר כללי CSS כדי שהחילוץ יהיה קל יותר."
|
||||
embed_by_username: "שם משתמש ליצירת נושא"
|
||||
embed_post_limit: "מספר מקסימלי של פרסומים להטמעה."
|
||||
embed_username_key_from_feed: "מפתח למשיכת שם המשתמש ב-discourse מהפיד."
|
||||
embed_title_scrubber: "ביטוי רגולרי שמשמש כדי לנקות את הכותרת של פוסטים"
|
||||
embed_truncate: "חיתוך הפרסומים המוטמעים."
|
||||
embed_whitelist_selector: "בוררי CSS לאלמנטים שיותר להטמיע."
|
||||
embed_blacklist_selector: "בוררי CSS לאלמנטים שיוסרו מן ההטמעות."
|
||||
embed_classname_whitelist: "שמות מחלקות CSS מאושרות"
|
||||
feed_polling_enabled: "יבוא פרסומים דרך RSS/ATOM"
|
||||
feed_polling_url: "URL של תזרים RSS/ATOM לזחילה"
|
||||
feed_polling_frequency_mins: "תדירות משיכת תזרים (בדקות)"
|
||||
save: "שמירת הגדרות הטמעה"
|
||||
permalink:
|
||||
title: "קישורים קבועים"
|
||||
|
|
|
@ -3793,21 +3793,15 @@ hy:
|
|||
category: "Հրապարակել Կատեգորայում"
|
||||
add_host: "Ավելացնել Հոսթ"
|
||||
settings: "Զետեղման Կարգավորումներ"
|
||||
feed_settings: "Լրահոսի Կարգավորումները"
|
||||
feed_description: "RSS/ATOM լրահոսի տրամադրումը Ձեր կայքի համար կարող է բարելավել Ձեր բովանդակության ներբեռնման Discourse-ի հնարավորությունը:"
|
||||
crawling_settings: "Տվյալների հավաքագրիչի (crawler) կարգավորումներ"
|
||||
crawling_description: "Երբ Discourse -ը ստեղծում է թեմաներ Ձեր գրառումների համար, եթե ոչ մի RSS/ATOM լրահոս առկա չէ, այն կփորձի դուրս բերել Ձեր բովանդակությունը Ձեր HTML -ից: Երբեմն Ձեր բովանդակությունը արտահանելը կարող է դժվար լինել, այդ պատճառով մենք տրամադրում ենք CSS կանոններ տրամադրելու հնարավորություն՝ արտահանումը ավելի հեշտացնելու համար:"
|
||||
embed_by_username: "Օգտանուն թեմայի ստեղծման համար"
|
||||
embed_post_limit: "Զետեղման ենթակա գրառումների առավելագույն քանակը"
|
||||
embed_username_key_from_feed: "Լրահոսից discourse օգտանվան դուրսբերման բանալի"
|
||||
embed_title_scrubber: "Գրառումների վերնագրի զտման համար օգտագործվող regular expression"
|
||||
embed_truncate: "Կրճատել զետեղված գրառումները"
|
||||
embed_whitelist_selector: "CSS սելեկտոր այն տարրերի համար, որոնք թույլատրված են զետեղումների մեջ"
|
||||
embed_blacklist_selector: "CSS սելեկտոր այն տարրերի համար, որոնք հեռացվում են զետեղումներից"
|
||||
embed_classname_whitelist: "Թույլատրված CSS կլասների անվանումներ"
|
||||
feed_polling_enabled: "Ներմուծել գրառումներ RSS/ATOM-ի միջոցով"
|
||||
feed_polling_url: "RSS/ATOM լրահոսի URL"
|
||||
feed_polling_frequency_mins: "Լրահոսի հարցման հաճախականությունը (րոպեներով)"
|
||||
save: "Պահպանել Զետեղման Կարգավորումները"
|
||||
permalink:
|
||||
title: "Մշտահղումներ"
|
||||
|
|
|
@ -4037,21 +4037,15 @@ it:
|
|||
category: "Pubblica nella Categoria"
|
||||
add_host: "Aggiungi Host"
|
||||
settings: "Impostazioni di incorporo"
|
||||
feed_settings: "Impostazioni Feed"
|
||||
feed_description: "Fornire un feed RSS/ATOM al tuo sito può migliorare la capacità di Discourse di importare i tuoi contenuti."
|
||||
crawling_settings: "Impostazioni Crawler"
|
||||
crawling_description: "Quando Discourse crea gli argomenti per i tuoi messaggi, se non è presente nessun feed RSS/ATOM, cercherà di estrarre il contenuto dal codice HTML. Il contenuto può risultate a volte ostico da estrarre e, per semplificare il processo, forniamo la possibilità di specificare le regole CSS."
|
||||
embed_by_username: "Nome utente per la creazione dell'argomento"
|
||||
embed_post_limit: "Numero massimo di messaggi da includere"
|
||||
embed_username_key_from_feed: "Chiave per ottenere il nome utente discourse dal feed"
|
||||
embed_title_scrubber: "Espressione regolare usata per ripulire i titoli dei messaggi"
|
||||
embed_truncate: "Tronca i messaggi incorporati"
|
||||
embed_whitelist_selector: "Selettore CSS per gli elementi da permettere negli embed"
|
||||
embed_blacklist_selector: "Selettore CSS per gli elementi da rimuovere dagli embed"
|
||||
embed_classname_whitelist: "Classi CSS permesse"
|
||||
feed_polling_enabled: "Importa i messaggi via RSS/ATOM"
|
||||
feed_polling_url: "URL del feed RSS/ATOM da recuperare"
|
||||
feed_polling_frequency_mins: "Frequenza del feed polling (in minuti)"
|
||||
save: "Salva Impostazioni Inclusione"
|
||||
permalink:
|
||||
title: "Collegamenti permanenti"
|
||||
|
|
|
@ -3158,14 +3158,10 @@ ja:
|
|||
category: "カテゴリへ投稿"
|
||||
add_host: "ホストの追加"
|
||||
settings: "埋め込みの設定"
|
||||
feed_settings: "フィード設定"
|
||||
embed_truncate: "埋め込まれた投稿を削除する"
|
||||
embed_whitelist_selector: "埋め込みで許可される要素のCSSセレクタ"
|
||||
embed_blacklist_selector: "埋め込みから削除された要素のCSSセレクタ"
|
||||
embed_classname_whitelist: "許可されたCSSクラス名"
|
||||
feed_polling_enabled: "RSS / ATOM経由で投稿をインポートする"
|
||||
feed_polling_url: "クロールするRSS / ATOMフィードのURL"
|
||||
feed_polling_frequency_mins: "フィードの更新間隔 (分)"
|
||||
save: "埋め込みの設定を保存"
|
||||
permalink:
|
||||
title: "パーマリンク"
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# encoding: utf-8
|
||||
#
|
||||
# Never edit this file. It will be overwritten when translations are pulled from Transifex.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://www.transifex.com/projects/p/discourse-org/
|
||||
|
@ -3326,21 +3323,15 @@ ko:
|
|||
category: "카테고리에 게시"
|
||||
add_host: "Host 추가"
|
||||
settings: "삽입(Embedding) 설정"
|
||||
feed_settings: "피드 설정"
|
||||
feed_description: "당신 사이트의 RSS/ATOM 피드를 알려주시면 Discourse가 그 사이트 컨텐트를 더 잘 가져올 수 있습니다."
|
||||
crawling_settings: "크롤러 설정"
|
||||
crawling_description: "When Discourse creates topics for your posts, if no RSS/ATOM feed is present it will attempt to parse your content out of your HTML. Sometimes it can be challenging to extract your content, so we provide the ability to specify CSS rules to make extraction easier."
|
||||
embed_by_username: "토픽을 만들 때 사용할 아이디"
|
||||
embed_post_limit: "삽입(embed)할 글 최대갯수"
|
||||
embed_username_key_from_feed: "피드에서 discourse usename을 꺼내오기 위한 키(key)"
|
||||
embed_title_scrubber: "게시글의 제목을 긁어오기 위해 정규표현식이 사용되었습니다"
|
||||
embed_truncate: "임베드된 글 뒷부분 잘라내기"
|
||||
embed_whitelist_selector: "CSS selector for elements that are allowed in embeds"
|
||||
embed_blacklist_selector: "CSS selector for elements that are removed from embeds"
|
||||
embed_classname_whitelist: "허용된 CSS 클래스"
|
||||
feed_polling_enabled: "RSS/ATOM으로 글 가져오기"
|
||||
feed_polling_url: "긁어올 RSS/ATOM 피드 URL"
|
||||
feed_polling_frequency_mins: "피드 폴링 빈도(분당)"
|
||||
save: "삽입(Embedding) 설정 저장하기"
|
||||
permalink:
|
||||
title: "고유링크"
|
||||
|
|
|
@ -3151,19 +3151,14 @@ lt:
|
|||
category: "Rašyti Kategorijoje"
|
||||
add_host: "Pridėti Šeimininką"
|
||||
settings: "Įterpti Nustatymus"
|
||||
feed_settings: "Naujienų nustatymai"
|
||||
feed_description: "Providing an RSS/ATOM feed for your site can improve Discourse's ability to import your content."
|
||||
crawling_settings: "Crawler Nustatymai"
|
||||
crawling_description: "When Discourse creates topics for your posts, if no RSS/ATOM feed is present it will attempt to parse your content out of your HTML. Sometimes it can be challenging to extract your content, so we provide the ability to specify CSS rules to make extraction easier."
|
||||
embed_by_username: "Vartotojo vardas skirtas temų sukūrimui"
|
||||
embed_post_limit: "Maskimalus įterpiamų įrašų skaičius"
|
||||
embed_username_key_from_feed: "Key to pull discourse username from feed"
|
||||
embed_truncate: "Truncate the embedded posts"
|
||||
embed_whitelist_selector: "CSS selector for elements that are allowed in embeds"
|
||||
embed_blacklist_selector: "CSS selector for elements that are removed from embeds"
|
||||
embed_classname_whitelist: "Leidžiamos CSS klasės"
|
||||
feed_polling_enabled: "Importuoti įrašus per RSS/ATOM"
|
||||
feed_polling_url: "URL of RSS/ATOM feed to crawl"
|
||||
save: "Išsaugoti Įterpimo Nustatymus"
|
||||
permalink:
|
||||
title: "Laikinos Nuorodos"
|
||||
|
|
|
@ -3016,21 +3016,15 @@ lv:
|
|||
category: "Ieraksti kategorijā"
|
||||
add_host: "Pievienot lietotāju"
|
||||
settings: "Ierakstu iestatījumi"
|
||||
feed_settings: "Ierakstu iestatījumi"
|
||||
feed_description: "(Providing an RSS/ATOM feed for your site can improve Discourse's ability to import your content.)"
|
||||
crawling_settings: "(Crawler Settings)"
|
||||
crawling_description: "(Kad diskurss rada tēmas par savu amatu, ja nav RSS / ATOM padeves ir klāt tā mēģinās parsēt jūsu saturu no jūsu HTML. Dažreiz tas var būt grūti, lai iegūtu savu saturu, tāpēc mēs piedāvājam iespēju noteikt CSS noteikumus, lai padarītu ieguve vieglāk.)"
|
||||
embed_by_username: "Lietotājvārds tēmas radīšanai"
|
||||
embed_post_limit: "Maksimālais iegulto ierakstu skaits"
|
||||
embed_username_key_from_feed: "(Key to pull discourse username from feed)"
|
||||
embed_title_scrubber: "(Regular expression used to scrub the title of posts)"
|
||||
embed_truncate: "Saīsināt iegultos ierakstus"
|
||||
embed_whitelist_selector: "(CSS selector for elements that are allowed in embeds)"
|
||||
embed_blacklist_selector: "(CSS selector for elements that are removed from embeds)"
|
||||
embed_classname_whitelist: "Atļautie CSS nosaukumi (Allowed CSS class names)"
|
||||
feed_polling_enabled: "Importēt ierakstus ar RSS/ATOM"
|
||||
feed_polling_url: "(URL of RSS/ATOM feed to crawl)"
|
||||
feed_polling_frequency_mins: "Aptauju biežums (minūtēs)"
|
||||
save: "Saglabāt iegulšanas iestatījumus"
|
||||
permalink:
|
||||
title: "Patstāvīgā saite"
|
||||
|
|
|
@ -3568,21 +3568,15 @@ nb_NO:
|
|||
category: "Legg til innlegg i kategori"
|
||||
add_host: "Legg til vert"
|
||||
settings: "Innbyggingsinnstillinger"
|
||||
feed_settings: "Informasjonskanals-innstillinger"
|
||||
feed_description: "Å tilby en RSS/ATOM-strøm for nettstedet ditt kan forbedre Discourses evne til å importere innholdet ditt."
|
||||
crawling_settings: "Innstillinger for søkeroboter"
|
||||
crawling_description: "Dersom Discourse oppretter emner for innleggene dine og ingen RSS/ATOM-informasjonskanal finnes, vil det prøve å tolke innholdet ditt ut fra HTML-koden din. Noen ganger kan det være utfordrende å hente ut innhold, så muligheten til å oppgi CSS-regler er der for å gjøre uthentingen enklere."
|
||||
embed_by_username: "Brukernavn for opprettelse av emne"
|
||||
embed_post_limit: "Maksimalt antall innlegg å bygge inn"
|
||||
embed_username_key_from_feed: "Nøkkel for å hente Discourse-brukernavn fra informasjonskanal"
|
||||
embed_title_scrubber: "Regulære uttrykk brukt til å finne og korrigere feil i titler"
|
||||
embed_truncate: "Forkort de innebygde innleggene"
|
||||
embed_whitelist_selector: "CSS-velger for elementer som tillates i innbygginger"
|
||||
embed_blacklist_selector: "CSS-velger for element som fjernes fra innbygginger"
|
||||
embed_classname_whitelist: "Tillatte navn for CSS-klasser"
|
||||
feed_polling_enabled: "Importer innlegg via RSS/ATOM"
|
||||
feed_polling_url: "Nettadresse for RSS/ATOM-informasjonskanal å gjennomgangssøke"
|
||||
feed_polling_frequency_mins: "Frekvens for strømspørring (i minutter)"
|
||||
save: "Lagre innbyggingsinnstillinger"
|
||||
permalink:
|
||||
title: "Permalenker"
|
||||
|
|
|
@ -4149,21 +4149,15 @@ nl:
|
|||
category: "Bericht naar categorie"
|
||||
add_host: "Host toevoegen"
|
||||
settings: "Inbeddingsinstellingen"
|
||||
feed_settings: "Feedinstellingen"
|
||||
feed_description: "Een RSS- of ATOM-feed van uw website kan het importeren van inhoud naar Discourse verbeteren."
|
||||
crawling_settings: "Crawlerinstellingen"
|
||||
crawling_description: "Als Discourse topics voor uw berichten aanmaakt en er geen RSS/ATOM-feed aanwezig is, wordt geprobeerd uw inhoud vanuit HTML te parsen. Omdat het soms een uitdaging kan zijn om inhoud te extraheren, bieden we de mogelijkheid voor het opgeven van CSS-regels om de extractie makkelijker te maken."
|
||||
embed_by_username: "Gebruikersnaam voor het maken van topics"
|
||||
embed_post_limit: "Maximale aantal berichten om in te bedden"
|
||||
embed_username_key_from_feed: "Sleutel om Discourse-gebruikersnaam uit feed te halen"
|
||||
embed_title_scrubber: "Reguliere expressie voor het afleiden van de titels van berichten"
|
||||
embed_truncate: "Ingebedde berichten inkorten"
|
||||
embed_whitelist_selector: "CSS-selector voor elementen die bij inbedding worden toegestaan"
|
||||
embed_blacklist_selector: "CSS-selector voor elementen die bij inbedding worden verwijderd"
|
||||
embed_classname_whitelist: "Toegestane CSS-klassenamen"
|
||||
feed_polling_enabled: "Berichten importeren via RSS/ATOM"
|
||||
feed_polling_url: "URL van RSS/ATOM-feed voor crawlen"
|
||||
feed_polling_frequency_mins: "Hoe vaak feed verversen (in minuten)"
|
||||
save: "Inbeddingsinstellingen opslaan"
|
||||
permalink:
|
||||
title: "Permalinks"
|
||||
|
|
|
@ -4027,21 +4027,15 @@ pl_PL:
|
|||
category: "Publikuj w kategorii"
|
||||
add_host: "Dodaj host"
|
||||
settings: "Ustawienia osadzania"
|
||||
feed_settings: "Ustawienia kanału"
|
||||
feed_description: "Wprowadzenie kanału RSS/ATOM twojego serwisu ułatwia import treści."
|
||||
crawling_settings: "Ustawienia crawlera"
|
||||
crawling_description: "Gdy Discourse tworzy tematy reprezentujące twoje wpisy, a kanał RSS/ATOM nie został podany, treść będzie pobierana poprzez parsowanie HTML. Proces ten może okazać się trudny dlatego umożliwiamy podanie dodatkowych reguł CSS, które usprawniają proces parsowania."
|
||||
embed_by_username: "Użytkownik tworzący tematy"
|
||||
embed_post_limit: "Maksymalna ilość osadzanych wpisów "
|
||||
embed_username_key_from_feed: "Klucz używany do pobrania nazwy użytkownika z kanału"
|
||||
embed_title_scrubber: "Wyrażenie regularne używane do czyszczenia tytuł postów"
|
||||
embed_truncate: "Skracaj treść osadzanych wpisów"
|
||||
embed_whitelist_selector: "Selektor CSS elementów jakie mogą być osadzane"
|
||||
embed_blacklist_selector: "Selektor CSS elementów jakie są usuwane podczas osadzania"
|
||||
embed_classname_whitelist: "Dozwolone nazwy klas CSS"
|
||||
feed_polling_enabled: "Importowanie wpisów via RSS/ATOM"
|
||||
feed_polling_url: "URL kanału RSS/ATOM"
|
||||
feed_polling_frequency_mins: "Częstotliwość aktualizacji strony (w minutach)"
|
||||
save: "Zapisz"
|
||||
permalink:
|
||||
title: "Permalinki"
|
||||
|
|
|
@ -3335,20 +3335,15 @@ pt:
|
|||
category: "Publicação para Categoria"
|
||||
add_host: "Adicionar Servidor"
|
||||
settings: "Configurações de Incorporação"
|
||||
feed_settings: "Configurações do Feed"
|
||||
feed_description: "Fornecer um fed RSS/ATOM para o seu sítio pode melhorar a habilidade do Discourse de importar o seu conteúdo."
|
||||
crawling_settings: "Configurações de Rastreio"
|
||||
crawling_description: "Quando o Discourse cria tópicos para as suas publicações, se nenhum feed RSS/ATOM está presente o Discourse irá tentar analisar o seu conteúdo fora do seu HTML. Algumas vezes pode ser um desafio extrair o seu conteúdo, por isso temos a habilidade de especificar regras CSS para tornar a extração mais fácil. "
|
||||
embed_by_username: "Nome de uilizador para criação do tópico"
|
||||
embed_post_limit: "Número máximo de publicações a incorporar"
|
||||
embed_username_key_from_feed: "Chave para puxar o nome de utilizador discouse do feed"
|
||||
embed_title_scrubber: "Expressão regular usada para filtrar o título de publicações"
|
||||
embed_truncate: "Truncar as publicações incorporadas"
|
||||
embed_whitelist_selector: "Seletor CSS para elementos que são permitidos nas incorporações"
|
||||
embed_blacklist_selector: "Seletor CSS para elementos que são removidos das incorporações"
|
||||
embed_classname_whitelist: "Nomes de classes CSS permitidas"
|
||||
feed_polling_enabled: "Importar publicações através de RSS/ATOM"
|
||||
feed_polling_url: "URL do feed RSS/ATOM para rastreio"
|
||||
save: "Guardar Configurações de Incorporação"
|
||||
permalink:
|
||||
title: "Hiperligações Permanentes"
|
||||
|
|
|
@ -4050,21 +4050,15 @@ pt_BR:
|
|||
category: "Postar na Categoria"
|
||||
add_host: "Adicionar Host"
|
||||
settings: "Configurações de Incorporação"
|
||||
feed_settings: "Configurações de Feed"
|
||||
feed_description: "Prover um feed de RSS/ATOM de seu site pode melhorar a habilidade do Discourse para importar seu conteúdo."
|
||||
crawling_settings: "Configurações de Crawler"
|
||||
crawling_description: "Quando Discourse cria tópicos para suas postagens, se nenhum feed RSS/ATOM estiver presente ele tentar recuperar o conteúdo do seu HTML. Algumas vezes isto pode sem um desafio, então provemos a habilidade de prover as regras específicas de CSS para fazer a extração mais fácil."
|
||||
embed_by_username: "Nome de usuário para criação do tópico"
|
||||
embed_post_limit: "Número máximo de postagens para incorporar"
|
||||
embed_username_key_from_feed: "Chave para obter o nome de usuário no discourse do feed"
|
||||
embed_title_scrubber: "Expressão regular usada para higienizar o título das publicações"
|
||||
embed_truncate: "Truncar as postagens incorporadas"
|
||||
embed_whitelist_selector: "Seletor de CSS para elementos que são permitidos na incorporação"
|
||||
embed_blacklist_selector: "Seletor de CSS para elementos que são removidos da incorporação"
|
||||
embed_classname_whitelist: "Nomes de classes CSS permitidas"
|
||||
feed_polling_enabled: "Importar postagens via RSS/ATOM"
|
||||
feed_polling_url: "URL do feed RSS/ATOM para pesquisar"
|
||||
feed_polling_frequency_mins: "Frequência de pesquisa de feeds (em minutos)"
|
||||
save: "Salvar Configurações de Incorporação"
|
||||
permalink:
|
||||
title: "Links permanentes"
|
||||
|
|
|
@ -3300,20 +3300,15 @@ ro:
|
|||
category: "Postează în categoria"
|
||||
add_host: "Adaugă host"
|
||||
settings: "Setări pentru embeding"
|
||||
feed_settings: "Setări feed"
|
||||
feed_description: "Furnizând un feed RSS/ATOM pentru site-ul tau, poți să îmbunătățești capacitatea Discourse de a-ți importa conținutul."
|
||||
crawling_settings: "Setări roboți de căutare"
|
||||
crawling_description: "Când Discourse creează subiecte pentru postările tale, dacă nu este prezent nici un feed RSS/ATOM, va încerca să extragă conținutul din codul HTML. Uneori pot apărea probleme la extragerea conținutului, așa că îți dăm posibilitatea să specifici regulile CSS pentru a ușura extracția."
|
||||
embed_by_username: "Nume utilizator pentru creare subiect"
|
||||
embed_post_limit: "Numărul maxim de postări de încorporat."
|
||||
embed_username_key_from_feed: "Tastă pentru a retrage nume utilizator discourse din feed"
|
||||
embed_title_scrubber: "Expresie obișnuită pentru a curăța titlurile postărilor"
|
||||
embed_truncate: "Scurtează postările embedded."
|
||||
embed_whitelist_selector: "Selector CSS pentru elemente care nu sunt permise în embeds."
|
||||
embed_blacklist_selector: "Selector CSS pentru elemente care sunt șterse din emebds."
|
||||
embed_classname_whitelist: "Nume de clase CSS permise"
|
||||
feed_polling_enabled: "Importă postări via RSS/ATOM"
|
||||
feed_polling_url: "URL-ul feed-ului RSS/ATOM pentru indexare"
|
||||
save: "Salvați setările pentru embeding"
|
||||
permalink:
|
||||
title: "Adrese permanente"
|
||||
|
|
|
@ -4375,21 +4375,15 @@ ru:
|
|||
category: "Опубликовать в разделе"
|
||||
add_host: "Добавить хост"
|
||||
settings: "Настройки встраивания"
|
||||
feed_settings: "Настройки Фида"
|
||||
feed_description: "Поддержка RSS/ATOM вашим сайтом может улучшить возможности импорта данных."
|
||||
crawling_settings: "Настройки определения"
|
||||
crawling_description: "Если RSS/ATOM не поддерживается, то при создании тем Discourse попытается разобрать содержимое из HTML. В некоторых случаях извлечение содержимого оказывается сложным, поэтому мы предоставляем возможность задавать правила CSS, чтобы сделать извлечение проще."
|
||||
embed_by_username: "Имя пользователя, которое будет использоваться для создания темы"
|
||||
embed_post_limit: "Максимальное количество вложенных сообщений"
|
||||
embed_username_key_from_feed: "Ключ для извлечения пользователя из ленты"
|
||||
embed_title_scrubber: "Регулярное выражение, используемое для очистки заголовка сообщений"
|
||||
embed_truncate: "Обрезать встроенные сообщения."
|
||||
embed_whitelist_selector: "Селекторы CSS которые разрешены для использования."
|
||||
embed_blacklist_selector: "Селекторы CSS которые запрещены для использования."
|
||||
embed_classname_whitelist: "Разрешённые CSS-классы"
|
||||
feed_polling_enabled: "Импорт сообщений через RSS/ATOM"
|
||||
feed_polling_url: "Ссылка на RSS/ATOM"
|
||||
feed_polling_frequency_mins: "Частота опроса ленты (в минутах)"
|
||||
save: "Сохранить настройки встраивания"
|
||||
permalink:
|
||||
title: "Постоянные ссылки"
|
||||
|
|
|
@ -3077,19 +3077,14 @@ sk:
|
|||
category: "Prispievať do kategórií"
|
||||
add_host: "Pridať hostiteľa"
|
||||
settings: "Nastavenia vkladania"
|
||||
feed_settings: "Nastavenie kanálov"
|
||||
feed_description: "Zadaním RSS/ATOM kanála Vašich stránok zlepší schopnosť Discourse vladať Váš obsah."
|
||||
crawling_settings: "Nastavenia vyhľadávača"
|
||||
crawling_description: "Ak Discourse vytvorí tému pre Váš príspevok a neexistuje žiadny RSS/ATOM kanál tak sa pokúsime získať Váš obsah z HTML. Získanie obsahu môže byt niekedy výzva a preto poskytujeme možnosť špecifikovať CSS pravidlá na uľahčenie získania obsahu."
|
||||
embed_by_username: "Používateľské meno pre vytváranie tém"
|
||||
embed_post_limit: "Maximálny počet vložených príspevkov"
|
||||
embed_username_key_from_feed: "Kľúč na získanie používateľského mena discourse z kanála"
|
||||
embed_truncate: "Skrátiť vložené príspevky"
|
||||
embed_whitelist_selector: "CSS selector pre elementy ktoré je možné vkladať"
|
||||
embed_blacklist_selector: "CSS selector pre elementy ktoré nie je možné vkladať"
|
||||
embed_classname_whitelist: "Dovolené názvy CSS tried"
|
||||
feed_polling_enabled: "importovať príspevky cez RSS/ATOM"
|
||||
feed_polling_url: "URL adresa RSS/ATOM kanála na preskúmanie"
|
||||
save: "Uložiť Nastavenia vkladania"
|
||||
permalink:
|
||||
title: "Trvalé odkazy"
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# encoding: utf-8
|
||||
#
|
||||
# Never edit this file. It will be overwritten when translations are pulled from Transifex.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
|
|
|
@ -2927,20 +2927,15 @@ sv:
|
|||
category: "Inlägg till kategori"
|
||||
add_host: "Lägg till värd"
|
||||
settings: "Inbäddningsinställningar"
|
||||
feed_settings: "Flödes-inställningar"
|
||||
feed_description: "Tillhandahållande av RSS/ATOM-flöde på din webbplats kan förbättra Discourse möjlighet att importera ditt innehåll."
|
||||
crawling_settings: "Inställningar för sökrobotar"
|
||||
crawling_description: "När Discourse skapar ämnen för dina inlägg, om det inte finns något RSS/ATOM-flöde närvarande så kommer det att försöka parsa ditt innehåll från din HTML. Ibland är det utmanande att extrahera ditt innehåll, så vi tillhandahåller möjligheten att specifiera CSS-reglerna för att göra extraheringen enklare."
|
||||
embed_by_username: "Användarnamn för skapandet av ämne"
|
||||
embed_post_limit: "Högsta tillåtna antal inlägg att bädda in"
|
||||
embed_username_key_from_feed: "Nyckel för att hämta discourse användarnamn från flöde"
|
||||
embed_title_scrubber: "Reguljära uttryck som används för att hitta och korrigera fel i inläggsrubriken"
|
||||
embed_truncate: "Trunkera de inbäddade inläggen"
|
||||
embed_whitelist_selector: "CSS-väljare för element som tillåts bäddas in"
|
||||
embed_blacklist_selector: "CSS-väljare för element som tas bort från inbäddningar"
|
||||
embed_classname_whitelist: "Tillåtna CSS klassnamn"
|
||||
feed_polling_enabled: "Importera inlägg via RSS/ATOM"
|
||||
feed_polling_url: "URL för RSS/ATOM-flöde att webbsöka"
|
||||
save: "Spara inbäddningsinställningar"
|
||||
permalink:
|
||||
title: "Permalänkar"
|
||||
|
|
|
@ -3290,19 +3290,13 @@ sw:
|
|||
category: "Andika kwenye Kikundi"
|
||||
add_host: "Ongeza Mwenyeji"
|
||||
settings: "Mipangilio iliopachikwa"
|
||||
feed_settings: "Mipangilio ya Taarifa nyingi"
|
||||
feed_description: "Taarifa za RSS/ATOM za tovuti yako zinaweza kusaidia Discourse kuingiza taarifa zako kwa urahisi zaidi."
|
||||
crawling_settings: "Mipangilio ya kutembelea taarifa"
|
||||
crawling_description: "Discourse ikitengeneza mada za machapisho yako, kama hakuna taarifa kutoka kwa RSS/ATOM itajaribu kupata maneno kutoka kwenye HTML yako. Kuna changamoto zinazotokea wakati wa kupata hizo taarifa, tunakuruhusu uchague kanuni za CSS ili upatikanaji wa machapisho uwe rahisi zaidi."
|
||||
embed_by_username: "Jina la mtumiaji kwa ajili ya kutengeneza mada"
|
||||
embed_post_limit: "Kiwango cha Juu cha Kupachika machapisho"
|
||||
embed_username_key_from_feed: "Ufunguo wa kuvuta majina ya watumiaji wa discourse kutoka kwenye taarifa nyingi"
|
||||
embed_title_scrubber: "Neno linalotumika kufuta vichwa vya machapisho"
|
||||
embed_truncate: "Fupisha machapisho yaliyopachikwa"
|
||||
embed_classname_whitelist: "Ruhusu majina ya madarasa ya CSS "
|
||||
feed_polling_enabled: "Ingiza machapisho kupitia RSS/ATOM"
|
||||
feed_polling_url: "Anwani ya mtandao ya taarifa za RSS/ATOM za kutembelea"
|
||||
feed_polling_frequency_mins: "Uchaguzi wa taarifa unarudia mara (ndani ya dakika)"
|
||||
save: "Hifadhi Mipangilio Iliyopachikwa"
|
||||
permalink:
|
||||
title: "Anwani za mtandao"
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# encoding: utf-8
|
||||
#
|
||||
# Never edit this file. It will be overwritten when translations are pulled from Transifex.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://www.transifex.com/projects/p/discourse-org/
|
||||
|
|
|
@ -1945,7 +1945,6 @@ th:
|
|||
category: "โพสไปยังหมวดหมู่"
|
||||
add_host: "เพิ่มโฮส"
|
||||
settings: "การตั้งการการฝั่ง"
|
||||
feed_settings: "การตั้งค่าฟีด"
|
||||
save: "บันทึกการตั้งค่าการฝั่ง"
|
||||
permalink:
|
||||
title: "ลิงค์ถาวร"
|
||||
|
|
|
@ -3863,21 +3863,15 @@ tr_TR:
|
|||
category: "Kategoriye Gönder"
|
||||
add_host: "Sunucu Ekle"
|
||||
settings: "Yerleştirme Ayarları"
|
||||
feed_settings: "Yayın Ayarları"
|
||||
feed_description: "Site için bir RSS/ATOM yayını sağlaman Discourse'un içeriği aktarma kabiliyetini geliştirmesini sağlar."
|
||||
crawling_settings: "Yazı Ayarları"
|
||||
crawling_description: "Discourse gönderilerin için bir konu oluşturduğunda eğer bir RSS/ATOM beslemesi yoksa içeriği HTML'den ayrıştırmaya çalışacaktır. Bazen içeriğini çıkartmak zor olabilir. İçeriğini kolayca çıkartabilmen için CSS kuralları belirtme yeteneği sağlıyoruz."
|
||||
embed_by_username: "Konu oluşturmak için kullanıcı adı"
|
||||
embed_post_limit: "Yerleştirmek için en fazla gönderi sayısı"
|
||||
embed_username_key_from_feed: "Kullanıcı adını yayımdan çıkarmak için anahtar"
|
||||
embed_title_scrubber: "Gönderilerin başlığını temizlemek için kullanılan düzenli ifade"
|
||||
embed_truncate: "Saklı gönderileri kırp"
|
||||
embed_whitelist_selector: "Gömülü olarak izin verilen öğeler için CSS seçici"
|
||||
embed_blacklist_selector: "Gömülmüş öğelerden kaldırılan öğeler için CSS seçici"
|
||||
embed_classname_whitelist: "İzin verilen CSS sınıfı isimleri"
|
||||
feed_polling_enabled: "RSS/ATOM ile gönderileri içe aktar"
|
||||
feed_polling_url: "Taranacak RSS / ATOM yayın URL'si"
|
||||
feed_polling_frequency_mins: "Besleme yoklama sıklığı (dakika cinsinden)"
|
||||
save: "Gömme Ayarlarını Kaydet"
|
||||
permalink:
|
||||
title: "Kalıcı Bağlantılar"
|
||||
|
|
|
@ -4405,9 +4405,6 @@ uk:
|
|||
embed_whitelist_selector: "Селектори CSS які дозволені для використання."
|
||||
embed_blacklist_selector: "Селектори CSS які заборонені для використання."
|
||||
embed_classname_whitelist: "Дозволені імена класів CSS"
|
||||
feed_polling_enabled: "Імпортувати дописи через RSS/ATOM"
|
||||
feed_polling_url: "Посилання на RSS/ATOM"
|
||||
feed_polling_frequency_mins: "Частота опитування стрічки (в хвилинах)"
|
||||
save: "Зберегти налаштування вбудовування"
|
||||
permalink:
|
||||
title: "Постійні посилання"
|
||||
|
|
|
@ -4088,21 +4088,15 @@ ur:
|
|||
category: "زمرہ میں پوسٹ کریں"
|
||||
add_host: "ہَوسٹ شامل کریں"
|
||||
settings: "اَیمبَیڈ کرنے کی سیٹِنگ"
|
||||
feed_settings: "فیڈ کی سیٹِنگ"
|
||||
feed_description: "اپنی وَیب سائٹ کیلئے ایک RSS/ATOM فِیڈ فراہم کرنے سے ڈِسکورس کی آپ کے مواد کو درآمد کرنے کی صلاحیت بہترہو سکتی ہے۔"
|
||||
crawling_settings: "کرالر کی سیٹِنگ"
|
||||
crawling_description: "جب ڈِسکورس آپ کی پوسٹس کیلئے ٹاپک بناتا ہے، اگر کوئی RSS/ATOM فِیڈ موجود نہ ہو تو وہ آپ کا مواد آپ کے HTML سے پارس کرنے کی کوشش کرے گا۔ کبھی کبھار آپ کا مواد نکالنا دشوار ہو سکتا ہے، اِس لیے ہم اِس نکالنے کو آسان بنانے کیلئے CSS اصولوں کی وضاحت کرنے کی صلاحیت فراہم کرتے ہیں۔"
|
||||
embed_by_username: "ٹاپک کی تخلیق کیلئے صارف نام"
|
||||
embed_post_limit: "پعسٹس اَیمبَیڈ کرنے کی زیادہ سے زیادہ تعداد۔"
|
||||
embed_username_key_from_feed: "فیڈ سے ڈِسکورس صارف نام کھیںچنے کی کِی"
|
||||
embed_title_scrubber: "پوسٹس کے عنوان صاف کرنے کیلئے استعمال ہونے والا رَیگولَر اَیکسپرَیشن"
|
||||
embed_truncate: "اَیمبَیڈ کی گئی پوسٹس کو تراشیں"
|
||||
embed_whitelist_selector: "عناصر کیلئے CSS سلیکٹر جن کی اَیمبَیڈ میں اجازت ہے"
|
||||
embed_blacklist_selector: "عناصر کیلئے CSS سلیکٹر جن کو اَیمبَیڈ سے ہٹایا گیا ہے"
|
||||
embed_classname_whitelist: "اجازت یافتہ CSS کلاسوں کے نام"
|
||||
feed_polling_enabled: "RSS / ATOM کے ذریعے پوسٹس درآمد کریں"
|
||||
feed_polling_url: "کرال کرنے کیلئے RSS / ATOM کا URL"
|
||||
feed_polling_frequency_mins: "فیڈ پولنگ کی فریکوئینسی (منٹوں میں)"
|
||||
save: "اَیمبَیڈ کرنے کی سیٹِنگ محفوظ کریں"
|
||||
permalink:
|
||||
title: "دائمی لِنکس"
|
||||
|
|
|
@ -2927,18 +2927,13 @@ vi:
|
|||
category: "Đăng vào Danh mục"
|
||||
add_host: "Thêm Host"
|
||||
settings: "Thiết lập nhúng"
|
||||
feed_settings: "Cấu hình Feed"
|
||||
feed_description: "Cung cấp RSS/ATOM cho website để cải thiện khả năng Discourse import nội dung của bạn."
|
||||
crawling_settings: "Cấu hình Crawler"
|
||||
crawling_description: "Khi Discourse tạo chủ đề cho các bài viết của bạn, nếu không có RSS/ATOM thì hệ thống sẽ thử phân tích nội dung HTML. Đôi khi có thể gặp khó khăn khi trích xuất nội dung, vì vậy hệ thống cung cấp khả năng chỉ định quy tắc CSS để giúp quá trình trích xuất dễ dàng hơn."
|
||||
embed_by_username: "Tên thành viên để tạo chủ đề"
|
||||
embed_post_limit: "Số lượng tối đa bài viết được nhúng"
|
||||
embed_username_key_from_feed: "Key to pull discourse username from feed"
|
||||
embed_truncate: "Cắt ngắn các bài viết được nhúng"
|
||||
embed_whitelist_selector: "Bộ chọn các thành phần CSS được hỗ trợ khi nhúng"
|
||||
embed_blacklist_selector: "CSS selector for elements that are removed from embeds"
|
||||
feed_polling_enabled: "Nhập bài viết bằng RSS/ATOM"
|
||||
feed_polling_url: "URL của RSS/ATOM để thu thập"
|
||||
save: "Lưu thiết lập nhúng"
|
||||
permalink:
|
||||
title: "Liên kết cố định"
|
||||
|
|
|
@ -3974,21 +3974,15 @@ zh_CN:
|
|||
category: "发布到分类"
|
||||
add_host: "增加主机"
|
||||
settings: "嵌入设置"
|
||||
feed_settings: "源设置"
|
||||
feed_description: "为你的站点提供一份 RSS/ATOM 源能改善 Discourse 导入你的内容的能力"
|
||||
crawling_settings: "爬虫设置"
|
||||
crawling_description: "当 Discourse 为你的帖子创建了主题时,如果没有 RSS/ATOM 流存在,它将尝试从 HTML 中解析内容。有时分离其中的内容时可能是很有挑战性的,所以我们提供了指定 CSS 规则的能力来帮助分离过程。"
|
||||
embed_by_username: "主题创建者的用户名"
|
||||
embed_post_limit: "嵌入的最大帖子数量。"
|
||||
embed_username_key_from_feed: "从流中拉取 Discourse 用户名的 Key "
|
||||
embed_title_scrubber: "从帖子中提取标题的正则表达式"
|
||||
embed_truncate: "截断嵌入的帖子"
|
||||
embed_whitelist_selector: "使用 CSS 选择器选择允许的嵌入元素"
|
||||
embed_blacklist_selector: "使用 CSS 选择器移除嵌入元素"
|
||||
embed_classname_whitelist: "允许 CSS class 名称"
|
||||
feed_polling_enabled: "通过 RSS/ATOM 导入帖子"
|
||||
feed_polling_url: "用于抓取的 RSS/ATOM 流的 URL"
|
||||
feed_polling_frequency_mins: "消息轮询频率(分钟)"
|
||||
save: "保存嵌入设置"
|
||||
permalink:
|
||||
title: "永久链接"
|
||||
|
|
|
@ -3803,21 +3803,15 @@ zh_TW:
|
|||
category: "張貼到分類"
|
||||
add_host: "新增主機"
|
||||
settings: "嵌入設定"
|
||||
feed_settings: "源設置"
|
||||
feed_description: "為你的站點提供一份 RSS/ATOM 源能改善 Discourse 導入你的內容的能力"
|
||||
crawling_settings: "爬蟲設定"
|
||||
crawling_description: "當 Discourse 為你的貼文開啟了話題時,如果沒有 RSS/ATOM 流存在,它將嘗試從 HTML 中解析內容。有時分離其中的內容時可能是很有挑戰性的,所以我們提供了指定 CSS 規則的能力來幫助分離過程。"
|
||||
embed_by_username: "話題開啟者的使用者名稱"
|
||||
embed_post_limit: "嵌入的最大貼文數量。"
|
||||
embed_username_key_from_feed: "從流中拉取 Discourse 使用者名的 Key "
|
||||
embed_title_scrubber: "從貼文中提取標題的正則表達式 \"regular expression\""
|
||||
embed_truncate: "截斷嵌入的貼文"
|
||||
embed_whitelist_selector: "使用 CSS 選擇器選擇允許的嵌入元素"
|
||||
embed_blacklist_selector: "使用 CSS 選擇器移除嵌入元素"
|
||||
embed_classname_whitelist: "允許 CSS class 名稱"
|
||||
feed_polling_enabled: "匯入貼文藉由 RSS/ATOM"
|
||||
feed_polling_url: "用於抓取的 RSS/ATOM 流的 URL"
|
||||
feed_polling_frequency_mins: "訊息更新頻率(分鐘)"
|
||||
save: "儲存崁入設定"
|
||||
permalink:
|
||||
title: "固定連結"
|
||||
|
|
|
@ -1581,24 +1581,10 @@ developer:
|
|||
client: true
|
||||
|
||||
embedding:
|
||||
feed_polling_enabled:
|
||||
default: false
|
||||
hidden: true
|
||||
feed_polling_url:
|
||||
default: ""
|
||||
hidden: true
|
||||
feed_polling_frequency_mins:
|
||||
min: 5
|
||||
max: 180
|
||||
default: 60
|
||||
hidden: true
|
||||
embed_by_username:
|
||||
default: ""
|
||||
type: username
|
||||
hidden: true
|
||||
embed_username_key_from_feed:
|
||||
default: ""
|
||||
hidden: true
|
||||
embed_post_limit:
|
||||
default: 100
|
||||
hidden: true
|
||||
|
|
|
@ -36,12 +36,6 @@ class TopicRetriever
|
|||
# It's possible another process or job found the embed already. So if that happened bail out.
|
||||
return if TopicEmbed.where(embed_url: @embed_url).exists?
|
||||
|
||||
# First check RSS if that is enabled
|
||||
if SiteSetting.feed_polling_enabled?
|
||||
Jobs::PollFeed.new.execute({})
|
||||
return if TopicEmbed.where(embed_url: @embed_url).exists?
|
||||
end
|
||||
|
||||
fetch_http
|
||||
end
|
||||
|
||||
|
|
|
@ -1,190 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Jobs::PollFeed do
|
||||
let(:poller) { Jobs::PollFeed.new }
|
||||
|
||||
context "execute" do
|
||||
let(:url) { "http://eviltrout.com" }
|
||||
|
||||
before do
|
||||
$redis.del("feed-polled-recently")
|
||||
end
|
||||
|
||||
it "requires feed_polling_enabled?" do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = nil
|
||||
poller.expects(:poll_feed).never
|
||||
poller.execute({})
|
||||
end
|
||||
|
||||
it "requires feed_polling_url" do
|
||||
SiteSetting.feed_polling_enabled = false
|
||||
SiteSetting.feed_polling_url = nil
|
||||
poller.expects(:poll_feed).never
|
||||
poller.execute({})
|
||||
end
|
||||
|
||||
it "delegates to poll_feed" do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = url
|
||||
poller.expects(:poll_feed).once
|
||||
poller.execute({})
|
||||
end
|
||||
|
||||
it "won't poll if it has polled recently" do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = url
|
||||
poller.expects(:poll_feed).once
|
||||
poller.execute({})
|
||||
poller.execute({})
|
||||
end
|
||||
end
|
||||
|
||||
describe '#poll_feed' do
|
||||
let(:embed_by_username) { 'eviltrout' }
|
||||
let(:embed_username_key_from_feed) { 'discourse:username' }
|
||||
fab!(:default_user) { Fabricate(:evil_trout) }
|
||||
fab!(:feed_author) { Fabricate(:user, username: 'xrav3nz', email: 'hi@bye.com') }
|
||||
|
||||
shared_examples 'topic creation based on the the feed' do
|
||||
describe 'author username parsing' do
|
||||
context 'when neither embed_by_username nor embed_username_key_from_feed is set' do
|
||||
before do
|
||||
SiteSetting.embed_by_username = ""
|
||||
SiteSetting.embed_username_key_from_feed = ""
|
||||
end
|
||||
|
||||
it 'does not import topics' do
|
||||
expect { poller.poll_feed }.not_to change { Topic.count }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when embed_by_username is set' do
|
||||
before do
|
||||
SiteSetting.embed_by_username = embed_by_username
|
||||
SiteSetting.embed_username_key_from_feed = ""
|
||||
end
|
||||
|
||||
it 'creates the new topics under embed_by_username' do
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.user).to eq(default_user)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when embed_username_key_from_feed is set' do
|
||||
before do
|
||||
SiteSetting.embed_username_key_from_feed = embed_username_key_from_feed
|
||||
end
|
||||
|
||||
it 'creates the new topics under the username found' do
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.user).to eq(feed_author)
|
||||
end
|
||||
|
||||
it "updates the post if it had been polled" do
|
||||
embed_url = 'https://blog.discourse.org/2017/09/poll-feed-spec-fixture'
|
||||
post = TopicEmbed.import(Fabricate(:user), embed_url, 'old title', 'old content')
|
||||
|
||||
expect { poller.poll_feed }.to_not change { Topic.count }
|
||||
|
||||
post.reload
|
||||
expect(post.raw).to include('<p>This is the body & content. </p>')
|
||||
expect(post.user).to eq(feed_author)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it 'parses creates a new post correctly' do
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.title).to eq('Poll Feed Spec Fixture')
|
||||
expect(Topic.last.first_post.raw).to include('<p>This is the body & content. </p>')
|
||||
expect(Topic.last.topic_embed.embed_url).to eq('https://blog.discourse.org/2017/09/poll-feed-spec-fixture')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when parsing RSS feed' do
|
||||
before do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = 'https://blog.discourse.org/feed/'
|
||||
SiteSetting.embed_by_username = embed_by_username
|
||||
|
||||
stub_request(:head, SiteSetting.feed_polling_url)
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(
|
||||
body: file_from_fixtures('feed.rss', 'feed').read,
|
||||
headers: { "Content-Type" => "application/rss+xml" }
|
||||
)
|
||||
end
|
||||
|
||||
include_examples 'topic creation based on the the feed'
|
||||
end
|
||||
|
||||
context 'when parsing ATOM feed' do
|
||||
before do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = 'https://blog.discourse.org/feed/atom/'
|
||||
SiteSetting.embed_by_username = embed_by_username
|
||||
|
||||
stub_request(:head, SiteSetting.feed_polling_url)
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(
|
||||
body: file_from_fixtures('feed.atom', 'feed').read,
|
||||
headers: { "Content-Type" => "application/atom+xml" }
|
||||
)
|
||||
end
|
||||
|
||||
include_examples 'topic creation based on the the feed'
|
||||
end
|
||||
|
||||
it "aborts when it can't fetch the feed" do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = 'https://blog.discourse.org/feed/atom/'
|
||||
SiteSetting.embed_by_username = 'eviltrout'
|
||||
|
||||
stub_request(:head, SiteSetting.feed_polling_url).to_return(status: 404)
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(status: 404)
|
||||
|
||||
expect { poller.poll_feed }.to_not change { Topic.count }
|
||||
end
|
||||
|
||||
context 'encodings' do
|
||||
before do
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
SiteSetting.feed_polling_url = 'https://blog.discourse.org/feed/atom/'
|
||||
SiteSetting.embed_by_username = 'eviltrout'
|
||||
|
||||
stub_request(:head, SiteSetting.feed_polling_url)
|
||||
end
|
||||
|
||||
it 'works with encodings other than UTF-8' do
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(
|
||||
body: file_from_fixtures('utf-16le-feed.rss', 'feed').read,
|
||||
headers: { "Content-Type" => "application/rss+xml" }
|
||||
)
|
||||
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.first_post.raw).to include('<p>This is the body & content. </p>')
|
||||
end
|
||||
|
||||
it 'respects the charset in the Content-Type header' do
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(
|
||||
body: file_from_fixtures('iso-8859-15-feed.rss', 'feed').read,
|
||||
headers: { "Content-Type" => "application/rss+xml; charset=ISO-8859-15" }
|
||||
)
|
||||
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.first_post.raw).to include('<p>This is the body & content. 100€ </p>')
|
||||
end
|
||||
|
||||
it 'works when the charset in the Content-Type header is unknown' do
|
||||
stub_request(:get, SiteSetting.feed_polling_url).to_return(
|
||||
body: file_from_fixtures('feed.rss', 'feed').read,
|
||||
headers: { "Content-Type" => "application/rss+xml; charset=foo" }
|
||||
)
|
||||
|
||||
expect { poller.poll_feed }.to change { Topic.count }.by(1)
|
||||
expect(Topic.last.first_post.raw).to include('<p>This is the body & content. </p>')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -133,20 +133,14 @@ describe EmbeddableHost do
|
|||
host2 = Fabricate(:embeddable_host)
|
||||
|
||||
SiteSetting.embed_post_limit = 300
|
||||
SiteSetting.feed_polling_url = "http://test.com"
|
||||
SiteSetting.feed_polling_enabled = true
|
||||
|
||||
host2.destroy
|
||||
|
||||
expect(SiteSetting.embed_post_limit).to eq(300)
|
||||
expect(SiteSetting.feed_polling_url).to eq("http://test.com")
|
||||
expect(SiteSetting.feed_polling_enabled).to eq(true)
|
||||
|
||||
host.destroy
|
||||
|
||||
expect(SiteSetting.embed_post_limit).to eq(SiteSetting.defaults[:embed_post_limit])
|
||||
expect(SiteSetting.feed_polling_url).to eq(SiteSetting.defaults[:feed_polling_url])
|
||||
expect(SiteSetting.feed_polling_enabled).to eq(SiteSetting.defaults[:feed_polling_enabled])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue