Add new rule for awarding badges based on users sum of discussion and comment count

Added definitions to en-CA language file (including one minor correction)
Major changes of German translation
1. overworked file so that it reflects structure of en-CA file
2. added missing translations
3. deleted not used definitions
4. did some corrections to existing translations
This commit is contained in:
Robin 2014-05-22 11:29:52 +02:00
parent 30eb3a5642
commit df976a8e00
3 changed files with 144 additions and 47 deletions

View File

@ -0,0 +1,81 @@
<?php if(!defined('APPLICATION')) exit();
/**
* This rule awards badges based on the sum of a user's discussions & comments count
*
* @author Robin Jurinka
* @since 1.0
* @package Yaga
*/
class PostCount implements YagaRule{
public function Award($Sender, $User, $Criteria) {
$Result = FALSE;
$CountPosts = $User->CountDiscussions + $User->CountComments;
switch($Criteria->Comparison) {
case 'gt':
if($CountPosts > $Criteria->Target) {
$Result = TRUE;
}
break;
case 'lt':
if($CountPosts < $Criteria->Target) {
$Result = TRUE;
}
break;
default:
case 'gte':
if($CountPosts >= $Criteria->Target) {
$Result = TRUE;
}
break;
}
return $Result;
}
public function Form($Form) {
$Comparisons = array(
'gt' => T('More than:'),
'lt' => T('Less than:'),
'gte' => T('More than or:')
);
$String = $Form->Label('Yaga.Rules.PostCount.Criteria.Head', 'PostCount');
$String .= $Form->DropDown('Comparison', $Comparisons) . ' ';
$String .= $Form->Textbox('Target', array('class' => 'SmallInput'));
return $String;
}
public function Validate($Criteria, $Form) {
$Validation = new Gdn_Validation();
$Validation->ApplyRules(array(
array(
'Name' => 'Target', 'Validation' => array('Required', 'Integer')
),
array(
'Name' => 'Comparison', 'Validation' => 'Required'
)
));
$Validation->Validate($Criteria);
$Form->SetValidationResults($Validation->Results());
}
public function Hooks() {
return array('Gdn_Dispatcher_AppStartup');
}
public function Description() {
$Description = T('Yaga.Rules.PostCount.Desc');
return Wrap($Description, 'div', array('class' => 'InfoMessage'));
}
public function Name() {
return T('Yaga.Rules.PostCount');
}
public function Interacts() {
return FALSE;
}
}

View File

