first commit

This commit is contained in:
DESKTOP-GBA0BK8\Admin
2023-04-08 12:19:53 -04:00
commit 7c8c8b1c76
4586 changed files with 2050693 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,117 @@
.inline-edit-group.inline-edit-coauthors {
display: none;
}
.inline-edit-group.inline-edit-coauthors #coauthors-edit {
margin-left: 5em;
}
#coauthors-list {
width: 100%;
padding: 0 5px;
}
#coauthors-list td {
padding-left:0;
padding-right:0;
vertical-align: middle;
background: #F9F9F9;
}
#coauthors-list .coauthor-row {
overflow: hidden;
}
#coauthors-list .coauthor-tag {
width: 200px;
display: block;
padding: 10px 3px 5px;
font-size: 13px;
color: #21759B;
border-bottom: 1px solid #21759B;
cursor: text;
float: left;
}
#coauthors-list .coauthor-tag:hover {
cursor: text;
background: #EAF2FA;
color:#D54E21;
}
#coauthors-list .ui-state-highlight {
border:2px dashed #21759B;
height:31px;
margin-top:3px;
width:200px;
}
#coauthors-list .ui-sortable-helper .coauthor-tag {
cursor: grabbing;
cursor:-moz-grabbing;
cursor:-webkit-grabbing;
}
#coauthors-list .coauthor-gravatar {
float: right;
height: 25px;
margin-right: 5px;
margin-top: -5px;
width: 25px;
}
#coauthors-list .coauthor-suggest {
margin: 5px 0;
color: #888;
width: 200px;
float: left;
}
#coauthors-list .coauthor-suggest:focus {
color: #333;
}
#coauthors-list .coauthors-author-options {
overflow: hidden;
padding: 7px 0 0 7px;
}
#coauthors-list .delete-coauthor {
display: block;
float: left;
padding: 5px;
text-decoration: underline;
color: #FF0000;
font-size: 11px;
border: 1px solid transparent;
}
#coauthors-list .delete-coauthor:hover {
cursor: pointer;
background: #FF0000;
color: #fff;
border: 1px solid #FF0000;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
}
#coauthors-loading {
margin: 10px 0px 5px 10px;
float: left;
}
#coauthors-readonly {
}
#coauthors-readonly ul {
list-style: none;
padding: 0;
margin: 0;
}
#coauthors-readonly ul li {
}
#coauthors-readonly ul li .avatar {
float: left;
}
#coauthors-readonly ul li .coauthor-tag {
display:block;
padding: 5px 3px;
margin-left: 30px;
font-size: 13px;
}
/** Block Editor Hack for 5.0: Hide the core author input **/
.block-editor label[for^="post-author-selector-"],
.block-editor select[id^="post-author-selector-"] {
display: none;
}
@@ -0,0 +1,8 @@
.co-authors.wp-list-table {
}
.co-authors.wp-list-table .column-display_name img.avatar {
float: left;
margin-right: 10px;
margin-top: 1px;
}
@@ -0,0 +1,7 @@
<?php
/**
* Constants
*/
define( 'COAUTHORS_PLUS_PATH', dirname( __FILE__ ) );
define( 'COAUTHORS_PLUS_URL', plugin_dir_url( __FILE__ ) );
@@ -0,0 +1,439 @@
jQuery( document ).ready(function () {
/*
* Click handler for the delete button
* @param event
*/
var coauthors_delete_onclick = function( e ) {
if ( confirm( coAuthorsPlusStrings.confirm_delete ) ) {
return coauthors_delete( this );
}
return false;
};
var $coauthors_loading = jQuery("<span id='ajax-loading'></span>");
function coauthors_delete( elem ) {
var $coauthor_row = jQuery( elem ).closest( '.coauthor-row' );
$coauthor_row.remove();
// Hide the delete button when there's only one Co-Author
if ( jQuery( '#coauthors-list .coauthor-row .coauthor-tag' ).length <= 1 )
jQuery( '#coauthors-list .coauthor-row .coauthors-author-options' ).addClass( 'hidden' );
return true;
}
var coauthors_edit_onclick = function( event ) {
var $tag = jQuery( this );
var $co = $tag.prev();
$tag.hide();
$co.show()
.focus()
;
$co.previousAuthor = $tag.text();
}
/*
* Save co-author
* @param int Co-Author ID
* @param string Co-Author Name
* @param object The autosuggest input box
*/
function coauthors_save_coauthor( author, co ) {
// get sibling <span> and update
co.siblings( '.coauthor-tag' )
.html( author.name )
.append( coauthors_create_author_gravatar( author ) )
.show()
;
// Update the value of the hidden input
co.siblings( 'input[name="coauthors[]"]' ).val( author.nicename );
}
/*
* Add co-author
* @param string Co-Author Name
* @param object The autosuggest input box
* @param boolean Initial set up or not?
*/
function coauthors_add_coauthor( author, co, init, count ){
// Check if editing
if ( co && co.siblings( '.coauthor-tag' ).length ) {
coauthors_save_coauthor( author, co );
} else {
// Not editing, so we create a new co-author entry
if ( count == 0 ) {
var coName = ( count == 0 ) ? 'coauthors-main' : '';
// Add new co-author to <select>
//coauthors_select_author( co-author );
}
var options = { addDelete: true, addEdit: false };
// Create autosuggest box and text tag
if ( ! co ) var co = coauthors_create_autosuggest( author.name, coName )
var tag = coauthors_create_author_tag( author );
var input = coauthors_create_author_hidden_input( author );
var $gravatar = coauthors_create_author_gravatar( author );
tag.append( $gravatar );
coauthors_add_to_table( co, tag, input, options );
if ( ! init ) {
// Create new author-suggest and append it to a new row
var newCO = coauthors_create_autosuggest( '', false );
coauthors_add_to_table( newCO );
move_loading( newCO );
}
}
co.bind( 'blur', coauthors_stop_editing );
// Set the value for the auto-suggest box to the co-author's name and hide it
// unescape() is deprecated, so replacing it with decodeURIComponent() here and every places.
co.val( decodeURIComponent( author.name ) )
.hide()
.unbind( 'focus' )
;
return true;
}
/*
* Add the autosuggest box and text tag to the Co-Authors table
* @param object Autosuggest input box
* @param object Text tag
* @param
*/
function coauthors_add_to_table( co, tag, input, options ) {
if ( co ) {
var $div = jQuery( '<div/>' )
.addClass( 'suggest' )
.addClass( 'coauthor-row' )
.append( co )
.append( tag )
.append( input )
;
//Add buttons to row
if ( tag ) coauthors_insert_author_edit_cells( $div, options );
jQuery( '#coauthors-list' ).append( $div );
}
}
/*
* Adds a delete and edit button next to a co-author
* @param object The row to which the new co-author should be added
*/
function coauthors_insert_author_edit_cells( $div, options ){
var $options = jQuery( '<div/>' )
.addClass( 'coauthors-author-options' )
;
if ( options.addDelete ) {
var deleteBtn = jQuery( '<span/>' )
.addClass( 'delete-coauthor' )
.text( coAuthorsPlusStrings.delete_label )
.bind( 'click', coauthors_delete_onclick )
;
$options.append( deleteBtn );
}
$div.append( $options );
return $div;
}
/*
* Creates autosuggest input box
* @param string [optional] Name of the co-author
* @param string [optional] Name to be applied to the input box
*/
function coauthors_create_autosuggest( authorName, inputName ) {
if ( ! inputName ) inputName = 'coauthorsinput[]';
var $co = jQuery( '<input/>' );
$co.attr({
'class': 'coauthor-suggest'
, 'name': inputName
})
.appendTo( $coauthors_div )
.suggest( coAuthorsPlus_ajax_suggest_link, {
onSelect: coauthors_autosuggest_select,
delay: 1000
})
.keydown( coauthors_autosuggest_keydown )
;
if ( authorName )
$co.attr( 'value', decodeURIComponent( authorName ) );
else
$co.attr( 'value', coAuthorsPlusStrings.search_box_text )
.focus( function(){ $co.val( '' ) } )
.blur( function(){ $co.val( coAuthorsPlusStrings.search_box_text ) } )
;
return $co;
}
// Callback for when a user selects a co-author
function coauthors_autosuggest_select() {
$this = jQuery( this );
var vals = this.value.split( '|' );
var author = {}
author.id = jQuery.trim( vals[0] );
author.login = jQuery.trim( vals[1] );
author.name = jQuery.trim( vals[2] );
author.email = jQuery.trim( vals[3] );
if( author.avatar !== '' ){
author.avatar = jQuery.trim( vals[5] );
}
// Decode user-nicename if it has special characters in it.
author.nicename = decodeURIComponent( jQuery.trim( vals[4] ) );
if ( author.id=='New' ) {
coauthors_new_author_display( name );
} else {
coauthors_add_coauthor( author, $this );
// Show the delete button if we now have more than one co-author
if ( jQuery( '#coauthors-list .coauthor-row .coauthor-tag' ).length > 1 )
jQuery( '#coauthors-list .coauthor-row .coauthors-author-options' ).removeClass( 'hidden' );
}
}
// Prevent the enter key from triggering a submit
function coauthors_autosuggest_keydown( e ) {
if ( e.keyCode == 13 ) {return false;}
}
/*
* Blur handler for autosuggest input box
* @param event
*/
function coauthors_stop_editing( event ) {
var co = jQuery( this );
var tag = jQuery( co.next() );
co.attr( 'value',tag.text() );
co.hide();
tag.show();
// editing = false;
}
/*
* Creates the text tag for a co-author
* @param string Name of the co-author
*/
function coauthors_create_author_tag( author ) {
var $tag = jQuery( '<span></span>' )
.text( decodeURIComponent( author.name ) )
.attr( 'title', coAuthorsPlusStrings.input_box_title )
.addClass( 'coauthor-tag' )
// Add Click event to edit
.click( coauthors_edit_onclick );
return $tag;
}
function coauthors_create_author_gravatar( author ) {
var $gravatar = jQuery( '<img/>' )
.attr( 'alt', author.name )
.attr( 'src', author.avatar )
.addClass( 'coauthor-gravatar' )
;
return $gravatar;
}
/*
* Creates the text tag for a co-author
* @param string Name of the co-author
*/
function coauthors_create_author_hidden_input ( author ) {
var input = jQuery( '<input />' )
.attr({
'type': 'hidden',
'id': 'coauthors_hidden_input',
'name': 'coauthors[]',
'value': decodeURIComponent( author.nicename )
})
;
return input;
}
var $coauthors_div = null;
/**
* Initialize the Coauthors UI.
*
* @param array List of coauthors objects.
* Each coauthor object should have the (string) properties:
* login
* email
* name
* nicename
*/
function coauthors_initialize( post_coauthors ) {
// Add the controls to add co-authors
$coauthors_div = jQuery( '#coauthors-edit' );
if ( $coauthors_div.length ) {
// Create the co-authors table
var table = jQuery( '<div/>' )
.attr( 'id', 'coauthors-list' )
;
$coauthors_div.append( table );
}
// Select co-authors already added to the post
var addedAlready = [];
//jQuery('#the-list tr').each(function(){
var count = 0;
jQuery.each( post_coauthors, function() {
coauthors_add_coauthor( this, undefined, true, count );
count++;
});
// Hide the delete button if there's only one co-author
if ( jQuery( '#coauthors-list .coauthor-row .coauthor-tag' ).length < 2 )
jQuery( '#coauthors-list .coauthor-row .coauthors-author-options' ).addClass( 'hidden' );
// Create new author-suggest and append it to a new row
var newCO = coauthors_create_autosuggest( '', false );
coauthors_add_to_table( newCO );
$coauthors_loading = jQuery( '#publishing-action .spinner' ).clone().attr( 'id', 'coauthors-loading' );
move_loading( newCO );
// Make co-authors sortable so an editor can control the order of the co-authors
jQuery( '#coauthors-edit' ).ready(function( $ ) {
$( '#coauthors-list' ).sortable({
axis: 'y',
handle: '.coauthor-tag',
placeholder: 'ui-state-highlight',
items: 'div.coauthor-row:not(div.coauthor-row:last)',
containment: 'parent',
});
});
}
function show_loading() {
$coauthors_loading.css( 'visibility', 'visible' );
}
function hide_loading() {
$coauthors_loading.css( 'visibility', 'hidden' );
}
function move_loading( $input ) {
$coauthors_loading.insertAfter( $input );
}
// Show laoding cursor for autocomplete ajax requests
jQuery( document ).ajaxSend(function( e, xhr, settings ) {
if ( settings.url.indexOf( coAuthorsPlus_ajax_suggest_link ) != -1 ) {
// Including existing authors on the AJAX suggest link
// allows us to filter them out of the search request
var existing_authors = jQuery( 'input[name="coauthors[]"]' ).map(function(){return jQuery( this ).val();}).get();
settings.url = settings.url.split( '&existing_authors' )[0];
settings.url += '&existing_authors=' + existing_authors.join( ',' );
show_loading();
}
});
// Hide laoding cursor when autocomplete ajax requests are finished
jQuery( document ).ajaxComplete(function( e, xhr, settings ) {
if ( settings.url.indexOf( coAuthorsPlus_ajax_suggest_link ) != -1 )
hide_loading();
});
if ( 'post-php' == adminpage || 'post-new-php' == adminpage ) {
var $post_coauthor_logins = jQuery( 'input[name="coauthors[]"]' );
var $post_coauthor_names = jQuery( 'input[name="coauthorsinput[]"]' );
var $post_coauthor_emails = jQuery( 'input[name="coauthorsemails[]"]' );
var $post_coauthor_nicenames = jQuery( 'input[name="coauthorsnicenames[]"]' );
var $post_coauthoravatars = jQuery( 'input[name="coauthorsavatars[]"]' );
var post_coauthors = [];
for ( var i = 0; i < $post_coauthor_logins.length; i++ ) {
post_coauthors.push({
login: $post_coauthor_logins[i].value,
name: $post_coauthor_names[i].value,
email: $post_coauthor_emails[i].value,
nicename: $post_coauthor_nicenames[i].value,
avatar: $post_coauthoravatars[i].value,
});
}
// Remove the read-only co-authors so we don't get craziness
jQuery( '#coauthors-readonly' ).remove();
coauthors_initialize( post_coauthors );
}
else if ( 'edit-php' == adminpage ) {
var wpInlineEdit = inlineEditPost.edit;
inlineEditPost.edit = function( id ) {
wpInlineEdit.apply( this, arguments )
// get the post ID
var postId = 0
if ( typeof( id ) == 'object' )
postId = parseInt( this.getId( id ) )
if ( postId > 0 ) {
var $postRow = jQuery( '#post-' + postId )
// Move the element to the appropriate position in the view
// JS hack for core bug: https://core.trac.wordpress.org/ticket/26982
jQuery( '.quick-edit-row .inline-edit-col-left .inline-edit-col' ).find( '.inline-edit-coauthors' ).remove() // remove any previously added elements
var el = jQuery( '.inline-edit-group.inline-edit-coauthors', '#edit-' + postId );
el.detach().appendTo( '.quick-edit-row .inline-edit-col-left .inline-edit-col' ).show();
// initialize co-authors
var post_coauthors = jQuery.map( jQuery( '.column-coauthors a', $postRow ), function( el ) {
return {
login: jQuery( el ).data( 'user_login' ),
name: jQuery( el ).data( 'display_name' ),
email: jQuery( el ).data( 'user_email' ),
nicename: jQuery( el ).data( 'user_nicename' ),
avatar: jQuery( el ).data( 'avatar' ),
}
});
coauthors_initialize( post_coauthors );
}
}
}
});
if ( typeof( console ) === 'undefined' ) {
var console = {}
console.log = console.error = function() {};
}
@@ -0,0 +1,32 @@
jQuery( document ).ready(function( $ ){
$( '.reassign-option' ).on( 'click',function(){
$( '#wpbody-content input#submit' ).addClass( 'button-primary' ).removeAttr( 'disabled' );
});
$( '#leave-assigned-to' ).select2({
minimumInputLength: 2,
width: 'copy',
multiple: false,
ajax: {
url: ajaxurl,
dataType: 'json',
data: function( term, page ) {
return {
q: term,
action: 'search_coauthors_to_assign',
guest_author: $( '#id' ).val()
};
},
results: function( data, page ) {
return { results: data };
}
},
formatResult: function( object, container, query ) {
return object.display_name;
},
formatSelection: function( object, container ) {
return object.display_name;
}
}).on( 'change', function() {
$( '#reassign-another' ).trigger( 'click' );
});
});
@@ -0,0 +1,537 @@
# Translation of co-authors-plus in German
# This file is distributed under the same license as the co-authors-plus package.
msgid ""
msgstr ""
"PO-Revision-Date: 2013-01-07 12:20:48+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/0.1\n"
"Project-Id-Version: co-authors-plus\n"
#: php/class-coauthors-wp-list-table.php:207
msgid "View Posts"
msgstr "Post anzeigen"
#: co-authors-plus.php:993
msgid "Mine"
msgstr "Meins"
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr "Mohammad Jangda, Daniel Bachhuber, Automattic</a>, &Uuml;bersetzung von <a href=\"http://de.trns.nl\">trns.nl"
#: co-authors-plus.php:481
msgid "No co-author exists for that term"
msgstr "Hierf&uuml;r gibt es keinen Co-Autor"
#: co-authors-plus.php:1230
msgid "New comment on your post \"%s\""
msgstr "Neuer Kommentar zu deinem Post \"%s\""
#: co-authors-plus.php:1232 co-authors-plus.php:1349
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr "Autor : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1233 co-authors-plus.php:1350
msgid "E-mail : %s"
msgstr "E-Mail: %s"
#: co-authors-plus.php:1234 co-authors-plus.php:1244 co-authors-plus.php:1253
#: co-authors-plus.php:1336 co-authors-plus.php:1343 co-authors-plus.php:1351
msgid "URL : %s"
msgstr "URL: %s"
#: co-authors-plus.php:1235 co-authors-plus.php:1352
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr "Whois : http://whois.arin.net/rest/ip/%s"
#: co-authors-plus.php:1236 co-authors-plus.php:1353
msgid "Comment: "
msgstr "Kommentar:"
#: co-authors-plus.php:1237
msgid "You can see all comments on this post here: "
msgstr "Du kannst alle Kommentare zu diesem Post hier anschauen:"
#: co-authors-plus.php:1239
msgid "[%1$s] Comment: \"%2$s\""
msgstr "[%1$s] Kommentar: \"%2$s\""
#: co-authors-plus.php:1241
msgid "New trackback on your post \"%s\""
msgstr "Neuer Trackback zu deinem Post \"%s\""
#: co-authors-plus.php:1243 co-authors-plus.php:1252
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr "Website: %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1245 co-authors-plus.php:1254
msgid "Excerpt: "
msgstr "Auszug:"
#: co-authors-plus.php:1246
msgid "You can see all trackbacks on this post here: "
msgstr "Du kannst alle Trackback zu diesem Post hier sehen:"
#: co-authors-plus.php:1248
msgid "[%1$s] Trackback: \"%2$s\""
msgstr "[%1$s] Trackback: \"%2$s\""
#: co-authors-plus.php:1250
msgid "New pingback on your post \"%s\""
msgstr "Neuer Pingback zu deinem Post \"%s\""
#: co-authors-plus.php:1255
msgid "You can see all pingbacks on this post here: "
msgstr "Du kannst alle Pingbacks zu deinem Post hier sehen:"
#: co-authors-plus.php:1257
msgid "[%1$s] Pingback: \"%2$s\""
msgstr "[%1$s] Pingback: \"%2$s\""
#: co-authors-plus.php:1260
msgid "Permalink: %s"
msgstr "Permalink: %s"
#: co-authors-plus.php:1262 co-authors-plus.php:1359
msgid "Trash it: %s"
msgstr "In den Papierkorb: %s"
#: co-authors-plus.php:1264 co-authors-plus.php:1361
msgid "Delete it: %s"
msgstr "L&ouml;schen: %s"
#: co-authors-plus.php:1265 co-authors-plus.php:1362
msgid "Spam it: %s"
msgstr "Als Spam markieren: %s"
#: co-authors-plus.php:1333
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr "Ein neuer Trackback zum Post \"%s\" wartet auf deine Freigabe"
#: co-authors-plus.php:1335 co-authors-plus.php:1342
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr "Website : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1337
msgid "Trackback excerpt: "
msgstr "Trackback Auszug:"
#: co-authors-plus.php:1340
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr "Ein neuer Pingback zum Post \"%s\" wartet auf deine Freigabe"
#: co-authors-plus.php:1344
msgid "Pingback excerpt: "
msgstr "Pingback Auszug:"
#: co-authors-plus.php:1347
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr "Ein neuer Kommentar auf den Post \"%s\" wartet auf deine Freigabe"
#: co-authors-plus.php:1357
msgid "Approve it: %s"
msgstr "Genehmigen: %s"
#: co-authors-plus.php:1364
msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:"
msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:"
msgstr[0] "Im Moment wartet %s Kommentar auf deine Freigabe. Bitte besuche die Moderationsoberfl&auml;che:"
msgstr[1] "Im Moment warten %s Kommentare auf deine Freigabe. Bitte besuche die Moderationsoberfl&auml;che:"
#: co-authors-plus.php:1368
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr "[%1$s] bitte moderiere: \"%2$s\""
#: php/class-coauthors-guest-authors.php:77
msgid "Guest Author"
msgstr "Gastautor"
#: php/class-coauthors-guest-authors.php:78
msgid "Guest Authors"
msgstr "Gastautoren"
#: php/class-coauthors-guest-authors.php:79
msgid "All Guest Authors"
msgstr "Alle Gastautoren"
#: php/class-coauthors-guest-authors.php:80
msgid "Add New Guest Author"
msgstr "Einen neuen Gastautoren hinauf&uuml;gen"
#: php/class-coauthors-guest-authors.php:81
msgid "Edit Guest Author"
msgstr "Gastautor bearbeiten"
#: php/class-coauthors-guest-authors.php:82
msgid "New Guest Author"
msgstr "Neuer Gastautor"
#: php/class-coauthors-guest-authors.php:83
msgid "View Guest Author"
msgstr "Gastautor anzeigen"
#: php/class-coauthors-guest-authors.php:84
msgid "Search Guest Authors"
msgstr "Gastautor suchen"
#: php/class-coauthors-guest-authors.php:85
msgid "No guest authors found"
msgstr "Dieser Gastautor konnte nicht gefunden werden"
#: php/class-coauthors-guest-authors.php:86
msgid "No guest authors found in Trash"
msgstr "Keinen Gastautoren im Papierkorb gefunden"
#: php/class-coauthors-guest-authors.php:87
msgid "Update Guest Author"
msgstr "Gastautor aktualisieren"
#: php/class-coauthors-guest-authors.php:88
msgid "About the guest author"
msgstr "&Uuml;ber diesen Gastautoren"
#: php/class-coauthors-guest-authors.php:97
msgctxt "co-authors-plus"
msgid "Add New"
msgstr "neuen hinauf&uuml;gen"
#: php/class-coauthors-guest-authors.php:153
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Gastautor aktualisiert. <a href=\"%s\">Profil ansehen</a>"
#: php/class-coauthors-guest-authors.php:154
msgid "Custom field updated."
msgstr "Benutzerdefiniertes Feld aktualisiert."
#: php/class-coauthors-guest-authors.php:155
msgid "Custom field deleted."
msgstr "Benutzerdefiniertes Feld entfernt."
#: php/class-coauthors-guest-authors.php:156
msgid "Guest author updated."
msgstr "Gastautor aktualisiert."
#: php/class-coauthors-guest-authors.php:158
msgid "Guest author restored to revision from %s"
msgstr "Gastautor aus der Revision von %s wiederhergestellt"
#: php/class-coauthors-guest-authors.php:160
msgid "Guest author saved."
msgstr "Gastautor gespeichert"
#: php/class-coauthors-guest-authors.php:161
msgid "Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr "Gastautor erstellt. <a target=\"_blank\" href=\"%s\">Profilvorschau</a> "
#: php/class-coauthors-guest-authors.php:162
msgid "Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview profile</a>"
msgstr "Gastautor geplant f&uuml; <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Profilvorschau</a>"
#: php/class-coauthors-guest-authors.php:164
msgid "M j, Y @ G:i"
msgstr "M j, Y @ G:i"
#: php/class-coauthors-guest-authors.php:165
msgid "Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr "Gastautor aktualisiert. <a target=\"_blank\" href=\"%s\">Profilvorschau</a>"
#: php/class-coauthors-guest-authors.php:182
#: php/class-coauthors-guest-authors.php:215
#: php/class-coauthors-guest-authors.php:430
msgid "Doin' something fishy, huh?"
msgstr "&Auml;hm, was hast du vor?"
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:219
msgid "You don't have permission to perform this action."
msgstr "Du hast nicht die n&ouml;tigen Rechte, um das zu tun."
#: php/class-coauthors-guest-authors.php:224
#: php/class-coauthors-guest-authors.php:435
msgid "Guest author can't be deleted because it doesn't exist."
msgstr "Der Gastautor kann nicht gel&ouml;scht werden, weil er nicht existiert."
#: php/class-coauthors-guest-authors.php:238
msgid "Co-author does not exists. Try again?"
msgstr "Diesen Co-Autor gibt es nicht. Nochmal versuchen?"
#: php/class-coauthors-guest-authors.php:246
msgid "Please make sure to pick an option."
msgstr "Bitte w&auml;hle eine Option."
#: php/class-coauthors-guest-authors.php:386
msgid "Guest author deleted."
msgstr " Gastautor gel&ouml;scht"
#: php/class-coauthors-guest-authors.php:410
msgid "Save"
msgstr "speichern"
#: php/class-coauthors-guest-authors.php:411
msgid "Unique Slug"
msgstr "Eindeutiger Slug"
#: php/class-coauthors-guest-authors.php:413
msgid "Name"
msgstr "Name"
#: php/class-coauthors-guest-authors.php:414
msgid "Contact Info"
msgstr "Kontakt Info"
#: php/class-coauthors-guest-authors.php:439
msgid "Delete %s"
msgstr "Entferne %s"
#: php/class-coauthors-guest-authors.php:440
msgid "You have specified this guest author for deletion:"
msgstr "Du hast diesen Gastautor zum l&ouml;schen ausgew&auml;hlt:"
#: php/class-coauthors-guest-authors.php:442
msgid "What should be done with posts assigned to this guest author?"
msgstr "Was soll mit den Posts geschehen, die diesem Gastautor zugewiesen sind?"
#: php/class-coauthors-guest-authors.php:443
msgid "Note: If you'd like to delete the guest author and all of their posts, you should delete their posts first and then come back to delete the guest author."
msgstr "Beachte: Wenn du den Gastautor und alle seine Posts l&ouml;schen m&ouml;test, solltest du zuerst seine Artikel l&ouml;schen und dann hierher zur&uuml;ckkommen, um den Gastautor zu l&ouml;schen."
#: php/class-coauthors-guest-authors.php:452
msgid "Reassign to another co-author:"
msgstr "Einem anderen Autoren zuweisen:"
#: php/class-coauthors-guest-authors.php:458
msgid "Leave posts assigned to the mapped user, %s."
msgstr "Die Posts dem Verbundenen WordPress user %s zuweisen."
#: php/class-coauthors-guest-authors.php:463
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr "Entferne den Namen von den Post, aber belasse die Posts in ihrem aktuellen Zustand."
#: php/class-coauthors-guest-authors.php:466
msgid "Confirm Deletion"
msgstr "L&ouml;schen best&auml;tigen"
#: php/class-coauthors-guest-authors.php:536
msgid "WordPress User Mapping"
msgstr "WordPress User verbinden"
#: php/class-coauthors-guest-authors.php:538
msgid "-- Not mapped --"
msgstr " Nicht verbunden "
#: php/class-coauthors-guest-authors.php:651
msgid "Guest authors cannot be created without display names."
msgstr "Gastautoren k&ouml;nnen nicht ohne &Ouml;ffentlichen Namen erstellt werden."
#: php/class-coauthors-guest-authors.php:658
msgid "Guest authors cannot be created with the same user_login value as a user. Try creating a profile from the user instead"
msgstr "Gastautoren k&ouml;nnen nicht mit dem selben Login Namen, wie ein echter Benutzer erstellt werden. "
#: php/class-coauthors-guest-authors.php:663
msgid "Display name conflicts with another guest author display name."
msgstr "Der &Ouml;ffentliche Name dieses Gastautoren steht im Konflikt mit einem anderen."
#: php/class-coauthors-guest-authors.php:829
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Vorname"
#: php/class-coauthors-guest-authors.php:834
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Nachname"
#: php/class-coauthors-guest-authors.php:839
msgid "Slug"
msgstr "Slug"
#: php/class-coauthors-guest-authors.php:846
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr "E-mail"
#: php/class-coauthors-guest-authors.php:851
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr "Verbundener Account"
#: php/class-coauthors-guest-authors.php:856
msgid "Website"
msgstr "Website"
#: php/class-coauthors-guest-authors.php:861
msgid "AIM"
msgstr "AIM"
#: php/class-coauthors-guest-authors.php:866
msgid "Yahoo IM"
msgstr "Yahoo IM"
#: php/class-coauthors-guest-authors.php:871
msgid "Jabber / Google Talk"
msgstr "Jabber / Google Talk"
#: php/class-coauthors-guest-authors.php:876
msgid "Biographical Info"
msgstr "Biographische Angaben"
#: php/class-coauthors-guest-authors.php:1006
msgid "%s is a required field"
msgstr "%s ist ein Pflichtfeld"
#: php/class-coauthors-guest-authors.php:1012
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr "user_login kann nicht mit einem existierenden Gastautoren oder verbundenen Benutzer &uuml;bereinstimmen"
#: php/class-coauthors-guest-authors.php:1057
msgid "Guest author does not exist"
msgstr "Gastautor existiert nicht"
#: php/class-coauthors-guest-authors.php:1069
msgid "Reassignment co-author does not exist"
msgstr "Dieser Co-Autor existiert nicht"
#: php/class-coauthors-guest-authors.php:1101
msgid "No user exists with that ID"
msgstr "Es gibt keinen Nutzer mit dieser ID"
#: php/class-coauthors-guest-authors.php:1158
msgid "Edit Profile"
msgstr "Profil bearbeiten"
#: php/class-coauthors-guest-authors.php:1166
msgid "Create Profile"
msgstr "Profil erstellen"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr "Co-Autoren"
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr "Co-Autor"
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Alle Anzeigen"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr "Mit verbundenem Account"
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr "Ohne verbundenen Account"
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr "Es wurden keine passenden Gastautoren gefunden."
#: php/class-coauthors-wp-list-table.php:257
msgid "Filter"
msgstr "Filter"
#: php/class-wp-cli.php:153
msgid "Please specify a valid user_login"
msgstr "Bitte gib einen validen user_login an"
#: php/class-wp-cli.php:156
msgid "Please specify a valid co-author login"
msgstr "Bitte gib einen validen co-author login an"
#: php/class-wp-cli.php:163
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr "&Uuml;berspringe - Post 2%d es wurde schon ein Co-Autor hinzugef&uuml;gt: %s"
#: php/class-wp-cli.php:168
msgid "Updating - Adding %s's byline to post #%d"
msgstr "Aktualisieren - Erg&auml;nze %s's Namen zum Post #%d"
#: php/class-wp-cli.php:173
msgid "All done! %d posts were affected."
msgstr "Fertig! %d Posts wurden bearbeiten."
#: php/class-coauthors-guest-authors.php:475
msgid "Add New"
msgstr "Neu"
#: php/class-coauthors-wp-list-table.php:206
msgid "Delete"
msgstr "L&ouml;schen"
#: php/class-coauthors-guest-authors.php:823
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr "&Ouml;ffentlicher Name"
#: php/class-coauthors-guest-authors.php:817
msgid "ID"
msgstr "ID"
#: template-tags.php:136
msgid " and "
msgstr " und "
#: co-authors-plus.php:342
msgid "<strong>Note:</strong> To edit post authors, please enable javascript or use a javascript-capable browser"
msgstr "<strong>Beachte:</strong> Um Artikel Autoren zu &auml;ndern, bitte JavaScript aktivieren oder einen JavaScript f&auml;higen Browser nutzen"
#: co-authors-plus.php:349 co-authors-plus.php:956
msgid "Click on an author to change them. Drag to change their order. Click on <strong>Remove</strong> to remove them."
msgstr "Klicke auf einen Autor um sie zu &auml;ndern. Durch verschieben &auml;nderst du ihre Reihenfolge. Klicke auf <strong>Entfernen</strong> um sie zu entfernen."
#: co-authors-plus.php:287 co-authors-plus.php:382 co-authors-plus.php:1158
msgid "Authors"
msgstr "Autoren"
#: co-authors-plus.php:425 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Artikel"
#: co-authors-plus.php:442
msgid "View posts by this author"
msgstr "Schaue dir Artikel von diesem Autor an"
#: co-authors-plus.php:951 php/class-coauthors-wp-list-table.php:205
msgid "Edit"
msgstr "Bearbeiten"
#: co-authors-plus.php:952
msgid "Remove"
msgstr "Entfernen"
#: co-authors-plus.php:953
msgid "Are you sure you want to remove this author?"
msgstr "Bist du sicher, dass du diesen Autor entfernen m&ouml;chtest?"
#: co-authors-plus.php:954
msgid "Click to change this author, or drag to change their position"
msgstr "Klicken um diesen Autor zu &auml;ndern oder verschiebe sie um ihre Position zu &auml;ndern"
#: co-authors-plus.php:955
msgid "Search for an author"
msgstr "Suche nach einem Autor"
#: template-tags.php:82
msgid "No post ID provided for CoAuthorsIterator constructor. Are you not in a loop or is $post not set?"
msgstr "Keine Artikel ID für den CoAuthorsIterator Konstruktor verf&uuml;gbar. Bist du nicht im Loop oder wurde $post nicht gesetzt?"
#: template-tags.php:208 template-tags.php:365
msgid "Posts by %s"
msgstr "Artikel von %s"
#: template-tags.php:257
msgid "Visit %s&#8217;s website"
msgstr "Besuche %s&#8217;s Website"
msgid "Co-Authors Plus"
msgstr "Co-Authors Plus"
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr "http://wordpress.org/extend/plugins/co-authors-plus/"
msgid "Allows multiple authors to be assigned to a post. This plugin is an extended version of the Co-Authors plugin developed by Weston Ruter."
msgstr "Erlaubt es mehrere Autoren einem Artikel zuzuweisen. Dieses Plugin ist eine erweiterte Version des Co-Authors Plugins, dass von Weston Ruter entwickelt wurde."
@@ -0,0 +1,603 @@
# Copyright (C) 2012 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus 3.0.1-working\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2012-11-21 21:17:39+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2014-02-27 21:35-0500\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: Poedit 1.6.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: es\n"
#: co-authors-plus.php:287 co-authors-plus.php:382 co-authors-plus.php:1158
msgid "Authors"
msgstr "Autores"
#: co-authors-plus.php:342
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
"<strong>Nota:</strong> Para editar autores de esta entrada, por favor "
"habilite Javascript o use un navegador que lo soporte"
#: co-authors-plus.php:349 co-authors-plus.php:956
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
"Haz click en el nombre del autor para cambiarlo; Arrástralo para cambiar el "
"orden; Haz click en <strong>Borrar</strong> para eliminarlo."
#: co-authors-plus.php:425 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Entradas"
#: co-authors-plus.php:442
msgid "View posts by this author"
msgstr "Ver entradas por este autor"
#: co-authors-plus.php:481
msgid "No co-author exists for that term"
msgstr "No hay co-authors para ese término"
#: co-authors-plus.php:951 php/class-coauthors-wp-list-table.php:205
msgid "Edit"
msgstr "Editar"
#: co-authors-plus.php:952
msgid "Remove"
msgstr "Borrar"
#: co-authors-plus.php:953
msgid "Are you sure you want to remove this author?"
msgstr "¿Está seguro de remover este autor?"
#: co-authors-plus.php:954
msgid "Click to change this author, or drag to change their position"
msgstr "Click para cambiar este autor, o arrastrar para cambiar la posición"
#: co-authors-plus.php:955
msgid "Search for an author"
msgstr "Buscar un autor"
#: co-authors-plus.php:993
msgid "Mine"
msgstr "Míos"
#: co-authors-plus.php:1230
msgid "New comment on your post \"%s\""
msgstr "Nuevo comentario en tu entrada \"%s\""
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1232 co-authors-plus.php:1349
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr "Autor : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1233 co-authors-plus.php:1350
msgid "E-mail : %s"
msgstr "E-mail : %s"
#: co-authors-plus.php:1234 co-authors-plus.php:1244 co-authors-plus.php:1253
#: co-authors-plus.php:1336 co-authors-plus.php:1343 co-authors-plus.php:1351
msgid "URL : %s"
msgstr "URL : %s"
#: co-authors-plus.php:1235 co-authors-plus.php:1352
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr "Whois : http://whois.arin.net/rest/ip/%s"
#: co-authors-plus.php:1236 co-authors-plus.php:1353
msgid "Comment: "
msgstr "Comentario: "
#: co-authors-plus.php:1237
msgid "You can see all comments on this post here: "
msgstr "Ve acá todos los comentarios de esta entrada: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1239
msgid "[%1$s] Comment: \"%2$s\""
msgstr "[%1$s] Comentario: \"%2$s\""
#: co-authors-plus.php:1241
msgid "New trackback on your post \"%s\""
msgstr "Nuevo trackback en tu entrada \"%s\""
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1243 co-authors-plus.php:1252
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr "Sitio Web: %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1245 co-authors-plus.php:1254
msgid "Excerpt: "
msgstr "Resumen: "
#: co-authors-plus.php:1246
msgid "You can see all trackbacks on this post here: "
msgstr "Puedes ver acá todos los trackbacks de esta entrada: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1248
msgid "[%1$s] Trackback: \"%2$s\""
msgstr "[%1$s] Trackback: \"%2$s\""
#: co-authors-plus.php:1250
msgid "New pingback on your post \"%s\""
msgstr "Nuevo pingback en tu entrada \"%s\""
#: co-authors-plus.php:1255
msgid "You can see all pingbacks on this post here: "
msgstr "Puedes ver acá todos los pingbacks de esta entrada: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1257
msgid "[%1$s] Pingback: \"%2$s\""
msgstr "[%1$s] Pingback: \"%2$s\""
#: co-authors-plus.php:1260
msgid "Permalink: %s"
msgstr "Link permanente: %s"
#: co-authors-plus.php:1262 co-authors-plus.php:1359
msgid "Trash it: %s"
msgstr "Eliminarlo: %s"
#: co-authors-plus.php:1264 co-authors-plus.php:1361
msgid "Delete it: %s"
msgstr "Borrarlo: %s"
#: co-authors-plus.php:1265 co-authors-plus.php:1362
msgid "Spam it: %s"
msgstr "Marcar SPAM: %s"
#: co-authors-plus.php:1333
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr "Un nuevo trackback en la entrada \"%s\" espera tu aprobación"
#: co-authors-plus.php:1335 co-authors-plus.php:1342
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr "Sitio Web : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1337
msgid "Trackback excerpt: "
msgstr "Resumen de trackback: "
#: co-authors-plus.php:1340
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr "Un nuevo pingback en la entrada \"%s\" espera tu aprobación"
#: co-authors-plus.php:1344
msgid "Pingback excerpt: "
msgstr "Resumen de pingback: "
#: co-authors-plus.php:1347
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr "Un nuevo comentario en la entrada \"%s\" espera tu aprobación"
#: co-authors-plus.php:1357
msgid "Approve it: %s"
msgstr "Aprobarlo it: %s"
#: co-authors-plus.php:1364
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
"%s comentario espera tu aprobación. Por favor visita el panel de moderación:"
msgstr[1] ""
"%s comentarios esperan tu aprobación. Por favor visita el panel de "
"moderación:"
#: co-authors-plus.php:1368
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr "[%1$s] Por favor moderar: \"%2$s\""
#: php/class-coauthors-guest-authors.php:77
msgid "Guest Author"
msgstr "Autor Invitado"
#: php/class-coauthors-guest-authors.php:78
msgid "Guest Authors"
msgstr "Autores Invitados"
#: php/class-coauthors-guest-authors.php:79
msgid "All Guest Authors"
msgstr "Todos los Autores Invitados"
#: php/class-coauthors-guest-authors.php:80
msgid "Add New Guest Author"
msgstr "Agregar Nuevo Autor Invitado"
#: php/class-coauthors-guest-authors.php:81
msgid "Edit Guest Author"
msgstr "Editar Autor Invitado"
#: php/class-coauthors-guest-authors.php:82
msgid "New Guest Author"
msgstr "Nuevo Autor Invitado"
#: php/class-coauthors-guest-authors.php:83
msgid "View Guest Author"
msgstr "Ver Autor Invitado"
#: php/class-coauthors-guest-authors.php:84
msgid "Search Guest Authors"
msgstr "Buscar Autores Invitados"
#: php/class-coauthors-guest-authors.php:85
msgid "No guest authors found"
msgstr "No se encontraron autores invitados"
#: php/class-coauthors-guest-authors.php:86
msgid "No guest authors found in Trash"
msgstr "No se encontraron autores invitados en la papelera"
#: php/class-coauthors-guest-authors.php:87
msgid "Update Guest Author"
msgstr "Actualizar Autor Invitado"
#: php/class-coauthors-guest-authors.php:88
msgid "About the guest author"
msgstr "Acerca de este autor invitado"
#: php/class-coauthors-guest-authors.php:97
msgctxt "co-authors-plus"
msgid "Add New"
msgstr "Agregar Nuevo [co-author-plus]"
#: php/class-coauthors-guest-authors.php:153
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Autor invitado actualizado. <a href=\"%s\">Ver perfil</a>"
#: php/class-coauthors-guest-authors.php:154
msgid "Custom field updated."
msgstr "Campo personalizado actualizado."
#: php/class-coauthors-guest-authors.php:155
msgid "Custom field deleted."
msgstr "Campo personalizado eliminado."
#: php/class-coauthors-guest-authors.php:156
msgid "Guest author updated."
msgstr "Autor invitado actualizado"
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:158
msgid "Guest author restored to revision from %s"
msgstr "Autor invitado restaurado desde la revisión con fecha %s"
#: php/class-coauthors-guest-authors.php:160
msgid "Guest author saved."
msgstr "Autor invitado fue guardado."
#: php/class-coauthors-guest-authors.php:161
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Autor invitado enviado. <a target=\"_blank\" href=\"%s\">Vista previa del "
"perfil</a>"
#: php/class-coauthors-guest-authors.php:162
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
"Autor invitado agendado para: <strong>%1$s</strong>. <a target=\"_blank\" "
"href=\"%2$s\">Vista previa del perfil profile</a>"
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:164
msgid "M j, Y @ G:i"
msgstr "M j, Y @ G:i"
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Autor invitado actualizado. <a target=\"_blank\" href=\"%s\">Vista previa "
"del perfil</a>"
#: php/class-coauthors-guest-authors.php:182
#: php/class-coauthors-guest-authors.php:215
#: php/class-coauthors-guest-authors.php:430
msgid "Doin' something fishy, huh?"
msgstr "¿Haciendo traversal, ha??"
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:219
msgid "You don't have permission to perform this action."
msgstr "No tienes suficientes permisos para realizar esta acción."
#: php/class-coauthors-guest-authors.php:224
#: php/class-coauthors-guest-authors.php:435
msgid "Guest author can't be deleted because it doesn't exist."
msgstr "Este Autor invitado no puede ser eliminado porque no existe."
#: php/class-coauthors-guest-authors.php:238
msgid "Co-author does not exists. Try again?"
msgstr "Co-autor no existe. ¿Intentarlo otra vez?"
#: php/class-coauthors-guest-authors.php:246
msgid "Please make sure to pick an option."
msgstr "Por favor selecciona una alternativa."
#: php/class-coauthors-guest-authors.php:386
msgid "Guest author deleted."
msgstr "Autor invitado eliminado."
#: php/class-coauthors-guest-authors.php:410
msgid "Save"
msgstr "Guardar"
#: php/class-coauthors-guest-authors.php:411
msgid "Unique Slug"
msgstr "URL única"
#: php/class-coauthors-guest-authors.php:413
msgid "Name"
msgstr "Nombre"
#: php/class-coauthors-guest-authors.php:414
msgid "Contact Info"
msgstr "Información de contacto"
#: php/class-coauthors-guest-authors.php:439
msgid "Delete %s"
msgstr "Eliminar %s"
#: php/class-coauthors-guest-authors.php:440
msgid "You have specified this guest author for deletion:"
msgstr "Seleccionaste este autor invitado para ser eliminado:"
#: php/class-coauthors-guest-authors.php:442
msgid "What should be done with posts assigned to this guest author?"
msgstr "¿Qué debemos hacer con las entradas asignadas a este autor invitado?"
#: php/class-coauthors-guest-authors.php:443
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
"Nota: si quieres eliminar este autor invitado y todas sus entradas, primero "
"debes eliminar las entradas y luego regresar acá para borrar el autor "
"invitado."
#: php/class-coauthors-guest-authors.php:452
msgid "Reassign to another co-author:"
msgstr "Reasignar a otro co-autor:"
#: php/class-coauthors-guest-authors.php:458
msgid "Leave posts assigned to the mapped user, %s."
msgstr "Dejar entrada asignada al autor indicado, %s."
#: php/class-coauthors-guest-authors.php:463
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
"Borrar atribución del autor desde las entradas (pero deja cada entrada en su "
"estado actual)."
#: php/class-coauthors-guest-authors.php:466
msgid "Confirm Deletion"
msgstr "Confirmar eliminación"
#: php/class-coauthors-guest-authors.php:475
msgid "Add New"
msgstr "Agregar nuevo"
#: php/class-coauthors-guest-authors.php:536
msgid "WordPress User Mapping"
msgstr "Asignación de usuarios de WordPress"
#: php/class-coauthors-guest-authors.php:538
msgid "-- Not mapped --"
msgstr "-- Sin asignación --"
#: php/class-coauthors-guest-authors.php:651
msgid "Guest authors cannot be created without display names."
msgstr "No se pueden crear Autores invitados sin nombre visible."
#: php/class-coauthors-guest-authors.php:658
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user instead"
msgstr ""
"No se pueden crear Autores invitados con el mismo user_login que un usuario "
"existente. Puedes intentar creando un crear un perfil de usuario."
#: php/class-coauthors-guest-authors.php:663
msgid "Display name conflicts with another guest author display name."
msgstr "Nombre visible ya está en uso por otro autor invitado."
#: php/class-coauthors-guest-authors.php:817
msgid "ID"
msgstr "ID"
#: php/class-coauthors-guest-authors.php:823
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr "Nombre visible"
#: php/class-coauthors-guest-authors.php:829
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Nombre"
#: php/class-coauthors-guest-authors.php:834
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Apellido"
#: php/class-coauthors-guest-authors.php:839
msgid "Slug"
msgstr "URL única"
#: php/class-coauthors-guest-authors.php:846
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr "E-mail"
#: php/class-coauthors-guest-authors.php:851
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr "Cuenta vinculada"
#: php/class-coauthors-guest-authors.php:856
msgid "Website"
msgstr "Sitio Web"
#: php/class-coauthors-guest-authors.php:861
msgid "AIM"
msgstr "AIM"
#: php/class-coauthors-guest-authors.php:866
msgid "Yahoo IM"
msgstr "Yahoo IM"
#: php/class-coauthors-guest-authors.php:871
msgid "Jabber / Google Talk"
msgstr "Jabber / Google Talk"
#: php/class-coauthors-guest-authors.php:876
msgid "Biographical Info"
msgstr "Información biográfica"
#: php/class-coauthors-guest-authors.php:1006
msgid "%s is a required field"
msgstr "%s es un campo obligatorio"
#: php/class-coauthors-guest-authors.php:1012
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
"user_login no puede ser duplicado de un usuario asignado o de otro autor "
"invitado ya existentes"
#: php/class-coauthors-guest-authors.php:1057
msgid "Guest author does not exist"
msgstr "Este autor invitado no existe"
#: php/class-coauthors-guest-authors.php:1069
msgid "Reassignment co-author does not exist"
msgstr "Usuario seleccionado para la reasignación no existe"
#: php/class-coauthors-guest-authors.php:1101
msgid "No user exists with that ID"
msgstr "No existe un usuario con ese ID"
#: php/class-coauthors-guest-authors.php:1158
msgid "Edit Profile"
msgstr "Editar Perfil"
#: php/class-coauthors-guest-authors.php:1166
msgid "Create Profile"
msgstr "Crear Perfil"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr "Co-Autores"
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr "Co-Autor"
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Mostrar todos"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr "Con cuenta vinculada"
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr "Sin cuenta vinculada"
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr "No se encontraron autores"
#: php/class-coauthors-wp-list-table.php:206
msgid "Delete"
msgstr "Borrar"
#: php/class-coauthors-wp-list-table.php:207
msgid "View Posts"
msgstr "Ver Entradas"
#: php/class-coauthors-wp-list-table.php:257
msgid "Filter"
msgstr "Filtrar"
#: php/class-wp-cli.php:153
msgid "Please specify a valid user_login"
msgstr "Por favor especifique un user_login válido"
#: php/class-wp-cli.php:156
msgid "Please specify a valid co-author login"
msgstr "Por favor especifique información de ingreso para coautor válida"
#: php/class-wp-cli.php:163
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr "Ignorando - La entrada #%d ya tiene co-autores asignados: %s"
#: php/class-wp-cli.php:168
msgid "Updating - Adding %s's byline to post #%d"
msgstr "Actualizando - Agregando información de %s a la entrada #%d"
#: php/class-wp-cli.php:173
msgid "All done! %d posts were affected."
msgstr "¡Todo listo! %d poseeos fueron afectados."
#: template-tags.php:82
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
"El constructor CoAuthorsIterator no recibió un ID de entrada como parámetro. "
"Verifica que estás dentro del loop/bucle y que $post esté definida."
#: template-tags.php:136
msgid " and "
msgstr " y "
#: template-tags.php:208 template-tags.php:365
msgid "Posts by %s"
msgstr "Entradas por %s"
#: template-tags.php:257
msgid "Visit %s&#8217;s website"
msgstr "Visite el sitio web %s&#8217;s"
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr "Co-Authors Plus"
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr "http://wordpress.org/extend/plugins/co-authors-plus/"
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
"Permite que varios autores sean asignados a una entrada/página. Este plugin "
"es una versión extendida del plugin Co-Authors desarrollado por Weston Ruter."
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr ""
"Mohammad Jangda, Daniel Bachhuber, Automattic. Localizado al español por "
"@sergiomajluf"
@@ -0,0 +1,604 @@
# Copyright (C) 2010 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus 3.0.6\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2012-11-21 21:17:39+00:00\n"
"PO-Revision-Date: 2013-12-14 15:30+0100\n"
"Last-Translator: Jojaba <jojaba@gmail.com>\n"
"Language-Team: Jojaba <jojaba@gmail.com>\n"
"Language: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.7\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: co-authors-plus.php:287 co-authors-plus.php:382 co-authors-plus.php:1158
msgid "Authors"
msgstr "Auteurs"
#: co-authors-plus.php:342
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
"<strong>Remarque :</strong> pour éditer les auteurs d'un article, veuillez "
"activer JavaScript ou utiliser un navigateur gérant JavaScript"
#: co-authors-plus.php:349 co-authors-plus.php:956
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
"Cliquer sur un auteur pour en changer. Glisser-déposer pour modifier "
"l'ordre. Cliquer sur <strong>Retirer</strong> pour le retirer."
#: co-authors-plus.php:425 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Articles"
#: co-authors-plus.php:442
msgid "View posts by this author"
msgstr "Voir les articles de cet auteur"
#: co-authors-plus.php:481
msgid "No co-author exists for that term"
msgstr "Aucun co-auteur n'existe pour ce terme"
#: co-authors-plus.php:951 php/class-coauthors-wp-list-table.php:205
msgid "Edit"
msgstr "Éditer"
#: co-authors-plus.php:952
msgid "Remove"
msgstr "Retirer"
#: co-authors-plus.php:953
msgid "Are you sure you want to remove this author?"
msgstr "Souhaitez-vous vraiment retirer cet auteur ?"
#: co-authors-plus.php:954
msgid "Click to change this author, or drag to change their position"
msgstr ""
"Cliquer pour changer cet auteur ou glisser-déposer pour modifier sa position"
#: co-authors-plus.php:955
msgid "Search for an author"
msgstr "Rechercher un auteur"
#: co-authors-plus.php:993
msgid "Mine"
msgstr "Le mien"
#: co-authors-plus.php:1230
msgid "New comment on your post \"%s\""
msgstr "Nouveau commentaire à votre article « %s »"
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1232 co-authors-plus.php:1349
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr "Auteur : %1$s (IP : %2$s , %3$s)"
#: co-authors-plus.php:1233 co-authors-plus.php:1350
msgid "E-mail : %s"
msgstr "E-mail : %s"
#: co-authors-plus.php:1234 co-authors-plus.php:1244 co-authors-plus.php:1253
#: co-authors-plus.php:1336 co-authors-plus.php:1343 co-authors-plus.php:1351
msgid "URL : %s"
msgstr "URL : %s"
#: co-authors-plus.php:1235 co-authors-plus.php:1352
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr "Whois : http://whois.arin.net/rest/ip/%s"
#: co-authors-plus.php:1236 co-authors-plus.php:1353
msgid "Comment: "
msgstr "Commentaire :"
#: co-authors-plus.php:1237
msgid "You can see all comments on this post here: "
msgstr "Vous pouvez voir tous les commentaires pour cet article ici :"
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1239
msgid "[%1$s] Comment: \"%2$s\""
msgstr "[%1$s] Commentaire : « %2$s »"
#: co-authors-plus.php:1241
msgid "New trackback on your post \"%s\""
msgstr "Nouveau trackback pour votre article « %s »"
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1243 co-authors-plus.php:1252
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr "Site Web : %1$s (IP : %2$s , %3$s)"
#: co-authors-plus.php:1245 co-authors-plus.php:1254
msgid "Excerpt: "
msgstr "Extrait :"
#: co-authors-plus.php:1246
msgid "You can see all trackbacks on this post here: "
msgstr "Vous pouvez voir tous les trackbacks pour cet article ici :"
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1248
msgid "[%1$s] Trackback: \"%2$s\""
msgstr "[%1$s] Trackback : « %2$s »"
#: co-authors-plus.php:1250
msgid "New pingback on your post \"%s\""
msgstr "Nouveau pingback pour votre article « %s »"
#: co-authors-plus.php:1255
msgid "You can see all pingbacks on this post here: "
msgstr "Vous pouvez voir tous les pingbacks pour cet article ici :"
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1257
msgid "[%1$s] Pingback: \"%2$s\""
msgstr "[%1$s] Pingback : « %2$s »"
#: co-authors-plus.php:1260
msgid "Permalink: %s"
msgstr "Permalien : %s"
#: co-authors-plus.php:1262 co-authors-plus.php:1359
msgid "Trash it: %s"
msgstr "Mettre à la corbeille %s"
#: co-authors-plus.php:1264 co-authors-plus.php:1361
msgid "Delete it: %s"
msgstr "Supprimer %s"
#: co-authors-plus.php:1265 co-authors-plus.php:1362
msgid "Spam it: %s"
msgstr "Considérer comme indésirable %s"
#: co-authors-plus.php:1333
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr "Un nouveau trackback pour l'article « %s » attend votre approbation"
#: co-authors-plus.php:1335 co-authors-plus.php:1342
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr "Site Web : %1$s (IP : %2$s , %3$s)"
#: co-authors-plus.php:1337
msgid "Trackback excerpt: "
msgstr "Extrait du trackback :"
#: co-authors-plus.php:1340
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr "Un nouveau pingback pour l'article « %s » attend votre approbation"
#: co-authors-plus.php:1344
msgid "Pingback excerpt: "
msgstr "Extriat du pingback :"
#: co-authors-plus.php:1347
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr "Un nouveau commentaire pour l'article « %s » attend votre approbation"
#: co-authors-plus.php:1357
msgid "Approve it: %s"
msgstr "Approuver %s"
#: co-authors-plus.php:1364
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
"%s commentaire attend votre approbation. Veuillez vous rendre au panneau de "
"modération :"
msgstr[1] ""
"%s commentaires attendent votre approbation. Veuillez vous rendre au panneau "
"de modération :"
#: co-authors-plus.php:1368
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr "[%1$s] Veuillez modérer « %2$s »"
#: php/class-coauthors-guest-authors.php:77
msgid "Guest Author"
msgstr "Auteur invité"
#: php/class-coauthors-guest-authors.php:78
msgid "Guest Authors"
msgstr "Auteurs invités"
#: php/class-coauthors-guest-authors.php:79
msgid "All Guest Authors"
msgstr "Tous les auteurs invités"
#: php/class-coauthors-guest-authors.php:80
msgid "Add New Guest Author"
msgstr "Ajouter un nouvel auteur invité"
#: php/class-coauthors-guest-authors.php:81
msgid "Edit Guest Author"
msgstr "Éditer l'auteur invité"
#: php/class-coauthors-guest-authors.php:82
msgid "New Guest Author"
msgstr "Nouvel auteur invité"
#: php/class-coauthors-guest-authors.php:83
msgid "View Guest Author"
msgstr "Afficher l'auteur invité"
#: php/class-coauthors-guest-authors.php:84
msgid "Search Guest Authors"
msgstr "Rechercher des auteurs invités"
#: php/class-coauthors-guest-authors.php:85
msgid "No guest authors found"
msgstr "Aucun auteur invité trouvé"
#: php/class-coauthors-guest-authors.php:86
msgid "No guest authors found in Trash"
msgstr "Aucun auteur invité trouvé dans la corbeille"
#: php/class-coauthors-guest-authors.php:87
msgid "Update Guest Author"
msgstr "Mettre à jour l'auteur invité"
#: php/class-coauthors-guest-authors.php:88
msgid "About the guest author"
msgstr "À propos de l'auteur invité"
#: php/class-coauthors-guest-authors.php:97
msgctxt "co-authors-plus"
msgid "Add New"
msgstr "Nouveau"
#: php/class-coauthors-guest-authors.php:153
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Auteur invité mis à jour. <a href=\"%s\">Voir le profil</a>"
#: php/class-coauthors-guest-authors.php:154
msgid "Custom field updated."
msgstr "Champ personnalisé mis à jour"
#: php/class-coauthors-guest-authors.php:155
msgid "Custom field deleted."
msgstr "Cahmp personnalisé supprimé."
#: php/class-coauthors-guest-authors.php:156
msgid "Guest author updated."
msgstr "Auteur invité mis à jour."
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:158
msgid "Guest author restored to revision from %s"
msgstr "Auteur invité rétabli à la révision datant du %s"
#: php/class-coauthors-guest-authors.php:160
msgid "Guest author saved."
msgstr "Auteur invité enregistré."
#: php/class-coauthors-guest-authors.php:161
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Auteur invité enregistré. <a target=\"_blank\" href=\"%s\">Aperçu du pofil</"
"a>"
#: php/class-coauthors-guest-authors.php:162
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
"Auteur invité prévu pour : <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Aperçu du profil</a>"
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:164
msgid "M j, Y @ G:i"
msgstr "j M Y à G:i"
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Auteur invité mis à jour. <a target=\"_blank\" href=\"%s\">Aperçu du profil</"
"a>"
#: php/class-coauthors-guest-authors.php:182
#: php/class-coauthors-guest-authors.php:215
#: php/class-coauthors-guest-authors.php:430
msgid "Doin' something fishy, huh?"
msgstr "On fait des choses bizarres ?"
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:219
msgid "You don't have permission to perform this action."
msgstr "Vous n'êtes pas autorisé à faire cela."
#: php/class-coauthors-guest-authors.php:224
#: php/class-coauthors-guest-authors.php:435
msgid "Guest author can't be deleted because it doesn't exist."
msgstr "L'auteur invité ne peut être supprimé car il n'existe pas."
#: php/class-coauthors-guest-authors.php:238
msgid "Co-author does not exists. Try again?"
msgstr "Le co-auteur n'existe pas. Essayer à nouveau ?"
#: php/class-coauthors-guest-authors.php:246
msgid "Please make sure to pick an option."
msgstr "Veuillez choisir une option."
#: php/class-coauthors-guest-authors.php:386
msgid "Guest author deleted."
msgstr "Auteur invité supprimé."
#: php/class-coauthors-guest-authors.php:410
msgid "Save"
msgstr "Enregistrer"
#: php/class-coauthors-guest-authors.php:411
msgid "Unique Slug"
msgstr "Slug unique"
#: php/class-coauthors-guest-authors.php:413
msgid "Name"
msgstr "Nom"
#: php/class-coauthors-guest-authors.php:414
msgid "Contact Info"
msgstr "Infos de contact"
#: php/class-coauthors-guest-authors.php:439
msgid "Delete %s"
msgstr "Supprimer %s"
#: php/class-coauthors-guest-authors.php:440
msgid "You have specified this guest author for deletion:"
msgstr "Vous avez indiqué vouloir supprimer cet auteur invité :"
#: php/class-coauthors-guest-authors.php:442
msgid "What should be done with posts assigned to this guest author?"
msgstr "Que faut-il faire avec les articles associés à cet auteur invité ?"
#: php/class-coauthors-guest-authors.php:443
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
"Remarque : si vous souhaitez supprimer l'auteur invité et tous ses articles, "
"vous devriez d'abord supprimer tous ses articles puis revenir pour supprimer "
"l'auteur invité."
#: php/class-coauthors-guest-authors.php:452
msgid "Reassign to another co-author:"
msgstr "Réassoicer à un nouveau co-auteur :"
#: php/class-coauthors-guest-authors.php:458
msgid "Leave posts assigned to the mapped user, %s."
msgstr "Liasser les articles associés à l'utilisateur %s."
#: php/class-coauthors-guest-authors.php:463
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
"Supprimer les infos sur l'article (mais laisser chaque article dans sin état "
"actuel)"
#: php/class-coauthors-guest-authors.php:466
msgid "Confirm Deletion"
msgstr "Confirmer la suppression"
#: php/class-coauthors-guest-authors.php:475
msgid "Add New"
msgstr "Nouveau"
#: php/class-coauthors-guest-authors.php:536
msgid "WordPress User Mapping"
msgstr "Correspondance des utilisateurs WordPress"
#: php/class-coauthors-guest-authors.php:538
msgid "-- Not mapped --"
msgstr "-- Non associé --"
#: php/class-coauthors-guest-authors.php:651
msgid "Guest authors cannot be created without display names."
msgstr "Les auteurs invités ne peuvent être créés sans noms à afficher."
#: php/class-coauthors-guest-authors.php:658
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user instead"
msgstr ""
"Les auteurs invités ne peuvent être créés avec le même identifiant qu'un "
"utilisateur. Essayez plutôt de créer un profil à partir de l'utilisateur."
#: php/class-coauthors-guest-authors.php:663
msgid "Display name conflicts with another guest author display name."
msgstr "Le nom affiché est en conflit avec le nom d'un autre auteur invité."
#: php/class-coauthors-guest-authors.php:817
msgid "ID"
msgstr "ID"
#: php/class-coauthors-guest-authors.php:823
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr "Nom affiché"
#: php/class-coauthors-guest-authors.php:829
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Prénom"
#: php/class-coauthors-guest-authors.php:834
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Nom"
#: php/class-coauthors-guest-authors.php:839
msgid "Slug"
msgstr "Slug"
#: php/class-coauthors-guest-authors.php:846
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr "E-mail"
#: php/class-coauthors-guest-authors.php:851
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr "Compte lié"
#: php/class-coauthors-guest-authors.php:856
msgid "Website"
msgstr "Site Web"
#: php/class-coauthors-guest-authors.php:861
msgid "AIM"
msgstr "AIM"
#: php/class-coauthors-guest-authors.php:866
msgid "Yahoo IM"
msgstr "MI Yahoo"
#: php/class-coauthors-guest-authors.php:871
msgid "Jabber / Google Talk"
msgstr "Jabber / Google Talk"
#: php/class-coauthors-guest-authors.php:876
msgid "Biographical Info"
msgstr "Infos biographiques"
#: php/class-coauthors-guest-authors.php:1006
msgid "%s is a required field"
msgstr "%s est un champ obligatoire"
#: php/class-coauthors-guest-authors.php:1012
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
"L'identifiant ne peut être le même que celui d'un auteur invité existant ou "
"de l'utilisateur associé"
#: php/class-coauthors-guest-authors.php:1057
msgid "Guest author does not exist"
msgstr "L'auteur invité n'existe pas"
#: php/class-coauthors-guest-authors.php:1069
msgid "Reassignment co-author does not exist"
msgstr "Réassociation à un auteur inexistant"
#: php/class-coauthors-guest-authors.php:1101
msgid "No user exists with that ID"
msgstr "Aucun utilisateur ne possède cette ID"
#: php/class-coauthors-guest-authors.php:1158
msgid "Edit Profile"
msgstr "Modifier le profil"
#: php/class-coauthors-guest-authors.php:1166
msgid "Create Profile"
msgstr "Créer un profil"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr "Co-Auteurs"
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr "Co-Auteur"
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Tout afficher"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr "Avec compte lié"
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr "Sans compte lié"
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr "Aucun auteur invité ne correspond."
#: php/class-coauthors-wp-list-table.php:206
msgid "Delete"
msgstr "Supprimer"
#: php/class-coauthors-wp-list-table.php:207
msgid "View Posts"
msgstr "Articles"
#: php/class-coauthors-wp-list-table.php:257
msgid "Filter"
msgstr "Filtrer"
#: php/class-wp-cli.php:153
msgid "Please specify a valid user_login"
msgstr "Veuillez indiquer un identifiant valide"
#: php/class-wp-cli.php:156
msgid "Please specify a valid co-author login"
msgstr "Veuillez indiquer un identifiant de co-auteur valide"
#: php/class-wp-cli.php:163
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr "Passe - L'article #%d a déjà des co-auteurs associés : %s"
#: php/class-wp-cli.php:168
msgid "Updating - Adding %s's byline to post #%d"
msgstr "Mise à jour en cours - Ajout de l'info %s à l'article #%d"
#: php/class-wp-cli.php:173
msgid "All done! %d posts were affected."
msgstr "Terminé ! %d articles ont été concernés."
#: template-tags.php:82
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
"Aucune ID d'article n'a été fournie au constructeur CoAuthorsIterator. Ne "
"seriez-vous pas à l'extérieur d'une boucle ou $post n'est-il pas défini ?"
#: template-tags.php:136
msgid " and "
msgstr " et "
#: template-tags.php:208 template-tags.php:365
msgid "Posts by %s"
msgstr "Articles par %s"
#: template-tags.php:257
msgid "Visit %s&#8217;s website"
msgstr "Visiter le site de %s"
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr "Co-Authors Plus"
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr "http://wordpress.org/extend/plugins/co-authors-plus/"
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
"Permettre à plusieurs auteurs d'être associé à un même article. Ce plugin "
"est une version étendue du plugin Co-Authors développé par Weston Ruter."
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr "Mohammad Jangda, Daniel Bachhuber, Automattic"
@@ -0,0 +1,534 @@
# Translation of co-authors-plus in Dutch
# This file is distributed under the same license as the co-authors-plus package.
msgid ""
msgstr ""
"PO-Revision-Date: 2013-09-03 23:09+0100\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Poedit 1.5.7\n"
"Project-Id-Version: co-authors-plus\n"
#: php/class-coauthors-wp-list-table.php:207
msgid "View Posts"
msgstr "Bekijk Berichten"
#: co-authors-plus.php:993
msgid "Mine"
msgstr "Mijn"
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr "Mohammad Jangda, Daniel Bachhuber, Automattic</a>, Translation by <a href=\"http://kar.im\">Karim"
#: co-authors-plus.php:481
msgid "No co-author exists for that term"
msgstr "Geen co-auteur"
#: co-authors-plus.php:1230
msgid "New comment on your post \"%s\""
msgstr "Nieuwe reactie op je bericht \"%s\""
#: co-authors-plus.php:1232 co-authors-plus.php:1349
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr "Auteur : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1233 co-authors-plus.php:1350
msgid "E-mail : %s"
msgstr "E-Mail: %s"
#: co-authors-plus.php:1234 co-authors-plus.php:1244 co-authors-plus.php:1253
#: co-authors-plus.php:1336 co-authors-plus.php:1343 co-authors-plus.php:1351
msgid "URL : %s"
msgstr "URL: %s"
#: co-authors-plus.php:1235 co-authors-plus.php:1352
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr "Whois : http://whois.arin.net/rest/ip/%s"
#: co-authors-plus.php:1236 co-authors-plus.php:1353
msgid "Comment: "
msgstr "Reactie:"
#: co-authors-plus.php:1237
msgid "You can see all comments on this post here: "
msgstr "Je kan hier alle reacties op dit bericht zien:"
#: co-authors-plus.php:1239
msgid "[%1$s] Comment: \"%2$s\""
msgstr "[%1$s] Reacties: \"%2$s\""
#: co-authors-plus.php:1241
msgid "New trackback on your post \"%s\""
msgstr "Nieuwe trackback op je bericht \"%s\""
#: co-authors-plus.php:1243 co-authors-plus.php:1252
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr "Website: %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1245 co-authors-plus.php:1254
msgid "Excerpt: "
msgstr "Fragment:"
#: co-authors-plus.php:1246
msgid "You can see all trackbacks on this post here: "
msgstr "Je kan hier alle trackbacks op dit bericht zien:"
#: co-authors-plus.php:1248
msgid "[%1$s] Trackback: \"%2$s\""
msgstr "[%1$s] Trackback: \"%2$s\""
#: co-authors-plus.php:1250
msgid "New pingback on your post \"%s\""
msgstr "Nieuwe pingback op je bericht \"%s\""
#: co-authors-plus.php:1255
msgid "You can see all pingbacks on this post here: "
msgstr "Je kan hier alle pingbacks op dit bericht zien:"
#: co-authors-plus.php:1257
msgid "[%1$s] Pingback: \"%2$s\""
msgstr "[%1$s] Pingback: \"%2$s\""
#: co-authors-plus.php:1260
msgid "Permalink: %s"
msgstr "Permalink: %s"
#: co-authors-plus.php:1262 co-authors-plus.php:1359
msgid "Trash it: %s"
msgstr "In de prullebak: %s"
#: co-authors-plus.php:1264 co-authors-plus.php:1361
msgid "Delete it: %s"
msgstr "Verwijder het: %s"
#: co-authors-plus.php:1265 co-authors-plus.php:1362
msgid "Spam it: %s"
msgstr "Als Spam markeren: %s"
#: co-authors-plus.php:1333
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr "Een nieuwe trackback op dit bericht \"%s\" wacht op goedkeuring"
#: co-authors-plus.php:1335 co-authors-plus.php:1342
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr "Website : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1337
msgid "Trackback excerpt: "
msgstr "Trackback fragment:"
#: co-authors-plus.php:1340
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr "Een nieuwe pingback op dit bericht \"%s\" wacht op goedkeuring"
#: co-authors-plus.php:1344
msgid "Pingback excerpt: "
msgstr "Pingback fragment:"
#: co-authors-plus.php:1347
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr "Een nieuwe reactie op dit bericht \"%s\" wacht op goedkeuring"
#: co-authors-plus.php:1357
msgid "Approve it: %s"
msgstr "Goedkeuren: %s"
#: co-authors-plus.php:1364
msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:"
msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:"
msgstr[0] "Er wacht momenteel %s reactie op goedkeuring. Bezoek het moderatiepaneel:"
msgstr[1] "Er wachten momenteel %s reacties op goedkeuring. Bezoek het moderatiepaneel:"
#: co-authors-plus.php:1368
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr "[%1$s] Alsjeblieft modereren: \"%2$s\""
#: php/class-coauthors-guest-authors.php:77
msgid "Guest Author"
msgstr "Gastauteur"
#: php/class-coauthors-guest-authors.php:78
msgid "Guest Authors"
msgstr "Gastauteurs"
#: php/class-coauthors-guest-authors.php:79
msgid "All Guest Authors"
msgstr "Alle Gastauteurs"
#: php/class-coauthors-guest-authors.php:80
msgid "Add New Guest Author"
msgstr "Een nieuwe gastauteur toevoegen"
#: php/class-coauthors-guest-authors.php:81
msgid "Edit Guest Author"
msgstr "Gastauteur bewerken"
#: php/class-coauthors-guest-authors.php:82
msgid "New Guest Author"
msgstr "Nieuwe Gastauteur"
#: php/class-coauthors-guest-authors.php:83
msgid "View Guest Author"
msgstr "Gastauteur bekijken"
#: php/class-coauthors-guest-authors.php:84
msgid "Search Guest Authors"
msgstr "Gastauteur zoeken"
#: php/class-coauthors-guest-authors.php:85
msgid "No guest authors found"
msgstr "Geen gastauteurs gevonden"
#: php/class-coauthors-guest-authors.php:86
msgid "No guest authors found in Trash"
msgstr "Geen gastauteurs gevonden in de prullebak"
#: php/class-coauthors-guest-authors.php:87
msgid "Update Guest Author"
msgstr "Gastauteur bijwerken"
#: php/class-coauthors-guest-authors.php:88
#: php/class-coauthors-guest-authors.php:97
msgctxt "co-authors-plus"
msgid "Add New"
msgstr "Toevoegen"
#: php/class-coauthors-guest-authors.php:153
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Gastauteur bewerkt. <a href=\"%s\">Bekijk profiel</a>"
#: php/class-coauthors-guest-authors.php:154
msgid "Custom field updated."
msgstr "veld bewerkt."
#: php/class-coauthors-guest-authors.php:155
msgid "Custom field deleted."
msgstr "Veld verwijderd"
#: php/class-coauthors-guest-authors.php:156
msgid "Guest author updated."
msgstr "Gastauteur bewerkt."
#: php/class-coauthors-guest-authors.php:158
msgid "Guest author restored to revision from %s"
msgstr "Gastauteur hersteld revisie van %s"
#: php/class-coauthors-guest-authors.php:160
msgid "Guest author saved."
msgstr "Gastauteur bewaard"
#: php/class-coauthors-guest-authors.php:161
msgid "Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr "Gastauteur toegevoegd. <a target=\"_blank\" href=\"%s\">Bekijk profiel</a> "
#: php/class-coauthors-guest-authors.php:162
msgid "Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview profile</a>"
msgstr "Gastauteur gepland &uuml; <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Bekijk profiel</a>"
#: php/class-coauthors-guest-authors.php:164
msgid "M j, Y @ G:i"
msgstr "M j, Y @ G:i"
#: php/class-coauthors-guest-authors.php:165
msgid "Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr "Gastauteur bewerkt. <a target=\"_blank\" href=\"%s\">Bekijk profiel</a>"
#: php/class-coauthors-guest-authors.php:182
#: php/class-coauthors-guest-authors.php:215
#: php/class-coauthors-guest-authors.php:430
msgid "Doin' something fishy, huh?"
msgstr "Ben je iets raars aan het doen?"
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:219
msgid "You don't have permission to perform this action."
msgstr "Je hebt geen rechten om deze actie uit te voeren."
#: php/class-coauthors-guest-authors.php:224
#: php/class-coauthors-guest-authors.php:435
msgid "Guest author can't be deleted because it doesn't exist."
msgstr "Deze gastauteur kan niet worden verwijderd omdat deze niet bestaat."
#: php/class-coauthors-guest-authors.php:238
msgid "Co-author does not exists. Try again?"
msgstr "Co-auteur bestaat niet. Probeer het nogmaals"
#: php/class-coauthors-guest-authors.php:246
msgid "Please make sure to pick an option."
msgstr "Kies een optie."
#: php/class-coauthors-guest-authors.php:386
msgid "Guest author deleted."
msgstr " Gastauteur verwijderd"
#: php/class-coauthors-guest-authors.php:410
msgid "Save"
msgstr "Bewaren"
#: php/class-coauthors-guest-authors.php:411
msgid "Unique Slug"
msgstr "Unieke Slug"
#: php/class-coauthors-guest-authors.php:413
msgid "Name"
msgstr "Naam"
#: php/class-coauthors-guest-authors.php:414
msgid "Contact Info"
msgstr "Contact Informatie"
#: php/class-coauthors-guest-authors.php:439
msgid "Delete %s"
msgstr "Verwijderen %s"
#: php/class-coauthors-guest-authors.php:440
msgid "You have specified this guest author for deletion:"
msgstr "Je heb deze gastauteur geselecteerd om te verwijderen"
#: php/class-coauthors-guest-authors.php:442
msgid "What should be done with posts assigned to this guest author?"
msgstr "Wat moet er met de berichten gebeuren die aan deze gastauteur zijn gekoppeld"
#: php/class-coauthors-guest-authors.php:443
msgid "Note: If you'd like to delete the guest author and all of their posts, you should delete their posts first and then come back to delete the guest author."
msgstr "Als je gastauteur en al zijn berichten wilt verwijderen dan moet je eerst de berichten verwijderen en dan de gastauteur."
#: php/class-coauthors-guest-authors.php:452
msgid "Reassign to another co-author:"
msgstr "Toewijzen aan een andere co-auteur:"
#: php/class-coauthors-guest-authors.php:458
msgid "Leave posts assigned to the mapped user, %s."
msgstr "Laat berichten toegewezen aan de verbonden gebruiker "
#: php/class-coauthors-guest-authors.php:463
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr "Verwijder de bijzin van berichten (maar behoud de status van elk bericht)"
#: php/class-coauthors-guest-authors.php:466
msgid "Confirm Deletion"
msgstr "Bevestig verwijdering"
#: php/class-coauthors-guest-authors.php:536
msgid "WordPress User Mapping"
msgstr "WordPress gebruikersverbinding"
#: php/class-coauthors-guest-authors.php:538
msgid "-- Not mapped --"
msgstr " Niet verbonden "
#: php/class-coauthors-guest-authors.php:651
msgid "Guest authors cannot be created without display names."
msgstr "Gastauteur kan niet worden aangemaakt zonder de beeldschermnaam."
#: php/class-coauthors-guest-authors.php:658
msgid "Guest authors cannot be created with the same user_login value as a user. Try creating a profile from the user instead.
msgstr "Gastauteur kan niet worden aangemaakt met dezelfde login naam als de gebruiker. Maak inplaats daarvan een profiel aan voor de gebruiker"
#: php/class-coauthors-guest-authors.php:663
msgid "Display name conflicts with another guest author display name."
msgstr "De beelschermnaam geeft een conflict met de gastauteur beeldschermnaam"
#: php/class-coauthors-guest-authors.php:829
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Voornaam"
#: php/class-coauthors-guest-authors.php:834
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Achternaam"
#: php/class-coauthors-guest-authors.php:839
msgid "Slug"
msgstr "Slug"
#: php/class-coauthors-guest-authors.php:846
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr "E-mail"
#: php/class-coauthors-guest-authors.php:851
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr "Verbonden Account"
#: php/class-coauthors-guest-authors.php:856
msgid "Website"
msgstr "Website"
#: php/class-coauthors-guest-authors.php:861
msgid "AIM"
msgstr "AIM"
#: php/class-coauthors-guest-authors.php:866
msgid "Yahoo IM"
msgstr "Yahoo IM"
#: php/class-coauthors-guest-authors.php:871
msgid "Jabber / Google Talk"
msgstr "Jabber / Google Talk"
#: php/class-coauthors-guest-authors.php:876
msgid "Biographical Info"
msgstr "Biografie Informatie"
#: php/class-coauthors-guest-authors.php:1006
msgid "%s is a required field"
msgstr "%s is een verplicht veld"
#: php/class-coauthors-guest-authors.php:1012
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr "user_login kan niet worden gedupliceert met de bestaande gastauteur of verbonden gebruiker"
#: php/class-coauthors-guest-authors.php:1057
msgid "Guest author does not exist"
msgstr "Gastauteur bestaat niet"
#: php/class-coauthors-guest-authors.php:1069
msgid "Reassignment co-author does not exist"
msgstr "Deze co-auteur bestaat niet"
#: php/class-coauthors-guest-authors.php:1101
msgid "No user exists with that ID"
msgstr "Er bestaat geen gebruiker met deze ID"
#: php/class-coauthors-guest-authors.php:1158
msgid "Edit Profile"
msgstr "Bewerk Profiel"
#: php/class-coauthors-guest-authors.php:1166
msgid "Create Profile"
msgstr "Profiel aanmaken"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr "Co-Auteurs"
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr "Co-Auteur"
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Bekijk alles"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr "Met verbonden Account"
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr "Zonder verbonden account"
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr "Er zijn geen matches tussen gastauteurs gevonden."
#: php/class-coauthors-wp-list-table.php:257
msgid "Filter"
msgstr "Filter"
#: php/class-wp-cli.php:153
msgid "Please specify a valid user_login"
msgstr "Geef een geldige user_login op"
#: php/class-wp-cli.php:156
msgid "Please specify a valid co-author login"
msgstr "Geef een geldige co-auteur login op"
#: php/class-wp-cli.php:163
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr "&Sla over- Bericht #%d heeft al co-auteurs: %s"
#: php/class-wp-cli.php:168
msgid "Updating - Adding %s's byline to post #%d"
msgstr "Updaten - %s's bijzin toevoegen op bericht #%d"
#: php/class-wp-cli.php:173
msgid "All done! %d posts were affected."
msgstr "Klaart! %d berichten zijn aangepast."
#: php/class-coauthors-guest-authors.php:475
msgid "Add New"
msgstr "Voeg nieuwe toe"
#: php/class-coauthors-wp-list-table.php:206
msgid "Delete"
msgstr "Verwijderen"
#: php/class-coauthors-guest-authors.php:823
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr "Beeldschermnaam"
#: php/class-coauthors-guest-authors.php:817
msgid "ID"
msgstr "ID"
#: template-tags.php:136
msgid " and "
msgstr "en"
#: co-authors-plus.php:342
msgid "<strong>Note:</strong> To edit post authors, please enable javascript or use a javascript-capable browser"
msgstr "<strong>Notitie:</strong> activeer javascript of gebruikt een browser die javascript ondersrteund om bericht auteurs te bewerken"
#: co-authors-plus.php:349 co-authors-plus.php:956
msgid "Click on an author to change them. Drag to change their order. Click on <strong>Remove</strong> to remove them."
msgstr "Klik op een auteur om deze te bewerken. Sleep om de volgorde aan te passen. Klik op <strong>Verwijderen</strong> om ze te verwijderen."
#: co-authors-plus.php:287 co-authors-plus.php:382 co-authors-plus.php:1158
msgid "Authors"
msgstr "Auteurs"
#: co-authors-plus.php:425 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Artikelen"
#: co-authors-plus.php:442
msgid "View posts by this author"
msgstr "Bekijk berichten van deze auteur"
#: co-authors-plus.php:951 php/class-coauthors-wp-list-table.php:205
msgid "Edit"
msgstr "Bewerken"
#: co-authors-plus.php:952
msgid "Remove"
msgstr "Verwijderen"
#: co-authors-plus.php:953
msgid "Are you sure you want to remove this author?"
msgstr "Weet je zeker dat je deze auteur wilt verwijderen?"
#: co-authors-plus.php:954
msgid "Click to change this author, or drag to change their position"
msgstr "Klik om deze auteur te bewerken of sleep om de positie aan te passen"
#: co-authors-plus.php:955
msgid "Search for an author"
msgstr "Zoek voor een auteur"
#: template-tags.php:82
msgid "No post ID provided for CoAuthorsIterator constructor. Are you not in a loop or is $post not set?"
msgstr "Geen bericht ID gevonden voor CoAuthorsIterator constructor. Is er geen $post ingesteld?"
#: template-tags.php:208 template-tags.php:365
msgid "Posts by %s"
msgstr "Artikelen van %s"
#: template-tags.php:257
msgid "Visit %s&#8217;s website"
msgstr "Bezoek %s&#8217;s website"
msgid "Co-Authors Plus"
msgstr "Co-Authors Plus"
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr "http://wordpress.org/extend/plugins/co-authors-plus/"
msgid "Allows multiple authors to be assigned to a post. This plugin is an extended version of the Co-Authors plugin developed by Weston Ruter."
msgstr "Sta toe om meerdere auteurs toe te wijzen aan een bericht. Deze plugin is een uitgebreide versie van de Co-Authors plugin ontwikkeld door Weston Ruter"
@@ -0,0 +1,579 @@
# Copyright (C) 2012 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2014-03-17 15:59:18+00:00\n"
"PO-Revision-Date: 2014-03-30 19:31+0200\n"
"Last-Translator: Jurko Chervony <info@skinik.name>\n"
"Language-Team: skinik <info@skinik.name>\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.4\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: co-authors-plus.php:300 co-authors-plus.php:401 co-authors-plus.php:487
#: co-authors-plus.php:1290
msgid "Authors"
msgstr "Авторы"
#: co-authors-plus.php:362
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
#: co-authors-plus.php:369 co-authors-plus.php:489 co-authors-plus.php:1095
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
#: co-authors-plus.php:449 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Записи"
#: co-authors-plus.php:466
msgid "View posts by this author"
msgstr "Просмотреть все материалы автора"
#: co-authors-plus.php:531 co-authors-plus.php:548
msgid "No co-author exists for that term"
msgstr ""
#: co-authors-plus.php:1090 php/class-coauthors-wp-list-table.php:212
msgid "Edit"
msgstr "Редактировать"
#: co-authors-plus.php:1091
msgid "Remove"
msgstr "Удалить"
#: co-authors-plus.php:1092
msgid "Are you sure you want to remove this author?"
msgstr ""
#: co-authors-plus.php:1093
msgid "Click to change this author, or drag to change their position"
msgstr ""
#: co-authors-plus.php:1094
msgid "Search for an author"
msgstr "Искать автора"
#: co-authors-plus.php:1132
msgid "Mine"
msgstr ""
#: co-authors-plus.php:1402
msgid "New comment on your post \"%s\""
msgstr ""
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1404 co-authors-plus.php:1521
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1405 co-authors-plus.php:1522
msgid "E-mail : %s"
msgstr ""
#: co-authors-plus.php:1406 co-authors-plus.php:1416 co-authors-plus.php:1425
#: co-authors-plus.php:1508 co-authors-plus.php:1515 co-authors-plus.php:1523
msgid "URL : %s"
msgstr ""
#: co-authors-plus.php:1407 co-authors-plus.php:1524
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr ""
#: co-authors-plus.php:1408 co-authors-plus.php:1525
msgid "Comment: "
msgstr "Комментарий:"
#: co-authors-plus.php:1409
msgid "You can see all comments on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1411
msgid "[%1$s] Comment: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1413
msgid "New trackback on your post \"%s\""
msgstr ""
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1415 co-authors-plus.php:1424
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1417 co-authors-plus.php:1426
msgid "Excerpt: "
msgstr ""
#: co-authors-plus.php:1418
msgid "You can see all trackbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1420
msgid "[%1$s] Trackback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1422
msgid "New pingback on your post \"%s\""
msgstr ""
#: co-authors-plus.php:1427
msgid "You can see all pingbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1429
msgid "[%1$s] Pingback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1432
msgid "Permalink: %s"
msgstr ""
#: co-authors-plus.php:1434 co-authors-plus.php:1531
msgid "Trash it: %s"
msgstr ""
#: co-authors-plus.php:1436 co-authors-plus.php:1533
msgid "Delete it: %s"
msgstr ""
#: co-authors-plus.php:1437 co-authors-plus.php:1534
msgid "Spam it: %s"
msgstr ""
#: co-authors-plus.php:1505
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1507 co-authors-plus.php:1514
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1509
msgid "Trackback excerpt: "
msgstr ""
#: co-authors-plus.php:1512
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1516
msgid "Pingback excerpt: "
msgstr ""
#: co-authors-plus.php:1519
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1529
msgid "Approve it: %s"
msgstr ""
#: co-authors-plus.php:1536
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
msgstr[1] ""
#: co-authors-plus.php:1540
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr ""
#: php/class-coauthors-guest-authors.php:80
msgid "Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:81
msgid "Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:82
msgid "All Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:83
msgid "Add New Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:84
msgid "Edit Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:85
msgid "New Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:86
msgid "View Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:87
msgid "Search Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:88
msgid "No guest authors found"
msgstr ""
#: php/class-coauthors-guest-authors.php:89
msgid "No guest authors found in Trash"
msgstr ""
#: php/class-coauthors-guest-authors.php:90
msgid "Update Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:91
msgid "About the guest author"
msgstr ""
#: php/class-coauthors-guest-authors.php:100
msgctxt "guest author"
msgid "Add New"
msgstr ""
#: php/class-coauthors-guest-authors.php:156
#: php/class-coauthors-guest-authors.php:162
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:157
msgid "Custom field updated."
msgstr ""
#: php/class-coauthors-guest-authors.php:158
msgid "Custom field deleted."
msgstr ""
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated."
msgstr ""
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:161
msgid "Guest author restored to revision from %s"
msgstr ""
#: php/class-coauthors-guest-authors.php:163
msgid "Guest author saved."
msgstr ""
#: php/class-coauthors-guest-authors.php:164
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:167
msgid "M j, Y @ G:i"
msgstr ""
#: php/class-coauthors-guest-authors.php:168
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:218
#: php/class-coauthors-guest-authors.php:437
msgid "Doin' something fishy, huh?"
msgstr ""
#: php/class-coauthors-guest-authors.php:188
#: php/class-coauthors-guest-authors.php:222
msgid "You don't have permission to perform this action."
msgstr ""
#: php/class-coauthors-guest-authors.php:227
#: php/class-coauthors-guest-authors.php:442
msgid "Guest author can't be deleted because it doesn't exist."
msgstr ""
#: php/class-coauthors-guest-authors.php:241
msgid "Co-author does not exists. Try again?"
msgstr ""
#: php/class-coauthors-guest-authors.php:249
msgid "Please make sure to pick an option."
msgstr ""
#: php/class-coauthors-guest-authors.php:393
msgid "Guest author deleted."
msgstr ""
#: php/class-coauthors-guest-authors.php:417
msgid "Save"
msgstr "Сохранить"
#: php/class-coauthors-guest-authors.php:418
msgid "Unique Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:420
msgid "Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:421
msgid "Contact Info"
msgstr ""
#: php/class-coauthors-guest-authors.php:446
msgid "Delete %s"
msgstr "Удалить %s"
#: php/class-coauthors-guest-authors.php:447
msgid "You have specified this guest author for deletion:"
msgstr ""
#: php/class-coauthors-guest-authors.php:449
msgid "What should be done with posts assigned to this guest author?"
msgstr ""
#: php/class-coauthors-guest-authors.php:450
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
#: php/class-coauthors-guest-authors.php:459
msgid "Reassign to another co-author:"
msgstr ""
#: php/class-coauthors-guest-authors.php:465
msgid "Leave posts assigned to the mapped user, %s."
msgstr ""
#: php/class-coauthors-guest-authors.php:470
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
#: php/class-coauthors-guest-authors.php:473
msgid "Confirm Deletion"
msgstr ""
#: php/class-coauthors-guest-authors.php:482
msgid "Add New"
msgstr "Добавить нового"
#: php/class-coauthors-guest-authors.php:543
msgid "WordPress User Mapping"
msgstr ""
#: php/class-coauthors-guest-authors.php:545
msgid "-- Not mapped --"
msgstr ""
#: php/class-coauthors-guest-authors.php:679
#: php/class-coauthors-guest-authors.php:688
msgid "Guest authors cannot be created without display names."
msgstr ""
#: php/class-coauthors-guest-authors.php:697
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user on the Manage Users listing instead."
msgstr ""
#: php/class-coauthors-guest-authors.php:702
msgid "Display name conflicts with another guest author display name."
msgstr ""
#: php/class-coauthors-guest-authors.php:896
msgid "ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:903
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:909
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Имя"
#: php/class-coauthors-guest-authors.php:914
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Фамилия"
#: php/class-coauthors-guest-authors.php:919
msgid "Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:926
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr ""
#: php/class-coauthors-guest-authors.php:932
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr ""
#: php/class-coauthors-guest-authors.php:937
msgid "Website"
msgstr ""
#: php/class-coauthors-guest-authors.php:943
msgid "AIM"
msgstr ""
#: php/class-coauthors-guest-authors.php:948
msgid "Yahoo IM"
msgstr ""
#: php/class-coauthors-guest-authors.php:953
msgid "Jabber / Google Talk"
msgstr ""
#: php/class-coauthors-guest-authors.php:958
msgid "Biographical Info"
msgstr ""
#: php/class-coauthors-guest-authors.php:1122
msgid "%s is a required field"
msgstr ""
#: php/class-coauthors-guest-authors.php:1128
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
#: php/class-coauthors-guest-authors.php:1173
msgid "Guest author does not exist"
msgstr ""
#: php/class-coauthors-guest-authors.php:1185
msgid "Reassignment co-author does not exist"
msgstr ""
#: php/class-coauthors-guest-authors.php:1217
msgid "No user exists with that ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:1275
msgid "Edit Profile"
msgstr "Редактировать профиль"
#: php/class-coauthors-guest-authors.php:1284
msgid "Create Profile"
msgstr ""
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr ""
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr ""
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr ""
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr ""
#: php/class-coauthors-wp-list-table.php:215
msgid "Delete"
msgstr "Удалить"
#: php/class-coauthors-wp-list-table.php:217
msgid "View Posts"
msgstr ""
#: php/class-coauthors-wp-list-table.php:267
msgid "Filter"
msgstr ""
#: php/class-wp-cli.php:220
msgid "Please specify a valid user_login"
msgstr ""
#: php/class-wp-cli.php:223
msgid "Please specify a valid co-author login"
msgstr ""
#: php/class-wp-cli.php:230
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr ""
#: php/class-wp-cli.php:235
msgid "Updating - Adding %s's byline to post #%d"
msgstr ""
#: php/class-wp-cli.php:240
msgid "All done! %d posts were affected."
msgstr ""
#: template-tags.php:79
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
#: template-tags.php:133
msgid " and "
msgstr " и "
#: template-tags.php:233 template-tags.php:468
msgid "Posts by %s"
msgstr "Материалы автора %s"
#: template-tags.php:350
msgid "Visit %s&#8217;s website"
msgstr ""
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr ""
@@ -0,0 +1,602 @@
# Copyright (C) 2012 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus 3.0.1-working\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2012-11-21 21:17:39+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2013-10-05 23:20+0100\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: Poedit 1.5.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: co-authors-plus.php:287 co-authors-plus.php:382 co-authors-plus.php:1158
msgid "Authors"
msgstr "Författare"
#: co-authors-plus.php:342
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
"<strong>Observera:</strong> För att editera författare, slå på javascript "
"eller använd en javascript-kapabel webbläsare"
#: co-authors-plus.php:349 co-authors-plus.php:956
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
"Klicka på författare för att ändra dem. Drag för att ändra ordning på dem. "
"Klicka på <strong>Ta bort</strong> för att ta bort dem."
#: co-authors-plus.php:425 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Inlägg"
#: co-authors-plus.php:442
msgid "View posts by this author"
msgstr "Visa alla inlägg av denna författare"
#: co-authors-plus.php:481
msgid "No co-author exists for that term"
msgstr "Inga medförfattare existerar för den termen"
#: co-authors-plus.php:951 php/class-coauthors-wp-list-table.php:205
msgid "Edit"
msgstr "Editera"
#: co-authors-plus.php:952
msgid "Remove"
msgstr "Ta bort"
#: co-authors-plus.php:953
msgid "Are you sure you want to remove this author?"
msgstr "Är du säker att du vill ta bort denna författare?"
#: co-authors-plus.php:954
msgid "Click to change this author, or drag to change their position"
msgstr ""
"Klicka för att ändra denna författare, eller drag för att ändra deras "
"position"
#: co-authors-plus.php:955
msgid "Search for an author"
msgstr "Sök en författare"
#: co-authors-plus.php:993
msgid "Mine"
msgstr "Min"
#: co-authors-plus.php:1230
msgid "New comment on your post \"%s\""
msgstr "Ny kommentear på ditt inlägg \"%s\""
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1232 co-authors-plus.php:1349
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr "Författare : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1233 co-authors-plus.php:1350
msgid "E-mail : %s"
msgstr "E-postadress : %s"
#: co-authors-plus.php:1234 co-authors-plus.php:1244 co-authors-plus.php:1253
#: co-authors-plus.php:1336 co-authors-plus.php:1343 co-authors-plus.php:1351
msgid "URL : %s"
msgstr "URL : %s"
#: co-authors-plus.php:1235 co-authors-plus.php:1352
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr "Whois : http://whois.arin.net/rest/ip/%s"
#: co-authors-plus.php:1236 co-authors-plus.php:1353
msgid "Comment: "
msgstr "Kommentar: "
#: co-authors-plus.php:1237
msgid "You can see all comments on this post here: "
msgstr "Du kan se alla kommentarer på detta inlägg här: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1239
msgid "[%1$s] Comment: \"%2$s\""
msgstr "[%1$s] Kommentar: \"%2$s\""
#: co-authors-plus.php:1241
msgid "New trackback on your post \"%s\""
msgstr "Ny trackback på ditt inlägg \"%s\""
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1243 co-authors-plus.php:1252
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr "Webbplats: %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1245 co-authors-plus.php:1254
msgid "Excerpt: "
msgstr "Undantag: "
#: co-authors-plus.php:1246
msgid "You can see all trackbacks on this post here: "
msgstr "Du kan se alla trackbacks på detta inlägg här: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1248
msgid "[%1$s] Trackback: \"%2$s\""
msgstr "[%1$s] Trackback: \"%2$s\""
#: co-authors-plus.php:1250
msgid "New pingback on your post \"%s\""
msgstr "Ny pingback på ditt inlägg \"%s\""
#: co-authors-plus.php:1255
msgid "You can see all pingbacks on this post here: "
msgstr "Du kan se alla pingbacks på detta inlägg här: "
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1257
msgid "[%1$s] Pingback: \"%2$s\""
msgstr "[%1$s] Pingback: \"%2$s\""
#: co-authors-plus.php:1260
msgid "Permalink: %s"
msgstr "Permanent länk: %s"
#: co-authors-plus.php:1262 co-authors-plus.php:1359
msgid "Trash it: %s"
msgstr "Kasta i papperskorgen: %s"
#: co-authors-plus.php:1264 co-authors-plus.php:1361
msgid "Delete it: %s"
msgstr "Radera det: %s"
#: co-authors-plus.php:1265 co-authors-plus.php:1362
msgid "Spam it: %s"
msgstr "Markera som spam: %s"
#: co-authors-plus.php:1333
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr "En ny tackback på inlägget \"%s\" väntar på ditt godkännande"
#: co-authors-plus.php:1335 co-authors-plus.php:1342
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr "Webbplats : %1$s (IP: %2$s , %3$s)"
#: co-authors-plus.php:1337
msgid "Trackback excerpt: "
msgstr "Trackback undantag: "
#: co-authors-plus.php:1340
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr "En ny pingback på inlägget \"%s\" väntar på ditt godkännande"
#: co-authors-plus.php:1344
msgid "Pingback excerpt: "
msgstr "Pingback undantag: "
#: co-authors-plus.php:1347
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr "En ny kommentar på inlägget \"%s\" väntar på ditt godkännande"
#: co-authors-plus.php:1357
msgid "Approve it: %s"
msgstr "Godkänn det: %s"
#: co-authors-plus.php:1364
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
"Just nu väntar %s kommentar på godkännande. Besök moderationspanelen:"
msgstr[1] ""
"Just nu väntar %s kommentarer på godkännande. Besök moderationspanelen:"
#: co-authors-plus.php:1368
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr "[%1$s] Moderera: \"%2$s\""
#: php/class-coauthors-guest-authors.php:77
msgid "Guest Author"
msgstr "Gästförfattare"
#: php/class-coauthors-guest-authors.php:78
msgid "Guest Authors"
msgstr "Gästförfattare"
#: php/class-coauthors-guest-authors.php:79
msgid "All Guest Authors"
msgstr "Alla gästförfattare"
#: php/class-coauthors-guest-authors.php:80
msgid "Add New Guest Author"
msgstr "Ny gästförfattare"
#: php/class-coauthors-guest-authors.php:81
msgid "Edit Guest Author"
msgstr "Editera gästförfattare"
#: php/class-coauthors-guest-authors.php:82
msgid "New Guest Author"
msgstr "Ny gästförfattare"
#: php/class-coauthors-guest-authors.php:83
msgid "View Guest Author"
msgstr "Visa gästförfattare"
#: php/class-coauthors-guest-authors.php:84
msgid "Search Guest Authors"
msgstr "Sök gästförfattare"
#: php/class-coauthors-guest-authors.php:85
msgid "No guest authors found"
msgstr "Inga gästförfattare funna"
#: php/class-coauthors-guest-authors.php:86
msgid "No guest authors found in Trash"
msgstr "Inga gästförfattare funna i papperskorgen"
#: php/class-coauthors-guest-authors.php:87
msgid "Update Guest Author"
msgstr "Uppdatera gästförfattare"
#: php/class-coauthors-guest-authors.php:88
msgid "About the guest author"
msgstr "Om gästförfattaren"
#: php/class-coauthors-guest-authors.php:97
msgctxt "co-authors-plus"
msgid "Add New"
msgstr "Lägg till ny"
#: php/class-coauthors-guest-authors.php:153
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Gästförfattare uppdaterad. <a href=\"%s\">Visa profil</a>"
#: php/class-coauthors-guest-authors.php:154
msgid "Custom field updated."
msgstr "Custom-fält uppdaterat."
#: php/class-coauthors-guest-authors.php:155
msgid "Custom field deleted."
msgstr "Custom-fält raderat."
#: php/class-coauthors-guest-authors.php:156
msgid "Guest author updated."
msgstr "Gästförfattare uppdaterat."
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:158
msgid "Guest author restored to revision from %s"
msgstr "Gästförfattare återställd till revision från %s"
#: php/class-coauthors-guest-authors.php:160
msgid "Guest author saved."
msgstr "Gästförfattare sparad."
#: php/class-coauthors-guest-authors.php:161
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Gästförfattare inskickad. <a target=\"_blank\" href=\"%s\">Förhandsvisa "
"profil</a>"
#: php/class-coauthors-guest-authors.php:162
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
"Gästförfattare schemalagd för: <strong>%1$s</strong>. <a target=\"_blank\" "
"href=\"%2$s\">Förhandsvisa profil</a>"
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:164
msgid "M j, Y @ G:i"
msgstr "M j, Y @ G:i"
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
"Gästförfattare uppdaterad. <a target=\"_blank\" href=\"%s\">Förhandsvisa "
"profil</a>"
#: php/class-coauthors-guest-authors.php:182
#: php/class-coauthors-guest-authors.php:215
#: php/class-coauthors-guest-authors.php:430
msgid "Doin' something fishy, huh?"
msgstr "Nu gör du allt något skumt, eller hur?"
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:219
msgid "You don't have permission to perform this action."
msgstr "Du har inte behörighet att utföra denna åtgärd."
#: php/class-coauthors-guest-authors.php:224
#: php/class-coauthors-guest-authors.php:435
msgid "Guest author can't be deleted because it doesn't exist."
msgstr "Gästförfattare kan inte raderas för att den inte existerar."
#: php/class-coauthors-guest-authors.php:238
msgid "Co-author does not exists. Try again?"
msgstr "Gästförfattare existerar inte. Försök igen?"
#: php/class-coauthors-guest-authors.php:246
msgid "Please make sure to pick an option."
msgstr "Var snäll och gör ett val."
#: php/class-coauthors-guest-authors.php:386
msgid "Guest author deleted."
msgstr "Gästförfattare raderad."
#: php/class-coauthors-guest-authors.php:410
msgid "Save"
msgstr "Spara"
#: php/class-coauthors-guest-authors.php:411
msgid "Unique Slug"
msgstr "Unik Slug"
#: php/class-coauthors-guest-authors.php:413
msgid "Name"
msgstr "Namn"
#: php/class-coauthors-guest-authors.php:414
msgid "Contact Info"
msgstr "Kontaktinformation"
#: php/class-coauthors-guest-authors.php:439
msgid "Delete %s"
msgstr "Radera %s"
#: php/class-coauthors-guest-authors.php:440
msgid "You have specified this guest author for deletion:"
msgstr "Du har inte angivit denna gästförfattare för radering:"
#: php/class-coauthors-guest-authors.php:442
msgid "What should be done with posts assigned to this guest author?"
msgstr "Vad ska göras med inlägg tilldelade denna gästförfattare?"
#: php/class-coauthors-guest-authors.php:443
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
"Observera: Om du vill radera gästförfattaren och alla tillhörande inlägg så "
"borde du först radera inläggen och sedan återvända och radera "
"gästförfattaren."
#: php/class-coauthors-guest-authors.php:452
msgid "Reassign to another co-author:"
msgstr "Tilldela en annan gästförfattare:"
#: php/class-coauthors-guest-authors.php:458
msgid "Leave posts assigned to the mapped user, %s."
msgstr "Lämna inlägg tilldelade till den kopplade användaren, %s."
#: php/class-coauthors-guest-authors.php:463
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
"Ta bort signatur från inlägg (men låt varje inlägg behålla sin nuvarande "
"status)."
#: php/class-coauthors-guest-authors.php:466
msgid "Confirm Deletion"
msgstr "Bekräfta radering"
#: php/class-coauthors-guest-authors.php:475
msgid "Add New"
msgstr "Lägg till ny"
#: php/class-coauthors-guest-authors.php:536
msgid "WordPress User Mapping"
msgstr "WordPress Användarkoppling"
#: php/class-coauthors-guest-authors.php:538
msgid "-- Not mapped --"
msgstr "-- Inte kopplad --"
#: php/class-coauthors-guest-authors.php:651
msgid "Guest authors cannot be created without display names."
msgstr "Gästförfattare kan inte skapas utan visningsnamn."
#: php/class-coauthors-guest-authors.php:658
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user instead"
msgstr ""
"Gästförfattare kan inte skapas med samma \"user_login\"-värde som en "
"användare. Försök skapa en profil utifrån den användaren istället"
#: php/class-coauthors-guest-authors.php:663
msgid "Display name conflicts with another guest author display name."
msgstr ""
"Visningsnamn skapar konflikt med en annan gästförfattares visningsnamn."
#: php/class-coauthors-guest-authors.php:817
msgid "ID"
msgstr "Id"
#: php/class-coauthors-guest-authors.php:823
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr "Visningsnamn"
#: php/class-coauthors-guest-authors.php:829
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Förnamn"
#: php/class-coauthors-guest-authors.php:834
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Efternamn"
#: php/class-coauthors-guest-authors.php:839
msgid "Slug"
msgstr "Slug"
#: php/class-coauthors-guest-authors.php:846
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr "E-postadress"
#: php/class-coauthors-guest-authors.php:851
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr "Länkat konto"
#: php/class-coauthors-guest-authors.php:856
msgid "Website"
msgstr "Webbplats"
#: php/class-coauthors-guest-authors.php:861
msgid "AIM"
msgstr "AIM"
#: php/class-coauthors-guest-authors.php:866
msgid "Yahoo IM"
msgstr "YahooIM"
#: php/class-coauthors-guest-authors.php:871
msgid "Jabber / Google Talk"
msgstr "Jabber / Google Talk"
#: php/class-coauthors-guest-authors.php:876
msgid "Biographical Info"
msgstr "Information"
#: php/class-coauthors-guest-authors.php:1006
msgid "%s is a required field"
msgstr "%s är ett obligatoriskt fält"
#: php/class-coauthors-guest-authors.php:1012
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
"\"user_login\" kan inte vara det samma som en existerande gästförfattare "
"eller kopplad användare"
#: php/class-coauthors-guest-authors.php:1057
msgid "Guest author does not exist"
msgstr "Gästförfattare existerar inte"
#: php/class-coauthors-guest-authors.php:1069
msgid "Reassignment co-author does not exist"
msgstr "Tilldelad gästförfattare existerar inte"
#: php/class-coauthors-guest-authors.php:1101
msgid "No user exists with that ID"
msgstr "Ingen användare med detta Id existerar"
#: php/class-coauthors-guest-authors.php:1158
msgid "Edit Profile"
msgstr "Editera profil"
#: php/class-coauthors-guest-authors.php:1166
msgid "Create Profile"
msgstr "Skapa profil"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr "Medförfattare"
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr "Medförfattare"
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Visa alla"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr "Med länkat konto"
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr "Utan länkat konto"
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr "Inga matchande gästförfattare kunde hittas."
#: php/class-coauthors-wp-list-table.php:206
msgid "Delete"
msgstr "Radera"
#: php/class-coauthors-wp-list-table.php:207
msgid "View Posts"
msgstr "Visa inlägg"
#: php/class-coauthors-wp-list-table.php:257
msgid "Filter"
msgstr "Filtrera"
#: php/class-wp-cli.php:153
msgid "Please specify a valid user_login"
msgstr "Ange ett giltigt \"user_login\"-värde"
#: php/class-wp-cli.php:156
msgid "Please specify a valid co-author login"
msgstr "Ange ett giltigt medförfattare alias"
#: php/class-wp-cli.php:163
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr "Hoppar över - Inlägg #%d har redan medförfattare tilldelade: %s"
#: php/class-wp-cli.php:168
msgid "Updating - Adding %s's byline to post #%d"
msgstr "Uppdaterar - Lägger till signatur för %s till inlägg #%d"
#: php/class-wp-cli.php:173
msgid "All done! %d posts were affected."
msgstr "Allt klart! %d inlägg berördes."
#: template-tags.php:82
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
"Inga inläggs-id skickades med till \"CoAuthorsIterator\"'s constructor. Är "
"du inte i en llop eller är inte $post satt?"
#: template-tags.php:136
msgid " and "
msgstr " och "
#: template-tags.php:208 template-tags.php:365
msgid "Posts by %s"
msgstr "Inlägg av %s"
#: template-tags.php:257
msgid "Visit %s&#8217;s website"
msgstr "Besök %s&#8217;s webbplats"
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr "Co-Authors Plus"
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr "http://wordpress.org/extend/plugins/co-authors-plus/"
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
"Tillåter att ett inlägg tilldelas flera författare. Detta tillägg är en "
"vidareutvecklad version av \"Co-Authors\"-tillägget skrivet av Weston Ruter."
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr "Mohammad Jangda, Daniel Bachhuber, Automattic"
@@ -0,0 +1,581 @@
# Copyright (C) 2012 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2014-03-17 15:59:18+00:00\n"
"PO-Revision-Date: 2014-03-30 19:29+0200\n"
"Last-Translator: Jurko Chervony <info@skinik.name>\n"
"Language-Team: skinik <info@skinik.name>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.4\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-SearchPath-0: .\n"
#: co-authors-plus.php:300 co-authors-plus.php:401 co-authors-plus.php:487
#: co-authors-plus.php:1290
msgid "Authors"
msgstr "Автори"
#: co-authors-plus.php:362
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
#: co-authors-plus.php:369 co-authors-plus.php:489 co-authors-plus.php:1095
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
#: co-authors-plus.php:449 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr "Публікації"
#: co-authors-plus.php:466
msgid "View posts by this author"
msgstr "Переглянути всі матеріали автора"
#: co-authors-plus.php:531 co-authors-plus.php:548
msgid "No co-author exists for that term"
msgstr ""
#: co-authors-plus.php:1090 php/class-coauthors-wp-list-table.php:212
msgid "Edit"
msgstr "Редагувати"
#: co-authors-plus.php:1091
msgid "Remove"
msgstr "Видалити"
#: co-authors-plus.php:1092
msgid "Are you sure you want to remove this author?"
msgstr ""
#: co-authors-plus.php:1093
msgid "Click to change this author, or drag to change their position"
msgstr ""
#: co-authors-plus.php:1094
msgid "Search for an author"
msgstr "Шукати автора"
#: co-authors-plus.php:1132
msgid "Mine"
msgstr "Моє"
#: co-authors-plus.php:1402
msgid "New comment on your post \"%s\""
msgstr ""
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1404 co-authors-plus.php:1521
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1405 co-authors-plus.php:1522
msgid "E-mail : %s"
msgstr ""
#: co-authors-plus.php:1406 co-authors-plus.php:1416 co-authors-plus.php:1425
#: co-authors-plus.php:1508 co-authors-plus.php:1515 co-authors-plus.php:1523
msgid "URL : %s"
msgstr ""
#: co-authors-plus.php:1407 co-authors-plus.php:1524
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr ""
#: co-authors-plus.php:1408 co-authors-plus.php:1525
msgid "Comment: "
msgstr "Коментар:"
#: co-authors-plus.php:1409
msgid "You can see all comments on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1411
msgid "[%1$s] Comment: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1413
msgid "New trackback on your post \"%s\""
msgstr ""
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1415 co-authors-plus.php:1424
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1417 co-authors-plus.php:1426
msgid "Excerpt: "
msgstr ""
#: co-authors-plus.php:1418
msgid "You can see all trackbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1420
msgid "[%1$s] Trackback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1422
msgid "New pingback on your post \"%s\""
msgstr ""
#: co-authors-plus.php:1427
msgid "You can see all pingbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1429
msgid "[%1$s] Pingback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1432
msgid "Permalink: %s"
msgstr ""
#: co-authors-plus.php:1434 co-authors-plus.php:1531
msgid "Trash it: %s"
msgstr ""
#: co-authors-plus.php:1436 co-authors-plus.php:1533
msgid "Delete it: %s"
msgstr ""
#: co-authors-plus.php:1437 co-authors-plus.php:1534
msgid "Spam it: %s"
msgstr ""
#: co-authors-plus.php:1505
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1507 co-authors-plus.php:1514
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1509
msgid "Trackback excerpt: "
msgstr ""
#: co-authors-plus.php:1512
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1516
msgid "Pingback excerpt: "
msgstr ""
#: co-authors-plus.php:1519
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1529
msgid "Approve it: %s"
msgstr ""
#: co-authors-plus.php:1536
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
msgstr[1] ""
#: co-authors-plus.php:1540
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr ""
#: php/class-coauthors-guest-authors.php:80
msgid "Guest Author"
msgstr "Гостьовий автор"
#: php/class-coauthors-guest-authors.php:81
msgid "Guest Authors"
msgstr "Гостьові автори"
#: php/class-coauthors-guest-authors.php:82
msgid "All Guest Authors"
msgstr "Всі гостьові автори"
#: php/class-coauthors-guest-authors.php:83
msgid "Add New Guest Author"
msgstr "Додати нового гостьового автора"
#: php/class-coauthors-guest-authors.php:84
msgid "Edit Guest Author"
msgstr "Редагувати гостьового автора"
#: php/class-coauthors-guest-authors.php:85
msgid "New Guest Author"
msgstr "Новий гостьовий автор"
#: php/class-coauthors-guest-authors.php:86
msgid "View Guest Author"
msgstr "Переглянути гостьового автора"
#: php/class-coauthors-guest-authors.php:87
msgid "Search Guest Authors"
msgstr "Шукати гостьових авторів"
#: php/class-coauthors-guest-authors.php:88
msgid "No guest authors found"
msgstr "Не знайдено гостьових авторів"
#: php/class-coauthors-guest-authors.php:89
msgid "No guest authors found in Trash"
msgstr "В кошику не знайдено гостьових авторів"
#: php/class-coauthors-guest-authors.php:90
msgid "Update Guest Author"
msgstr "Оновити гостьового автора"
#: php/class-coauthors-guest-authors.php:91
msgid "About the guest author"
msgstr "Про гостьового автора"
#: php/class-coauthors-guest-authors.php:100
msgctxt "guest author"
msgid "Add New"
msgstr "Додати нового"
#: php/class-coauthors-guest-authors.php:156
#: php/class-coauthors-guest-authors.php:162
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr "Гостьового автора оновлено. <a href=\"%s\">Переглянути</a>"
#: php/class-coauthors-guest-authors.php:157
msgid "Custom field updated."
msgstr ""
#: php/class-coauthors-guest-authors.php:158
msgid "Custom field deleted."
msgstr ""
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated."
msgstr ""
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:161
msgid "Guest author restored to revision from %s"
msgstr ""
#: php/class-coauthors-guest-authors.php:163
msgid "Guest author saved."
msgstr ""
#: php/class-coauthors-guest-authors.php:164
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:167
msgid "M j, Y @ G:i"
msgstr ""
#: php/class-coauthors-guest-authors.php:168
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:218
#: php/class-coauthors-guest-authors.php:437
msgid "Doin' something fishy, huh?"
msgstr ""
#: php/class-coauthors-guest-authors.php:188
#: php/class-coauthors-guest-authors.php:222
msgid "You don't have permission to perform this action."
msgstr ""
#: php/class-coauthors-guest-authors.php:227
#: php/class-coauthors-guest-authors.php:442
msgid "Guest author can't be deleted because it doesn't exist."
msgstr ""
#: php/class-coauthors-guest-authors.php:241
msgid "Co-author does not exists. Try again?"
msgstr ""
#: php/class-coauthors-guest-authors.php:249
msgid "Please make sure to pick an option."
msgstr ""
#: php/class-coauthors-guest-authors.php:393
msgid "Guest author deleted."
msgstr "Гостьового автора видалено."
#: php/class-coauthors-guest-authors.php:417
msgid "Save"
msgstr "Зберегти"
#: php/class-coauthors-guest-authors.php:418
msgid "Unique Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:420
msgid "Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:421
msgid "Contact Info"
msgstr "Контактна інформація"
#: php/class-coauthors-guest-authors.php:446
msgid "Delete %s"
msgstr "Видалити %s"
#: php/class-coauthors-guest-authors.php:447
msgid "You have specified this guest author for deletion:"
msgstr ""
#: php/class-coauthors-guest-authors.php:449
msgid "What should be done with posts assigned to this guest author?"
msgstr ""
#: php/class-coauthors-guest-authors.php:450
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
#: php/class-coauthors-guest-authors.php:459
msgid "Reassign to another co-author:"
msgstr ""
#: php/class-coauthors-guest-authors.php:465
msgid "Leave posts assigned to the mapped user, %s."
msgstr ""
#: php/class-coauthors-guest-authors.php:470
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
#: php/class-coauthors-guest-authors.php:473
msgid "Confirm Deletion"
msgstr "Підтвердити видалення"
#: php/class-coauthors-guest-authors.php:482
msgid "Add New"
msgstr "Додати нового"
#: php/class-coauthors-guest-authors.php:543
msgid "WordPress User Mapping"
msgstr ""
#: php/class-coauthors-guest-authors.php:545
msgid "-- Not mapped --"
msgstr "-- Не визначено --"
#: php/class-coauthors-guest-authors.php:679
#: php/class-coauthors-guest-authors.php:688
msgid "Guest authors cannot be created without display names."
msgstr ""
#: php/class-coauthors-guest-authors.php:697
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user on the Manage Users listing instead."
msgstr ""
#: php/class-coauthors-guest-authors.php:702
msgid "Display name conflicts with another guest author display name."
msgstr ""
#: php/class-coauthors-guest-authors.php:896
msgid "ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:903
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:909
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr "Ім’я"
#: php/class-coauthors-guest-authors.php:914
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr "Прізвище"
#: php/class-coauthors-guest-authors.php:919
msgid "Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:926
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr ""
#: php/class-coauthors-guest-authors.php:932
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr ""
#: php/class-coauthors-guest-authors.php:937
msgid "Website"
msgstr "Сайт"
#: php/class-coauthors-guest-authors.php:943
msgid "AIM"
msgstr ""
#: php/class-coauthors-guest-authors.php:948
msgid "Yahoo IM"
msgstr ""
#: php/class-coauthors-guest-authors.php:953
msgid "Jabber / Google Talk"
msgstr ""
#: php/class-coauthors-guest-authors.php:958
msgid "Biographical Info"
msgstr "Опис"
#: php/class-coauthors-guest-authors.php:1122
msgid "%s is a required field"
msgstr "%s — обов’язкове поле"
#: php/class-coauthors-guest-authors.php:1128
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
#: php/class-coauthors-guest-authors.php:1173
msgid "Guest author does not exist"
msgstr "Гостьовий автор не існує"
#: php/class-coauthors-guest-authors.php:1185
msgid "Reassignment co-author does not exist"
msgstr ""
#: php/class-coauthors-guest-authors.php:1217
msgid "No user exists with that ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:1275
msgid "Edit Profile"
msgstr "Редагувати профіль"
#: php/class-coauthors-guest-authors.php:1284
msgid "Create Profile"
msgstr "Створити обліковий запис"
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr ""
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr ""
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr "Показати все"
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr ""
#: php/class-coauthors-wp-list-table.php:215
msgid "Delete"
msgstr "Видалити"
#: php/class-coauthors-wp-list-table.php:217
msgid "View Posts"
msgstr "Переглянути мареріали"
#: php/class-coauthors-wp-list-table.php:267
msgid "Filter"
msgstr "Фільтрувати"
#: php/class-wp-cli.php:220
msgid "Please specify a valid user_login"
msgstr ""
#: php/class-wp-cli.php:223
msgid "Please specify a valid co-author login"
msgstr ""
#: php/class-wp-cli.php:230
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr ""
#: php/class-wp-cli.php:235
msgid "Updating - Adding %s's byline to post #%d"
msgstr ""
#: php/class-wp-cli.php:240
msgid "All done! %d posts were affected."
msgstr ""
#: template-tags.php:79
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
#: template-tags.php:133
msgid " and "
msgstr " та "
#: template-tags.php:233 template-tags.php:468
msgid "Posts by %s"
msgstr "Матеріали автора %s"
#: template-tags.php:350
msgid "Visit %s&#8217;s website"
msgstr "Відвідати %s&#8217;s сайт"
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr ""
@@ -0,0 +1,574 @@
# Copyright (C) 2014 Co-Authors Plus
# This file is distributed under the same license as the Co-Authors Plus package.
msgid ""
msgstr ""
"Project-Id-Version: Co-Authors Plus 3.1-beta\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tag/co-authors-plus\n"
"POT-Creation-Date: 2014-03-17 15:59:18+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: co-authors-plus.php:300 co-authors-plus.php:401 co-authors-plus.php:487
#: co-authors-plus.php:1290
msgid "Authors"
msgstr ""
#: co-authors-plus.php:362
msgid ""
"<strong>Note:</strong> To edit post authors, please enable javascript or use "
"a javascript-capable browser"
msgstr ""
#: co-authors-plus.php:369 co-authors-plus.php:489 co-authors-plus.php:1095
msgid ""
"Click on an author to change them. Drag to change their order. Click on "
"<strong>Remove</strong> to remove them."
msgstr ""
#: co-authors-plus.php:449 php/class-coauthors-wp-list-table.php:148
msgid "Posts"
msgstr ""
#: co-authors-plus.php:466
msgid "View posts by this author"
msgstr ""
#: co-authors-plus.php:531 co-authors-plus.php:548
msgid "No co-author exists for that term"
msgstr ""
#: co-authors-plus.php:1090 php/class-coauthors-wp-list-table.php:212
msgid "Edit"
msgstr ""
#: co-authors-plus.php:1091
msgid "Remove"
msgstr ""
#: co-authors-plus.php:1092
msgid "Are you sure you want to remove this author?"
msgstr ""
#: co-authors-plus.php:1093
msgid "Click to change this author, or drag to change their position"
msgstr ""
#: co-authors-plus.php:1094
msgid "Search for an author"
msgstr ""
#: co-authors-plus.php:1132
msgid "Mine"
msgstr ""
#: co-authors-plus.php:1402
msgid "New comment on your post \"%s\""
msgstr ""
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1404 co-authors-plus.php:1521
msgid "Author : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1405 co-authors-plus.php:1522
msgid "E-mail : %s"
msgstr ""
#: co-authors-plus.php:1406 co-authors-plus.php:1416 co-authors-plus.php:1425
#: co-authors-plus.php:1508 co-authors-plus.php:1515 co-authors-plus.php:1523
msgid "URL : %s"
msgstr ""
#: co-authors-plus.php:1407 co-authors-plus.php:1524
msgid "Whois : http://whois.arin.net/rest/ip/%s"
msgstr ""
#: co-authors-plus.php:1408 co-authors-plus.php:1525
msgid "Comment: "
msgstr ""
#: co-authors-plus.php:1409
msgid "You can see all comments on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1411
msgid "[%1$s] Comment: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1413
msgid "New trackback on your post \"%s\""
msgstr ""
#. translators: 1: website name, 2: author IP, 3: author domain
#. translators: 1: comment author, 2: author IP, 3: author domain
#: co-authors-plus.php:1415 co-authors-plus.php:1424
msgid "Website: %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1417 co-authors-plus.php:1426
msgid "Excerpt: "
msgstr ""
#: co-authors-plus.php:1418
msgid "You can see all trackbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1420
msgid "[%1$s] Trackback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1422
msgid "New pingback on your post \"%s\""
msgstr ""
#: co-authors-plus.php:1427
msgid "You can see all pingbacks on this post here: "
msgstr ""
#. translators: 1: blog name, 2: post title
#: co-authors-plus.php:1429
msgid "[%1$s] Pingback: \"%2$s\""
msgstr ""
#: co-authors-plus.php:1432
msgid "Permalink: %s"
msgstr ""
#: co-authors-plus.php:1434 co-authors-plus.php:1531
msgid "Trash it: %s"
msgstr ""
#: co-authors-plus.php:1436 co-authors-plus.php:1533
msgid "Delete it: %s"
msgstr ""
#: co-authors-plus.php:1437 co-authors-plus.php:1534
msgid "Spam it: %s"
msgstr ""
#: co-authors-plus.php:1505
msgid "A new trackback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1507 co-authors-plus.php:1514
msgid "Website : %1$s (IP: %2$s , %3$s)"
msgstr ""
#: co-authors-plus.php:1509
msgid "Trackback excerpt: "
msgstr ""
#: co-authors-plus.php:1512
msgid "A new pingback on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1516
msgid "Pingback excerpt: "
msgstr ""
#: co-authors-plus.php:1519
msgid "A new comment on the post \"%s\" is waiting for your approval"
msgstr ""
#: co-authors-plus.php:1529
msgid "Approve it: %s"
msgstr ""
#: co-authors-plus.php:1536
msgid ""
"Currently %s comment is waiting for approval. Please visit the moderation "
"panel:"
msgid_plural ""
"Currently %s comments are waiting for approval. Please visit the moderation "
"panel:"
msgstr[0] ""
msgstr[1] ""
#: co-authors-plus.php:1540
msgid "[%1$s] Please moderate: \"%2$s\""
msgstr ""
#: php/class-coauthors-guest-authors.php:80
msgid "Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:81
msgid "Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:82
msgid "All Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:83
msgid "Add New Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:84
msgid "Edit Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:85
msgid "New Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:86
msgid "View Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:87
msgid "Search Guest Authors"
msgstr ""
#: php/class-coauthors-guest-authors.php:88
msgid "No guest authors found"
msgstr ""
#: php/class-coauthors-guest-authors.php:89
msgid "No guest authors found in Trash"
msgstr ""
#: php/class-coauthors-guest-authors.php:90
msgid "Update Guest Author"
msgstr ""
#: php/class-coauthors-guest-authors.php:91
msgid "About the guest author"
msgstr ""
#: php/class-coauthors-guest-authors.php:100
msgctxt "guest author"
msgid "Add New"
msgstr ""
#: php/class-coauthors-guest-authors.php:156
#: php/class-coauthors-guest-authors.php:162
msgid "Guest author updated. <a href=\"%s\">View profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:157
msgid "Custom field updated."
msgstr ""
#: php/class-coauthors-guest-authors.php:158
msgid "Custom field deleted."
msgstr ""
#: php/class-coauthors-guest-authors.php:159
msgid "Guest author updated."
msgstr ""
#. translators: %s: date and time of the revision
#: php/class-coauthors-guest-authors.php:161
msgid "Guest author restored to revision from %s"
msgstr ""
#: php/class-coauthors-guest-authors.php:163
msgid "Guest author saved."
msgstr ""
#: php/class-coauthors-guest-authors.php:164
msgid ""
"Guest author submitted. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:165
msgid ""
"Guest author scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
"\"%2$s\">Preview profile</a>"
msgstr ""
#. translators: Publish box date format, see http:php.net/date
#: php/class-coauthors-guest-authors.php:167
msgid "M j, Y @ G:i"
msgstr ""
#: php/class-coauthors-guest-authors.php:168
msgid ""
"Guest author updated. <a target=\"_blank\" href=\"%s\">Preview profile</a>"
msgstr ""
#: php/class-coauthors-guest-authors.php:185
#: php/class-coauthors-guest-authors.php:218
#: php/class-coauthors-guest-authors.php:437
msgid "Doin' something fishy, huh?"
msgstr ""
#: php/class-coauthors-guest-authors.php:188
#: php/class-coauthors-guest-authors.php:222
msgid "You don't have permission to perform this action."
msgstr ""
#: php/class-coauthors-guest-authors.php:227
#: php/class-coauthors-guest-authors.php:442
msgid "Guest author can't be deleted because it doesn't exist."
msgstr ""
#: php/class-coauthors-guest-authors.php:241
msgid "Co-author does not exists. Try again?"
msgstr ""
#: php/class-coauthors-guest-authors.php:249
msgid "Please make sure to pick an option."
msgstr ""
#: php/class-coauthors-guest-authors.php:393
msgid "Guest author deleted."
msgstr ""
#: php/class-coauthors-guest-authors.php:417
msgid "Save"
msgstr ""
#: php/class-coauthors-guest-authors.php:418
msgid "Unique Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:420
msgid "Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:421
msgid "Contact Info"
msgstr ""
#: php/class-coauthors-guest-authors.php:446
msgid "Delete %s"
msgstr ""
#: php/class-coauthors-guest-authors.php:447
msgid "You have specified this guest author for deletion:"
msgstr ""
#: php/class-coauthors-guest-authors.php:449
msgid "What should be done with posts assigned to this guest author?"
msgstr ""
#: php/class-coauthors-guest-authors.php:450
msgid ""
"Note: If you'd like to delete the guest author and all of their posts, you "
"should delete their posts first and then come back to delete the guest "
"author."
msgstr ""
#: php/class-coauthors-guest-authors.php:459
msgid "Reassign to another co-author:"
msgstr ""
#: php/class-coauthors-guest-authors.php:465
msgid "Leave posts assigned to the mapped user, %s."
msgstr ""
#: php/class-coauthors-guest-authors.php:470
msgid "Remove byline from posts (but leave each post in its current status)."
msgstr ""
#: php/class-coauthors-guest-authors.php:473
msgid "Confirm Deletion"
msgstr ""
#: php/class-coauthors-guest-authors.php:482
msgid "Add New"
msgstr ""
#: php/class-coauthors-guest-authors.php:543
msgid "WordPress User Mapping"
msgstr ""
#: php/class-coauthors-guest-authors.php:545
msgid "-- Not mapped --"
msgstr ""
#: php/class-coauthors-guest-authors.php:679
#: php/class-coauthors-guest-authors.php:688
msgid "Guest authors cannot be created without display names."
msgstr ""
#: php/class-coauthors-guest-authors.php:697
msgid ""
"Guest authors cannot be created with the same user_login value as a user. "
"Try creating a profile from the user on the Manage Users listing instead."
msgstr ""
#: php/class-coauthors-guest-authors.php:702
msgid "Display name conflicts with another guest author display name."
msgstr ""
#: php/class-coauthors-guest-authors.php:896
msgid "ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:903
#: php/class-coauthors-wp-list-table.php:143
msgid "Display Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:909
#: php/class-coauthors-wp-list-table.php:144
msgid "First Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:914
#: php/class-coauthors-wp-list-table.php:145
msgid "Last Name"
msgstr ""
#: php/class-coauthors-guest-authors.php:919
msgid "Slug"
msgstr ""
#: php/class-coauthors-guest-authors.php:926
#: php/class-coauthors-wp-list-table.php:146
msgid "E-mail"
msgstr ""
#: php/class-coauthors-guest-authors.php:932
#: php/class-coauthors-wp-list-table.php:147
msgid "Linked Account"
msgstr ""
#: php/class-coauthors-guest-authors.php:937
msgid "Website"
msgstr ""
#: php/class-coauthors-guest-authors.php:943
msgid "AIM"
msgstr ""
#: php/class-coauthors-guest-authors.php:948
msgid "Yahoo IM"
msgstr ""
#: php/class-coauthors-guest-authors.php:953
msgid "Jabber / Google Talk"
msgstr ""
#: php/class-coauthors-guest-authors.php:958
msgid "Biographical Info"
msgstr ""
#: php/class-coauthors-guest-authors.php:1122
msgid "%s is a required field"
msgstr ""
#: php/class-coauthors-guest-authors.php:1128
msgid "user_login cannot duplicate existing guest author or mapped user"
msgstr ""
#: php/class-coauthors-guest-authors.php:1173
msgid "Guest author does not exist"
msgstr ""
#: php/class-coauthors-guest-authors.php:1185
msgid "Reassignment co-author does not exist"
msgstr ""
#: php/class-coauthors-guest-authors.php:1217
msgid "No user exists with that ID"
msgstr ""
#: php/class-coauthors-guest-authors.php:1275
msgid "Edit Profile"
msgstr ""
#: php/class-coauthors-guest-authors.php:1284
msgid "Create Profile"
msgstr ""
#: php/class-coauthors-wp-list-table.php:19
msgid "Co-Authors"
msgstr ""
#: php/class-coauthors-wp-list-table.php:20
msgid "Co-Author"
msgstr ""
#: php/class-coauthors-wp-list-table.php:81
msgid "Show all"
msgstr ""
#: php/class-coauthors-wp-list-table.php:82
msgid "With linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:83
msgid "Without linked account"
msgstr ""
#: php/class-coauthors-wp-list-table.php:135
msgid "No matching guest authors were found."
msgstr ""
#: php/class-coauthors-wp-list-table.php:215
msgid "Delete"
msgstr ""
#: php/class-coauthors-wp-list-table.php:217
msgid "View Posts"
msgstr ""
#: php/class-coauthors-wp-list-table.php:267
msgid "Filter"
msgstr ""
#: php/class-wp-cli.php:220
msgid "Please specify a valid user_login"
msgstr ""
#: php/class-wp-cli.php:223
msgid "Please specify a valid co-author login"
msgstr ""
#: php/class-wp-cli.php:230
msgid "Skipping - Post #%d already has co-authors assigned: %s"
msgstr ""
#: php/class-wp-cli.php:235
msgid "Updating - Adding %s's byline to post #%d"
msgstr ""
#: php/class-wp-cli.php:240
msgid "All done! %d posts were affected."
msgstr ""
#: template-tags.php:79
msgid ""
"No post ID provided for CoAuthorsIterator constructor. Are you not in a loop "
"or is $post not set?"
msgstr ""
#: template-tags.php:133
msgid " and "
msgstr ""
#: template-tags.php:233 template-tags.php:468
msgid "Posts by %s"
msgstr ""
#: template-tags.php:350
msgid "Visit %s&#8217;s website"
msgstr ""
#. Plugin Name of the plugin/theme
msgid "Co-Authors Plus"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "http://wordpress.org/extend/plugins/co-authors-plus/"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Allows multiple authors to be assigned to a post. This plugin is an extended "
"version of the Co-Authors plugin developed by Weston Ruter."
msgstr ""
#. Author of the plugin/theme
msgid "Mohammad Jangda, Daniel Bachhuber, Automattic"
msgstr ""
@@ -0,0 +1,524 @@
/*
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
*/
.select2-container {
position: relative;
display: inline-block;
/* inline-block for ie7 */
zoom: 1;
*display: inline;
vertical-align: top;
}
.select2-container,
.select2-drop,
.select2-search,
.select2-search input{
/*
Force border-box so that % widths fit the parent
container without overlap because of margin/padding.
More Info : http://www.quirksmode.org/css/box.html
*/
-moz-box-sizing: border-box; /* firefox */
-ms-box-sizing: border-box; /* ie */
-webkit-box-sizing: border-box; /* webkit */
-khtml-box-sizing: border-box; /* konqueror */
box-sizing: border-box; /* css3 */
}
.select2-container .select2-choice {
background-color: #fff;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -o-linear-gradient(bottom, #eeeeee 0%, #ffffff 50%);
background-image: -ms-linear-gradient(top, #eeeeee 0%, #ffffff 50%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#ffffff', GradientType = 0);
background-image: linear-gradient(top, #eeeeee 0%, #ffffff 50%);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #aaa;
display: block;
overflow: hidden;
white-space: nowrap;
position: relative;
height: 26px;
line-height: 26px;
padding: 0 0 0 8px;
color: #444;
text-decoration: none;
}
.select2-container.select2-drop-above .select2-choice
{
border-bottom-color: #aaa;
-webkit-border-radius:0px 0px 4px 4px;
-moz-border-radius:0px 0px 4px 4px;
border-radius:0px 0px 4px 4px;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.9, white));
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 90%);
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 90%);
background-image: -o-linear-gradient(bottom, #eeeeee 0%, white 90%);
background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 90%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
background-image: linear-gradient(top, #eeeeee 0%,#ffffff 90%);
}
.select2-container .select2-choice span {
margin-right: 26px;
display: block;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
}
.select2-container .select2-choice abbr {
display: block;
position: absolute;
right: 26px;
top: 8px;
width: 12px;
height: 12px;
font-size: 1px;
background: url('select2.png') right top no-repeat;
cursor: pointer;
text-decoration: none;
border:0;
outline: 0;
}
.select2-container .select2-choice abbr:hover {
background-position: right -11px;
cursor: pointer;
}
.select2-drop {
background: #fff;
color: #000;
border: 1px solid #aaa;
border-top: 0;
position: absolute;
top: 100%;
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
-o-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
z-index: 9999;
width:100%;
margin-top:-1px;
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}
.select2-drop.select2-drop-above {
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
margin-top:1px;
border-top: 1px solid #aaa;
border-bottom: 0;
-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
-o-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
}
.select2-container .select2-choice div {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
background: #ccc;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%);
border-left: 1px solid #aaa;
position: absolute;
right: 0;
top: 0;
display: block;
height: 100%;
width: 18px;
}
.select2-container .select2-choice div b {
background: url('select2.png') no-repeat 0 1px;
display: block;
width: 100%;
height: 100%;
}
.select2-search {
display: inline-block;
white-space: nowrap;
z-index: 10000;
min-height: 26px;
width: 100%;
margin: 0;
padding-left: 4px;
padding-right: 4px;
}
.select2-search-hidden {
display: block;
position: absolute;
left: -10000px;
}
.select2-search input {
background: #fff url('select2.png') no-repeat 100% -22px;
background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
padding: 4px 20px 4px 5px;
outline: 0;
border: 1px solid #aaa;
font-family: sans-serif;
font-size: 1em;
width:100%;
margin:0;
height:auto !important;
min-height: 26px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
.select2-drop.select2-drop-above .select2-search input
{
margin-top:4px;
}
.select2-search input.select2-active {
background: #fff url('spinner.gif') no-repeat 100%;
background: url('spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
}
.select2-container-active .select2-choice,
.select2-container-active .select2-choices {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
outline: none;
}
.select2-dropdown-open .select2-choice {
border: 1px solid #aaa;
border-bottom-color: transparent;
-webkit-box-shadow: 0 1px 0 #fff inset;
-moz-box-shadow : 0 1px 0 #fff inset;
-o-box-shadow : 0 1px 0 #fff inset;
box-shadow : 0 1px 0 #fff inset;
background-color: #eee;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
-webkit-border-bottom-left-radius : 0;
-webkit-border-bottom-right-radius: 0;
-moz-border-radius-bottomleft : 0;
-moz-border-radius-bottomright: 0;
border-bottom-left-radius : 0;
border-bottom-right-radius: 0;
}
.select2-dropdown-open .select2-choice div {
background: transparent;
border-left: none;
}
.select2-dropdown-open .select2-choice div b {
background-position: -18px 1px;
}
/* results */
.select2-results {
margin: 4px 4px 4px 0;
padding: 0 0 0 4px;
position: relative;
overflow-x: hidden;
overflow-y: auto;
max-height: 200px;
}
.select2-results ul.select2-result-sub {
margin: 0 0 0 0;
}
.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px }
.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px }
.select2-results li {
list-style: none;
display: list-item;
}
.select2-results li.select2-result-with-children > .select2-result-label {
font-weight: bold;
}
.select2-results .select2-result-label {
padding: 3px 7px 4px;
margin: 0;
cursor: pointer;
}
.select2-results .select2-highlighted {
background: #3875d7;
color: #fff;
}
.select2-results li em {
background: #feffde;
font-style: normal;
}
.select2-results .select2-highlighted em {
background: transparent;
}
.select2-results .select2-no-results,
.select2-results .select2-searching,
.select2-results .select2-selection-limit {
background: #f4f4f4;
display: list-item;
}
/*
disabled look for already selected choices in the results dropdown
.select2-results .select2-disabled.select2-highlighted {
color: #666;
background: #f4f4f4;
display: list-item;
cursor: default;
}
.select2-results .select2-disabled {
background: #f4f4f4;
display: list-item;
cursor: default;
}
*/
.select2-results .select2-disabled {
display: none;
}
.select2-more-results.select2-active {
background: #f4f4f4 url('spinner.gif') no-repeat 100%;
}
.select2-more-results {
background: #f4f4f4;
display: list-item;
}
/* disabled styles */
.select2-container.select2-container-disabled .select2-choice {
background-color: #f4f4f4;
background-image: none;
border: 1px solid #ddd;
cursor: default;
}
.select2-container.select2-container-disabled .select2-choice div {
background-color: #f4f4f4;
background-image: none;
border-left: 0;
}
/* multiselect */
.select2-container-multi .select2-choices {
background-color: #fff;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
border: 1px solid #aaa;
margin: 0;
padding: 0;
cursor: text;
overflow: hidden;
height: auto !important;
height: 1%;
position: relative;
}
.select2-container-multi .select2-choices {
min-height: 26px;
}
.select2-container-multi.select2-container-active .select2-choices {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
outline: none;
}
.select2-container-multi .select2-choices li {
float: left;
list-style: none;
}
.select2-container-multi .select2-choices .select2-search-field {
white-space: nowrap;
margin: 0;
padding: 0;
}
.select2-container-multi .select2-choices .select2-search-field input {
color: #666;
background: transparent !important;
font-family: sans-serif;
font-size: 100%;
height: 15px;
padding: 5px;
margin: 1px 0;
outline: 0;
border: 0;
-webkit-box-shadow: none;
-moz-box-shadow : none;
-o-box-shadow : none;
box-shadow : none;
}
.select2-container-multi .select2-choices .select2-search-field input.select2-active {
background: #fff url('spinner.gif') no-repeat 100% !important;
}
.select2-default {
color: #999 !important;
}
.select2-container-multi .select2-choices .select2-search-choice {
-webkit-border-radius: 3px;
-moz-border-radius : 3px;
border-radius : 3px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
background-color: #e4e4e4;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
-webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
-moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
color: #333;
border: 1px solid #aaaaaa;
line-height: 13px;
padding: 3px 5px 3px 18px;
margin: 3px 0 3px 5px;
position: relative;
cursor: default;
}
.select2-container-multi .select2-choices .select2-search-choice span {
cursor: default;
}
.select2-container-multi .select2-choices .select2-search-choice-focus {
background: #d4d4d4;
}
.select2-search-choice-close {
display: block;
position: absolute;
right: 3px;
top: 4px;
width: 12px;
height: 13px;
font-size: 1px;
background: url('select2.png') right top no-repeat;
outline: none;
}
.select2-container-multi .select2-search-choice-close {
left: 3px;
}
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
background-position: right -11px;
}
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
background-position: right -11px;
}
/* disabled styles */
.select2-container-multi.select2-container-disabled .select2-choices{
background-color: #f4f4f4;
background-image: none;
border: 1px solid #ddd;
cursor: default;
}
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
background-image: none;
background-color: #f4f4f4;
border: 1px solid #ddd;
padding: 3px 5px 3px 5px;
}
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
display: none;
}
/* end multiselect */
.select2-result-selectable .select2-match,
.select2-result-unselectable .select2-result-selectable .select2-match { text-decoration: underline; }
.select2-result-unselectable .select2-match { text-decoration: none; }
.select2-offscreen { position: absolute; left: -10000px; }
/* Retina-ize icons */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
.select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b {
background-image: url(select2x2.png) !important;
background-repeat: no-repeat !important;
background-size: 60px 40px !important;
}
.select2-search input {
background-position: 100% -21px !important;
}
}
@@ -0,0 +1,82 @@
/*
Copyright 2012 Igor Vaynberg
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
*/
(function(e){"undefined"==typeof e.fn.each2&&e.fn.extend({each2:function(g){for(var i=e([0]),m=-1,s=this.length;++m<s&&(i.context=i[0]=this[m])&&!1!==g.call(i[0],m,i););return this}})})(jQuery);
(function(e,g){function i(a,b){var c=0,d=b.length,j;if("undefined"===typeof a)return-1;if(a.constructor===String)for(;c<d;c+=1){if(0===a.localeCompare(b[c]))return c}else for(;c<d;c+=1)if(j=b[c],j.constructor===String){if(0===j.localeCompare(a))return c}else if(j===a)return c;return-1}function m(a,b){return a===b?!0:a===g||b===g||null===a||null===b?!1:a.constructor===String?0===a.localeCompare(b):b.constructor===String?0===b.localeCompare(a):!1}function s(a,b){var c,d,j;if(null===a||1>a.length)return[];
c=a.split(b);d=0;for(j=c.length;d<j;d+=1)c[d]=e.trim(c[d]);return c}function A(a,b,c){var c=c||g,d;return function(){var j=arguments;window.clearTimeout(d);d=window.setTimeout(function(){b.apply(c,j)},a)}}function l(a){a.preventDefault();a.stopPropagation()}function B(a,b,c){var d=a.toUpperCase().indexOf(b.toUpperCase()),b=b.length;0>d?c.push(a):(c.push(a.substring(0,d)),c.push("<span class='select2-match'>"),c.push(a.substring(d,d+b)),c.push("</span>"),c.push(a.substring(d+b,a.length)))}function C(a){var b,
c=0,d=null,j=a.quietMillis||100;return function(h){window.clearTimeout(b);b=window.setTimeout(function(){var b=c+=1,j=a.data,n=a.transport||e.ajax,f=a.traditional||!1,g=a.type||"GET",j=j.call(this,h.term,h.page,h.context);null!==d&&d.abort();d=n.call(null,{url:a.url,dataType:a.dataType,data:j,type:g,traditional:f,success:function(d){b<c||(d=a.results(d,h.page),h.callback(d))}})},j)}}function D(a){var b=a,c,d=function(a){return""+a.text};e.isArray(b)||(d=b.text,e.isFunction(d)||(c=b.text,d=function(a){return a[c]}),
b=b.results);return function(a){var c=a.term,f={results:[]},k;if(c==="")a.callback({results:b});else{k=function(b,f){var g,t,b=b[0];if(b.children){g={};for(t in b)b.hasOwnProperty(t)&&(g[t]=b[t]);g.children=[];e(b.children).each2(function(a,b){k(b,g.children)});g.children.length&&f.push(g)}else a.matcher(c,d(b))&&f.push(b)};e(b).each2(function(a,b){k(b,f.results)});a.callback(f)}}}function E(a){return e.isFunction(a)?a:function(b){var c=b.term,d={results:[]};e(a).each(function(){var a=this.text!==
g,e=a?this.text:this;if(""===c||b.matcher(c,e))d.results.push(a?this:{id:this,text:this})});b.callback(d)}}function u(a){if(e.isFunction(a))return!0;if(!a)return!1;throw Error("formatterName must be a function or a falsy value");}function v(a){return e.isFunction(a)?a():a}function F(a){var b=0;e.each(a,function(a,d){d.children?b+=F(d.children):b++});return b}function H(a,b,c,d){var e=a,h=!1,f,k,n,o;if(!d.createSearchChoice||!d.tokenSeparators||1>d.tokenSeparators.length)return g;for(;;){h=-1;k=0;
for(n=d.tokenSeparators.length;k<n&&!(o=d.tokenSeparators[k],h=a.indexOf(o),0<=h);k++);if(0>h)break;f=a.substring(0,h);a=a.substring(h+o.length);if(0<f.length&&(f=d.createSearchChoice(f,b),f!==g&&null!==f&&d.id(f)!==g&&null!==d.id(f))){h=!1;k=0;for(n=b.length;k<n;k++)if(m(d.id(f),d.id(b[k]))){h=!0;break}h||c(f)}}if(0!=e.localeCompare(a))return a}function x(a,b){var c=function(){};c.prototype=new a;c.prototype.constructor=c;c.prototype.parent=a.prototype;c.prototype=e.extend(c.prototype,b);return c}
if(window.Select2===g){var f,w,y,z,G,q;f={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){a=a.which?a.which:a;switch(a){case f.LEFT:case f.RIGHT:case f.UP:case f.DOWN:return!0}return!1},isControl:function(a){switch(a.which){case f.SHIFT:case f.CTRL:case f.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){a=a.which?a.which:a;return 112<=a&&123>=a}};var I=1;G=function(){return I++};
e(document).delegate("body","mousemove",function(a){e.data(document,"select2-lastpos",{x:a.pageX,y:a.pageY})});e(document).ready(function(){e(document).delegate("body","mousedown touchend",function(a){var b=e(a.target).closest("div.select2-container").get(0),c;b?e(document).find("div.select2-container-active").each(function(){this!==b&&e(this).data("select2").blur()}):(b=e(a.target).closest("div.select2-drop").get(0),e(document).find("div.select2-drop-active").each(function(){this!==b&&e(this).data("select2").blur()}));
b=e(a.target);c=b.attr("for");"LABEL"===a.target.tagName&&(c&&0<c.length)&&(b=e("#"+c),b=b.data("select2"),b!==g&&(b.focus(),a.preventDefault()))})});w=x(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(a){var b,c;this.opts=a=this.prepareOpts(a);this.id=a.id;a.element.data("select2")!==g&&null!==a.element.data("select2")&&this.destroy();this.enabled=!0;this.container=this.createContainer();this.containerId="s2id_"+(a.element.attr("id")||"autogen"+G());this.containerSelector=
"#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1");this.container.attr("id",this.containerId);var d=!1,j;this.body=function(){!1===d&&(j=a.element.closest("body"),d=!0);return j};a.element.attr("class")!==g&&this.container.addClass(a.element.attr("class").replace(/validate\[[\S ]+] ?/,""));this.container.css(v(a.containerCss));this.container.addClass(v(a.containerCssClass));this.opts.element.data("select2",this).hide().before(this.container);this.container.data("select2",
this);this.dropdown=this.container.find(".select2-drop");this.dropdown.addClass(v(a.dropdownCssClass));this.dropdown.data("select2",this);this.results=b=this.container.find(".select2-results");this.search=c=this.container.find("input.select2-input");c.attr("tabIndex",this.opts.element.attr("tabIndex"));this.resultsPage=0;this.context=null;this.initContainer();this.initContainerWidth();this.results.bind("mousemove",function(a){var b=e.data(document,"select2-lastpos");(b===g||b.x!==a.pageX||b.y!==a.pageY)&&
e(a.target).trigger("mousemove-filtered",a)});this.dropdown.delegate(".select2-results","mousemove-filtered",this.bind(this.highlightUnderEvent));var h=this.results,f=A(80,function(a){h.trigger("scroll-debounced",a)});h.bind("scroll",function(a){0<=i(a.target,h.get())&&f(a)});this.dropdown.delegate(".select2-results","scroll-debounced",this.bind(this.loadMoreIfNeeded));e.fn.mousewheel&&b.mousewheel(function(a,c,d,e){c=b.scrollTop();0<e&&0>=c-e?(b.scrollTop(0),l(a)):0>e&&b.get(0).scrollHeight-b.scrollTop()+
e<=b.height()&&(b.scrollTop(b.get(0).scrollHeight-b.height()),l(a))});c.bind("keydown",function(){e.data(c,"keyup-change-value")===g&&e.data(c,"keyup-change-value",c.val())});c.bind("keyup",function(){var a=e.data(c,"keyup-change-value");a!==g&&c.val()!==a&&(e.removeData(c,"keyup-change-value"),c.trigger("keyup-change"))});c.bind("keyup-change",this.bind(this.updateResults));c.bind("focus",function(){c.addClass("select2-focused");" "===c.val()&&c.val("")});c.bind("blur",function(){c.removeClass("select2-focused")});
this.dropdown.delegate(".select2-results","mouseup",this.bind(function(a){0<e(a.target).closest(".select2-result-selectable:not(.select2-disabled)").length?(this.highlightUnderEvent(a),this.selectHighlighted(a)):this.focusSearch();l(a)}));this.dropdown.bind("click mouseup mousedown",function(a){a.stopPropagation()});e.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource());(a.element.is(":disabled")||a.element.is("[readonly='readonly']"))&&this.disable()},destroy:function(){var a=
this.opts.element.data("select2");a!==g&&(a.container.remove(),a.dropdown.remove(),a.opts.element.removeData("select2").unbind(".select2").show())},prepareOpts:function(a){var b,c,d;b=a.element;"select"===b.get(0).tagName.toLowerCase()&&(this.select=c=a.element);c&&e.each("id multiple ajax query createSearchChoice initSelection data tags".split(" "),function(){if(this in a)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.");});a=e.extend({},{populateResults:function(b,
c,d){var f,n=this.opts.id,o=this;f=function(b,c,j){var h,l,i,m,r,p,q;h=0;for(l=b.length;h<l;h=h+1){i=b[h];m=n(i)!==g;r=i.children&&i.children.length>0;p=e("<li></li>");p.addClass("select2-results-dept-"+j);p.addClass("select2-result");p.addClass(m?"select2-result-selectable":"select2-result-unselectable");r&&p.addClass("select2-result-with-children");p.addClass(o.opts.formatResultCssClass(i));m=e("<div></div>");m.addClass("select2-result-label");q=a.formatResult(i,m,d);q!==g&&m.html(o.opts.escapeMarkup(q));
p.append(m);if(r){r=e("<ul></ul>");r.addClass("select2-result-sub");f(i.children,r,j+1);p.append(r)}p.data("select2-data",i);c.append(p)}};f(c,b,0)}},e.fn.select2.defaults,a);"function"!==typeof a.id&&(d=a.id,a.id=function(a){return a[d]});if(c)a.query=this.bind(function(a){var c={results:[],more:false},d=a.term,f,n,o;o=function(b,c){var e;if(b.is("option"))a.matcher(d,b.text(),b)&&c.push({id:b.attr("value"),text:b.text(),element:b.get(),css:b.attr("class")});else if(b.is("optgroup")){e={text:b.attr("label"),
children:[],element:b.get(),css:b.attr("class")};b.children().each2(function(a,b){o(b,e.children)});e.children.length>0&&c.push(e)}};f=b.children();if(this.getPlaceholder()!==g&&f.length>0){n=f[0];e(n).text()===""&&(f=f.not(n))}f.each2(function(a,b){o(b,c.results)});a.callback(c)}),a.id=function(a){return a.id},a.formatResultCssClass=function(a){return a.css};else if(!("query"in a))if("ajax"in a){if((c=a.element.data("ajax-url"))&&0<c.length)a.ajax.url=c;a.query=C(a.ajax)}else"data"in a?a.query=D(a.data):
"tags"in a&&(a.query=E(a.tags),a.createSearchChoice=function(a){return{id:a,text:a}},a.initSelection=function(b,c){var d=[];e(s(b.val(),a.separator)).each(function(){var b=this,c=this,j=a.tags;e.isFunction(j)&&(j=j());e(j).each(function(){if(m(this.id,b)){c=this.text;return false}});d.push({id:b,text:c})});c(d)});if("function"!==typeof a.query)throw"query function not defined for Select2 "+a.element.attr("id");return a},monitorSource:function(){this.opts.element.bind("change.select2",this.bind(function(){!0!==
this.opts.element.data("select2-change-triggered")&&this.initSelection()}))},triggerChange:function(a){a=a||{};a=e.extend({},a,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",!0);this.opts.element.trigger(a);this.opts.element.data("select2-change-triggered",!1);this.opts.element.click();this.opts.blurOnChange&&this.opts.element.blur()},enable:function(){this.enabled||(this.enabled=!0,this.container.removeClass("select2-container-disabled"))},disable:function(){this.enabled&&
(this.close(),this.enabled=!1,this.container.addClass("select2-container-disabled"))},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var a=this.container.offset(),b=this.container.outerHeight(),c=this.container.outerWidth(),d=this.dropdown.outerHeight(),j=e(window).scrollTop()+document.documentElement.clientHeight,b=a.top+b,f=a.left,j=b+d<=j,g=a.top-d>=this.body().scrollTop(),k=this.dropdown.hasClass("select2-drop-above"),n;"static"!==this.body().css("position")&&
(n=this.body().offset(),b-=n.top,f-=n.left);k?(k=!0,!g&&j&&(k=!1)):(k=!1,!j&&g&&(k=!0));k?(b=a.top-d,this.container.addClass("select2-drop-above"),this.dropdown.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above"));a=e.extend({top:b,left:f,width:c},v(this.opts.dropdownCss));this.dropdown.css(a)},shouldOpen:function(){var a;if(this.opened())return!1;a=e.Event("open");this.opts.element.trigger(a);return!a.isDefaultPrevented()},
clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above")},open:function(){if(!this.shouldOpen())return!1;window.setTimeout(this.bind(this.opening),1);return!0},opening:function(){var a=this.containerId,b=this.containerSelector,c="scroll."+a,d="resize."+a;this.container.parents().each(function(){e(this).bind(c,function(){var a=e(b);0==a.length&&e(this).unbind(c);a.select2("close")})});e(window).bind(d,function(){var a=
e(b);0==a.length&&e(window).unbind(d);a.select2("close")});this.clearDropdownAlignmentPreference();" "===this.search.val()&&this.search.val("");this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.updateResults(!0);this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body());this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");this.ensureHighlightVisible();this.focusSearch()},close:function(){if(this.opened()){var a=
this;this.container.parents().each(function(){e(this).unbind("scroll."+a.containerId)});e(window).unbind("resize."+this.containerId);this.clearDropdownAlignmentPreference();this.dropdown.hide();this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");this.results.empty();this.clearSearch();this.opts.element.trigger(e.Event("close"))}},clearSearch:function(){},ensureHighlightVisible:function(){var a=this.results,b,c,d,f;c=this.highlight();0>c||(0==c?a.scrollTop(0):
(b=a.find(".select2-result-selectable"),d=e(b[c]),f=d.offset().top+d.outerHeight(),c===b.length-1&&(b=a.find("li.select2-more-results"),0<b.length&&(f=b.offset().top+b.outerHeight())),b=a.offset().top+a.outerHeight(),f>b&&a.scrollTop(a.scrollTop()+(f-b)),d=d.offset().top-a.offset().top,0>d&&a.scrollTop(a.scrollTop()+d)))},moveHighlight:function(a){for(var b=this.results.find(".select2-result-selectable"),c=this.highlight();-1<c&&c<b.length;){var c=c+a,d=e(b[c]);if(d.hasClass("select2-result-selectable")&&
!d.hasClass("select2-disabled")){this.highlight(c);break}}},highlight:function(a){var b=this.results.find(".select2-result-selectable").not(".select2-disabled");if(0===arguments.length)return i(b.filter(".select2-highlighted")[0],b.get());a>=b.length&&(a=b.length-1);0>a&&(a=0);b.removeClass("select2-highlighted");e(b[a]).addClass("select2-highlighted");this.ensureHighlightVisible()},countSelectableResults:function(){return this.results.find(".select2-result-selectable").not(".select2-disabled").length},
highlightUnderEvent:function(a){a=e(a.target).closest(".select2-result-selectable");if(0<a.length&&!a.is(".select2-highlighted")){var b=this.results.find(".select2-result-selectable");this.highlight(b.index(a))}else 0==a.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var a=this.results,b=a.find("li.select2-more-results"),c,d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-
a.height(),0>=c&&(b.addClass("select2-active"),this.opts.query({term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(c){e.opened()&&(e.opts.populateResults.call(this,a,c.results,{term:f,page:d,context:g}),!0===c.more?(b.detach().appendTo(a).text(e.opts.formatLoadMore(d+1)),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):b.remove(),e.positionDropdown(),e.resultsPage=d)})})))},tokenize:function(){},updateResults:function(a){function b(){f.scrollTop(0);d.removeClass("select2-active");
k.positionDropdown()}function c(a){f.html(k.opts.escapeMarkup(a));b()}var d=this.search,f=this.results,h=this.opts,i,k=this;if(!(!0!==a&&(!1===this.showSearchInput||!this.opened()))){d.addClass("select2-active");if(1<=h.maximumSelectionSize&&(i=this.data(),e.isArray(i)&&i.length>=h.maximumSelectionSize&&u(h.formatSelectionTooBig,"formatSelectionTooBig"))){c("<li class='select2-selection-limit'>"+h.formatSelectionTooBig(h.maximumSelectionSize)+"</li>");return}d.val().length<h.minimumInputLength&&u(h.formatInputTooShort,
"formatInputTooShort")?c("<li class='select2-no-results'>"+h.formatInputTooShort(d.val(),h.minimumInputLength)+"</li>"):(c("<li class='select2-searching'>"+h.formatSearching()+"</li>"),i=this.tokenize(),i!=g&&null!=i&&d.val(i),this.resultsPage=1,h.query({term:d.val(),page:this.resultsPage,context:null,matcher:h.matcher,callback:this.bind(function(i){var l;this.opened()&&((this.context=i.context===g?null:i.context,this.opts.createSearchChoice&&""!==d.val()&&(l=this.opts.createSearchChoice.call(null,
d.val(),i.results),l!==g&&null!==l&&k.id(l)!==g&&null!==k.id(l)&&0===e(i.results).filter(function(){return m(k.id(this),k.id(l))}).length&&i.results.unshift(l)),0===i.results.length&&u(h.formatNoMatches,"formatNoMatches"))?c("<li class='select2-no-results'>"+h.formatNoMatches(d.val())+"</li>"):(f.empty(),k.opts.populateResults.call(this,f,i.results,{term:d.val(),page:this.resultsPage,context:null}),!0===i.more&&u(h.formatLoadMore,"formatLoadMore")&&(f.append("<li class='select2-more-results'>"+k.opts.escapeMarkup(h.formatLoadMore(this.resultsPage))+
"</li>"),window.setTimeout(function(){k.loadMoreIfNeeded()},10)),this.postprocessResults(i,a),b()))})}))}},cancel:function(){this.close()},blur:function(){this.close();this.container.removeClass("select2-container-active");this.dropdown.removeClass("select2-drop-active");this.search[0]===document.activeElement&&this.search.blur();this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){this.search.show();this.search.focus();
window.setTimeout(this.bind(function(){this.search.show();this.search.focus();this.search.val(this.search.val())}),10)},selectHighlighted:function(){var a=this.highlight(),b=this.results.find(".select2-highlighted").not(".select2-disabled"),c=b.closest(".select2-result-selectable").data("select2-data");c&&(b.addClass("select2-disabled"),this.highlight(a),this.onSelect(c))},getPlaceholder:function(){return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||
this.opts.placeholder},initContainerWidth:function(){var a=function(){var a,c,d,f;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){a=this.opts.element.attr("style");if(a!==g){a=a.split(";");d=0;for(f=a.length;d<f;d+=1)if(c=a[d].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/),null!==c&&1<=c.length)return c[1]}return"resolve"===
this.opts.width?(a=this.opts.element.css("width"),0<a.indexOf("%")?a:0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px"):null}return e.isFunction(this.opts.width)?this.opts.width():this.opts.width}.call(this);null!==a&&this.container.attr("style","width: "+a)}});y=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container"}).html(" <a href='#' onclick='return false;' class='select2-choice'> <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr> <div><b></b></div></a> <div class='select2-drop select2-offscreen'> <div class='select2-search'> <input type='text' autocomplete='off' class='select2-input'/> </div> <ul class='select2-results'> </ul></div>")},
opening:function(){this.search.show();this.parent.opening.apply(this,arguments);this.dropdown.removeClass("select2-offscreen")},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.dropdown.removeAttr("style").addClass("select2-offscreen").insertAfter(this.selection).show())},focus:function(){this.close();this.selection.focus()},isFocused:function(){return this.selection[0]===document.activeElement},cancel:function(){this.parent.cancel.apply(this,arguments);this.selection.focus()},
initContainer:function(){var a,b=this.dropdown;this.selection=a=this.container.find(".select2-choice");this.search.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(this.opened())switch(a.which){case f.UP:case f.DOWN:this.moveHighlight(a.which===f.UP?-1:1);l(a);break;case f.TAB:case f.ENTER:this.selectHighlighted();l(a);break;case f.ESC:this.cancel(a),l(a)}else a.which===f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC||!1===
this.opts.openOnEnter&&a.which===f.ENTER||this.open()}));this.search.bind("focus",this.bind(function(){this.selection.attr("tabIndex","-1")}));this.search.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.selection.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("mousedown",this.bind(function(){this.opened()?(this.close(),this.selection.focus()):this.enabled&&this.open()}));b.bind("mousedown",
this.bind(function(){this.search.focus()}));a.bind("focus",this.bind(function(){this.container.addClass("select2-container-active");this.search.attr("tabIndex","-1")}));a.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.search.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(!(a.which===
f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC)&&!(!1===this.opts.openOnEnter&&a.which===f.ENTER))if(a.which==f.DELETE)this.opts.allowClear&&this.clear();else{this.open();if(a.which!==f.ENTER&&!(48>a.which)){var b=String.fromCharCode(a.which).toLowerCase();a.shiftKey&&(b=b.toUpperCase());this.search.focus();this.search.val(b)}l(a)}}));a.delegate("abbr","mousedown",this.bind(function(a){this.enabled&&(this.clear(),l(a),this.close(),this.triggerChange(),this.selection.focus())}));this.setPlaceholder();
this.search.bind("focus",this.bind(function(){this.container.addClass("select2-container-active")}))},clear:function(){this.opts.element.val("");this.selection.find("span").empty();this.selection.removeData("select2-data");this.setPlaceholder()},initSelection:function(){if(""===this.opts.element.val())this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){b!==g&&null!==b&&(a.updateSelection(b),a.close(),a.setPlaceholder())})}},prepareOpts:function(){var a=
this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=a.find(":selected");e.isFunction(c)&&c({id:d.attr("value"),text:d.text()})});return a},setPlaceholder:function(){var a=this.getPlaceholder();""===this.opts.element.val()&&a!==g&&!(this.select&&""!==this.select.find("option:first").text())&&(this.selection.find("span").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.selection.find("abbr").hide())},
postprocessResults:function(a,b){var c=0,d=this,f=!0;this.results.find(".select2-result-selectable").each2(function(a,b){if(m(d.id(b.data("select2-data")),d.opts.element.val()))return c=a,!1});this.highlight(c);!0===b&&(f=this.showSearchInput=F(a.results)>=this.opts.minimumResultsForSearch,this.dropdown.find(".select2-search")[f?"removeClass":"addClass"]("select2-search-hidden"),e(this.dropdown,this.container)[f?"addClass":"removeClass"]("select2-with-searchbox"))},onSelect:function(a){var b=this.opts.element.val();
this.opts.element.val(this.id(a));this.updateSelection(a);this.close();this.selection.focus();m(b,this.id(a))||this.triggerChange()},updateSelection:function(a){var b=this.selection.find("span");this.selection.data("select2-data",a);b.empty();a=this.opts.formatSelection(a,b);a!==g&&b.append(this.opts.escapeMarkup(a));this.selection.removeClass("select2-default");this.opts.allowClear&&this.getPlaceholder()!==g&&this.selection.find("abbr").show()},val:function(){var a,b=null,c=this;if(0===arguments.length)return this.opts.element.val();
a=arguments[0];if(this.select)this.select.val(a).find(":selected").each2(function(a,c){b={id:c.attr("value"),text:c.text()};return!1}),this.updateSelection(b),this.setPlaceholder();else{if(this.opts.initSelection===g)throw Error("cannot call val() if initSelection() is not defined");a?(this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){c.opts.element.val(!a?"":c.id(a));c.updateSelection(a);c.setPlaceholder()})):this.clear()}},clearSearch:function(){this.search.val("")},
data:function(a){var b;if(0===arguments.length)return b=this.selection.data("select2-data"),b==g&&(b=null),b;!a||""===a?this.clear():(this.opts.element.val(!a?"":this.id(a)),this.updateSelection(a))}});z=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container select2-container-multi"}).html(" <ul class='select2-choices'> <li class='select2-search-field'> <input type='text' autocomplete='off' class='select2-input'> </li></ul><div class='select2-drop select2-drop-multi' style='display:none;'> <ul class='select2-results'> </ul></div>")},
prepareOpts:function(){var a=this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=[];a.find(":selected").each2(function(a,b){d.push({id:b.attr("value"),text:b.text()})});e.isFunction(c)&&c(d)});return a},initContainer:function(){var a;this.searchContainer=this.container.find(".select2-search-field");this.selection=a=this.container.find(".select2-choices");this.search.bind("keydown",this.bind(function(b){if(this.enabled){if(b.which===
f.BACKSPACE&&""===this.search.val()){this.close();var c;c=a.find(".select2-search-choice-focus");if(0<c.length){this.unselect(c.first());this.search.width(10);l(b);return}c=a.find(".select2-search-choice");0<c.length&&c.last().addClass("select2-search-choice-focus")}else a.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");if(this.opened())switch(b.which){case f.UP:case f.DOWN:this.moveHighlight(b.which===f.UP?-1:1);l(b);return;case f.ENTER:case f.TAB:this.selectHighlighted();
l(b);return;case f.ESC:this.cancel(b);l(b);return}if(!(b.which===f.TAB||f.isControl(b)||f.isFunctionKey(b)||b.which===f.BACKSPACE||b.which===f.ESC)&&!(!1===this.opts.openOnEnter&&b.which===f.ENTER))this.open(),(b.which===f.PAGE_UP||b.which===f.PAGE_DOWN)&&l(b)}}));this.search.bind("keyup",this.bind(this.resizeSearch));this.search.bind("blur",this.bind(function(a){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.clearSearch();a.stopImmediatePropagation()}));
this.container.delegate(".select2-choices","mousedown",this.bind(function(a){this.enabled&&!(0<e(a.target).closest(".select2-search-choice").length)&&(this.clearPlaceholder(),this.open(),this.focusSearch(),a.preventDefault())}));this.container.delegate(".select2-choices","focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())}));this.clearSearch()},enable:function(){this.enabled||(this.parent.enable.apply(this,
arguments),this.search.removeAttr("disabled"))},disable:function(){this.enabled&&(this.parent.disable.apply(this,arguments),this.search.attr("disabled",!0))},initSelection:function(){""===this.opts.element.val()&&(this.updateSelection([]),this.close(),this.clearSearch());if(this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){if(b!==g&&b!==null){a.updateSelection(b);a.close();a.clearSearch()}})}},clearSearch:function(){var a=this.getPlaceholder();
a!==g&&0===this.getVal().length&&!1===this.search.hasClass("select2-focused")?(this.search.val(a).addClass("select2-default"),this.resizeSearch()):this.search.val(" ").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")?this.search.val("").removeClass("select2-default"):" "===this.search.val()&&this.search.val("")},opening:function(){this.parent.opening.apply(this,arguments);this.clearPlaceholder();this.resizeSearch();this.focusSearch()},close:function(){this.opened()&&
this.parent.close.apply(this,arguments)},focus:function(){this.close();this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(a){var b=[],c=[],d=this;e(a).each(function(){0>i(d.id(this),b)&&(b.push(d.id(this)),c.push(this))});a=c;this.selection.find(".select2-search-choice").remove();e(a).each(function(){d.addSelectedChoice(this)});d.postprocessResults()},tokenize:function(){var a=this.search.val(),a=this.opts.tokenizer(a,this.data(),this.bind(this.onSelect),
this.opts);null!=a&&a!=g&&(this.search.val(a),0<a.length&&this.open())},onSelect:function(a){this.addSelectedChoice(a);this.select&&this.postprocessResults();this.opts.closeOnSelect?(this.close(),this.search.width(10)):0<this.countSelectableResults()?(this.search.width(10),this.resizeSearch(),this.positionDropdown()):this.close();this.triggerChange({added:a});this.focusSearch()},cancel:function(){this.close();this.focusSearch()},addSelectedChoice:function(a){var b=e("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),
c=this.id(a),d=this.getVal(),f;f=this.opts.formatSelection(a,b);b.find("div").replaceWith("<div>"+this.opts.escapeMarkup(f)+"</div>");b.find(".select2-search-choice-close").bind("mousedown",l).bind("click dblclick",this.bind(function(a){this.enabled&&(e(a.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(e(a.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");this.close();this.focusSearch()})).dequeue(),
l(a))})).bind("focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))}));b.data("select2-data",a);b.insertBefore(this.searchContainer);d.push(c);this.setVal(d)},unselect:function(a){var b=this.getVal(),c,d,a=a.closest(".select2-search-choice");if(0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data");d=i(this.id(c),b);0<=d&&(b.splice(d,1),this.setVal(b),this.select&&
this.postprocessResults());a.remove();this.triggerChange({removed:c})},postprocessResults:function(){var a=this.getVal(),b=this.results.find(".select2-result-selectable"),c=this.results.find(".select2-result-with-children"),d=this;b.each2(function(b,c){var e=d.id(c.data("select2-data"));0<=i(e,a)?c.addClass("select2-disabled").removeClass("select2-result-selectable"):c.removeClass("select2-disabled").addClass("select2-result-selectable")});c.each2(function(a,b){0==b.find(".select2-result-selectable").length?
b.addClass("select2-disabled"):b.removeClass("select2-disabled")});b.each2(function(a,b){if(!b.hasClass("select2-disabled")&&b.hasClass("select2-result-selectable"))return d.highlight(0),!1})},resizeSearch:function(){var a,b,c,d,f=this.search.outerWidth()-this.search.width();a=this.search;q||(c=a[0].currentStyle||window.getComputedStyle(a[0],null),q=e("<div></div>").css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,
fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),e("body").append(q));q.text(a.val());a=q.width()+10;b=this.search.offset().left;c=this.selection.width();d=this.selection.offset().left;b=c-(b-d)-f;b<a&&(b=c-f);40>b&&(b=c-f);this.search.width(b)},getVal:function(){var a;if(this.select)return a=this.select.val(),null===a?[]:a;a=this.opts.element.val();return s(a,this.opts.separator)},setVal:function(a){var b;this.select?this.select.val(a):(b=
[],e(a).each(function(){0>i(this,b)&&b.push(this)}),this.opts.element.val(0===b.length?"":b.join(this.opts.separator)))},val:function(){var a,b=[],c=this;if(0===arguments.length)return this.getVal();if(a=arguments[0])if(this.setVal(a),this.select)this.select.find(":selected").each(function(){b.push({id:e(this).attr("value"),text:e(this).text()})}),this.updateSelection(b);else{if(this.opts.initSelection===g)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,
function(a){var b=e(a).map(c.id);c.setVal(b);c.updateSelection(a);c.clearSearch()})}else this.opts.element.val(""),this.updateSelection([]);this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0);this.searchContainer.hide()},onSortEnd:function(){var a=[],b=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();
this.selection.find(".select2-search-choice").each(function(){a.push(b.opts.id(e(this).data("select2-data")))});this.setVal(a);this.triggerChange()},data:function(a){var b=this,c;if(0===arguments.length)return this.selection.find(".select2-search-choice").map(function(){return e(this).data("select2-data")}).get();a||(a=[]);c=e.map(a,function(a){return b.opts.id(a)});this.setVal(c);this.updateSelection(a);this.clearSearch()}});e.fn.select2=function(){var a=Array.prototype.slice.call(arguments,0),b,
c,d,f,h="val destroy opened open close focus isFocused container onSortStart onSortEnd enable disable positionDropdown data".split(" ");this.each(function(){if(0===a.length||"object"===typeof a[0])b=0===a.length?{}:e.extend({},a[0]),b.element=e(this),"select"===b.element.get(0).tagName.toLowerCase()?f=b.element.attr("multiple"):(f=b.multiple||!1,"tags"in b&&(b.multiple=f=!0)),c=f?new z:new y,c.init(b);else if("string"===typeof a[0]){if(0>i(a[0],h))throw"Unknown method: "+a[0];d=g;c=e(this).data("select2");
if(c!==g&&(d="container"===a[0]?c.container:c[a[0]].apply(c,a.slice(1)),d!==g))return!1}else throw"Invalid arguments to select2 plugin: "+a;});return d===g?this:d};e.fn.select2.defaults={width:"copy",closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c){b=[];B(a.text,c.term,b);return b.join("")},formatSelection:function(a){return a?a.text:g},formatResultCssClass:function(){return g},formatNoMatches:function(){return"No matches found"},
formatInputTooShort:function(a,b){return"Please enter "+(b-a.length)+" more characters"},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return 0<=b.toUpperCase().indexOf(a.toUpperCase())},separator:",",tokenSeparators:[],tokenizer:H,
escapeMarkup:function(a){return a&&"string"===typeof a?a.replace(/&/g,"&amp;"):a},blurOnChange:!1};window.Select2={query:{ajax:C,local:D,tags:E},util:{debounce:A,markMatch:B},"class":{"abstract":w,single:y,multi:z}}}})(jQuery);
Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,49 @@
<?php
/**
* For themes where it's easily doable, add support for Co-Authors Plus on the frontend
* by filtering the common template tags
*/
class CoAuthors_Template_Filters {
function __construct() {
add_filter( 'the_author', array( $this, 'filter_the_author' ) );
add_filter( 'the_author_posts_link', array( $this, 'filter_the_author_posts_link' ) );
// Add support for Guest Authors in RSS feeds.
add_filter( 'the_author', array( $this, 'filter_the_author_rss' ), 15 ); // Override CoAuthors_Template_Filters::filter_the_author for RSS feeds
add_action( 'rss2_item', array( $this, 'action_add_rss_guest_authors' ) );
}
function filter_the_author() {
return coauthors( null, null, null, null, false );
}
function filter_the_author_posts_link() {
return coauthors_posts_links( null, null, null, null, false );
}
function filter_the_author_rss( $the_author ) {
if ( ! is_feed() || ! function_exists( 'coauthors' ) ) {
return $the_author;
}
$coauthors = (array) get_coauthors();
if ( count( $coauthors ) >= 1 && isset( $coauthors[0]->display_name ) ) {
return $coauthors[0]->display_name;
} else {
return $the_author;
}
}
function action_add_rss_guest_authors() {
$coauthors = get_coauthors();
// remove the first guest author who is added to the first dc:creator element
array_shift( $coauthors );
foreach ( $coauthors as $coauthor ) {
echo ' <dc:creator><![CDATA[' . esc_html( $coauthor->display_name ) . "]]></dc:creator>\n";
}
}
}
@@ -0,0 +1,290 @@
<?php
//Our class extends the WP_List_Table class, so we need to make sure that it's there
require_once( ABSPATH . 'wp-admin/includes/screen.php' );
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
/**
* List all of the available Co-Authors within the system
*/
class CoAuthors_WP_List_Table extends WP_List_Table {
var $is_search = false;
function __construct() {
if ( ! empty( $_REQUEST['s'] ) ) {
$this->is_search = true;
}
parent::__construct( array(
'plural' => __( 'Co-Authors', 'co-authors-plus' ),
'singular' => __( 'Co-Author', 'co-authors-plus' ),
) );
}
/**
* Perform Co-Authors Query
*/
function prepare_items() {
global $coauthors_plus;
$columns = $this->get_columns();
$hidden = array();
$sortable = array(
'display_name' => array( 'display_name', 'ASC' ),
'first_name' => array( 'first_name', 'ASC' ),
'last_name' => array( 'last_name', 'ASC' ),
);
$_sortable = apply_filters( 'coauthors_guest_author_sortable_columns', $this->get_sortable_columns() );
foreach ( (array) $_sortable as $id => $data ) {
if ( empty( $data ) ) {
continue;
}
$data = (array) $data;
if ( ! isset( $data[1] ) ) {
$data[1] = false;
}
$sortable[ $id ] = $data;
}
$this->_column_headers = array( $columns, $hidden, $sortable );
$paged = ( isset( $_REQUEST['paged'] ) ) ? intval( $_REQUEST['paged'] ) : 1;
$per_page = 20;
$args = array(
'paged' => $paged,
'posts_per_page' => $per_page,
'post_type' => $coauthors_plus->guest_authors->post_type,
'post_status' => 'any',
'orderby' => 'title',
'order' => 'ASC',
);
$args = apply_filters( 'coauthors_guest_author_query_args', $args );
if ( isset( $_REQUEST['orderby'] ) ) {
switch ( $_REQUEST['orderby'] ) {
case 'display_name':
$args['orderby'] = 'title';
break;
case 'first_name':
case 'last_name':
$args['orderby'] = 'meta_value';
$args['meta_key'] = $coauthors_plus->guest_authors->get_post_meta_key( $_REQUEST['orderby'] );
break;
}
}
if ( isset( $_REQUEST['order'] ) && in_array( strtoupper( $_REQUEST['order'] ), array( 'ASC', 'DESC' ) ) ) {
$args['order'] = strtoupper( $_REQUEST['order'] );
}
$this->filters = array(
'show-all' => __( 'Show all', 'co-authors-plus' ),
'with-linked-account' => __( 'With linked account', 'co-authors-plus' ),
'without-linked-account' => __( 'Without linked account', 'co-authors-plus' ),
);
if ( isset( $_REQUEST['filter'] ) && array_key_exists( $_REQUEST['filter'], $this->filters ) ) {
$this->active_filter = sanitize_key( $_REQUEST['filter'] );
} else {
$this->active_filter = 'show-all';
}
switch ( $this->active_filter ) {
case 'with-linked-account':
case 'without-linked-account':
$args['meta_key'] = $coauthors_plus->guest_authors->get_post_meta_key( 'linked_account' );
if ( 'with-linked-account' == $this->active_filter ) {
$args['meta_compare'] = '!=';
} else {
$args['meta_compare'] = '=';
}
$args['meta_value'] = '0';
break;
}
if ( $this->is_search ) {
add_filter( 'posts_where', array( $this, 'filter_query_for_search' ) );
}
$author_posts = new WP_Query( $args );
$items = array();
foreach ( $author_posts->get_posts() as $author_post ) {
$items[] = $coauthors_plus->guest_authors->get_guest_author_by( 'ID', $author_post->ID );
}
if ( $this->is_search ) {
remove_filter( 'posts_where', array( $this, 'filter_query_for_search' ) );
}
$this->items = $items;
$this->set_pagination_args( array(
'total_items' => $author_posts->found_posts,
'per_page' => $per_page,
) );
}
function filter_query_for_search( $where ) {
global $wpdb;
$var = '%' . sanitize_text_field( $_REQUEST['s'] ) . '%';
$where .= $wpdb->prepare( ' AND (post_title LIKE %s OR post_name LIKE %s )', $var, $var );
return $where;
}
/**
* Either there are no co-authors, or the search doesn't match any
*/
function no_items() {
esc_html_e( 'No matching co-authors were found.', 'co-authors-plus' );
}
/**
* Generate the columns of information to be displayed on our list table
*/
function get_columns() {
$columns = array(
'display_name' => __( 'Display Name', 'co-authors-plus' ),
'first_name' => __( 'First Name', 'co-authors-plus' ),
'last_name' => __( 'Last Name', 'co-authors-plus' ),
'user_email' => __( 'E-mail', 'co-authors-plus' ),
'linked_account' => __( 'Linked Account', 'co-authors-plus' ),
'posts' => __( 'Posts', 'co-authors-plus' ),
);
$columns = apply_filters( 'coauthors_guest_author_manage_columns', $columns );
return $columns;
}
/**
* Render a single row
*/
function single_row( $item ) {
static $alternate_class = '';
$alternate_class = ( '' === $alternate_class ? ' alternate' : '' );
$row_class = 'guest-author-static' . $alternate_class . '"';
echo '<tr id="' . esc_attr( 'guest-author-' . $item->ID ) . '" class="' . esc_attr( $row_class ) . '">';
$this->single_row_columns( $item );
echo '</tr>';
}
/**
* Render columns, some are overridden below
*/
function column_default( $item, $column_name ) {
switch ( $column_name ) {
case 'first_name':
case 'last_name':
return $item->$column_name;
case 'user_email':
return '<a href="' . esc_attr( 'mailto:' . $item->user_email ) . '">' . esc_html( $item->user_email ) . '</a>';
default:
do_action( 'coauthors_guest_author_custom_columns', $column_name, $item->ID );
break;
}
}
/**
* Render display name, e.g. author name
*/
function column_display_name( $item ) {
$item_edit_link = get_edit_post_link( $item->ID );
$args = array(
'action' => 'delete',
'id' => $item->ID,
'_wpnonce' => wp_create_nonce( 'guest-author-delete' ),
);
$item_delete_link = add_query_arg( array_map( 'rawurlencode', $args ), menu_page_url( 'view-guest-authors', false ) );
$item_view_link = get_author_posts_url( $item->ID, $item->user_nicename );
$output = '';
$output .= coauthors_get_avatar( $item, 32 );
if ( current_user_can( 'edit_post', $item->ID ) ) {
$output .= '<a href="' . esc_url( $item_edit_link ) . '">' . esc_html( $item->display_name ) . '</a>';
} else {
$output .= esc_html( $item->display_name );
}
$actions = array();
if ( current_user_can( 'edit_post', $item->ID ) ) {
$actions['edit'] = '<a href="' . esc_url( $item_edit_link ) . '">' . __( 'Edit', 'co-authors-plus' ) . '</a>';
}
if ( current_user_can( 'delete_post', $item->ID ) ) {
$actions['delete'] = '<a href="' . esc_url( $item_delete_link ) . '">' . __( 'Delete', 'co-authors-plus' ) . '</a>';
}
$actions['view'] = '<a href="' . esc_url( $item_view_link ) . '">' . __( 'View Posts', 'co-authors-plus' ) . '</a>';
$actions = apply_filters( 'coauthors_guest_author_row_actions', $actions, $item );
$output .= $this->row_actions( $actions, false );
return $output;
}
/**
* Render linked account
*/
function column_linked_account( $item ) {
if ( $item->linked_account ) {
$account = get_user_by( 'login', $item->linked_account );
if ( $account ) {
if ( current_user_can( 'edit_users' ) ) {
return '<a href="' . admin_url( 'user-edit.php?user_id=' . $account->ID ) . '">' . esc_html( $item->linked_account ) . '</a>';
}
return $item->linked_account;
}
}
return '';
}
/**
* Render the published post count column
*/
function column_posts( $item ) {
global $coauthors_plus;
$count = $coauthors_plus->get_guest_author_post_count( $item );
if ( ! empty( $item->linked_account ) ) {
global $coauthors_plus;
// Add user term count to guest author term count.
$term = get_term_by( 'slug', 'cap-' . $item->linked_account, $coauthors_plus->coauthor_taxonomy );
if ( is_object( $term ) ) {
$count = $count + $term->count;
}
}
return '<a href="' . esc_url( add_query_arg( 'author_name', rawurlencode( $item->user_login ), admin_url( 'edit.php' ) ) ) . '">' . $count . '</a>';
}
/**
* Allow users to filter the guest authors by various criteria
*/
function extra_tablenav( $which ) {
?><div class="alignleft actions"><?php
if ( 'top' == $which ) {
if ( ! empty( $this->filters ) ) {
echo '<select name="filter">';
foreach ( $this->filters as $key => $value ) {
echo '<option value="' . esc_attr( $key ) . '" ' . selected( $this->active_filter, $key, false ) . '>' . esc_attr( $value ) . '</option>';
}
echo '</select>';
}
submit_button( __( 'Filter', 'co-authors-plus' ), 'secondary', false, false );
}
?></div><?php
}
function display() {
global $coauthors_plus;
$this->search_box( $coauthors_plus->guest_authors->labels['search_items'], 'guest-authors' );
parent::display();
}
}
@@ -0,0 +1,909 @@
<?php
/**
* Co-Authors Plus commands for the WP-CLI framework
*
* @package wp-cli
* @since 3.0
* @see https://github.com/wp-cli/wp-cli
*/
WP_CLI::add_command( 'co-authors-plus', 'CoAuthorsPlus_Command' );
class CoAuthorsPlus_Command extends WP_CLI_Command {
/**
* Subcommand to create guest authors based on users
*
* @since 3.0
*
* @subcommand create-guest-authors
*/
public function create_guest_authors( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
// There are no arguments at this time
);
$this->args = wp_parse_args( $assoc_args, $defaults );
$users = get_users();
$created = 0;
$skipped = 0;
$progress = \WP_CLI\Utils\make_progress_bar( 'Processing guest authors...', count ( $users ) );
foreach ( $users as $user ) {
$result = $coauthors_plus->guest_authors->create_guest_author_from_user_id( $user->ID );
if ( is_wp_error( $result ) ) {
$skipped++;
} else {
$created++;
}
$progress->tick();
}
$progress->finish();
WP_CLI::line( 'All done! Here are your results:' );
WP_CLI::line( "- {$created} guest author profiles were created" );
WP_CLI::line( "- {$skipped} users already had guest author profiles" );
}
/**
* Create author terms for all posts that don't have them
*
* @subcommand create-terms-for-posts
*/
public function create_terms_for_posts() {
global $coauthors_plus, $wp_post_types;
// Cache these to prevent repeated lookups
$authors = array();
$author_terms = array();
$args = array(
'order' => 'ASC',
'orderby' => 'ID',
'post_type' => $coauthors_plus->supported_post_types,
'posts_per_page' => 100,
'paged' => 1,
'update_meta_cache' => false,
);
$posts = new WP_Query( $args );
$affected = 0;
$count = 0;
$total_posts = $posts->found_posts;
WP_CLI::line( "Now inspecting or updating {$posts->found_posts} total posts." );
while ( $posts->post_count ) {
foreach ( $posts->posts as $single_post ) {
$count++;
$terms = cap_get_coauthor_terms_for_post( $single_post->ID );
if ( empty( $terms ) ) {
WP_CLI::line( sprintf( 'No co-authors found for post #%d.', $single_post->ID ) );
}
if ( ! empty( $terms ) ) {
WP_CLI::line( "{$count}/{$posts->found_posts}) Skipping - Post #{$single_post->ID} '{$single_post->post_title}' already has these terms: " . implode( ', ', wp_list_pluck( $terms, 'name' ) ) );
continue;
}
$author = ( ! empty( $authors[ $single_post->post_author ] ) ) ? $authors[ $single_post->post_author ] : get_user_by( 'id', $single_post->post_author );
$authors[ $single_post->post_author ] = $author;
$author_term = ( ! empty( $author_terms[ $single_post->post_author ] ) ) ? $author_terms[ $single_post->post_author ] : $coauthors_plus->update_author_term( $author );
$author_terms[ $single_post->post_author ] = $author_term;
wp_set_post_terms( $single_post->ID, array( $author_term->slug ), $coauthors_plus->coauthor_taxonomy );
WP_CLI::line( "{$count}/{$total_posts}) Added - Post #{$single_post->ID} '{$single_post->post_title}' now has an author term for: " . $author->user_nicename );
$affected++;
}
if ( $count && 0 === $count % 500 ) {
$this->stop_the_insanity();
sleep( 1 );
}
$args['paged']++;
$posts = new WP_Query( $args );
}
WP_CLI::line( 'Updating author terms with new counts' );
foreach ( $authors as $author ) {
$coauthors_plus->update_author_term( $author );
}
WP_CLI::success( "Done! Of {$total_posts} posts, {$affected} now have author terms." );
}
/**
* Subcommand to assign co-authors to a post based on a given meta key
*
* @since 3.0
*
* @subcommand assign-coauthors
* @synopsis [--meta_key=<key>] [--post_type=<ptype>] [--append_coauthors]
*/
public function assign_coauthors( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
'meta_key' => '_original_import_author',
'post_type' => 'post',
'order' => 'ASC',
'orderby' => 'ID',
'posts_per_page' => 100,
'paged' => 1,
'append_coauthors' => false,
);
$this->args = wp_parse_args( $assoc_args, $defaults );
// For global use and not a part of WP_Query
$append_coauthors = $this->args['append_coauthors'];
unset( $this->args['append_coauthors'] );
$posts_total = 0;
$posts_already_associated = 0;
$posts_missing_coauthor = 0;
$posts_associated = 0;
$missing_coauthors = array();
$posts = new WP_Query( $this->args );
while ( $posts->post_count ) {
foreach ( $posts->posts as $single_post ) {
$posts_total++;
// See if the value in the post meta field is the same as any of the existing coauthors
$original_author = get_post_meta( $single_post->ID, $this->args['meta_key'], true );
$existing_coauthors = get_coauthors( $single_post->ID );
$already_associated = false;
foreach ( $existing_coauthors as $existing_coauthor ) {
if ( $original_author == $existing_coauthor->user_login ) {
$already_associated = true;
}
}
if ( $already_associated ) {
$posts_already_associated++;
WP_CLI::line( $posts_total . ': Post #' . $single_post->ID . ' already has "' . $original_author . '" associated as a coauthor' );
continue;
}
// Make sure this original author exists as a co-author
if ( ( ! $coauthor = $coauthors_plus->get_coauthor_by( 'user_login', $original_author ) ) &&
( ! $coauthor = $coauthors_plus->get_coauthor_by( 'user_login', sanitize_title( $original_author ) ) ) ) {
$posts_missing_coauthor++;
$missing_coauthors[] = $original_author;
WP_CLI::line( $posts_total . ': Post #' . $single_post->ID . ' does not have "' . $original_author . '" associated as a coauthor but there is not a coauthor profile' );
continue;
}
// Assign the coauthor to the post
$coauthors_plus->add_coauthors( $single_post->ID, array( $coauthor->user_nicename ), $append_coauthors );
WP_CLI::line( $posts_total . ': Post #' . $single_post->ID . ' has been assigned "' . $original_author . '" as the author' );
$posts_associated++;
clean_post_cache( $single_post->ID );
}
$this->args['paged']++;
$this->stop_the_insanity();
$posts = new WP_Query( $this->args );
}
WP_CLI::line( 'All done! Here are your results:' );
if ( $posts_already_associated ) {
WP_CLI::line( "- {$posts_already_associated} posts already had the coauthor assigned" );
}
if ( $posts_missing_coauthor ) {
WP_CLI::line( "- {$posts_missing_coauthor} posts reference coauthors that don't exist. These are:" );
WP_CLI::line( ' ' . implode( ', ', array_unique( $missing_coauthors ) ) );
}
if ( $posts_associated ) {
WP_CLI::line( "- {$posts_associated} posts now have the proper coauthor" );
}
}
/**
* Assign posts associated with a WordPress user to a co-author
* Only apply the changes if there aren't yet co-authors associated with the post
*
* @since 3.0
*
* @subcommand assign-user-to-coauthor
* @synopsis --user_login=<user-login> --coauthor=<coauthor>
*/
public function assign_user_to_coauthor( $args, $assoc_args ) {
global $coauthors_plus, $wpdb;
$defaults = array(
'user_login' => '',
'coauthor' => '',
);
$assoc_args = wp_parse_args( $assoc_args, $defaults );
$user = get_user_by( 'login', $assoc_args['user_login'] );
$coauthor = $coauthors_plus->get_coauthor_by( 'login', $assoc_args['coauthor'] );
if ( ! $user ) {
WP_CLI::error( __( 'Please specify a valid user_login', 'co-authors-plus' ) );
}
if ( ! $coauthor ) {
WP_CLI::error( __( 'Please specify a valid co-author login', 'co-authors-plus' ) );
}
$post_types = implode( "','", $coauthors_plus->supported_post_types );
$posts = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author=%d AND post_type IN ('$post_types')", $user->ID ) );
$affected = 0;
foreach ( $posts as $post_id ) {
$coauthors = cap_get_coauthor_terms_for_post( $post_id );
if ( ! empty( $coauthors ) ) {
WP_CLI::line( sprintf(
__( 'Skipping - Post #%d already has co-authors assigned: %s', 'co-authors-plus' ),
$post_id,
implode( ', ', wp_list_pluck( $coauthors, 'slug' ) )
) );
continue;
}
$coauthors_plus->add_coauthors( $post_id, array( $coauthor->user_login ) );
WP_CLI::line( sprintf( __( "Updating - Adding %s's byline to post #%d", 'co-authors-plus' ), $coauthor->user_login, $post_id ) );
$affected++;
if ( $affected && 0 === $affected % 100 ) {
sleep( 2 );
}
}
WP_CLI::success( sprintf( __( 'All done! %d posts were affected.', 'co-authors-plus' ), $affected ) );
}
/**
* Subcommand to reassign co-authors based on some given format
* This will look for terms with slug 'x' and rename to term with slug and name 'y'
* This subcommand can be helpful for cleaning up after an import if the usernames
* for authors have changed. During the import process, 'author' terms will be
* created with the old user_login value. We can use this to migrate to the new user_login
*
* @todo support reassigning by CSV
*
* @since 3.0
*
* @subcommand reassign-terms
* @synopsis [--author-mapping=<file>] [--old_term=<slug>] [--new_term=<slug>]
*/
public function reassign_terms( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
'author_mapping' => null,
'old_term' => null,
'new_term' => null,
);
$this->args = wp_parse_args( $assoc_args, $defaults );
$author_mapping = $this->args['author_mapping'];
$old_term = $this->args['old_term'];
$new_term = $this->args['new_term'];
// Get the reassignment data
if ( $author_mapping && file_exists( $author_mapping ) ) {
require_once( $author_mapping );
$authors_to_migrate = $cli_user_map;
} else if ( $author_mapping ) {
WP_CLI::error( "author_mapping doesn't exist: " . $author_mapping );
exit;
}
// Alternate reassigment approach
if ( $old_term && $new_term ) {
$authors_to_migrate = array(
$old_term => $new_term,
);
}
// For each author to migrate, check whether the term exists,
// whether the target term exists, and only do the migration if both are met
$results = (object) array(
'old_term_missing' => 0,
'new_term_exists' => 0,
'success' => 0,
);
foreach ( $authors_to_migrate as $old_user => $new_user ) {
if ( is_numeric( $new_user ) ) {
$new_user = get_user_by( 'id', $new_user )->user_login;
}
// The old user should exist as a term
$old_term = $coauthors_plus->get_author_term( $coauthors_plus->get_coauthor_by( 'login', $old_user ) );
if ( ! $old_term ) {
WP_CLI::line( "Error: Term '{$old_user}' doesn't exist, skipping" );
$results->old_term_missing++;
continue;
}
// If the new user exists as a term already, we want to reassign all posts to that
// new term and delete the original
// Otherwise, simply rename the old term
$new_term = $coauthors_plus->get_author_term( $coauthors_plus->get_coauthor_by( 'login', $new_user ) );
if ( is_object( $new_term ) ) {
WP_CLI::line( "Success: There's already a '{$new_user}' term for '{$old_user}'. Reassigning {$old_term->count} posts and then deleting the term" );
$args = array(
'default' => $new_term->term_id,
'force_default' => true,
);
wp_delete_term( $old_term->term_id, $coauthors_plus->coauthor_taxonomy, $args );
$results->new_term_exists++;
} else {
$args = array(
'slug' => $new_user,
'name' => $new_user,
);
wp_update_term( $old_term->term_id, $coauthors_plus->coauthor_taxonomy, $args );
WP_CLI::line( "Success: Converted '{$old_user}' term to '{$new_user}'" );
$results->success++;
}
clean_term_cache( $old_term->term_id, $coauthors_plus->coauthor_taxonomy );
}
WP_CLI::line( 'Reassignment complete. Here are your results:' );
WP_CLI::line( "- $results->success authors were successfully reassigned terms" );
WP_CLI::line( "- $results->new_term_exists authors had their old term merged to their new term" );
WP_CLI::line( "- $results->old_term_missing authors were missing old terms" );
}
/**
* Change a term from representing one user_login value to another
* If the term represents a guest author, the post_name will be changed
* in addition to the term slug/name
*
* @since 3.0.1
*
* @subcommand rename-coauthor
* @synopsis --from=<user-login> --to=<user-login>
*/
public function rename_coauthor( $args, $assoc_args ) {
global $coauthors_plus, $wpdb;
$defaults = array(
'from' => null,
'to' => null,
);
$assoc_args = array_merge( $defaults, $assoc_args );
$to_userlogin = $assoc_args['to'];
$to_userlogin_prefixed = 'cap-' . $to_userlogin;
$orig_coauthor = $coauthors_plus->get_coauthor_by( 'user_login', $assoc_args['from'] );
if ( ! $orig_coauthor ) {
WP_CLI::error( "No co-author found for {$assoc_args['from']}" );
}
if ( ! $to_userlogin ) {
WP_CLI::error( '--to param must not be empty' );
}
if ( $coauthors_plus->get_coauthor_by( 'user_login', $to_userlogin ) ) {
WP_CLI::error( 'New user_login value conflicts with existing co-author' );
}
$orig_term = $coauthors_plus->get_author_term( $orig_coauthor );
WP_CLI::line( "Renaming {$orig_term->name} to {$to_userlogin}" );
$rename_args = array(
'name' => $to_userlogin,
'slug' => $to_userlogin_prefixed,
);
wp_update_term( $orig_term->term_id, $coauthors_plus->coauthor_taxonomy, $rename_args );
if ( 'guest-author' == $orig_coauthor->type ) {
$wpdb->update( $wpdb->posts, array( 'post_name' => $to_userlogin_prefixed ), array( 'ID' => $orig_coauthor->ID ) );
clean_post_cache( $orig_coauthor->ID );
update_post_meta( $orig_coauthor->ID, 'cap-user_login', $to_userlogin );
$coauthors_plus->guest_authors->delete_guest_author_cache( $orig_coauthor->ID );
WP_CLI::line( 'Updated guest author profile value too' );
}
WP_CLI::success( 'All done!' );
}
/**
* Swap one co-author with another on all posts for which they are a co-author. Unlike rename-coauthor,
* this leaves the original co-author term intact and works when the 'to' user already has a co-author term.
*
* @subcommand swap-coauthors
* @synopsis --from=<user-login> --to=<user-login> [--post_type=<ptype>] [--dry=<dry>]
*/
public function swap_coauthors( $args, $assoc_args ) {
global $coauthors_plus, $wpdb;
$defaults = array(
'from' => null,
'to' => null,
'post_type' => 'post',
'dry' => false,
);
$assoc_args = array_merge( $defaults, $assoc_args );
$dry = $assoc_args['dry'];
$from_userlogin = $assoc_args['from'];
$to_userlogin = $assoc_args['to'];
$from_userlogin_prefixed = 'cap-' . $from_userlogin;
$to_userlogin_prefixed = 'cap-' . $to_userlogin;
$orig_coauthor = $coauthors_plus->get_coauthor_by( 'user_login', $from_userlogin );
if ( ! $orig_coauthor ) {
WP_CLI::error( "No co-author found for $from_userlogin" );
}
if ( ! $to_userlogin ) {
WP_CLI::error( '--to param must not be empty' );
}
$to_coauthor = $coauthors_plus->get_coauthor_by( 'user_login', $to_userlogin );
if ( ! $to_coauthor ) {
WP_CLI::error( "No co-author found for $to_userlogin" );
}
WP_CLI::line( "Swapping authorship from {$from_userlogin} to {$to_userlogin}" );
$query_args = array(
'post_type' => $assoc_args['post_type'],
'order' => 'ASC',
'orderby' => 'ID',
'posts_per_page' => 100,
'paged' => 1,
'tax_query' => array(
array(
'taxonomy' => $coauthors_plus->coauthor_taxonomy,
'field' => 'slug',
'terms' => array( $from_userlogin_prefixed ),
),
),
);
$posts = new WP_Query( $query_args );
$posts_total = 0;
WP_CLI::line( "Found $posts->found_posts posts to update." );
while ( $posts->post_count ) {
foreach ( $posts->posts as $post ) {
$coauthors = get_coauthors( $post->ID );
if ( ! is_array( $coauthors ) || ! count( $coauthors ) ) {
continue;
}
$coauthors = wp_list_pluck( $coauthors, 'user_login' );
$posts_total++;
if ( ! $dry ) {
// Remove the $from_userlogin from $coauthors
foreach ( $coauthors as $index => $user_login ) {
if ( $from_userlogin === $user_login ) {
unset( $coauthors[ $index ] );
break;
}
}
// Add the 'to' author on
$coauthors[] = $to_userlogin;
// By not passing $append = false as the 3rd param, we replace all existing coauthors
$coauthors_plus->add_coauthors( $post->ID, $coauthors, false );
WP_CLI::line( $posts_total . ': Post #' . $post->ID . ' has been assigned "' . $to_userlogin . '" as a co-author' );
clean_post_cache( $post->ID );
} else {
WP_CLI::line( $posts_total . ': Post #' . $post->ID . ' will be assigned "' . $to_userlogin . '" as a co-author' );
}
}
// In dry mode, we must manually advance the page
if ( $dry ) {
$query_args['paged']++;
}
$this->stop_the_insanity();
$posts = new WP_Query( $query_args );
}
WP_CLI::success( 'All done!' );
}
/**
* List all of the posts without assigned co-authors terms
*
* @since 3.0
*
* @subcommand list-posts-without-terms
* @synopsis [--post_type=<ptype>]
*/
public function list_posts_without_terms( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
'post_type' => 'post',
'order' => 'ASC',
'orderby' => 'ID',
'year' => '',
'posts_per_page' => 300,
'paged' => 1,
'no_found_rows' => true,
'update_meta_cache' => false,
);
$this->args = wp_parse_args( $assoc_args, $defaults );
$posts = new WP_Query( $this->args );
while ( $posts->post_count ) {
foreach ( $posts->posts as $single_post ) {
$terms = cap_get_coauthor_terms_for_post( $single_post->ID );
if ( empty( $terms ) ) {
$saved = array(
$single_post->ID,
addslashes( $single_post->post_title ),
get_permalink( $single_post->ID ),
$single_post->post_date,
);
WP_CLI::line( '"' . implode( '","', $saved ) . '"' );
}
}
$this->stop_the_insanity();
$this->args['paged']++;
$posts = new WP_Query( $this->args );
}
}
/**
* Migrate author terms without prefixes to ones with prefixes
* Pre-3.0, all author terms didn't have a 'cap-' prefix, which means
* they can easily collide with terms in other taxonomies
*
* @since 3.0
*
* @subcommand migrate-author-terms
*/
public function migrate_author_terms( $args, $assoc_args ) {
global $coauthors_plus;
$author_terms = get_terms( $coauthors_plus->coauthor_taxonomy, array( 'hide_empty' => false ) );
WP_CLI::line( 'Now migrating up to ' . count( $author_terms ) . ' terms' );
foreach ( $author_terms as $author_term ) {
// Term is already prefixed. We're good.
if ( preg_match( '#^cap\-#', $author_term->slug, $matches ) ) {
WP_CLI::line( "Term {$author_term->slug} ({$author_term->term_id}) is already prefixed, skipping" );
continue;
}
// A prefixed term was accidentally created, and the old term needs to be merged into the new (WordPress.com VIP)
if ( $prefixed_term = get_term_by( 'slug', 'cap-' . $author_term->slug, $coauthors_plus->coauthor_taxonomy ) ) {
WP_CLI::line( "Term {$author_term->slug} ({$author_term->term_id}) has a new term too: $prefixed_term->slug ($prefixed_term->term_id). Merging" );
$args = array(
'default' => $author_term->term_id,
'force_default' => true,
);
wp_delete_term( $prefixed_term->term_id, $coauthors_plus->coauthor_taxonomy, $args );
}
// Term isn't prefixed, doesn't have a sibling, and should be updated
WP_CLI::line( "Term {$author_term->slug} ({$author_term->term_id}) isn't prefixed, adding one" );
$args = array(
'slug' => 'cap-' . $author_term->slug,
);
wp_update_term( $author_term->term_id, $coauthors_plus->coauthor_taxonomy, $args );
}
WP_CLI::success( 'All done! Grab a cold one (Affogatto)' );
}
/**
* Update the post count and description for each author and guest author
*
* @since 3.0
*
* @subcommand update-author-terms
*/
public function update_author_terms() {
global $coauthors_plus;
$author_terms = get_terms( $coauthors_plus->coauthor_taxonomy, array( 'hide_empty' => false ) );
WP_CLI::line( 'Now updating ' . count( $author_terms ) . ' terms' );
foreach ( $author_terms as $author_term ) {
$old_count = $author_term->count;
$coauthor = $coauthors_plus->get_coauthor_by( 'user_nicename', $author_term->slug );
$coauthors_plus->update_author_term( $coauthor );
$coauthors_plus->update_author_term_post_count( $author_term );
wp_cache_delete( $author_term->term_id, $coauthors_plus->coauthor_taxonomy );
$new_count = get_term_by( 'id', $author_term->term_id, $coauthors_plus->coauthor_taxonomy )->count;
WP_CLI::line( "Term {$author_term->slug} ({$author_term->term_id}) changed from {$old_count} to {$new_count} and the description was refreshed" );
}
// Create author terms for any users that don't have them
$users = get_users();
foreach ( $users as $user ) {
$term = $coauthors_plus->get_author_term( $user );
if ( empty( $term ) || empty( $term->description ) ) {
$coauthors_plus->update_author_term( $user );
WP_CLI::line( "Created author term for {$user->user_login}" );
}
}
// And create author terms for any Guest Authors that don't have them
if ( $coauthors_plus->is_guest_authors_enabled() && $coauthors_plus->guest_authors instanceof CoAuthors_Guest_Authors ) {
$args = array(
'order' => 'ASC',
'orderby' => 'ID',
'post_type' => $coauthors_plus->guest_authors->post_type,
'posts_per_page' => 100,
'paged' => 1,
'update_meta_cache' => false,
'fields' => 'ids',
);
$posts = new WP_Query( $args );
$count = 0;
WP_CLI::line( "Now inspecting or updating {$posts->found_posts} Guest Authors." );
while ( $posts->post_count ) {
foreach ( $posts->posts as $guest_author_id ) {
$count++;
$guest_author = $coauthors_plus->guest_authors->get_guest_author_by( 'ID', $guest_author_id );
if ( ! $guest_author ) {
WP_CLI::line( 'Failed to load guest author ' . $guest_author_id );
continue;
}
$term = $coauthors_plus->get_author_term( $guest_author );
if ( empty( $term ) || empty( $term->description ) ) {
$coauthors_plus->update_author_term( $guest_author );
WP_CLI::line( "Created author term for Guest Author {$guest_author->user_nicename}" );
}
}
$this->stop_the_insanity();
$args['paged']++;
$posts = new WP_Query( $args );
}
}
WP_CLI::success( 'All done' );
}
/**
* Remove author terms from revisions, which we've been adding since the dawn of time
*
* @since 3.0.1
*
* @subcommand remove-terms-from-revisions
*/
public function remove_terms_from_revisions() {
global $wpdb;
$ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type='revision' AND post_status='inherit'" );
WP_CLI::line( 'Found ' . count( $ids ) . ' revisions to look through' );
$affected = 0;
foreach ( $ids as $post_id ) {
$terms = cap_get_coauthor_terms_for_post( $post_id );
if ( empty( $terms ) ) {
continue;
}
WP_CLI::line( "#{$post_id}: Removing " . implode( ',', wp_list_pluck( $terms, 'slug' ) ) );
wp_set_post_terms( $post_id, array(), 'author' );
$affected++;
}
WP_CLI::line( "All done! {$affected} revisions had author terms removed" );
}
/**
* Subcommand to create guest authors from an author list in a WXR file
*
* @subcommand create-guest-authors-from-wxr
* @synopsis --file=<file>
*/
public function create_guest_authors_from_wxr( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
'file' => '',
);
$this->args = wp_parse_args( $assoc_args, $defaults );
if ( empty( $this->args['file'] ) || ! is_readable( $this->args['file'] ) ) {
WP_CLI::error( 'Please specify a valid WXR file with the --file arg.' );
}
if ( ! class_exists( 'WXR_Parser' ) ) {
require_once( WP_CONTENT_DIR . '/plugins/wordpress-importer/parsers.php' );
}
$parser = new WXR_Parser();
$import_data = $parser->parse( $this->args['file'] );
if ( is_wp_error( $import_data ) ) {
WP_CLI::error( 'Failed to read WXR file.' );
}
// Get author nodes
$authors = $import_data['authors'];
foreach ( $authors as $author ) {
WP_CLI::line( sprintf( 'Processing author %s (%s)', $author['author_login'], $author['author_email'] ) );
$guest_author_data = array(
'display_name' => $author['author_display_name'],
'user_login' => $author['author_login'],
'user_email' => $author['author_email'],
'first_name' => $author['author_first_name'],
'last_name' => $author['author_last_name'],
'ID' => $author['author_id'],
);
$guest_author_id = $this->create_guest_author( $guest_author_data );
}
WP_CLI::line( 'All done!' );
}
/**
* Subcommand to create guest authors from an author list in a CSV file
*
* @subcommand create-guest-authors-from-csv
* @synopsis --file=<file>
*/
public function create_guest_authors_from_csv( $args, $assoc_args ) {
global $coauthors_plus;
$defaults = array(
'file' => '',
);
$this->args = wp_parse_args( $assoc_args, $defaults );
if ( empty( $this->args['file'] ) || ! is_readable( $this->args['file'] ) ) {
WP_CLI::error( 'Please specify a valid CSV file with the --file arg.' );
}
$file = fopen( $this->args['file'], 'r' );
if ( ! $file ) {
WP_CLI::error( 'Failed to read file.' );
}
$authors = array();
$row = 0;
while ( false !== ( $data = fgetcsv( $file ) ) ) {
if ( 0 === $row ) {
$field_keys = array_map( 'trim', $data );
// TODO: bail if required fields not found
} else {
$row_data = array_map( 'trim', $data );
$author_data = array();
foreach ( (array) $row_data as $col_num => $val ) {
// Don't use the value of the field key isn't set
if ( empty( $field_keys[ $col_num ] ) ) {
continue;
}
$author_data[ $field_keys[ $col_num ] ] = $val;
}
$authors[] = $author_data;
}
$row++;
}
fclose( $file );
WP_CLI::line( 'Found ' . count( $authors ) . ' authors in CSV' );
foreach ( $authors as $author ) {
WP_CLI::line( sprintf( 'Processing author %s (%s)', $author['user_login'], $author['user_email'] ) );
$guest_author_data = array(
'display_name' => sanitize_text_field( $author['display_name'] ),
'user_login' => sanitize_user( $author['user_login'] ),
'user_email' => sanitize_email( $author['user_email'] ),
'website' => esc_url_raw( $author['website'] ),
'description' => wp_filter_post_kses( $author['description'] ),
'avatar' => absint( $author['avatar'] ),
);
$display_name_space_pos = strpos( $author['display_name'], ' ' );
if ( false !== $display_name_space_pos && empty( $author['first_name'] ) && empty( $author['last_name'] ) ) {
$first_name = substr( $author['display_name'], 0, $display_name_space_pos );
$last_name = substr( $author['display_name'], ( $display_name_space_pos + 1 ) );
$guest_author_data['first_name'] = sanitize_text_field( $first_name );
$guest_author_data['last_name'] = sanitize_text_field( $last_name );
} elseif ( ! empty( $author['first_name'] ) && ! empty( $author['last_name'] ) ) {
$guest_author_data['first_name'] = sanitize_text_field( $author['first_name'] );
$guest_author_data['last_name'] = sanitize_text_field( $author['last_name'] );
}
$guest_author_id = $this->create_guest_author( $guest_author_data );
}
WP_CLI::line( 'All done!' );
}
private function create_guest_author( $author ) {
global $coauthors_plus;
$guest_author = $coauthors_plus->guest_authors->get_guest_author_by( 'user_email', $author['user_email'], true );
if ( ! $guest_author ) {
$guest_author = $coauthors_plus->guest_authors->get_guest_author_by( 'user_login', $author['user_login'], true );
}
if ( ! $guest_author ) {
WP_CLI::line( '-- Not found; creating profile.' );
$guest_author_id = $coauthors_plus->guest_authors->create( array(
'display_name' => $author['display_name'],
'user_login' => $author['user_login'],
'user_email' => $author['user_email'],
'first_name' => $author['first_name'],
'last_name' => $author['last_name'],
'website' => $author['website'],
'description' => $author['description'],
'avatar' => $author['avatar'],
) );
if ( $guest_author_id ) {
WP_CLI::line( sprintf( '-- Created as guest author #%s', $guest_author_id ) );
if ( isset( $author['author_id'] ) ) {
update_post_meta( $guest_author_id, '_original_author_id', $author['ID'] );
}
update_post_meta( $guest_author_id, '_original_author_login', $author['user_login'] );
} else {
WP_CLI::warning( '-- Failed to create guest author.' );
}
} else {
WP_CLI::line( sprintf( '-- Author already exists (ID #%s); skipping.', $guest_author->ID ) );
}
}
/**
* Clear all of the caches for memory management
*/
private function stop_the_insanity() {
global $wpdb, $wp_object_cache;
$wpdb->queries = array(); // or define( 'WP_IMPORTING', true );
if ( ! is_object( $wp_object_cache ) ) {
return;
}
$wp_object_cache->group_ops = array();
$wp_object_cache->stats = array();
$wp_object_cache->memcache_debug = array();
$wp_object_cache->cache = array();
if ( is_callable( $wp_object_cache, '__remoteset' ) ) {
$wp_object_cache->__remoteset(); // important
}
}
}
@@ -0,0 +1,29 @@
<?php
add_action( 'pre_amp_render_post', 'cap_add_amp_actions' );
function cap_add_amp_actions() {
add_filter( 'amp_post_template_metadata', 'cap_update_amp_json_metadata', 10, 2 );
add_filter( 'amp_post_template_file', 'cap_set_amp_author_meta_template', 10, 3 );
}
function cap_update_amp_json_metadata( $metadata, $post ) {
$authors = get_coauthors( $post->ID );
$authors_json = array();
foreach ( $authors as $author ) {
$authors_json[] = array(
'@type' => 'Person',
'name' => $author->display_name,
);
}
$metadata['author'] = $authors_json;
return $metadata;
}
function cap_set_amp_author_meta_template( $file, $type, $post ) {
if ( 'meta-author' === $type ) {
$file = dirname( __FILE__ ) . '/amp/meta-author.php';
}
return $file;
}
@@ -0,0 +1,4 @@
<?php $coauthors = get_coauthors( $this->get( 'post_id' ) ); ?>
<li class="amp-wp-byline">
<?php coauthors(); ?>
</li>
@@ -0,0 +1,355 @@
=== Co-Authors Plus ===
Contributors: batmoo, danielbachhuber, automattic
Tags: authors, users, multiple authors, coauthors, multi-author, publishing
Tested up to: 5.3.1
Requires at least: 4.1
Stable tag: 3.4.3
Assign multiple bylines to posts, pages, and custom post types via a search-as-you-type input box
== Description ==
Assign multiple bylines to posts, pages, and custom post types via a search-as-you-type input box. Co-authored posts appear on a co-author's archive page and in their feed. Co-authors may edit the posts they are associated with, and co-authors who are contributors may only edit posts if they have not been published (as is core behavior).
Add writers as bylines without creating WordPress user accounts. Simply [create a guest author profile](http://vip.wordpress.com/documentation/add-guest-bylines-to-your-content-with-co-authors-plus/) for the writer and assign the byline as you normally would.
On the frontend, use the [Co-Authors Plus template tags](http://vip.wordpress.com/documentation/incorporate-co-authors-plus-template-tags-into-your-theme/) to list co-authors anywhere you'd normally list the author.
This plugin is an almost complete rewrite of the [Co-Authors](https://wordpress.org/plugins/co-authors/) plugin originally developed by Weston Ruter (2007). The original plugin was inspired by the '[Multiple Authors](https://txfx.net/2005/08/16/new-plugin-multiple-authors/)' plugin by Mark Jaquith (2005).
== Frequently Asked Questions ==
= How do I add Co-Authors Plus support to my theme? =
If you've just installed Co-Authors Plus, you might notice that the bylines are being added in the backend but aren't appearing on the frontend. You'll need to [add the template tags to your theme](http://vip.wordpress.com/documentation/incorporate-co-authors-plus-template-tags-into-your-theme/) before the bylines will appear.
= What happens to posts and pages when I delete a user assigned to a post or page as a coauthor? =
When a user is deleted from WordPress, they will be removed from all posts for which they are co-authors. If you chose to reassign their posts to another user, that user will be set as the coauthor instead.
= Can I use Co-Authors Plus with WordPress multisite? =
Yep! Co-Authors Plus can be activated on a site-by-site basis, or network-activated. If you create guest authors, however, those guest authors will exist on a site-by-site basis.
= Who needs permission to do what? =
To assign co-authors to posts, a WordPress user will need the 'edit_others_posts' capability. This is typically granted to the Editor role, but can be altered with the 'coauthors_plus_edit_authors' filter.
To create new guest author profiles, a WordPress will need the 'list_users' capability. This is typically granted to the Administrator role, but can be altered with the 'coauthors_guest_author_manage_cap' filter.
= Can I easily create a list of all co-authors? =
Yep! There's a template tag called `coauthors_wp_list_authors()` that accepts many of the same arguments as `wp_list_authors()`. Look in template-tags.php for more details.
= Can I disable Guest Authors?
Yep! Guest authors can be disabled entirely through an apt filter. Having the following line load on `init` will do the trick:
`add_filter( 'coauthors_guest_authors_enabled', '__return_false' )`
== Upgrade Notice ==
= 3.1 =
Manage co-authors from quick edit, Jetpack Open Graph support, bug fixes.
= 3.0.7 =
Support for symlink installations, updated French translation, bug fixes.
= 3.0.4 =
Bug fixes and the ability to automatically add co-authors to your feeds.
= 3.0.1 =
Bug fixes and minor enhancements
== Changelog ==
= 3.4.3 =
* Added author support to CPT instructions in readme FAQ
* Added object check for user in `coauthors_set_post_author_field()`
* Fix inefficient user query in avatar url hook
* Fix operand typo in `get_guest_author_thumbnail()` for adding custom classes
* Remove hardcoded default avatar and use default option
= 3.4.2 =
* Fix incorrect user avatar being displayed from featured post image
* Add check for `filter_get_avatar_url` to ensure valid second parameter
* `add_coauthors()` accepts ID parameter now and ensures valid term slug used
* `filter_count_user_posts` checks that user ID returns valid user object
* Added post count instructions in readme FAQ for CPTs
= 3.4.1 =
* Fix an issue that may arise in bulk edit
= 3.4 =
* New filter get_coauthors for modifying coauthor data returned in get_coauthors()
* New filter coauthors_guest_authors_exported_extra_data to allow guest author to export data as regular author
* New filter get_avatar_url() to show avatar in JS selection
* New parameter in coauthors_wp_list_authors() to only query authors with posts
* Add internationalization support to title and name in author archives
* Add safelist to skip irrelevant capabilities during permission checks
* Add helper function get_guest_author_post_count()
* Add parameter for outputting HTML classes in coauthors_get_avatar() template tag
* Add --append_coauthors flag to synopsis of CLI assign-coauthors
* Adjust CLI command create-guest-authors-from-csv to import website, avatar and description
* Post type of "any" can be used in filters
* Remove unnecessary is_array() check
* Remove unnecessary action_pre_user_query()
* Use correct args in search_authors()
* Have filter_author_archive_title() run on author archives only
* Improve tests coverage
* Change posts_selection to action from filter
* Fix number of args expected for get_the_archive_title callback
* Fix spelling, update FAQ for disabling guest authors and credits in readme
* Output coauthors_links_single() template tag correctly when guest author has no website
* Number by "Mine" link shows correct listing of posts
* Linked guest authors show accurate post counts
* Can no longer add co-author more than once
* No more overwriting posts with current user in `add_coauthors()`
* Accurate post count for user when using different login
* No more double post count for users with linked accounts
* Fix SQL error
* Fix "Mine" link href for Pages
* Can delete users when guest authors functionality disabled
* Fix incompatibility issue with Yoast of missing posts in author pages
* Resolve undefined index warnings on author archives
* Resolve warnings when current user has no term assigned
= 3.3.1 ("Gutentag") =
* 5.0 Compat: Hide core author inputs when using the Block Editor to limit confusion (h/t jonathanstegall).
= 3.3.0 ("Rebecca") =
* Fix private post viewing on front-end
* Reduce amount of sleep
* Author search UX issues
* Remove associated guest user when mapped user id deleted.
* Removed double left join on posts_join_filter
* Fixed WP CLI create-terms-for-posts if no co-authors found
* Pages archive now displays coauthors and quick edit works
* Terminology updated throughout
* Replace hardcoded 'author' with $this->$coauthor_taxonomy
* Move parenthesis to fix esc_html and sprintf
* Added progress to create-guest-authors so users have an idea of how long it will take
* Deleting guest authors is less confusing
* Guest author's featured image is avatar now
* Removed extra image sizing
* Remove duplicated byline
* coauthors_wp_list_authors() has option to list only guest authors now
* remove duplicates from linked accounts on coauthors_wp_list_authors()
* Accurate Guest Author post count on linked accounts
* New README.md
* Filter author archive
* Fix coauthors_links_single()
* Added guest author hooks for create/delete
* Fixes logic for DOING_AUTOSAVE check
* user_login spaces problem when using add_coauthors
* Adding details of filter for slow performance
* Remove redundant test for 404 on Author Archive
* Guest Author Counts are more accurate
* Set $coauthors_loading
* Fix the issue where guest authors with non-ASCII characters can't be used as co-authors
* Fix the issue where incompatibility when `coauthors_auto_apply_template_tags` set to true
* Unit tests/Fix warnings for template tags
* Review and improve test coverage
* Update class-wp-cli.php
* Update .travis.yml file for PHPUnit tests
* Changes to resolve issue #332 about missing coauthor meta
= 3.2.2 =
* Fix broken author ordering in 4.7+ (props mslinnea)
* Fix no moderation e-mail bug (props RobjS)
* Cached functions in CLI commands (props jasonbahl)
* Fix missing echos (props trepmal)
* Add `coauthors_guest_author_query_args` filter (props trepmal)
= 3.2.1 (May 16, 2016) =
* Hotfix for broken Guest Author bio metabox (props JS Morisset)
= 3.2 (May 12, 2016) =
Various minor bug and security fixes
= 3.1.2 (Aug. 31, 2015) =
* Minor bug fixes and coding standards changes.
* The author's display name is now filtered through the_author in coauthors_posts_links_single()
* New Russian and Ukrainian translations, courtesy of [Jurko Chervony](http://skinik.name/).
= 3.1.1 (Mar. 20, 2014) =
* Bug fix: Co-authors selection UI should appear when creating a new post too.
= 3.1 (Mar. 17, 2014) =
* Manage co-authors from Quick Edit. Props [mpatek](https://github.com/mpatek).
* Updated Spanish translation, courtesy of [sergiomajluf](https://github.com/sergiomajluf).
* Now matches core behavior when displaying author archive on multisite: user of the blog, or previously published author on the blog.
* Breaking change: "Create Profile" link is no longer shown by default on the Manage Users screen. Instead, it can be enabled with the `coauthors_show_create_profile_user_link` filter.
* Guest authors work properly with Jetpack Open Graph tags. Props [hibernation](https://github.com/hibernation).
* Guest author profile editor now supports a few different fields. Props [alpha1](https://github.com/alpha1).
* New `coauthors_count_published_post_types` filter for specifying the post type(s) used when calculating the user's number of published posts.
* Bug fix: Ensure `post_author` is set to one of the co-authors assigned to a post.
* Bug fix: Filter author feed link for guest authors on the author page. Props [hibernation](https://github.com/hibernation).
* Packages a composer.json file for those using Composer.
* Beginnings of unit test coverage for core features. Increased minimum required WordPress version to 3.7 because WordPress.org unit testing framework doesn't work reliabilty below that.
= 3.0.7 (Jan. 27, 2014) =
* Better support for installing Co-Authors Plus as a symlinked directory. [Follow these instructions](http://kaspars.net/blog/wordpress/plugins-via-symlinks) to filter `plugins_url`.
* Links to authors' posts pages to comply to hCard microformat, which Google depends on.
* New `coauthors_emails()` template tag to list email addresses of the co-authors. Props [benlk](https://github.com/benlk).
* Bug fix: Remove extraneous space between last two co-authors output. Props [johnciacia](https://github.com/johnciacia).
* Updated French translation, courtesy of Jojaba (via email).
= 3.0.6 (Dec. 9, 2013) =
* New Swedish translation, courtesy of [alundstroem](https://github.com/alundstroem)
* Updated German translation, courtesy of [krafit](https://github.com/krafit).
* New Dutch translation, courtesy of [kardotim](https://github.com/kardotim)
* New filter for specifying the default author assigned to a post. Props [tannerm](https://github.com/tannerm)
* Bug fix: When filtering a user's published post count, use the value of their guest author profile if one is mapped.
* Added support for checkboxes in Guest Author profiles
* Fix Strict warnings from CPT's that don't define all capabilities
* New swap-coauthors CLI command for replacing one co-author with another
= 3.0.5 (Feb. 18, 2013) =
* New filter 'coauthors_search_authors_get_terms_args' allows you to increase the number of matches returned with AJAX co-author selection
* Bug fix: If there isn't an author term yet for a co-author, avoid an erronous join that caused duplicate posts to appear.
= 3.0.4 (Jan. 6, 2013) =
* Support for automatically adding co-authors to your feeds. Props [cfg](https://github.com/cfg).
* Bug fix: No Co-Authors Plus on attachments. For now.
* Bug fix: Better support for co-authors with non-standard user_nicenames. Props [STRML](https://github.com/STRML).
= 3.0.3 (Dec. 3, 2012) =
* Bug fix: The default order for the 'author' taxonomy should be 'term_order', in order for the author positions to stick. Props [lgedeon](https://github.com/lgedeon)
= 3.0.2 (Nov. 23, 2012) =
* Bug fix: Fall back to non-pretty permalinks when the author permastruct is empty, so that coauthors_posts_links() doesn't link to the homepage
= 3.0.1 (Nov. 21, 2012) =
* Add your own custom columns to the guest authors table using filters. Props [cfg](https://github.com/cfg)
* A new wp-cli subcommand for renaming co-authors and another for removing author terms mistakenly assigned to revisions
* Bug fix: Using a featured image for a guest author avatar didn't work. Now it does.
* Bug fix: Don't assign author terms to revisions to avoid unnecessary database bloat
* Bug fix: Make the coauthors_wp_list_authors() template tag work again
* Bug fix: Improve capability filtering by properly handling super admin access and situations where user_id = 0
* Minor UI enhancements for guest authors
= 3.0 (Nov. 12, 2012) =
* Create guest author profiles for bylines you'd like to assign without creating WordPress user accounts. Guest authors can have all of the same fields as normal users including display name, biography, and avatars.
* Support for non-Latin characters in usernames and guest author names
* wp-cli subcommands for creating, assigning, and reassigning co-authors
* For themes using core template tags like the_author() or the_author_posts_link(), you enable Co-Authors Plus support with a simple filter
* New author terms are now prefixed with 'cap-' to avoid collisions with global scope
* Bug fix: Apply query filters to only post_types registered with the taxonomy. Props [Tom Ransom](https://github.com/1bigidea)
* Filter coauthors_posts_link_single() with 'coauthors_posts_link'. Also adds rel="author". Props [Amit Sannad](https://github.com/asannad) and [Gabriel Koen](https://github.com/mintindeed)
* Filter for the context and priorities of the Co-Authors meta boxes. Props [Tomáš Kapler](https://github.com/tkapler)
* Renamed the post meta box for selecting authors so it applies to many post types. Props [John Blackbourn](https://github.com/johnbillion)
= 2.6.4 (May 7, 2012) =
* Bug fix: Properly filter the user query so users can AJAX search against the display name field again
* If https is used for the admin, also use the secure Gravatar URL. Props [rmcfrazier](https://github.com/rmcfrazier)
= 2.6.3 (Apr. 30, 2012) =
* AJAX user search is back to searching against user login, display name, email address and user ID. The method introduced in v2.6.2 didn't scale well
* French translation courtesy of Sylvain Bérubé
* Spanish translation courtesy of Alejandro Arcos
* Bug fix: Resolved incorrect caps check against user editing an already published post. [See forum thread](http://wordpress.org/support/topic/multiple-authors-cant-edit-pages?replies=17#post-2741243)
= 2.6.2 (Mar. 6, 2012) =
* AJAX user search matches against first name, last name, and nickname fields too, in addition to display name, user login, and email address
* Comment moderation and approved notifications are properly sent to all co-authors with the correct caps
* Filter required capability for user to be returned in an AJAX search with 'coauthors_edit_author_cap'
* Filter out administrators and other non-authors from AJAX search with 'coauthors_edit_ignored_authors'
* Automatically adds co-authors to Edit Flow's story budget and calendar views
* Bug fix: Don't set post_author value to current user when quick editing a post. This doesn't appear in the UI anywhere, but adds the post to the current user's list of posts
* Bug fix: Properly cc other co-authors on new comment email notifications
* Bug fix: If a user has already been added as an author to a post, don't show them in the AJAX search again
* Bug fix: Allow output constants to be defined in a theme's functions.php file and include filters you can use instead
= 2.6.1 (Dec. 30, 2011) =
* Fix mangled usernames because of sanitize_key http://wordpress.org/support/topic/plugin-co-authors-plus-26-not-working-with-wp-33
= 2.6 (Dec. 22, 2011) =
* Sortable authors: Drag and drop the order of the authors as you'd like them to appear ([props kingkool68](http://profiles.wordpress.org/users/kingkool68/))
* Search for authors by display name (instead of nicename which was essentially the same as user_login)
* Option to remove the first author when there are two or more so it's less confusing
* Bumped requirements to WordPress 3.1
* Bug fix: Update the published post count for each user more reliably
= 2.5.3 (Aug. 14, 2011) =
* Bug fix: Removed extra comma when only two authors were listed. If you used the COAUTHORS_DEFAULT_BETWEEN_LAST constant, double-check what you have
= 2.5.2 (Apr. 23, 2011) =
* Bug: Couldn't query terms and authors at the same time (props nbaxley)
* Bug: Authors with empty fields (e.g. first name) were displaying blank in some cases
* Bug: authors with spaces in usernames not getting saved (props MLmsw, Ruben S. and others!)
* Bug: revisions getting wrong user attached (props cliquenoir!)
= 2.5.1 (Mar. 26, 2011) =
* Fix with author post count (throwing errors)
= 2.5 (Mar. 26, 2011) =
* Custom Post Type Support
* Compatibility with WP 3.0 and 3.1
* Gravatars
* Lots and lots and lots of bug fixes
* Thanks to everyone who submitted bugs, fixes, and suggestions! And for your patience!
= 2.1.1 (Oct. 16, 2009) =
* Fix for coauthors not being added if their username is different from display name
* Fixes to readme.txt (fixes for textual and punctuation errors, language clarification, minor formatting changes) courtesy of [Waldo Jaquith](http://www.vqronline.org)
= 2.1 (Oct. 11, 2009) =
* Fixed issues related to localization. Thanks to Jan Zombik <zombik@students.uni-mainz.de> for the fixes.
* Added set_time_limit to update function to get around timeout issues when upgrading plugin
= 2.0 (Oct. 11, 2009) =
* Plugin mostly rewritten to make use of taxonomy instead of post_meta
* Can now see all authors of a post under the author column from Edit Posts page
* All authors of a post are now notified on a new comment
* Various javascript enhancements
* New option to allow subscribers to be added as authors
* All Authors can edit they posts of which they are coauthors
* FIX: Issues with wp_coauthors_list function
* FIX: Issues with coauthored posts not showing up on author archives
= 1.2.0 (Jun. 16, 2012) =
* FIX: Added compatibility for WordPress 2.8
* FIX: Added new template tags (get_the_coauthor_meta & the_coauthor_meta) to fix issues related to displaying author info on author archive pages. See [Other Notes](http://wordpress.org/extend/plugins/co-authors-plus/other_notes/) for details.
* FIX: Plugin should now work for plugins not using the 'wp_' DB prefix
* FIX: Coauthors should no longer be alphabetically reordered when the post is updated
* FIX: Plugin now used WordPress native AJAX calls to tighten security
* DOCS: Added details about the new template tags
= 1.1.5 (Apr. 26, 2009) =
* FIX: Not searching Updated SQL query for autosuggest to search through first name, last name, and nickname
* FIX: When editing an author, and clicking on a suggested author, the original author was not be removed
* DOCS: Added code comments to javascript; more still to be added
* DOCS: Updated readme information
= 1.1.4 (Apr. 25, 2009) =
* Disabled "New Author" output in suggest box, for now
* Hopefully fixed SVN issue (if you're having trouble with the plugin, please delete the plugin and reinstall)
= 1.1.3 (Apr. 23, 2009) =
* Add blur event to disable input box
* Limit only one edit at a time.
* Checked basic cross-browser compatibility (Firefox 3 OS X, Safari 3 OS X, IE7 Vista).
* Add suggest javascript plugin to Edit Page.
= 1.1.2 (Apr. 19, 2009) =
* Disabled form submit when enter pressed.
= 1.1.1 (Apr. 15, 2009) =
* Changed SQL query to return only contributor-level and above users.
= 1.1.0 (Apr. 14, 2009) =
* Initial beta release.
== Installation ==
1. IMPORTANT: Please disable the original Co-Authors plugin (if you are using it) before installing Co-Authors Plus
1. Extract the coauthors-plus.zip file and upload its contents to the `/wp-content/plugins/` directory. Alternately, you can install directly from the Plugin directory within your WordPress Install.
1. Activate the plugin through the "Plugins" menu in WordPress.
1. Place the appropriate [co-authors template tags](http://vip.wordpress.com/documentation/incorporate-co-authors-plus-template-tags-into-your-theme/) in your template.
1. Add co-authors to your posts and pages.
== Screenshots ==
1. Multiple authors can be added to a Post, Page, or Custom Post Type using an auto-complete interface.
2. The order of your co-authors can be changed by drag and drop.
3. Guest authors allow you to assign bylines without creating WordPress user accounts. You can also override existing WordPress account meta by mapping a guest author to a WordPress user.
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,720 @@
<?php
function get_coauthors( $post_id = 0 ) {
global $post, $post_ID, $coauthors_plus, $wpdb;
$coauthors = array();
$post_id = (int) $post_id;
if ( ! $post_id && $post_ID ) {
$post_id = $post_ID;
}
if ( ! $post_id && $post ) {
$post_id = $post->ID;
}
if ( $post_id ) {
$coauthor_terms = cap_get_coauthor_terms_for_post( $post_id );
if ( is_array( $coauthor_terms ) && ! empty( $coauthor_terms ) ) {
foreach ( $coauthor_terms as $coauthor ) {
$coauthor_slug = preg_replace( '#^cap\-#', '', $coauthor->slug );
$post_author = $coauthors_plus->get_coauthor_by( 'user_nicename', $coauthor_slug );
// In case the user has been deleted while plugin was deactivated
if ( ! empty( $post_author ) ) {
$coauthors[] = $post_author;
}
}
} else if ( ! $coauthors_plus->force_guest_authors ) {
if ( $post && $post_id == $post->ID ) {
$post_author = get_userdata( $post->post_author );
} else {
$post_author = get_userdata( $wpdb->get_var( $wpdb->prepare( "SELECT post_author FROM $wpdb->posts WHERE ID = %d", $post_id ) ) );
}
if ( ! empty( $post_author ) ) {
$coauthors[] = $post_author;
}
} // the empty else case is because if we force guest authors, we don't ever care what value wp_posts.post_author has.
}
// remove duplicate $coauthors objects from mapping user accounts to guest authors accounts
$coauthors = array_unique( $coauthors, SORT_REGULAR );
$coauthors = apply_filters( 'get_coauthors', $coauthors, $post_id );
return $coauthors;
}
/**
* Checks to see if the the specified user is author of the current global post or post (if specified)
* @param object|int $user
* @param int $post_id
*/
function is_coauthor_for_post( $user, $post_id = 0 ) {
global $post;
if ( ! $post_id && $post ) {
$post_id = $post->ID;
}
if ( ! $post_id ) {
return false;
}
if ( ! $user ) {
return false;
}
$coauthors = get_coauthors( $post_id );
if ( is_numeric( $user ) ) {
$user = get_userdata( $user );
$user = $user->user_login;
} else if ( isset( $user->user_login ) ) {
$user = $user->user_login;
} else {
return false;
}
foreach ( $coauthors as $coauthor ) {
if ( $user == $coauthor->user_login || $user == $coauthor->linked_account ) {
return true;
}
}
return false;
}
class CoAuthorsIterator {
var $position = -1;
var $original_authordata;
var $current_author;
var $authordata_array;
var $count;
function __construct( $postID = 0 ) {
global $post, $authordata, $wpdb;
$postID = (int) $postID;
if ( ! $postID && $post ) {
$postID = (int) $post->ID;
}
if ( ! $postID ) {
trigger_error( esc_html__( 'No post ID provided for CoAuthorsIterator constructor. Are you not in a loop or is $post not set?', 'co-authors-plus' ) ); // return null;
}
$this->original_authordata = $this->current_author = $authordata;
$this->authordata_array = get_coauthors( $postID );
$this->count = count( $this->authordata_array );
}
function iterate() {
global $authordata;
$this->position++;
//At the end of the loop
if ( $this->position > $this->count - 1 ) {
$authordata = $this->current_author = $this->original_authordata;
$this->position = -1;
return false;
}
//At the beginning of the loop
if ( 0 === $this->position && ! empty( $authordata ) ) {
$this->original_authordata = $authordata;
}
$authordata = $this->current_author = $this->authordata_array[ $this->position ];
return true;
}
function get_position() {
if ( $this->position === -1 ) {
return false;
}
return $this->position;
}
function is_last() {
return $this->position === $this->count - 1;
}
function is_first() {
return $this->position === 0;
}
function count() {
return $this->count;
}
function get_all() {
return $this->authordata_array;
}
}
//Helper function for the following new template tags
function coauthors__echo( $tag, $type = 'tag', $separators = array(), $tag_args = null, $echo = true ) {
// Define the standard output separator. Constant support is for backwards compat.
// @see https://github.com/danielbachhuber/Co-Authors-Plus/issues/12
$default_before = ( defined( 'COAUTHORS_DEFAULT_BEFORE' ) ) ? COAUTHORS_DEFAULT_BEFORE : '';
$default_between = ( defined( 'COAUTHORS_DEFAULT_BETWEEN' ) ) ? COAUTHORS_DEFAULT_BETWEEN : ', ';
$default_between_last = ( defined( 'COAUTHORS_DEFAULT_BETWEEN_LAST' ) ) ? COAUTHORS_DEFAULT_BETWEEN_LAST : __( ' and ', 'co-authors-plus' );
$default_after = ( defined( 'COAUTHORS_DEFAULT_AFTER' ) ) ? COAUTHORS_DEFAULT_AFTER : '';
if ( ! isset( $separators['before'] ) || null === $separators['before'] ) {
$separators['before'] = apply_filters( 'coauthors_default_before', $default_before );
}
if ( ! isset( $separators['between'] ) || null === $separators['between'] ) {
$separators['between'] = apply_filters( 'coauthors_default_between', $default_between );
}
if ( ! isset( $separators['betweenLast'] ) || null === $separators['betweenLast'] ) {
$separators['betweenLast'] = apply_filters( 'coauthors_default_between_last', $default_between_last );
}
if ( ! isset( $separators['after'] ) || null === $separators['after'] ) {
$separators['after'] = apply_filters( 'coauthors_default_after', $default_after );
}
$output = '';
$i = new CoAuthorsIterator();
$output .= $separators['before'];
$i->iterate();
do {
$author_text = '';
if ( 'tag' === $type ) {
$author_text = $tag( $tag_args );
} elseif ( 'field' === $type && isset( $i->current_author->$tag ) ) {
$author_text = $i->current_author->$tag;
} elseif ( 'callback' === $type && is_callable( $tag ) ) {
$author_text = call_user_func( $tag, $i->current_author );
}
// Fallback to user_login if we get something empty
if ( empty( $author_text ) ) {
$author_text = $i->current_author->user_login;
}
// Append separators
if ( $i->count() - $i->position == 1 ) { // last author or only author
$output .= $author_text;
} elseif ( $i->count() - $i->position == 2 ) { // second to last
$output .= $author_text . $separators['betweenLast'];
} else {
$output .= $author_text . $separators['between'];
}
} while ( $i->iterate() );
$output .= $separators['after'];
if ( $echo ) {
echo $output;
}
return $output;
}
/**
* Outputs the co-authors display names, without links to their posts.
* Co-Authors Plus equivalent of the_author() template tag.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo('display_name', 'field', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), null, $echo );
}
/**
* Outputs the co-authors display names, with links to their posts.
* Co-Authors Plus equivalent of the_author_posts_link() template tag.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_posts_links( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
global $coauthors_plus_template_filters;
$modify_filter = ! empty( $coauthors_plus_template_filters ) && $coauthors_plus_template_filters instanceof CoAuthors_Template_Filters;
if ( $modify_filter ) {
/**
* Removing "the_author" filter so that it won't get called in loop and append names for each author.
*
* Ref : https://github.com/Automattic/Co-Authors-Plus/issues/279
*/
remove_filter( 'the_author', array( $coauthors_plus_template_filters, 'filter_the_author' ) );
}
$coauthors_posts_links = coauthors__echo( 'coauthors_posts_links_single', 'callback', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), null, $echo );
if ( $modify_filter ) {
add_filter( 'the_author', array( $coauthors_plus_template_filters, 'filter_the_author' ) );
}
return $coauthors_posts_links;
}
/**
* Outputs a single co-author linked to their post archive.
*
* @param object $author
* @return string
*/
function coauthors_posts_links_single( $author ) {
// Return if the fields we are trying to use are not sent
if ( ! isset( $author->ID, $author->user_nicename, $author->display_name ) ) {
_doing_it_wrong(
'coauthors_posts_links_single',
'Invalid author object used',
'3.2'
);
return;
}
$args = array(
'before_html' => '',
'href' => get_author_posts_url( $author->ID, $author->user_nicename ),
'rel' => 'author',
'title' => sprintf( __( 'Posts by %s', 'co-authors-plus' ), apply_filters( 'the_author', $author->display_name ) ),
'class' => 'author url fn',
'text' => apply_filters( 'the_author', $author->display_name ),
'after_html' => '',
);
$args = apply_filters( 'coauthors_posts_link', $args, $author );
$single_link = sprintf(
'<a href="%1$s" title="%2$s" class="%3$s" rel="%4$s">%5$s</a>',
esc_url( $args['href'] ),
esc_attr( $args['title'] ),
esc_attr( $args['class'] ),
esc_attr( $args['rel'] ),
esc_html( $args['text'] )
);
return $args['before_html'] . $single_link . $args['after_html'];
}
/**
* Outputs the co-authors first names, without links to their posts.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_firstnames( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo('get_the_author_meta', 'tag', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), 'first_name', $echo );
}
/**
* Outputs the co-authors last names, without links to their posts.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_lastnames( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo( 'get_the_author_meta', 'tag', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), 'last_name', $echo );
}
/**
* Outputs the co-authors nicknames, without links to their posts.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_nicknames( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo( 'get_the_author_meta', 'tag', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), 'nickname', $echo );
}
/**
* Outputs the co-authors display names, with links to their websites if they've provided them.
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_links( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
global $coauthors_plus_template_filters;
$modify_filter = ! empty( $coauthors_plus_template_filters ) && $coauthors_plus_template_filters instanceof CoAuthors_Template_Filters;
if ( $modify_filter ) {
/**
* Removing "the_author" filter so that it won't get called in loop and append names for each author.
*
* Ref : https://github.com/Automattic/Co-Authors-Plus/issues/279
*/
remove_filter( 'the_author', array( $coauthors_plus_template_filters, 'filter_the_author' ) );
}
$coauthors_links = coauthors__echo( 'coauthors_links_single', 'callback', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), null, $echo );
if ( $modify_filter ) {
add_filter( 'the_author', array( $coauthors_plus_template_filters, 'filter_the_author' ) );
}
return $coauthors_links;
}
/**
* Outputs the co-authors email addresses
*
* @param string $between Delimiter that should appear between the email addresses
* @param string $betweenLast Delimiter that should appear between the last two email addresses
* @param string $before What should appear before the presentation of email addresses
* @param string $after What should appear after the presentation of email addresses
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_emails( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo( 'get_the_author_meta', 'tag', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), 'user_email', $echo );
}
/**
* Outputs a single co-author, linked to their website if they've provided one.
*
* @param object $author
* @return string
*/
function coauthors_links_single( $author ) {
if ( 'guest-author' === $author->type && get_the_author_meta( 'website' ) ) {
return sprintf( '<a href="%s" title="%s" rel="author external">%s</a>',
esc_url( get_the_author_meta( 'website' ) ),
esc_attr( sprintf( __( 'Visit %s&#8217;s website' ), esc_html( get_the_author() ) ) ),
esc_html( get_the_author() )
);
}
elseif ( get_the_author_meta( 'url' ) ) {
return sprintf( '<a href="%s" title="%s" rel="author external">%s</a>',
esc_url( get_the_author_meta( 'url' ) ),
esc_attr( sprintf( __( 'Visit %s&#8217;s website' ), esc_html( get_the_author() ) ) ),
esc_html( get_the_author() )
);
}
else {
return esc_html( get_the_author() );
}
}
/**
* Outputs the co-authors IDs
*
* @param string $between Delimiter that should appear between the co-authors
* @param string $betweenLast Delimiter that should appear between the last two co-authors
* @param string $before What should appear before the presentation of co-authors
* @param string $after What should appear after the presentation of co-authors
* @param bool $echo Whether the co-authors should be echoed or returned. Defaults to true.
*/
function coauthors_ids( $between = null, $betweenLast = null, $before = null, $after = null, $echo = true ) {
return coauthors__echo( 'ID', 'field', array(
'between' => $between,
'betweenLast' => $betweenLast,
'before' => $before,
'after' => $after,
), null, $echo );
}
/**
* Outputs the co-authors Meta Data
*
* @param string $field Required The user field to retrieve.[login, email, nicename, display_name, url, type]
* @param string $user_id Optional The user ID for meta
*
* @return array $meta Value of the user field
*/
function get_the_coauthor_meta( $field, $user_id = false ) {
global $coauthors_plus;
if ( ! $user_id ) {
$coauthors = get_coauthors();
}
else {
$coauthor_data = $coauthors_plus->get_coauthor_by( 'id', $user_id );
$coauthors = array();
if ( ! empty( $coauthor_data ) ) {
$coauthors[] = $coauthor_data;
}
}
$meta = array();
if ( in_array( $field, array( 'login', 'pass', 'nicename', 'email', 'url', 'registered', 'activation_key', 'status' ) ) ) {
$field = 'user_' . $field;
}
foreach ( $coauthors as $coauthor ) {
$user_id = $coauthor->ID;
if ( isset( $coauthor->type ) && 'user_url' === $field ) {
if ( 'guest-author' === $coauthor->type ) {
$field = 'website';
}
}
else if ( 'website' === $field ) {
$field = 'user_url';
}
if ( isset( $coauthor->$field ) ) {
$meta[ $user_id ] = $coauthor->$field;
}
else {
$meta[ $user_id ] = '';
}
}
return $meta;
}
function the_coauthor_meta( $field, $user_id = 0 ) {
// TODO: need before after options
$coauthor_meta = get_the_coauthor_meta( $field, $user_id );
foreach ( $coauthor_meta as $meta ) {
echo esc_html( $meta );
}
}
/**
* List all the *co-authors* of the blog, with several options available.
* optioncount (boolean) (false): Show the count in parenthesis next to the author's name.
* show_fullname (boolean) (false): Show their full names.
* hide_empty (boolean) (true): Don't show authors without any posts.
* feed (string) (''): If isn't empty, show links to author's feeds.
* feed_image (string) (''): If isn't empty, use this image to link to feeds.
* echo (boolean) (true): Set to false to return the output, instead of echoing.
* authors_with_posts_only (boolean) (false): If true, don't query for authors with no posts.
* @param array $args The argument array.
* @return null|string The output, if echo is set to false.
*/
function coauthors_wp_list_authors( $args = array() ) {
global $coauthors_plus;
$defaults = array(
'optioncount' => false,
'show_fullname' => false,
'hide_empty' => true,
'feed' => '',
'feed_image' => '',
'feed_type' => '',
'echo' => true,
'style' => 'list',
'html' => true,
'number' => 20, // A sane limit to start to avoid breaking all the things
'guest_authors_only' => false,
'authors_with_posts_only' => false,
);
$args = wp_parse_args( $args, $defaults );
$return = '';
$term_args = array(
'orderby' => 'name',
'number' => (int) $args['number'],
/*
* Historically, this was set to always be `0` ignoring `$args['hide_empty']` value
* To avoid any backwards incompatibility, inventing `authors_with_posts_only` that defaults to false
*/
'hide_empty' => (boolean) $args['authors_with_posts_only'],
);
$author_terms = get_terms( $coauthors_plus->coauthor_taxonomy, $term_args );
$authors = array();
foreach ( $author_terms as $author_term ) {
// Something's wrong in the state of Denmark
if ( false === ( $coauthor = $coauthors_plus->get_coauthor_by( 'user_login', $author_term->name ) ) ) {
continue;
}
$authors[ $author_term->name ] = $coauthor;
// only show guest authors if the $args is set to true
if ( ! $args['guest_authors_only'] || $authors[ $author_term->name ]->type === 'guest-author' ) {
$authors[ $author_term->name ]->post_count = $author_term->count;
}
else {
unset( $authors[ $author_term->name ] );
}
}
$authors = apply_filters( 'coauthors_wp_list_authors_array', $authors );
// remove duplicates from linked accounts
$linked_accounts = array_unique( array_column( $authors, 'linked_account' ) );
foreach ( $linked_accounts as $linked_account ) {
unset( $authors[$linked_account] );
}
foreach ( (array) $authors as $author ) {
$link = '';
if ( $args['show_fullname'] && ( $author->first_name && $author->last_name ) ) {
$name = "$author->first_name $author->last_name";
} else {
$name = $author->display_name;
}
if ( ! $args['html'] ) {
if ( 0 === $author->post_count ) {
if ( ! $args['hide_empty'] ) {
$return .= $name . ', ';
}
} else {
$return .= $name . ', ';
}
// No need to go further to process HTML.
continue;
}
if ( ! ( 0 === $author->post_count && $args['hide_empty'] ) && 'list' == $args['style'] ) {
$return .= '<li>';
}
if ( 0 === $author->post_count ) {
if ( ! $args['hide_empty'] ) {
$link = $name;
}
} else {
$link = '<a href="' . get_author_posts_url( $author->ID, $author->user_nicename ) . '" title="' . esc_attr( sprintf( __( 'Posts by %s', 'co-authors-plus' ), $name ) ) . '">' . esc_html( $name ) . '</a>';
if ( ( ! empty( $args['feed_image'] ) ) || ( ! empty( $args['feed'] ) ) ) {
$link .= ' ';
if ( empty( $args['feed_image'] ) ) {
$link .= '(';
}
$link .= '<a href="' . esc_url( get_author_feed_link( $author->ID, $args['feed_type'] ) ) . '"';
$alt = '';
$title = '';
if ( ! empty( $args['feed'] ) ) {
$title = ' title="' . esc_attr( $args['feed'] ) . '"';
$alt = ' alt="' . esc_attr( $args['feed'] ) . '"';
$name = $args['feed'];
$link .= $title;
}
$link .= '>';
if ( ! empty( $args['feed_image'] ) ) {
$link .= '<img src="' . esc_url( $args['feed_image'] ) . "\" style=\"border: none;\"$alt$title" . ' />';
} else {
$link .= $name;
}
$link .= '</a>';
if ( empty( $args['feed_image'] ) ) {
$link .= ')';
}
}
if ( $args['optioncount'] ) {
$link .= ' ('. $author->post_count . ')';
}
}
if ( ! ( 0 === $author->post_count && $args['hide_empty'] ) && 'list' == $args['style'] ) {
$return .= $link . '</li>';
} else if ( ! $args['hide_empty'] ) {
$return .= $link . ', ';
}
}
$return = trim( $return, ', ' );
if ( ! $args['echo'] ) {
return $return;
}
echo $return;
}
/**
* Retrieve a Co-Author's Avatar.
*
* Since Guest Authors doesn't enforce unique email addresses, simply loading the avatar by email won't work when
* multiple Guest Authors share the same address.
*
* This is a replacement for using get_avatar(), which only operates on email addresses and cannot differentiate
* between Guest Authors (who may share an email) and regular user accounts
*
* @param object $coauthor The Co Author or Guest Author object.
* @param int $size The desired size.
* @param string $default Optional. URL for the default image or a default type. Accepts '404'
* (return a 404 instead of a default image), 'retro' (8bit), 'monsterid'
* (monster), 'wavatar' (cartoon face), 'indenticon' (the "quilt"),
* 'mystery', 'mm', or 'mysteryman' (The Oyster Man), 'blank' (transparent GIF),
* or 'gravatar_default' (the Gravatar logo). Default is the value of the
* 'avatar_default' option, with a fallback of 'mystery'.
* @param string $alt Optional. Alternative text to use in &lt;img&gt; tag. Default false.
* @param array|string $class Optional. Array or string of additional classes to add to the &lt;img&gt; element. Default null.
* @return string The image tag for the avatar, or an empty string if none could be determined.
*/
function coauthors_get_avatar( $coauthor, $size = 32, $default = '', $alt = false, $class = null ) {
global $coauthors_plus;
if ( ! is_object( $coauthor ) ) {
return '';
}
if ( isset( $coauthor->type ) && 'guest-author' == $coauthor->type ) {
$guest_author_thumbnail = $coauthors_plus->guest_authors->get_guest_author_thumbnail( $coauthor, $size, $class );
if ( $guest_author_thumbnail ) {
return $guest_author_thumbnail;
}
}
// Make sure we're dealing with an object for which we can retrieve an email
if ( isset( $coauthor->user_email ) ) {
return get_avatar( $coauthor->user_email, $size, $default, $alt, array( 'class' => $class ) );
}
// Nothing matched, an invalid object was passed.
return '';
}
@@ -0,0 +1,45 @@
<?php
function coauthors_plus_upgrade( $from ) {
// TODO: handle upgrade failures
if ( $from < 2.0 ) {
coauthors_plus_upgrade_20();
}
}
/**
* Upgrade to 2.0
* Updates coauthors from old meta-based storage to taxonomy-based
*/
function coauthors_plus_upgrade_20() {
global $coauthors_plus;
// Get all posts with meta_key _coauthor
$all_posts = get_posts( array( 'numberposts' => '-1', 'meta_key' => '_coauthor' ) );
foreach ( $all_posts as $single_post ) {
// reset execution time limit
set_time_limit( 60 );
// create new array
$coauthors = array();
// get author id -- try to use get_profile
$coauthor = get_user_by( 'id', (int) $single_post->post_author );
if ( is_object( $coauthor ) ) {
$coauthors[] = $coauthor->user_login;
}
// get coauthors id
$legacy_coauthors = get_post_meta( $single_post->ID, '_coauthor' );
if ( is_array( $legacy_coauthors ) ) {
foreach ( $legacy_coauthors as $legacy_coauthor ) {
$legacy_coauthor_login = get_user_by( 'id', (int) $legacy_coauthor );
if ( is_object( $legacy_coauthor_login ) && ! in_array( $legacy_coauthor_login->user_login, $coauthors ) ) {
$coauthors[] = $legacy_coauthor_login->user_login;
}
}
}
$coauthors_plus->add_coauthors( $single_post->ID, $coauthors );
}
}