Adding basic Akismet stuff. Seems to work. Still working on it, make
sure it's okay.
This commit is contained in:
parent
607e0fa6d4
commit
6a6b1973a1
|
@ -75,6 +75,13 @@
|
|||
});
|
||||
</script>
|
||||
|
||||
{% if grav.twig.warning_message|length %}
|
||||
<div class="admin-block">
|
||||
<h1>{{ "PLUGIN_COMMENTS.WARNINGS"|tu }}</h1>
|
||||
<p class="center">{{ grav.twig.warning_message }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h1>Comments in the last 7 days</h1>
|
||||
|
||||
<div class="admin-block">
|
||||
|
|
|
@ -29,19 +29,9 @@ form:
|
|||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
pingbacks:
|
||||
type: toggle
|
||||
label: Pingbacks
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
commenting:
|
||||
type: toggle
|
||||
label: Commenting
|
||||
label: PLUGIN_COMMENTS.COMMENTS
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
|
@ -49,3 +39,59 @@ form:
|
|||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
nested:
|
||||
type: toggle
|
||||
label: PLUGIN_COMMENTS.COMMENTS_NESTED
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
pingbacks:
|
||||
type: toggle
|
||||
label: PLUGIN_COMMENTS.COMMENTS_PINGBACKS
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
recaptcha:
|
||||
type: toggle
|
||||
label: PLUGIN_COMMENTS.RECAPTCHA
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
akismet:
|
||||
type: toggle
|
||||
label: PLUGIN_COMMENTS.AKISMET
|
||||
highlight: 1
|
||||
default: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
validate:
|
||||
type: bool
|
||||
akismet_apikey:
|
||||
type: text
|
||||
label: PLUGIN_COMMENTS.AKISMET_APIKEY
|
||||
highlight: 1
|
||||
default:
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
akismet_site:
|
||||
type: text
|
||||
label: PLUGIN_COMMENTS.AKISMET_SITE_OVERRIDE
|
||||
highlight: 1
|
||||
default:
|
||||
options:
|
||||
1: PLUGIN_ADMIN.ENABLED
|
||||
0: PLUGIN_ADMIN.DISABLED
|
||||
|
|
54
comments.php
54
comments.php
|
@ -17,6 +17,8 @@ use RocketTheme\Toolbox\File\File;
|
|||
use RocketTheme\Toolbox\Event\Event;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
|
||||
require_once 'extern/akismet/Akismet.class.php';
|
||||
|
||||
class CommentsPlugin extends Plugin
|
||||
{
|
||||
protected $route = 'comments';
|
||||
|
@ -27,6 +29,8 @@ class CommentsPlugin extends Plugin
|
|||
protected $comments_cache_id;
|
||||
protected $pingbacks_cache_id;
|
||||
|
||||
protected $akismet_enabled;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
|
@ -85,6 +89,7 @@ class CommentsPlugin extends Plugin
|
|||
$this->grav['twig']->pingbacks_enabled = $this->pingbacks_enabled;
|
||||
$this->grav['twig']->comments = $this->fetchComments();
|
||||
$this->grav['twig']->pingbacks = $this->fetchPingbacks();
|
||||
$this->grav['twig']->akismet_enabled = $this->grav['config']->get('plugins.comments.akismet');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -117,6 +122,8 @@ class CommentsPlugin extends Plugin
|
|||
|
||||
$this->commenting_enabled = $this->grav['config']->get('plugins.comments.commenting');
|
||||
$this->pingbacks_enabled = $this->grav['config']->get('plugins.comments.pingbacks');
|
||||
|
||||
$this->akismet_enabled = $this->grav['config']->get('plugins.comments.akismet');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -124,8 +131,6 @@ class CommentsPlugin extends Plugin
|
|||
*/
|
||||
public function initializeFrontend()
|
||||
{
|
||||
$this->calculateEnable();
|
||||
|
||||
$this->enable([
|
||||
'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0],
|
||||
]);
|
||||
|
@ -182,6 +187,8 @@ class CommentsPlugin extends Plugin
|
|||
*/
|
||||
public function onPluginsInitialized()
|
||||
{
|
||||
$this->calculateEnable();
|
||||
|
||||
if ($this->isAdmin()) {
|
||||
$this->initializeAdmin();
|
||||
} else {
|
||||
|
@ -218,7 +225,7 @@ class CommentsPlugin extends Plugin
|
|||
$name = filter_var(urldecode($post['name']), FILTER_SANITIZE_STRING);
|
||||
$email = filter_var(urldecode($post['email']), FILTER_SANITIZE_STRING);
|
||||
$title = filter_var(urldecode($post['title']), FILTER_SANITIZE_STRING);
|
||||
$site = filter_var(urldecode($post['site']), FILTER_SANITIZE_STRING);
|
||||
$site = isset($post['site']) ? filter_var(urldecode($post['site']), FILTER_SANITIZE_STRING) : "";
|
||||
|
||||
if (isset($this->grav['user'])) {
|
||||
$user = $this->grav['user'];
|
||||
|
@ -232,6 +239,25 @@ class CommentsPlugin extends Plugin
|
|||
$language = $this->grav['language'];
|
||||
$lang = $language->getLanguage();
|
||||
|
||||
if ($this->akismet_enabled) {
|
||||
$key = $this->grav['config']->get('plugins.comments.akismet_apikey');
|
||||
$url_override = $this->grav['config']->get('plugins.comments.akismet_site');
|
||||
$url = !empty($url_override) ? $url_override : $_SERVER['HTTP_HOST'];
|
||||
|
||||
$akismet = new \Akismet($url, $key);
|
||||
$akismet->setCommentAuthor($name);
|
||||
$akismet->setCommentAuthorEmail($email);
|
||||
$akismet->setCommentAuthorURL($site);
|
||||
$akismet->setCommentContent($text);
|
||||
//$akismet->setPermalink($comment->post->permalink);
|
||||
//try {
|
||||
$spam = ($akismet->isCommentSpam()) ? 'spam' : 'ham';
|
||||
//return;
|
||||
//} catch (Exception $e) {
|
||||
// EventLog::log($e->getMessage(), 'notice', 'comment', 'HabariAkismet');
|
||||
//}
|
||||
}
|
||||
|
||||
$filename = DATA_DIR . 'comments';
|
||||
$filename .= ($lang ? '/' . $lang : '');
|
||||
$filename .= $path . '.yaml';
|
||||
|
@ -245,7 +271,8 @@ class CommentsPlugin extends Plugin
|
|||
'date' => date('D, d M Y H:i:s', time()),
|
||||
'author' => $name,
|
||||
'email' => $email,
|
||||
'site' => $site
|
||||
'site' => $site,
|
||||
'approved' => ( !isset($spam) || $spam == 'ham' ? 'true' : 'false' )
|
||||
];
|
||||
} else {
|
||||
$data = array(
|
||||
|
@ -256,7 +283,8 @@ class CommentsPlugin extends Plugin
|
|||
'date' => date('D, d M Y H:i:s', time()),
|
||||
'author' => $name,
|
||||
'email' => $email,
|
||||
'site' => $site
|
||||
'site' => $site,
|
||||
'approved' => ( !isset($spam) || $spam == 'ham' ? 'true' : 'false' )
|
||||
])
|
||||
);
|
||||
}
|
||||
|
@ -451,6 +479,20 @@ class CommentsPlugin extends Plugin
|
|||
public function onTwigAdminTemplatePaths()
|
||||
{
|
||||
$this->grav['twig']->twig_paths[] = __DIR__ . '/admin/templates';
|
||||
$this->grav['twig']->akismet_enabled = $this->akismet_enabled;
|
||||
|
||||
if ($this->akismet_enabled) {
|
||||
$key = $this->grav['config']->get('plugins.comments.akismet_apikey');
|
||||
$url_override = $this->grav['config']->get('plugins.comments.akismet_site');
|
||||
$url = !empty($url_override) ? $url_override : $_SERVER['HTTP_HOST'];
|
||||
|
||||
$akismet = new \Akismet($url, $key);
|
||||
if ($akismet->isKeyValid()) {
|
||||
$this->grav['twig']->warning_message = "";
|
||||
} else {
|
||||
$this->grav['twig']->warning_message = sprintf("Akismet API key \"%s\" is invalid for the url \"%s\". Provide a correct url override or make sure you're registered. Please check to make sure the key is entered correctly.", $key, $url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -459,6 +501,8 @@ class CommentsPlugin extends Plugin
|
|||
public function onAdminMenu()
|
||||
{
|
||||
$this->grav['twig']->plugins_hooked_nav['PLUGIN_COMMENTS.COMMENTS'] = ['route' => $this->route, 'icon' => 'fa-file-text'];
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
enabled: true
|
||||
pingbacks: true
|
||||
commenting: true
|
||||
akismet_enabled: true
|
||||
warning_message: ""
|
||||
|
||||
enable_on_routes:
|
||||
- '/blog'
|
||||
|
@ -28,7 +30,7 @@ form:
|
|||
required: true
|
||||
|
||||
- name: blah
|
||||
label: PLUGIN_COMMENTS.EMAIL_LABEL
|
||||
label: PLUGIN_COMMENTS.SITE_LABEL
|
||||
placeholder: "https://leetnightshade.com"
|
||||
type: text
|
||||
validate:
|
||||
|
|
|
@ -1,148 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once 'vendor/Akismet.class.php';
|
||||
|
||||
class HabariAkismet extends Plugin
|
||||
{
|
||||
const SERVER_AKISMET = 'rest.akismet.com';
|
||||
const SERVER_TYPEPAD = 'api.antispam.typepad.com';
|
||||
|
||||
public function action_plugin_activation($file)
|
||||
{
|
||||
if (realpath($file) == __FILE__) {
|
||||
Session::notice(_t('Please set your Akismet or TypePad AntiSpam API Key in the configuration.'));
|
||||
}
|
||||
}
|
||||
|
||||
public function filter_plugin_config($actions, $plugin_id)
|
||||
{
|
||||
if ($plugin_id == $this->plugin_id()) {
|
||||
$actions[] = _t('Configure');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function action_plugin_ui($plugin_id, $action)
|
||||
{
|
||||
if ($plugin_id == $this->plugin_id()) {
|
||||
switch ($action) {
|
||||
case _t('Configure'):
|
||||
|
||||
$form = new FormUI(strtolower(get_class($this)));
|
||||
$form->append('select', 'provider', 'habariakismet__provider', _t('Service'));
|
||||
$form->provider->options = array(
|
||||
'Akismet' => 'Akismet',
|
||||
'TypePad AntiSpam' => 'TypePad AntiSpam'
|
||||
);
|
||||
$api_key = $form->append('text', 'api_key', 'habariakismet__api_key', _t('API Key'));
|
||||
$api_key->add_validator('validate_required');
|
||||
$api_key->add_validator(array($this, 'validate_api_key'));
|
||||
$form->append('submit', 'save', 'Save');
|
||||
$form->out();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function validate_api_key($key, $control, $form)
|
||||
{
|
||||
$endpoint = ($form->provider->value == 'Akismet') ? self::SERVER_AKISMET : self::SERVER_TYPEPAD;
|
||||
|
||||
$a = new Akismet(Site::get_url('habari'), $key);
|
||||
$a->setAkismetServer($endpoint);
|
||||
|
||||
if (!$a->isKeyValid()) {
|
||||
return array(sprintf(_t('Sorry, the %s API key %s is <b>invalid</b>. Please check to make sure the key is entered correctly.'), $form->provider->value, $key));
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
public function set_priorities()
|
||||
{
|
||||
return array(
|
||||
'action_comment_insert_before' => 1
|
||||
);
|
||||
}
|
||||
|
||||
public function action_comment_insert_before(Comment $comment)
|
||||
{
|
||||
$api_key = Options::get('habariakismet__api_key');
|
||||
$provider = Options::get('habariakismet__provider');
|
||||
|
||||
if ($api_key == null || $provider == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$endpoint = ($provider == 'Akismet') ? self::SERVER_AKISMET : self::SERVER_TYPEPAD;
|
||||
|
||||
$a = new Akismet(Site::get_url('habari'), $api_key);
|
||||
$a->setAkismetServer($endpoint);
|
||||
$a->setCommentAuthor($comment->name);
|
||||
$a->setCommentAuthorEmail($comment->email);
|
||||
$a->setCommentAuthorURL($comment->url);
|
||||
$a->setCommentContent($comment->content);
|
||||
$a->setPermalink($comment->post->permalink);
|
||||
|
||||
try {
|
||||
$comment->status = ($a->isCommentSpam()) ? 'spam' : 'ham';
|
||||
return;
|
||||
} catch (Exception $e) {
|
||||
EventLog::log($e->getMessage(), 'notice', 'comment', 'HabariAkismet');
|
||||
}
|
||||
}
|
||||
|
||||
public function action_admin_moderate_comments($action, $comments, $handler)
|
||||
{
|
||||
$false_negatives = 0;
|
||||
$false_positives = 0;
|
||||
|
||||
$provider = Options::get('habariakismet__provider');
|
||||
$endpoint = ($provider == 'Akismet') ? self::SERVER_AKISMET : self::SERVER_TYPEPAD;
|
||||
|
||||
$a = new Akismet(Site::get_url('habari'), Options::get('habariakismet__api_key'));
|
||||
$a->setAkismetServer($endpoint);
|
||||
|
||||
foreach ($comments as $comment) {
|
||||
switch ($action) {
|
||||
case 'spam':
|
||||
if ($comment->status == Comment::STATUS_APPROVED || $comment->status == Comment::STATUS_UNAPPROVED) {
|
||||
$a->setCommentAuthor($comment->name);
|
||||
$a->setCommentAuthorEmail($comment->email);
|
||||
$a->setCommentAuthorURL($comment->url);
|
||||
$a->setCommentContent($comment->content);
|
||||
|
||||
$a->submitSpam();
|
||||
|
||||
$false_negatives++;
|
||||
}
|
||||
|
||||
break;
|
||||
case 'approved':
|
||||
if ($comment->status == Comment::STATUS_SPAM) {
|
||||
$a->setCommentAuthor($comment->name);
|
||||
$a->setCommentAuthorEmail($comment->email);
|
||||
$a->setCommentAuthorURL($comment->url);
|
||||
$a->setCommentContent($comment->content);
|
||||
|
||||
$a->submitHam();
|
||||
|
||||
$false_positives++;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($false_negatives) {
|
||||
Session::notice(_t('Reported %d false negatives to %s.', array($false_negatives, $provider)));
|
||||
}
|
||||
|
||||
if ($false_positives) {
|
||||
Session::notice(_t('Reported %d false positives to %s.', array($false_positives, $provider)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<pluggable type="plugin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schemas.habariproject.org/Pluggable-1.3.xsd">
|
||||
<name>Habari Akismet</name>
|
||||
<license url="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software License 2.0</license>
|
||||
<url>http://habariproject.org</url>
|
||||
<author url="http://habariproject.org/">The Habari Community</author>
|
||||
<version>0.2</version>
|
||||
<guid>98bdb03a-a7e5-4c2a-a875-dcfe1d89f130</guid>
|
||||
<description><![CDATA[Provides the Akismet and TypePad AntiSpam spam filter webservices to Habari comments.]]></description>
|
||||
</pluggable>
|
100
languages.yaml
100
languages.yaml
|
@ -1,7 +1,13 @@
|
|||
de:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Kommentar hinzufügen
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Kommentare
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email nicht konfiguriert
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Neuer Kommentar für %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Ein neuer Kommentar am %1$s von %3$s (%4$s).</p><p>Seite: %2$s</p><p>Text: %5$s</p>'
|
||||
|
@ -16,14 +22,21 @@ de:
|
|||
EMAIL_PLACEHOLDER: "Email-Adresse eingeben"
|
||||
MESSAGE_LABEL: "Kommentar"
|
||||
MESSAGE_PLACEHOLDER: "Kommentar eingeben"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Absenden"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Neuer Kommentar] von {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Vielen Dank für den Kommentar!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
en:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Add a comment
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Comments
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email not configured
|
||||
|
@ -40,14 +53,23 @@ en:
|
|||
EMAIL_PLACEHOLDER: "Enter your email address"
|
||||
MESSAGE_LABEL: "Comment"
|
||||
MESSAGE_PLACEHOLDER: "Enter your comment"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Submit"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[New Comment] from {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Thank you for writing your comment!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
es:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Agregar un comentario
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Comentarios
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: El Email no está configurado
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Nuevo comentario en %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Un nuevo comentario se hizo en %1$s por %3$s (%4$s).</p><p>Page: %2$s</p><p>Text: %5$s</p>'
|
||||
|
@ -62,14 +84,23 @@ es:
|
|||
EMAIL_PLACEHOLDER: "Escriba su email"
|
||||
MESSAGE_LABEL: "Comentario"
|
||||
MESSAGE_PLACEHOLDER: "Escriba su comentario"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Enviar"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Nuevo comentario] de {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Gracias por escribir su comentario!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
fr:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Ajouter un commentaire
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Commentaires
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: E-mail non configuré
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Nouveau commentaire sur %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Un nouveau commentaire a été publié sur %1$s par %3$s (%4$s).</p><p>Page : %2$s</p><p>Texte : %5$s</p>'
|
||||
|
@ -84,14 +115,23 @@ fr:
|
|||
EMAIL_PLACEHOLDER: "Indiquez votre adresse e-mail"
|
||||
MESSAGE_LABEL: "Commentaire"
|
||||
MESSAGE_PLACEHOLDER: "Rédigez votre commentaire"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Envoyer"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Nouveau commentaire] de {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Merci d'avoir rédigé votre commentaire !"
|
||||
WARNINGS: Warnings
|
||||
|
||||
hr:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Dodaj komentar
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Komentari
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email adresa nije podešena
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Novi komentar na %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Novi komentar je napisan na %1$s od %3$s (%4$s).</p><p>Stranica:: %2$s</p><p>Tekst: %5$s</p>'
|
||||
|
@ -106,14 +146,23 @@ hr:
|
|||
EMAIL_PLACEHOLDER: "Unesite email adresu"
|
||||
MESSAGE_LABEL: "Komentar"
|
||||
MESSAGE_PLACEHOLDER: "Unesite komentar"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Pošalji"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Novi komentar] od {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Hvala Vam što ste napisali svoj komentar!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
it:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Aggiungi un commento
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Commenti
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email non configurata
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Nuovo commento su %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Un nuovo commento è stato postato su %1$s da %3$s (%4$s).</p><p>Pagina: %2$s</p><p>Testo: %5$s</p>'
|
||||
|
@ -128,14 +177,23 @@ it:
|
|||
EMAIL_PLACEHOLDER: "Inserisci il tuo indirizzo email"
|
||||
MESSAGE_LABEL: "Messaggio"
|
||||
MESSAGE_PLACEHOLDER: "Inserisci il tuo commento"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Invia"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Nuovo commento] da {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Grazie per il tuo commento!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
ja:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: コメントを追加する
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: コメント
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: メールアドレスは設定さていません
|
||||
NEW_COMMENT_EMAIL_SUBJECT: '%1$sについて新しいコメント'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>新しいコメントが%1$sについて%3$sから(%4$s)書かれた.</p><p>ページー : %2$s</p><p>文書 : %5$s</p>'
|
||||
|
@ -150,14 +208,23 @@ ja:
|
|||
EMAIL_PLACEHOLDER: "ご自分のメールアドレスをここに..."
|
||||
MESSAGE_LABEL: "コメント"
|
||||
MESSAGE_PLACEHOLDER: "コメントをここに"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "送信する"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[新しいコメント]、 {{ form.value.name|e }}から"
|
||||
THANK_YOU_MESSAGE: "コメントを書いてくださいましてありがとうございました!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
pl:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Dodaj komentarz
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Komentarzy
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email jest nie skofigurowany
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Nowy komentarz %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Pojawił się nowy komentarz, napisany %1$s przez %3$s (%4$s).</p><p>Strona: %2$s</p><p>Treść: %5$s</p>'
|
||||
|
@ -170,7 +237,13 @@ pl:
|
|||
ru:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Добавить комментарий
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Комментарии
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Email не настроен
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Новый комментарий к %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Новый комментарий был сделан на %1$s by %3$s (%4$s).</p><p>Страница: %2$s</p><p>Текст: %5$s</p>'
|
||||
|
@ -183,7 +256,13 @@ ru:
|
|||
pt-br:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Escreva um comentário
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Comentários
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: E-mail não configurado
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Novo comentário em %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Um novo comentário foi feito em %1$s por %3$s (%4$s).</p><p>Página: %2$s</p><p>Texto: %5$s</p>'
|
||||
|
@ -198,14 +277,23 @@ pt-br:
|
|||
EMAIL_PLACEHOLDER: "Escreva seu e-mail. Ex.: seunome@provedor.com.br"
|
||||
MESSAGE_LABEL: "Comentário"
|
||||
MESSAGE_PLACEHOLDER: "Escreva seu comentário"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Enviar"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Novo comentário] de {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Obrigada por enviar seu comentário!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
ro:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: 'Adăugați un comentariu'
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: 'Comentarii'
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: 'Adresa de email nu este configurată'
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Comentariu nou pentru %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>Un nou comentariu a fost adăugat la %1$s de către %3$s (%4$s).</p><p>Pagină: %2$s</p><p>Text: %5$s</p>'
|
||||
|
@ -220,14 +308,23 @@ ro:
|
|||
EMAIL_PLACEHOLDER: "Introduceți adresa Dvs. de email"
|
||||
MESSAGE_LABEL: "Comentariu"
|
||||
MESSAGE_PLACEHOLDER: "Scrieți comentariul Dvs."
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Trimiteți"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Comentariu nou] from {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Vă mulțumim pentru comentariu!"
|
||||
WARNINGS: Warnings
|
||||
|
||||
no:
|
||||
PLUGIN_COMMENTS:
|
||||
ADD_COMMENT: Skriv en kommentar
|
||||
AKISMET: Akismet
|
||||
AKISMET_APIKEY: Akismet API Key
|
||||
AKISMET_SITE_OVERRIDE: Akismet Site Override
|
||||
COMMENTS: Kommentarer
|
||||
COMMENTS_NESTED: Nested Comments
|
||||
COMMENTS_NONE: There are no comments yet.
|
||||
COMMENTS_PINGBACKS: Pingbacks
|
||||
EMAIL_NOT_CONFIGURED: Epost er ikke konfigurert
|
||||
NEW_COMMENT_EMAIL_SUBJECT: 'Ny kommentar på %1$s'
|
||||
NEW_COMMENT_EMAIL_BODY: '<p>En ny kommentar er skrevet på %1$s av %3$s (%4$s).</p><p>Side: %2$s</p><p>Tekst: %5$s</p>'
|
||||
|
@ -242,6 +339,9 @@ no:
|
|||
EMAIL_PLACEHOLDER: "Skriv din epost adresse"
|
||||
MESSAGE_LABEL: "Kommentar"
|
||||
MESSAGE_PLACEHOLDER: "Skriv din kommentar"
|
||||
RECAPTCHA: reCAPTCHA
|
||||
SITE_LABEL: Site
|
||||
SUBMIT_COMMENT_BUTTON_TEXT: "Send"
|
||||
EMAIL_NEW_COMMENT_SUBJECT: "[Ny kommentar] fra {{ form.value.name|e }}"
|
||||
THANK_YOU_MESSAGE: "Takk for din kommentar!"
|
||||
WARNINGS: Warnings
|
||||
|
|
Loading…
Reference in New Issue