@ -3,12 +3,12 @@ $Definition['Yaga.Settings'] = 'Yaga Einstellungen';
$Definition['Yaga.Reason'] = 'Grund (optional)';
// Transport
$Definition['Yaga.Transport'] = 'Einstellungensdatei importieren / exportieren';
$Definition['Yaga.Transport'] = 'Konfigurationsdatei importieren / exportieren';
$Definition['Yaga.Transport.Desc'] = 'Du kannst deine gesamten Yaga-Einstellungen in einer Datei abspeichern und übertragen.';
$Definition['Yaga.Export'] = 'Export Yaga-Einstellungen';
$Definition['Yaga.Import'] = 'Import Yaga-Einstellungen';
$Definition['Yaga.Export.Desc'] = 'Hier kannst du deine Yaga-Einstellungen zu Backup- oder Transportzwecken exportieren. Wähle aus, welche Teile exportiert werden sollen..';
$Definition['Yaga.Export.Success'] = 'Deine Yaga-Einstellungen wurde erfolgreich exportiert in: <strong>%s</strong>';
$Definition['Yaga.Export.Desc'] = 'Hier kannst du deine Yaga-Einstellungen zu Backup- oder Transportzwecken exportieren. Wähle aus, welche Teile exportiert werden sollen.';
$Definition['Yaga.Export.Success'] = 'Deine Yaga-Einstellungen wurden erfolgreich nach <strong>%s</strong> exportiert';
$Definition['Yaga.Import.Desc'] = 'Hier kannst du eine Yaga-Einstellungen importieren. Deine jetzigen Einstellungen werden durch diese <strong>ersetzt</strong>. Wähle, welche Teile der Einstellungen <strong>überschrieben</strong> werden sollen.';
$Definition['Yaga.Import.Success'] = 'Deine Yaga-Einstellungen wurden erfolgreich importiert aus: <strong>%s</strong>';
$Definition['Yaga.Transport.Return'] = 'Zurück zu den Grundeinstellungen';
@ -16,6 +16,8 @@ $Definition['Yaga.Transport.Return'] = 'Zurück zu den Grundeinstellungen';
// Actions
$Definition['Yaga.Reactions'] = 'Reaktionen';
$Definition['Yaga.Action'] = 'Aktion';
$Definition['Yaga.Action.Delete'] = 'Lösche Aktion';
$Definition['Yaga.Action.Move'] = 'Die %s Aktionen verschieben?';
$Definition['Yaga.Actions.Current'] = 'Aktivierte Reaktionen';
$Definition['Yaga.ManageReactions'] = 'Reaktionen bearbeiten';
$Definition['Yaga.AddAction'] = 'Aktion hinzufügen';
@ -25,7 +27,7 @@ $Definition['Yaga.ActionAdded'] = 'Die Aktion wurde erfolgreich hinzugefügt!';
$Definition['Yaga.InvalidAction'] = 'Ungültige Aktion';
$Definition['Yaga.InvalidReactType'] = 'Ungültiges Reaktions-Ziel';
$Definition['Yaga.InvalidID'] = 'Ungültige ID';
$Definition['Yaga.Actions.Settings.Desc'] = 'Aktionen, welche als Reaktionen verwendet werden können, hinzufügen / entfernen';
$Definition['Yaga.Actions.Settings.Desc'] = 'Aktionen, welche als Reaktionen verwendet werden können, hinzufügen oder entfernen';
// Badges
$Definition['Yaga.Badges'] = 'Auszeichnungen';
@ -57,7 +59,7 @@ $Definition['Yaga.Rank'] = 'Rang';
$Definition['Yaga.ManageRanks'] = 'Ränge hinzufügen / bearbeiten';
$Definition['Yaga.AddRank'] = 'Rang hinzufügen';
$Definition['Yaga.EditRank'] = 'Rang bearbeiten';
$Definition['Yaga.RankUpdated'] = 'Rang erfolgreich verändert!';
$Definition['Yaga.RankUpdated'] = 'Rang erfolgreich geändert!';
$Definition['Yaga.RankAdded'] = 'Rang erfolgreich hinzugefügt!';
$Definition['Yaga.RankPhotoDeleted'] = 'Rang-Foto entfernt';
$Definition['Yaga.RankAlreadyAttained'] = '%s hat bereits diesen Rang!';
@ -66,19 +68,20 @@ $Definition['Yaga.Rank.Promote.Format'] = "%s einen Rang verleihen";
$Definition['Yaga.Rank.RecordActivity'] = 'Bearbeitung dieses Ranges als Aktivität veröffentlichen.';
$Definition['Yaga.Ranks.Settings.Desc'] = 'Bearbeite die Ränge, die Benutzer erreichen können, oder füge neue hinzu.';
$Definition['Yaga.Rank.Progression'] = 'Rang-Sequenz';
$Definition['Yaga.Rank.Progression.Desc'] = 'Benutzer können von diesem Rang zum nächsten fortschreiten.';
$Definition['Yaga.Rank.Photo.Desc'] = 'Dieses Bild wird in den Aktivitäten und Benachrichtigung beim Fortschritt zum nächsten Rang gezeigt.';
$Definition['Yaga.Rank.Progression.Desc'] = 'Benutzer können von diesem Rang zum nächsten aufschreiten.';
$Definition['Yaga.Rank.Photo.Desc'] = 'Dieses Bild wird in den Aktivitäten und Benachrichtigungen beim Auftschritt zum nächsten Rang gezeigt.';
// Best Content
$Definition['Yaga.BestContent'] = 'Best Of...';
$Definition['Yaga.BestContent.Recent'] = 'Best Recent Content';
$Definition['Yaga.BestContent.AllTime'] = 'Best Content of All Time';
$Definition['Yaga.BestContent.Action'] = 'Best %s Content';
$Definition['Yaga.BestContent'] = 'Bestenliste';
$Definition['Yaga.BestContent.Recent'] = 'Bester Inhalt kürzlich';
$Definition['Yaga.BestContent.AllTime'] = 'Bester Inhalt insgesamt';
$Definition['Yaga.BestContent.Action'] = 'Bester %s Inhalt';
// Error Strings
$Definition['Yaga.Error.ReactToOwn'] = 'Du kannst auf deine eigenen Beiträge nicht reagieren.';
$Definition['Yaga.Error.NoRules'] = 'Du musst für Auszeichnungen eine Regel festlegen!';
$Definition['Yaga.Error.Rule404'] = 'Regeln nicht gefunden.';
$Definition['Yaga.Error.Rule404'] = 'Regel nicht gefunden.';
$Definition['Yaga.Error.NoActions'] = 'Es sind keine Aktionen konfiguriert.';
$Definition['Yaga.Error.NoBadges'] = 'Es gibt keine Auszeichnungen, die du verleihen könntest.';
$Definition['Yaga.Error.NoRanks'] = 'Es gibt keine Ränge, die du verleihen könntest.';
$Definition['Yaga.Error.NeedJS'] = 'Hierfür muss Javascript in deinem Browser aktiviert sein.';
@ -135,55 +138,65 @@ $Definition['Years'] = 'Jahre';
$Definition['More than:'] = 'Mehr als:';
$Definition['Less than:'] = 'Weniger als:';
$Definition['More than or:'] = 'Mehr als oder:';
$Definition['User has'] = 'Benutzer hat';
$Definition['Number of Badge Types'] = 'Anzahl verschiedener Auszeichnungs-Typen';
$Definition['Time Frame'] = 'Zeitrahmen';
$Definition['Number of Comments'] = 'Anzahl Kommentare';
$Definition['Total Comments'] = 'Gesamtanzahl Kommentare';
$Definition['Total Discussions'] = 'Gesamtanzahl Diskussionen';
$Definition['Holiday date'] = 'Feiertag';
$Definition['Time Served'] = 'Verbrachte Zeit';
$Definition['User Newbness'] = 'Neulingsgrad';
$Definition['Total Reactions'] = 'Anzahl Reaktionen';
$Definition['Time to Comment'] = 'Zeit bis zum Kommentieren';
$Definition['seconds.'] = 'Sekunden.';
$Definition['Social Networks'] = 'Soziale Netzwerke';
$Definition['User has connected to: '] = 'Benutzer hat sich verbunden mit: ';
$Definition['Yaga.Rules.AwardCombo'] = 'Auszeichnungs-Kombo';
$Definition['Yaga.Rules.AwardCombo.Desc'] = 'Diese Auszeichnung vergeben, wenn die Anzahl unterschiedlicher, auf Regelbasis erhaltener Auszeichnungen das Zielkriterium erreicht oder überschreitet.';
$Definition['Yaga.Rules.CommentCount'] = 'Kommentare';
$Definition['Yaga.Rules.AwardCombo.Criteria.Head'] = 'Anzahl der Auszeichnungs Arten';
$Definition['Yaga.Rules.CakeDayPost'] = 'Geburtstagsbeitrag';
$Definition['Yaga.Rules.CakeDayPost.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer selbst an seinem Geburtstag Beiträge verfasst.';
$Definition['Yaga.Rules.CommentCount'] = 'Anzahl Kommentare';
$Definition['Yaga.Rules.CommentCount.Desc'] = 'Diese Auszeichnung vergeben, wenn die Anzahl der vom Nutzer verfassten Kommentare das Zielkriterium erreicht oder überschreitet.';
$Definition['Yaga.Rules.CommentCount.Criteria.Head'] = 'Kommentare insgesamt';
$Definition['Yaga.Rules.CommentMarathon'] = 'Kommentar-Marathon';
$Definition['Yaga.Rules.CommentMarathon.Desc'] = 'Diese Auszeichnung vergeben, wenn die Anzahl der vom Nutzer verfassten Kommentare in einer kurzen Zeitspanne das Zielkriterium erreicht oder überschreitet.';
$Definition['Yaga.Rules.DiscussionCount'] = 'Diskussionen';
$Definition['Yaga.Rules.CommentMarathon.Criteria.Head'] = 'Anzahl der Kommentare';
$Definition['Yaga.Rules.DiscussionBodyLength'] = 'Zeichenzahl';
$Definition['Yaga.Rules.DiscussionBodyLength.Desc'] = 'Diese Auszeichnung verleihen, wenn die Anzahl geschriebener Zeichen in der Diskussion eines Nutzers das Zielkriterium überschreitet. Gehe sicher, dass es weniger als oder genau %s Zeichen sind.';
$Definition['Yaga.Rules.DiscussionBodyLength.Criteria.Head'] = 'Wie viele Zeichen?';
$Definition['Yaga.Rules.DiscussionCategory'] = 'Diskussion in Kategorie';
$Definition['Yaga.Rules.DiscussionCategory.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer eine Diskussion in der angegebenen Kategorie erstellt.';
$Definition['Yaga.Rules.DiscussionCategory.Criteria.Head'] = 'Wähle die Kategorie:';
$Definition['Yaga.Rules.DiscussionCount'] = 'Anzahl Diskussionen';
$Definition['Yaga.Rules.DiscussionCount.Desc'] = 'Diese Auszeichnung vergeben, wenn die Anzahl der vom Nutzer gestarteten Diskussionen das Zielkriterium erreicht oder überschreitet.';
$Definition['Yaga.Rules.DiscussionCount.Criteria.Head'] = 'Diskussionen insgesamt';
$Definition['Yaga.Rules.DiscussionPageCount'] = 'Seitenlänge';
$Definition['Yaga.Rules.DiscussionPageCount.Desc'] = 'Diese Auszeichnung verleihen, wenn die Seitenzahl einer von diesem Benutzer gestarteten Diskussion eine vorgegebene Nummer überschreitet.';
$Definition['Yaga.Rules.DiscussionPageCount.Criteria.Head'] = 'Wie viele Seiten?';
$Definition['Yaga.Rules.HasMentioned'] = 'Erwähnung';
$Definition['Yaga.Rules.HasMentioned.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer jemanden mit @ erwähnt.';
$Definition['Yaga.Rules.HolidayVisit'] = 'Feiertag';
$Definition['Yaga.Rules.HolidayVisit.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer die Seite an einem bestimmten Feiertag besucht.';
$Definition['Yaga.Rules.LengthOfService'] = 'Verbrachte Zeit';
$Definition['Yaga.Rules.HolidayVisit.Criteria.Head'] = 'Datum des Feiertags';
$Definition['Yaga.Rules.LengthOfService'] = 'Mitgliedschaft';
$Definition['Yaga.Rules.LengthOfService.Desc'] = "Diese Auszeichnung verleihen, wenn der Nutzer schon länger als die angegebene Zeit (in Tagen, Wochen oder Jahren) angemeldet ist.";
$Definition['Yaga.Rules.ManualAward'] = 'Eigenhändige auszeichnung';
$Definition['Yaga.Rules.ManualAward.Desc'] = 'Diese Auszeichnung wird <strong>nie</strong> <em>automatisch</em> vergeben. Verwende diese Einstellung für Auszeichnungen die du eigenhändig verleihen möchtest.';
$Definition['Yaga.Rules.LengthOfService.Criteria.Head'] = 'Dauer der Zugehörigkeit';
$Definition['Yaga.Rules.ManualAward'] = 'Manuelle Auszeichnung';
$Definition['Yaga.Rules.ManualAward.Desc'] = 'Diese Auszeichnung wird <strong>nie</strong> <em>automatisch</em> vergeben. Verwende diese Einstellung für Auszeichnungen die du manuell verleihen möchtest.';
$Definition['Yaga.Rules.NecroPost'] = 'Altes Thema';
$Definition['Yaga.Rules.NecroPost.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer eine sehr alte Diskussion kommentiert (<em>Nekropost</em>).';
$Definition['Yaga.Rules.NecroPost.Criteria.Head'] = 'Wie alt ist eine <em>tote</em> Diskussion?';
$Definition['Yaga.Rules.NewbieComment'] = "Kommentar für einen neuen Nutzer";
$Definition['Yaga.Rules.NewbieComment.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer den ersten Kommentar in der ersten Diskussion eines neuen Benutzers geschrieben hat.';
$Definition['Yaga.Rules.NewbieComment.Criteria.Head'] = 'Neulingsgrad';
$Definition['Yaga.Rules.PhotoExists'] = 'Avatar';
$Definition['Yaga.Rules.PhotoExists.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer ein Avatar hochgeladen hat.';
$Definition['Yaga.Rules.ReactionCount'] = 'Erhaltene Reaktionen';
$Definition['Yaga.Rules.ReactionCount.Desc'] = 'Diese auszeichnung vergeben, wenn der Benutzer eine vorgegebene Anzahl eines bestimmten Reaktionstyps erhalten hat.';
$Definition['Yaga.Rules.ReflexComment'] = 'Erster!!!';
$Definition['Yaga.Rules.PhotoExists.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer einen Avatar hochgeladen hat.';
$Definition['Yaga.Rules.PostCount'] = 'Anzahl Beiträge';
$Definition['Yaga.Rules.PostCount.Desc'] = 'Diese Auszeichnung vergeben, wenn die Anzahl der vom Nutzer verfassten Kommentare und/oder Diskussionen das Zielkriterium erreicht oder überschreitet.';
$Definition['Yaga.Rules.PostCount.Criteria.Head'] = 'Beiträge insgesamt';
$Definition['Yaga.Rules.PostReactions'] = 'Anzahl Beitragsreaktionen';
$Definition['Yaga.Rules.PostReactions.Desc'] = 'Diese Auszeichnung verleihen, wenn ein Beitrag eines Benutzers die angegebene Anzahl an Reaktionen erhält.';
$Definition['Yaga.Rules.PostReactions.Criteria.Head'] = 'Anzahl Reaktionen';
$Definition['Yaga.Rules.PostReactions.LabelFormat'] = "# von %s's:";
$Definition['Yaga.Rules.QnAAnserCount'] = 'Akzeptierte Antworten (QnA Plugin notwendig)';
$Definition['Yaga.Rules.QnAAnserCount.Desc'] = 'Diese Auszeichnung verleihen, wenn eine bestimmte Anzahl Antworten des Benutzers akzeptiert wurden..';
$Definition['Yaga.Rules.QnAAnserCount.Criteria.Head'] = 'Anzahl akzeptierter Antworten?';
$Definition['Yaga.Rules.ReactionCount'] = 'Anzahl erhaltene Reaktionen';
$Definition['Yaga.Rules.ReactionCount.Desc'] = 'Diese Auszeichnung vergeben, wenn der Benutzer eine vorgegebene Anzahl eines bestimmten Reaktionstyps erhalten hat.';
$Definition['Yaga.Rules.ReactionCount.Criteria.Head'] = 'Reaktionen insgesamt';
$Definition['Yaga.Rules.ReflexComment'] = 'Eine neue Diskussion schnell kommentieren';
$Definition['Yaga.Rules.ReflexComment.Desc'] = "Diese Auszeichnung verleihen, wenn der Benutzer innerhalb einer vorgegebenen Sekundenzahl auf eine neu erstellte Diskussion geantwortet hat.";
$Definition['Yaga.Rules.SocialConnection'] = 'Soziale Verbindungen';
$Definition['Yaga.Rules.ReflexComment.Criteria.Head'] = 'Sekunden bis zum Kommentar';
$Definition['Yaga.Rules.SocialConnection'] = 'Soziale Netzwerk Verknüpfungen';
$Definition['Yaga.Rules.SocialConnection.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer seinen Account mit einem bestimmten sozialen Netzwerk verbunden hat.';
$Definition['Yaga.Rules.NecroPost'] = 'Altes Thema';
$Definition['Yaga.Rules.NecroPost.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer ein sehr altes Thema hervorholt (<em>Nekropost</em>).';
$Definition['Yaga.Rules.NecroPost.Criteria.Desc'] = 'Wie alt ist eine <em>tote</em> Diskussion?';
$Definition['Yaga.Rules.CakeDayPost'] = 'Geburtstagsposting';
$Definition['Yaga.Rules.CakeDayPost.Desc'] = 'Diese Auszeichnung verleihen, wenn der Benutzer selbst an seinem Geburtstag Beiträge verfasst.';
$Definition['Yaga.Rules.DiscussionPageCount'] = 'Seitenlänge';
$Definition['Yaga.Rules.DiscussionPageCount.Desc'] = 'Diese Auszeichnung verleihen, wenn die Seitenzahl einer von diesem Benutzer gestarteten Diskussion eine vorgegebene Nummer überschreitet.';
$Definition['Yaga.Rules.DiscussionPageCount.Criteria.Desc'] = 'Wie viele Seiten?';
$Definition['Yaga.Rules.DiscussionBodyLength'] = 'Zeichenzahl';
$Definition['Yaga.Rules.DiscussionBodyLength.Desc'] = 'Diese Auszeichnung verleihen, wenn die Anzahl geschriebener Zeichen in der Diskussion eines Nutzers das Zielkriterium überschreitet. Gehe sicher, dass die es weniger als %s Zeichen sind.';
$Definition['Yaga.Rules.DiscussionBodyLength.Criteria.Desc'] = 'Wie viele Zeichen?';
$Definition['Yaga.Rules.SocialConnection.Criteria.Head'] = 'Welches Soziale Netzwerk?';

View File

@ -154,7 +154,7 @@ $Definition['Yaga.Rules.CommentMarathon.Criteria.Head'] = 'Number of Comments';
$Definition['Yaga.Rules.DiscussionBodyLength'] = 'OP Length';
$Definition['Yaga.Rules.DiscussionBodyLength.Desc'] = 'Award this badge if the user has a discussion that reaches the target number of characters. Make sure you enter a number less than or equal to %s.';
$Definition['Yaga.Rules.DiscussionBodyLength.Criteria.Head'] = 'How many characters?';
$Definition['Yaga.Rules.DiscussionCategory'] = 'Post in category';
$Definition['Yaga.Rules.DiscussionCategory'] = 'Discussion in category';
$Definition['Yaga.Rules.DiscussionCategory.Desc'] = 'Award this badge if the user has started a discussion in the specified category.';
$Definition['Yaga.Rules.DiscussionCategory.Criteria.Head'] = 'Select Category:';
$Definition['Yaga.Rules.DiscussionCount'] = 'Discussion Count Total';
@ -181,6 +181,9 @@ $Definition['Yaga.Rules.NewbieComment.Desc'] = 'Award this badge if a comment is
$Definition['Yaga.Rules.NewbieComment.Criteria.Head'] = 'User Newbness';
$Definition['Yaga.Rules.PhotoExists'] = 'User has Avatar';
$Definition['Yaga.Rules.PhotoExists.Desc'] = 'Award this badge if the user has uploaded a profile photo.';
$Definition['Yaga.Rules.PostCount'] = 'Post Count Total';
$Definition['Yaga.Rules.PostCount.Desc'] = 'Award this badge if the total count of comments and/or discussions a user has ever made meets or exceeds the target criteria.';
$Definition['Yaga.Rules.PostCount.Criteria.Head'] = 'Total Posts';
$Definition['Yaga.Rules.PostReactions'] = 'Post Reaction Count';
$Definition['Yaga.Rules.PostReactions.Desc'] = 'Award this badge if the user has a single post with the specified reaction counts.';
$Definition['Yaga.Rules.PostReactions.Criteria.Head'] = 'Reaction Counts';