Merge pull request #128 from mashirozx/dev

Add more comment image upload API
pull/137/head v3.3.0
Mashiro 2019-11-14 19:37:37 +08:00 committed by GitHub
commit 5d72358e6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 1207 additions and 616 deletions

View File

@ -7,12 +7,13 @@
* @package Sakura * @package Sakura
*/ */
define( 'SAKURA_VERSION', '3.2.8' ); define( 'SAKURA_VERSION', '3.3.0' );
define( 'BUILD_VERSION', '3' ); define( 'BUILD_VERSION', '3' );
define( 'JSDELIVR_VERSION', '3.6.7' ); define( 'JSDELIVR_VERSION', '3.6.7' );
//ini_set('display_errors', true); //ini_set('display_errors', true);
//error_reporting(E_ALL); //error_reporting(E_ALL);
error_reporting(E_ALL ^ E_NOTICE);
if ( !function_exists( 'akina_setup' ) ) : if ( !function_exists( 'akina_setup' ) ) :
/** /**
@ -27,8 +28,6 @@ if ( !function_exists( 'optionsframework_init' ) ) {
define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' ); define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' );
require_once dirname( __FILE__ ) . '/inc/options-framework.php'; require_once dirname( __FILE__ ) . '/inc/options-framework.php';
} }
function akina_setup() { function akina_setup() {
/* /*
@ -214,6 +213,7 @@ add_action( 'wp_enqueue_scripts', 'sakura_scripts' );
*/ */
require get_template_directory() .'/inc/decorate.php'; require get_template_directory() .'/inc/decorate.php';
require get_template_directory() .'/inc/swicher.php'; require get_template_directory() .'/inc/swicher.php';
require get_template_directory() .'/inc/api.php';
/** /**
* Custom template tags for this theme. * Custom template tags for this theme.
@ -233,6 +233,7 @@ require get_template_directory() . '/inc/categories-images.php';
//Comment Location Start //Comment Location Start
function convertip($ip) { function convertip($ip) {
error_reporting(E_ALL ^ E_NOTICE);
$dat_path = dirname(__FILE__).'/inc/QQWry.Dat'; $dat_path = dirname(__FILE__).'/inc/QQWry.Dat';
if(!$fd = @fopen($dat_path, 'rb')){ if(!$fd = @fopen($dat_path, 'rb')){
return 'IP date file not exists or access denied'; return 'IP date file not exists or access denied';
@ -468,7 +469,7 @@ function set_post_views() {
$post_id = intval($post->ID); $post_id = intval($post->ID);
$count_key = 'views'; $count_key = 'views';
$views = get_post_custom($post_id); $views = get_post_custom($post_id);
$views = intval($views['views'][0]); $views = array_key_exists("views",$views) ? intval($views['views'][0]) : 0;
if(is_single() || is_page()) { if(is_single() || is_page()) {
if(!update_post_meta($post_id, 'views', ($views + 1))) { if(!update_post_meta($post_id, 'views', ($views + 1))) {
add_post_meta($post_id, 'views', 1, true); add_post_meta($post_id, 'views', 1, true);
@ -487,7 +488,7 @@ function get_post_views($post_id) {
} else { } else {
$count_key = 'views'; $count_key = 'views';
$views = get_post_custom($post_id); $views = get_post_custom($post_id);
$views = intval($views['views'][0]); $views = array_key_exists("views",$views) ? intval($views['views'][0]) : 0;
$post_views = intval(post_custom('views')); $post_views = intval(post_custom('views'));
if($views == '') { if($views == '') {
return 0; return 0;
@ -1286,7 +1287,7 @@ function memory_archives_list() {
/* Remove the "Dashboard" from the admin menu for non-admin users */ /* Remove the "Dashboard" from the admin menu for non-admin users */
function remove_dashboard () { function remove_dashboard () {
global $current_user, $menu, $submenu; global $current_user, $menu, $submenu;
get_currentuserinfo(); wp_get_current_user();
if( ! in_array( 'administrator', $current_user->roles ) ) { if( ! in_array( 'administrator', $current_user->roles ) ) {
reset( $menu ); reset( $menu );
@ -1603,13 +1604,17 @@ function output_comments_qq_columns( $column_name, $comment_id ){
*/ */
add_filter( 'get_avatar', 'change_avatar', 10, 3 ); add_filter( 'get_avatar', 'change_avatar', 10, 3 );
function change_avatar($avatar){ function change_avatar($avatar){
global $comment; global $comment;
if( get_comment_meta( $comment->comment_ID, 'new_field_qq', true ) ){ if ($comment) {
$qq_number = get_comment_meta( $comment->comment_ID, 'new_field_qq', true ); if( get_comment_meta( $comment->comment_ID, 'new_field_qq', true )){
return '<img src="https://q2.qlogo.cn/headimg_dl?dst_uin='.$qq_number.'&spec=100" data-src="'.stripslashes($m[1]).'" class="lazyload avatar avatar-24 photo" alt="😀" width="24" height="24" onerror="imgError(this,1)">'; $qq_number = get_comment_meta( $comment->comment_ID, 'new_field_qq', true );
}else{ return '<img src="https://q2.qlogo.cn/headimg_dl?dst_uin='.$qq_number.'&spec=100" data-src="'.stripslashes($m[1]).'" class="lazyload avatar avatar-24 photo" alt="😀" width="24" height="24" onerror="imgError(this,1)">';
return $avatar ; }else{
} return $avatar ;
}
} else{
return $avatar ;
}
} }
// default feature image // default feature image
@ -1628,68 +1633,6 @@ add_action( 'pre_get_posts', function( $q ){
$q->set( 'post__not_in', get_option( 'sticky_posts' ) ); $q->set( 'post__not_in', get_option( 'sticky_posts' ) );
}); });
/*
* 定制实时搜索 rest api
* @rest api接口路径https://sakura.2heng.xin/wp-json/cache_search/v1/json/
* @可在cache_search_json()函数末尾通过设置 HTTP header 控制 json 缓存时间
*/
function cache_search_json() {
$vowels = array("[", "{","]","}","<",">","\r\n", "\r", "\n","-","'",'"','`'," ",":",";",'\\'," ","toc");
$regex = <<<EOS
/<\/?[a-zA-Z]+("[^"]*"|'[^']*'|[^'">])*>|begin[\S\s]*\/begin|hermit[\S\s]*\/hermit|img[\S\s]*\/img|{{.*?}}|:.*?:/m
EOS;
$posts = new WP_Query('posts_per_page=-1&post_status=publish&post_type=post');
while ($posts->have_posts()) : $posts->the_post();
$output .= '{"type":"post","link":"'.get_post_permalink().'","title":'.json_encode(get_the_title()).',"comments":"'.get_comments_number('0', '1', '%').'","text":'.json_encode(str_replace($vowels, " ",preg_replace($regex,' ',get_the_content()))).'},';
endwhile;
wp_reset_postdata();
$pages = get_pages();
foreach ($pages as $page) {
$output .= '{"type":"page","link":"'.get_page_link($page).'","title":'.json_encode($page->post_title).',"comments":"'.$page->comment_count.'","text":'.json_encode(str_replace($vowels, " ",preg_replace($regex,' ',$page->post_content))).'},';
}
$tags = get_tags();
foreach ($tags as $tag) {
$output .= '{"type":"tag","link":"'.get_term_link($tag).'","title":'.json_encode($tag->name).',"comments":"","text":""},';
}
$categories = get_categories();
foreach ($categories as $category) {
$output .= '{"type":"category","link":"'.get_term_link($category).'","title":'.json_encode($category->name).',"comments":"","text":""},';
}
if(akina_option('live_search_comment')){
$comments = get_comments();
foreach ($comments as $comment) {
$is_private = get_comment_meta($comment->comment_ID, '_private', true);
if($is_private){
$output .= '{"type":"comment","link":"'.get_comment_link($comment).'","title":'.json_encode(get_the_title($comment->comment_post_ID)).',"comments":"","text":'.json_encode($comment->comment_author."".__("The comment is private","sakura")/*该评论为私密评论*/).'},';
continue;
}else{
$output .= '{"type":"comment","link":"'.get_comment_link($comment).'","title":'.json_encode(get_the_title($comment->comment_post_ID)).',"comments":"","text":'.json_encode(str_replace($vowels, " ",preg_replace($regex," ",$comment->comment_author."".$comment->comment_content))).'},';
}
}
}
$output = substr($output,0,strlen($output)-1);
$data = '['.$output.']';
$result = new WP_REST_Response(json_decode($data), 200);
$result->set_headers(array('Content-Type' => 'application/json',
'Cache-Control' => 'max-age=3600')); // json 缓存控制
return $result;
}
if(akina_option('live_search')){
add_action( 'rest_api_init', function () {
register_rest_route( 'cache_search/v1', '/json/', array(
'methods' => 'GET',
'callback' => 'cache_search_json',
) );
} );
}
//评论回复 //评论回复
function sakura_comment_notify($comment_id){ function sakura_comment_notify($comment_id){
if ( !$_POST['mail-notify'] ) if ( !$_POST['mail-notify'] )
@ -1697,4 +1640,4 @@ function sakura_comment_notify($comment_id){
} }
add_action('comment_post', 'sakura_comment_notify'); add_action('comment_post', 'sakura_comment_notify');
//code end //code end

Binary file not shown.

257
inc/api.php 100644
View File

@ -0,0 +1,257 @@
<?php
/**
* Router
*/
add_action('rest_api_init', function () {
register_rest_route('sakura/v1', '/image/upload', array(
'methods' => 'POST',
'callback' => 'upload_image',
));
register_rest_route('sakura/v1', '/cache_search/json', array(
'methods' => 'GET',
'callback' => 'cache_search_json',
));
});
/**
* Image uploader response
*/
function upload_image(WP_REST_Request $req)
{
// see: https://developer.wordpress.org/rest-api/requests/
// handle file params $file === $_FILES
/**
* curl \
* -F "filecomment=This is an img file" \
* -F "cmt_img_file=@screenshot.jpg" \
* https://dev.2heng.xin/wp-json/sakura/v1/image/upload
*/
// $file = $req->get_file_params();
switch (akina_option("img_upload_api")) {
case 'imgur':
$image = file_get_contents($_FILES["cmt_img_file"]["tmp_name"]);
$API_Request = Imgur_API($image);
break;
case 'smms':
$image = $_FILES;
$API_Request = SMMS_API($image);
break;
case 'chevereto':
$image = file_get_contents($_FILES["cmt_img_file"]["tmp_name"]);
$API_Request = Chevereto_API($image);
break;
}
$result = new WP_REST_Response($API_Request, $API_Request->status);
$result->set_headers(array('Content-Type' => 'application/json'));
return $result;
}
/**
* Chevereto upload interface
*/
function Chevereto_API($image)
{
$fields = array(
'source' => base64_encode($image),
'key' => akina_option('chevereto_api_key')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, akina_option('cheverto_url').'/api/1/upload');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$reply = curl_exec($ch);
curl_close($ch);
$reply = json_decode($reply);
if ($reply->status_txt == 'OK' && $reply->status_code == 200) {
$status = 200;
$success = true;
$message = "success";
$link = $reply->image->image->url;
$proxy = akina_option('cmt_image_proxy') . $link;
} else {
$status = $reply->status_code;
$success = false;
$message = $reply->error->message;
$link = 'https://view.moezx.cc/images/2019/10/28/default_d_h_large.gif';
$proxy = akina_option('cmt_image_proxy') . $link;
}
$output = array(
'status' => $status,
'success' => $success,
'message' => $message,
'link' => $link,
'proxy' => $proxy,
);
return $output;
}
/**
* Imgur upload interface
*/
function Imgur_API($image)
{
$client_id = akina_option('imgur_client_id');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, akina_option('imgur_upload_image_proxy'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => base64_encode($image)));
$reply = curl_exec($ch);
curl_close($ch);
$reply = json_decode($reply);
if ($reply->success && $reply->status == 200) {
$status = 200;
$success = true;
$message = "success";
$link = $reply->data->link;
$proxy = akina_option('cmt_image_proxy') . $link;
} else {
$status = $reply->status;
$success = false;
$message = $reply->data->error;
$link = 'https://view.moezx.cc/images/2019/10/28/default_d_h_large.gif';
$proxy = akina_option('cmt_image_proxy') . $link;
}
$output = array(
'status' => $status,
'success' => $success,
'message' => $message,
'link' => $link,
'proxy' => $proxy,
);
return $output;
}
/**
* smms upload interface
*/
function SMMS_API($image)
{
$client_id = akina_option('smms_client_id');
$filename = $image['cmt_img_file']['name'];
$filedata = $image['cmt_img_file']['tmp_name'];
$filesize = $image['cmt_img_file']['size'];
$url = "https://sm.ms/api/v2/upload";
$headers = array();
array_push($headers, "Content-Type: multipart/form-data");
array_push($headers, "Authorization: Basic " . $client_id);
array_push($headers, "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97");
$finfo = new \finfo(FILEINFO_MIME_TYPE);
$mimetype = $finfo->file($filedata);
$fields = array('smfile' => curl_file_create($filedata, $mimetype, $filename));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$reply = curl_exec($ch);
curl_close($ch);
$reply = json_decode($reply);
if ($reply->success && $reply->code == 'success') {
$status = 200;
$success = true;
$message = $reply->message;
$link = $reply->data->url;
$proxy = akina_option('cmt_image_proxy') . $link;
} else if (preg_match("/Image upload repeated limit/i", $reply->message, $matches)) {
$status = 200; // sm.ms 接口不规范,建议检测到重复的情况下返回标准化的 code并单独把 url 放进一个字段
$success = true;
$message = $reply->message;
$link = str_replace('Image upload repeated limit, this image exists at: ', '', $reply->message);
$proxy = akina_option('cmt_image_proxy') . $link;
} else {
$status = 400;
$success = false;
$message = $reply->message;
$link = 'https://view.moezx.cc/images/2019/10/28/default_d_h_large.gif';
$proxy = akina_option('cmt_image_proxy') . $link;
}
$output = array(
'status' => $status,
'success' => $success,
'message' => $message,
'link' => $link,
'proxy' => $proxy,
);
return $output;
}
/*
* 定制实时搜索 rest api
* @rest api接口路径https://sakura.2heng.xin/wp-json/cache_search/v1/json/
* @可在cache_search_json()函数末尾通过设置 HTTP header 控制 json 缓存时间
*/
function cache_search_json()
{
$vowels = array("[", "{", "]", "}", "<", ">", "\r\n", "\r", "\n", "-", "'", '"', '`', " ", ":", ";", '\\', " ", "toc");
$regex = <<<EOS
/<\/?[a-zA-Z]+("[^"]*"|'[^']*'|[^'">])*>|begin[\S\s]*\/begin|hermit[\S\s]*\/hermit|img[\S\s]*\/img|{{.*?}}|:.*?:/m
EOS;
$posts = new WP_Query('posts_per_page=-1&post_status=publish&post_type=post');
while ($posts->have_posts()): $posts->the_post();
$output .= '{"type":"post","link":"' . get_post_permalink() . '","title":' . json_encode(get_the_title()) . ',"comments":"' . get_comments_number('0', '1', '%') . '","text":' . json_encode(str_replace($vowels, " ", preg_replace($regex, ' ', get_the_content()))) . '},';
endwhile;
wp_reset_postdata();
$pages = get_pages();
foreach ($pages as $page) {
$output .= '{"type":"page","link":"' . get_page_link($page) . '","title":' . json_encode($page->post_title) . ',"comments":"' . $page->comment_count . '","text":' . json_encode(str_replace($vowels, " ", preg_replace($regex, ' ', $page->post_content))) . '},';
}
$tags = get_tags();
foreach ($tags as $tag) {
$output .= '{"type":"tag","link":"' . get_term_link($tag) . '","title":' . json_encode($tag->name) . ',"comments":"","text":""},';
}
$categories = get_categories();
foreach ($categories as $category) {
$output .= '{"type":"category","link":"' . get_term_link($category) . '","title":' . json_encode($category->name) . ',"comments":"","text":""},';
}
if (akina_option('live_search_comment')) {
$comments = get_comments();
foreach ($comments as $comment) {
$is_private = get_comment_meta($comment->comment_ID, '_private', true);
if ($is_private) {
$output .= '{"type":"comment","link":"' . get_comment_link($comment) . '","title":' . json_encode(get_the_title($comment->comment_post_ID)) . ',"comments":"","text":' . json_encode($comment->comment_author . "" . __("The comment is private", "sakura") /*该评论为私密评论*/) . '},';
continue;
} else {
$output .= '{"type":"comment","link":"' . get_comment_link($comment) . '","title":' . json_encode(get_the_title($comment->comment_post_ID)) . ',"comments":"","text":' . json_encode(str_replace($vowels, " ", preg_replace($regex, " ", $comment->comment_author . "" . $comment->comment_content))) . '},';
}
}
}
$output = substr($output, 0, strlen($output) - 1);
$data = '[' . $output . ']';
$result = new WP_REST_Response(json_decode($data), 200);
$result->set_headers(array('Content-Type' => 'application/json',
'Cache-Control' => 'max-age=3600')); // json 缓存控制
return $result;
}

View File

@ -260,7 +260,7 @@ function Exuser_center(){ ?>
// 登录成功 // 登录成功
function login_ok(){ function login_ok(){
global $current_user; global $current_user;
get_currentuserinfo(); wp_get_current_user();
?> ?>
<p class="ex-login-avatar"><a href="http://cn.gravatar.com/" title="<?php _e('Change avatar','sakura')/*更换头像*/?>" target="_blank" rel="nofollow"><?php echo get_avatar( $current_user->user_email, '110' ); ?></a></p> <p class="ex-login-avatar"><a href="http://cn.gravatar.com/" title="<?php _e('Change avatar','sakura')/*更换头像*/?>" target="_blank" rel="nofollow"><?php echo get_avatar( $current_user->user_email, '110' ); ?></a></p>
<p class="ex-login-username"><?php _e('Hello, ','sakura')/*你好,*/?><strong><?php echo $current_user->display_name; ?></strong></p> <p class="ex-login-username"><?php _e('Hello, ','sakura')/*你好,*/?><strong><?php echo $current_user->display_name; ?></strong></p>
@ -464,7 +464,7 @@ function the_video_headPattern_normal(){
* 导航栏用户菜单 * 导航栏用户菜单
*/ */
function header_user_menu(){ function header_user_menu(){
global $current_user;get_currentuserinfo(); global $current_user;wp_get_current_user();
if(is_user_logged_in()){ if(is_user_logged_in()){
$ava = akina_option('focus_logo') ? akina_option('focus_logo') : get_avatar_url( $current_user->user_email ); $ava = akina_option('focus_logo') ? akina_option('focus_logo') : get_avatar_url( $current_user->user_email );
?> ?>
@ -510,7 +510,9 @@ function header_user_menu(){
// 上一篇 // 上一篇
function get_prev_thumbnail_url() { function get_prev_thumbnail_url() {
$prev_post = get_previous_post(); $prev_post = get_previous_post();
if ( has_post_thumbnail($prev_post->ID) ) { if (!$prev_post) {
return get_random_bg_url(); // 首页图
} else if ( has_post_thumbnail($prev_post->ID) ) {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $prev_post->ID ), 'large'); $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $prev_post->ID ), 'large');
return $img_src[0]; // 特色图 return $img_src[0]; // 特色图
} }

View File

@ -63,7 +63,7 @@ function imgError(ele, type) {
default: default:
ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png'; ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';
} }
} }
function post_list_show_animation() { function post_list_show_animation() {
if ($("article").hasClass("post-list-thumb")) { if ($("article").hasClass("post-list-thumb")) {
@ -73,6 +73,7 @@ function post_list_show_animation() {
} }
var io = new IntersectionObserver(callback, options); var io = new IntersectionObserver(callback, options);
var articles = document.querySelectorAll('.post-list-thumb'); var articles = document.querySelectorAll('.post-list-thumb');
function callback(entries) { function callback(entries) {
entries.forEach((article) => { entries.forEach((article) => {
if (article.target.classList.contains("post-list-show")) { if (article.target.classList.contains("post-list-show")) {
@ -157,9 +158,9 @@ try {
code_highlight_style(); code_highlight_style();
} catch (e) {} } catch (e) {}
if (Poi.reply_link_version == 'new'){ if (Poi.reply_link_version == 'new') {
$('body').on('click','.comment-reply-link',function(){ $('body').on('click', '.comment-reply-link', function () {
addComment.moveForm( "comment-"+$(this).attr('data-commentid'), $(this).attr('data-commentid'), "respond", $(this).attr('data-postid') ); addComment.moveForm("comment-" + $(this).attr('data-commentid'), $(this).attr('data-commentid'), "respond", $(this).attr('data-postid'));
return false; return false;
}); });
} }
@ -179,9 +180,9 @@ function attach_image() {
for (var i = 0; i < this.files.length; i++) { for (var i = 0; i < this.files.length; i++) {
var f = this.files[i]; var f = this.files[i];
var formData = new FormData(); var formData = new FormData();
formData.append('smfile', f); formData.append('cmt_img_file', f);
$.ajax({ $.ajax({
url: 'https://sm.ms/api/upload', url: '/wp-json/sakura/v1/image/upload',
type: 'POST', type: 'POST',
processData: false, processData: false,
contentType: false, contentType: false,
@ -195,18 +196,28 @@ function attach_image() {
setTimeout(function () { setTimeout(function () {
cached.html('<i class="fa fa-picture-o" aria-hidden="true"></i>'); cached.html('<i class="fa fa-picture-o" aria-hidden="true"></i>');
}, 1000); }, 1000);
var get_the_url = res.data.url; if (res.status == 200) {
$('#upload-img-show').append('<img class="lazyload upload-image-preview" src="https://cdn.jsdelivr.net/gh/moezx/cdn@3.0.2/img/svg/loader/trans.ajax-spinner-preloader.svg" data-src="' + get_the_url + '" onclick="window.open(\'' + get_the_url + '\')" onerror="imgError(this)" />'); var get_the_url = res.proxy;
lazyload(); $('#upload-img-show').append('<img class="lazyload upload-image-preview" src="https://cdn.jsdelivr.net/gh/moezx/cdn@3.0.2/img/svg/loader/trans.ajax-spinner-preloader.svg" data-src="' + get_the_url + '" onclick="window.open(\'' + get_the_url + '\')" onerror="imgError(this)" />');
addComment.createButterbar("图片上传成功~<br>Uploaded successfully~"); lazyload();
grin(res.data.url.replace('https://i.loli.net/', '{UPLOAD}'), type = 'Img'); addComment.createButterbar("图片上传成功~<br>Uploaded successfully~");
grin(get_the_url, type = 'Img');
} else {
addComment.createButterbar("上传失败!<br>Uploaded failed!<br> 文件名/Filename: "+f.name+"<br>code: "+res.status+"<br>"+res.message, 3000);
}
}, },
error: function () { error: function (jqXHR, textStatus, errorThrown) {
cached.html('<i class="fa fa-times" aria-hidden="true" style="color:red"></i>'); cached.html('<i class="fa fa-times" aria-hidden="true" style="color:red"></i>');
alert("上传失败,请重试.\nUpload failed, please try again."); alert("上传失败,请重试.\nUpload failed, please try again.");
setTimeout(function () { setTimeout(function () {
cached.html('<i class="fa fa-picture-o" aria-hidden="true"></i>'); cached.html('<i class="fa fa-picture-o" aria-hidden="true"></i>');
}, 1000); }, 1000);
// console.info(jqXHR.responseText);
// console.info(jqXHR.status);
// console.info(jqXHR.readyState);
// console.info(jqXHR.statusText);
// console.info(textStatus);
// console.info(errorThrown);
} }
}) })
} }
@ -297,6 +308,7 @@ function checkskinSecter() {
$(".headertop-bar-sakura").removeClass('headertop-bar-sakura').addClass('headertop-bar'); $(".headertop-bar-sakura").removeClass('headertop-bar-sakura').addClass('headertop-bar');
} }
} }
function checkBgImgCookie() { function checkBgImgCookie() {
var bgurl = getCookie("bgImgSetting"); var bgurl = getCookie("bgImgSetting");
if (!bgurl) { if (!bgurl) {
@ -306,7 +318,7 @@ function checkBgImgCookie() {
} }
} }
if (document.body.clientWidth > 860) { if (document.body.clientWidth > 860) {
setTimeout(function() { setTimeout(function () {
checkBgImgCookie(); checkBgImgCookie();
}, 100); }, 100);
} }
@ -317,15 +329,16 @@ function no_right_click() {
}); });
} }
no_right_click(); no_right_click();
$(document).ready(function() { $(document).ready(function () {
function checkskin_bg(a){ function checkskin_bg(a) {
return a == "none" ? "" : a return a == "none" ? "" : a
} }
function changeBG() { function changeBG() {
var cached=$(".menu-list"); var cached = $(".menu-list");
cached.find("li").each(function() { cached.find("li").each(function () {
var tagid = this.id; var tagid = this.id;
cached.on("click", "#" + tagid, function(){ cached.on("click", "#" + tagid, function () {
if (tagid == "white-bg") { if (tagid == "white-bg") {
mashiro_global.variables.skinSecter = true; mashiro_global.variables.skinSecter = true;
checkskinSecter(); checkskinSecter();
@ -372,14 +385,14 @@ $(document).ready(function() {
function closeSkinMenu() { function closeSkinMenu() {
$(".skin-menu").removeClass('show'); $(".skin-menu").removeClass('show');
setTimeout(function() { setTimeout(function () {
$(".changeSkin-gear").css("visibility", "visible"); $(".changeSkin-gear").css("visibility", "visible");
}, 300); }, 300);
} }
$(".changeSkin-gear").click(function() { $(".changeSkin-gear").click(function () {
$(".skin-menu").toggleClass('show'); $(".skin-menu").toggleClass('show');
}) })
$(".skin-menu #close-skinMenu").click(function() { $(".skin-menu #close-skinMenu").click(function () {
closeSkinMenu(); closeSkinMenu();
}); });
add_upload_tips(); add_upload_tips();
@ -514,16 +527,16 @@ function coverVideoIni() {
if ($('video').hasClass('hls')) { if ($('video').hasClass('hls')) {
var video = addComment.I('coverVideo'); var video = addComment.I('coverVideo');
var video_src = $('#coverVideo').attr('data-src'); var video_src = $('#coverVideo').attr('data-src');
if(Hls.isSupported()) { if (Hls.isSupported()) {
var hls = new Hls(); var hls = new Hls();
hls.loadSource(video_src); hls.loadSource(video_src);
hls.attachMedia(video); hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED,function() { hls.on(Hls.Events.MANIFEST_PARSED, function () {
video.play(); video.play();
}); });
} else if (video.canPlayType('application/vnd.apple.mpegurl')) { } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = video_src; video.src = video_src;
video.addEventListener('loadedmetadata',function() { video.addEventListener('loadedmetadata', function () {
video.play(); video.play();
}); });
} }
@ -533,7 +546,9 @@ function coverVideoIni() {
function copy_code_block() { function copy_code_block() {
$('pre code').each(function (i, block) { $('pre code').each(function (i, block) {
$(block).attr({ id: 'hljs-' + i }); $(block).attr({
id: 'hljs-' + i
});
$(this).after('<a class="copy-code" href="javascript:" data-clipboard-target="#hljs-' + i + '" title="拷贝代码"><i class="fa fa-clipboard" aria-hidden="true"></i></a>'); $(this).after('<a class="copy-code" href="javascript:" data-clipboard-target="#hljs-' + i + '" title="拷贝代码"><i class="fa fa-clipboard" aria-hidden="true"></i></a>');
}); });
var clipboard = new ClipboardJS('.copy-code'); var clipboard = new ClipboardJS('.copy-code');
@ -548,7 +563,7 @@ function tableOfContentScroll(flag) {
if (flag) { if (flag) {
var id = 1, var id = 1,
heading_fix = mashiro_option.entry_content_theme == "sakura" ? $("article").hasClass("type-post") ? $("div").hasClass("pattern-attachment-img") ? -75 : 200 : 375 : window.innerHeight / 2; heading_fix = mashiro_option.entry_content_theme == "sakura" ? $("article").hasClass("type-post") ? $("div").hasClass("pattern-attachment-img") ? -75 : 200 : 375 : window.innerHeight / 2;
$(".entry-content , .links").children("h1,h2,h3,h4,h5").each(function() { $(".entry-content , .links").children("h1,h2,h3,h4,h5").each(function () {
var hyphenated = "toc-head-" + id; var hyphenated = "toc-head-" + id;
this.id = hyphenated; this.id = hyphenated;
id++; id++;
@ -557,7 +572,7 @@ function tableOfContentScroll(flag) {
tocSelector: '.toc', tocSelector: '.toc',
contentSelector: ['.entry-content', '.links'], contentSelector: ['.entry-content', '.links'],
headingSelector: 'h1, h2, h3, h4, h5', headingSelector: 'h1, h2, h3, h4, h5',
headingsOffset: heading_fix-window.innerHeight/2, headingsOffset: heading_fix - window.innerHeight / 2,
}); });
} }
} }
@ -722,7 +737,7 @@ $(function () {
getqqinfo(); getqqinfo();
}); });
if(mashiro_option.float_player_on) { if (mashiro_option.float_player_on) {
function aplayerF() { function aplayerF() {
'use strict'; 'use strict';
var aplayers = [], var aplayers = [],
@ -761,7 +776,7 @@ if(mashiro_option.float_player_on) {
console.log(a) console.log(a)
} }
var lrcTag = 1; var lrcTag = 1;
$(".aplayer.aplayer-fixed").click(function(){ $(".aplayer.aplayer-fixed").click(function () {
if (lrcTag == 1) { if (lrcTag == 1) {
for (var f = 0; f < aplayers.length; f++) try { for (var f = 0; f < aplayers.length; f++) try {
aplayers[f].lrc.show(); aplayers[f].lrc.show();
@ -772,18 +787,24 @@ if(mashiro_option.float_player_on) {
lrcTag = 2; lrcTag = 2;
}); });
var apSwitchTag = 0; var apSwitchTag = 0;
var aplayerlist=$(".aplayer-list"); var aplayerlist = $(".aplayer-list");
aplayerlist.removeClass( "aplayer-list-hide" ).css({maxHeight:'0px'}); aplayerlist.removeClass("aplayer-list-hide").css({
maxHeight: '0px'
});
$(".aplayer.aplayer-fixed .aplayer-body").addClass("ap-hover"); $(".aplayer.aplayer-fixed .aplayer-body").addClass("ap-hover");
$(".aplayer-miniswitcher").click(function(){ $(".aplayer-miniswitcher").click(function () {
if (apSwitchTag == 0) { if (apSwitchTag == 0) {
aplayerlist.removeClass( "aplayer-list-hide" ).animate({maxHeight:'250px'}); aplayerlist.removeClass("aplayer-list-hide").animate({
$(".aplayer.aplayer-fixed .aplayer-body").removeClass( "ap-hover" ); maxHeight: '250px'
});
$(".aplayer.aplayer-fixed .aplayer-body").removeClass("ap-hover");
apSwitchTag = 1; apSwitchTag = 1;
} else { } else {
aplayerlist.css({maxHeight:'0px'}); aplayerlist.css({
$(".aplayer.aplayer-fixed .aplayer-body").addClass( "ap-hover" ); maxHeight: '0px'
apSwitchTag =0; });
$(".aplayer.aplayer-fixed .aplayer-body").addClass("ap-hover");
apSwitchTag = 0;
} }
}); });
} }
@ -824,12 +845,13 @@ if(mashiro_option.float_player_on) {
document.addEventListener('DOMContentLoaded', loadMeting, !1); document.addEventListener('DOMContentLoaded', loadMeting, !1);
} }
if (document.body.clientWidth > 860) { if (document.body.clientWidth > 860) {
aplayerF (); aplayerF();
} }
} }
function getqqinfo() { function getqqinfo() {
var is_get_by_qq = false,cached = $('input'); var is_get_by_qq = false,
cached = $('input');
if (!getCookie('user_qq') && !getCookie('user_qq_email') && !getCookie('user_author')) { if (!getCookie('user_qq') && !getCookie('user_qq_email') && !getCookie('user_author')) {
cached.filter('#qq,#author,#email,#url').val(''); cached.filter('#qq,#author,#email,#url').val('');
} }
@ -1284,20 +1306,22 @@ var home = location.href,
AH: function () { AH: function () {
if (Poi.windowheight == 'auto') { if (Poi.windowheight == 'auto') {
if ($('h1.main-title').length > 0) { if ($('h1.main-title').length > 0) {
var _height = $(window).height()+"px"; var _height = $(window).height() + "px";
$('#centerbg').css({ $('#centerbg').css({
'height': _height 'height': _height
}); });
$('#bgvideo').css({ $('#bgvideo').css({
'min-height': _height 'min-height': _height
}); });
window.resizeFlag= null; window.resizeFlag = null;
$(window).resize(function () { $(window).resize(function () {
//直接resize性能爆炸改成延时 //直接resize性能爆炸改成延时
if(resizeFlag=null){ if (resizeFlag = null) {
clearTimeout(resizeFlag); clearTimeout(resizeFlag);
} }
resizeFlag = setTimeout(function(){ Siren.AH();}, 1000); resizeFlag = setTimeout(function () {
Siren.AH();
}, 1000);
}) })
} }
} else { } else {
@ -1349,131 +1373,134 @@ var home = location.href,
$('.js-toggle-search').on('click', function () { $('.js-toggle-search').on('click', function () {
$('.js-toggle-search').toggleClass('is-active'); $('.js-toggle-search').toggleClass('is-active');
$('.js-search').toggleClass('is-visible'); $('.js-search').toggleClass('is-visible');
$('html').css('overflow-y','hidden'); $('html').css('overflow-y', 'hidden');
if (mashiro_option.live_search) { if (mashiro_option.live_search) {
var QueryStorage = []; var QueryStorage = [];
search_a("https://"+document.domain+"/wp-json/cache_search/v1/json/"); search_a("https://" + document.domain + "/wp-json/sakura/v1/cache_search/json");
var otxt = addComment.I("search-input"),
list = addComment.I("PostlistBox"),
Record = list.innerHTML,
searchFlag = null;
otxt.oninput = function () {
if(searchFlag=null){
clearTimeout(searchFlag);
}
searchFlag = setTimeout(function(){
query(QueryStorage, otxt.value, Record);
div_href();
}, 250);
};
function search_a(val) { var otxt = addComment.I("search-input"),
if(sessionStorage.getItem('search')!=null){ list = addComment.I("PostlistBox"),
QueryStorage = JSON.parse(sessionStorage.getItem('search')); Record = list.innerHTML,
query(QueryStorage, $("#search-input").val(), Record); searchFlag = null;
div_href(); otxt.oninput = function () {
}else{ if (searchFlag = null) {
var _xhr = new XMLHttpRequest(); clearTimeout(searchFlag);
_xhr.open("GET", val, true) }
_xhr.send(); searchFlag = setTimeout(function () {
_xhr.onreadystatechange = function () { query(QueryStorage, otxt.value, Record);
if (_xhr.readyState == 4 && _xhr.status == 200) { div_href();
json = _xhr.responseText; }, 250);
if (json != "") { };
sessionStorage.setItem('search',json);
QueryStorage = JSON.parse(json); function search_a(val) {
query(QueryStorage, otxt.value, Record); if (sessionStorage.getItem('search') != null) {
div_href(); QueryStorage = JSON.parse(sessionStorage.getItem('search'));
query(QueryStorage, $("#search-input").val(), Record);
div_href();
} else {
var _xhr = new XMLHttpRequest();
_xhr.open("GET", val, true)
_xhr.send();
_xhr.onreadystatechange = function () {
if (_xhr.readyState == 4 && _xhr.status == 200) {
json = _xhr.responseText;
if (json != "") {
sessionStorage.setItem('search', json);
QueryStorage = JSON.parse(json);
query(QueryStorage, otxt.value, Record);
div_href();
}
} }
} }
} }
} }
} if (!Object.values) Object.values = function (obj) {
if (!Object.values) Object.values = function (obj) { if (obj !== Object(obj))
if (obj !== Object(obj)) throw new TypeError('Object.values called on a non-object');
throw new TypeError('Object.values called on a non-object'); var val = [],
var val = [], key;
key; for (key in obj) {
for (key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) {
if (Object.prototype.hasOwnProperty.call(obj, key)) { val.push(obj[key]);
val.push(obj[key]); }
} }
return val;
} }
return val;
}
function Cx(arr, q) {
q = q.replace(q,"^(?=.*?"+q+").+$").replace(/\s/g,")(?=.*?");
i = arr.filter(
v => Object.values(v).some(
v => new RegExp(q + '').test(v)
)
);
return i;
}
function div_href(){
$(".ins-selectable").each(function(){
$(this).click(function(){
$("#Ty").attr('href',$(this).attr('href'));
$("#Ty").click();
$(".search_close").click();
});
});
}
function search_result(keyword, link, fa, title, iconfont, comments, text){
if(keyword){
var s = keyword.trim().split(" "),
a = title.indexOf(s[s.length-1]),
b = text.indexOf(s[s.length-1]);
title=a<60 ? title.slice(0,80):title.slice(a-30,a+30);
title=title.replace(s[s.length-1], '<mark class="search-keyword"> ' + s[s.length-1].toUpperCase() + ' </mark>');
text=b<60 ? text.slice(0,80):text.slice(b-30,b+30);
text=text.replace(s[s.length-1], '<mark class="search-keyword"> ' + s[s.length-1].toUpperCase() + ' </mark>');
}
return '<div class="ins-selectable ins-search-item" href="' + link + '"><header><i class="fa fa-'+ fa +'" aria-hidden="true"></i>' + title + '<i class="iconfont icon-'+ iconfont +'"> ' + comments + '</i>' + '</header><p class="ins-search-preview">' + text + '</p></div>';
}
function query(B, A, z) { function Cx(arr, q) {
var x, v, s, y = "", q = q.replace(q, "^(?=.*?" + q + ").+$").replace(/\s/g, ")(?=.*?");
w = "", i = arr.filter(
u = "", v => Object.values(v).some(
r = "", v => new RegExp(q + '').test(v)
p = "", )
F = "", );
H = "", return i;
G = '<section class="ins-section"><header class="ins-section-header">', }
D = "</section>",
E = "</header>", function div_href() {
C = Cx(B, A.trim()); $(".ins-selectable").each(function () {
for (x = 0; x < Object.keys(C).length; x++) { $(this).click(function () {
H = C[x]; $("#Ty").attr('href', $(this).attr('href'));
switch (v = H.type) { $("#Ty").click();
case "post": $(".search_close").click();
w = w + search_result(A, H.link, "file", H.title, "mark", H.comments, H.text); });
break; });
case "tag": }
p = p + search_result("", H.link, "tag", H.title, "none", "", "");
break; function search_result(keyword, link, fa, title, iconfont, comments, text) {
case "category": if (keyword) {
r = r + search_result("", H.link, "folder", H.title, "none", "", ""); var s = keyword.trim().split(" "),
break; a = title.indexOf(s[s.length - 1]),
case "page": b = text.indexOf(s[s.length - 1]);
u = u + search_result(A, H.link, "file", H.title, "mark", H.comments, H.text); title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);
break; title = title.replace(s[s.length - 1], '<mark class="search-keyword"> ' + s[s.length - 1].toUpperCase() + ' </mark>');
case "comment": text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);
F = F + search_result(A, H.link, "comment", H.title, "none", "", H.text); text = text.replace(s[s.length - 1], '<mark class="search-keyword"> ' + s[s.length - 1].toUpperCase() + ' </mark>');
break }
} return '<div class="ins-selectable ins-search-item" href="' + link + '"><header><i class="fa fa-' + fa + '" aria-hidden="true"></i>' + title + '<i class="iconfont icon-' + iconfont + '"> ' + comments + '</i>' + '</header><p class="ins-search-preview">' + text + '</p></div>';
} }
w && (y = y + G + "文章" + E + w + D), u && (y = y + G + "页面" + E + u + D), r && (y = y + G + "分类" + E + r + D), p && (y = y + G + "标签" + E + p + D), F && (y = y + G + "评论" + E + F + D), s = addComment.I("PostlistBox"), s.innerHTML = y
} function query(B, A, z) {
var x, v, s, y = "",
w = "",
u = "",
r = "",
p = "",
F = "",
H = "",
G = '<section class="ins-section"><header class="ins-section-header">',
D = "</section>",
E = "</header>",
C = Cx(B, A.trim());
for (x = 0; x < Object.keys(C).length; x++) {
H = C[x];
switch (v = H.type) {
case "post":
w = w + search_result(A, H.link, "file", H.title, "mark", H.comments, H.text);
break;
case "tag":
p = p + search_result("", H.link, "tag", H.title, "none", "", "");
break;
case "category":
r = r + search_result("", H.link, "folder", H.title, "none", "", "");
break;
case "page":
u = u + search_result(A, H.link, "file", H.title, "mark", H.comments, H.text);
break;
case "comment":
F = F + search_result(A, H.link, "comment", H.title, "none", "", H.text);
break
}
}
w && (y = y + G + "文章" + E + w + D), u && (y = y + G + "页面" + E + u + D), r && (y = y + G + "分类" + E + r + D), p && (y = y + G + "标签" + E + p + D), F && (y = y + G + "评论" + E + F + D), s = addComment.I("PostlistBox"), s.innerHTML = y
}
} }
}); });
$('.search_close').on('click', function () { $('.search_close').on('click', function () {
if ($('.js-search').hasClass('is-visible')) { if ($('.js-search').hasClass('is-visible')) {
$('.js-toggle-search').toggleClass('is-active'); $('.js-toggle-search').toggleClass('is-active');
$('.js-search').toggleClass('is-visible'); $('.js-search').toggleClass('is-visible');
$('html').css('overflow-y','unset'); $('html').css('overflow-y', 'unset');
} }
}); });
$('#show-nav').on('click', function () { $('#show-nav').on('click', function () {
@ -1492,7 +1519,8 @@ var home = location.href,
NH: function () { NH: function () {
var h1 = 0; var h1 = 0;
$(window).scroll(function () { $(window).scroll(function () {
var s = $(document).scrollTop(),cached = $('.site-header'); var s = $(document).scrollTop(),
cached = $('.site-header');
if (s == h1) { if (s == h1) {
cached.removeClass('yya'); cached.removeClass('yya');
} }
@ -1505,16 +1533,18 @@ var home = location.href,
$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body'); $body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body');
var load_post_timer; var load_post_timer;
var intersectionObserver = new IntersectionObserver(function (entries) { var intersectionObserver = new IntersectionObserver(function (entries) {
if (entries[0].intersectionRatio <= 0) return; if (entries[0].intersectionRatio <= 0) return;
var page_next = $('#pagination a').attr("href"); var page_next = $('#pagination a').attr("href");
var load_key = addComment.I("add_post_time"); var load_key = addComment.I("add_post_time");
if(page_next!=undefined && load_key ){ if (page_next != undefined && load_key) {
var load_time = addComment.I("add_post_time").title; var load_time = addComment.I("add_post_time").title;
if(load_time !="233"){ if (load_time != "233") {
console.log("%c 自动加载时倒计时 %c","background:#9a9da2; color:#ffffff; border-radius:4px;","","",load_time); console.log("%c 自动加载时倒计时 %c", "background:#9a9da2; color:#ffffff; border-radius:4px;", "", "", load_time);
load_post_timer=setTimeout(function(){load_post();},load_time*1000); load_post_timer = setTimeout(function () {
} load_post();
} }, load_time * 1000);
}
}
}); });
intersectionObserver.observe( intersectionObserver.observe(
document.querySelector('.footer-device') document.querySelector('.footer-device')
@ -1524,7 +1554,8 @@ var home = location.href,
load_post(); load_post();
return false; return false;
}); });
function load_post() {
function load_post() {
$('#pagination a').addClass("loading").text(""); $('#pagination a').addClass("loading").text("");
$.ajax({ $.ajax({
type: "POST", type: "POST",
@ -1539,17 +1570,19 @@ var home = location.href,
post_list_show_animation(); post_list_show_animation();
if (nextHref != undefined) { if (nextHref != undefined) {
$("#pagination a").attr("href", nextHref); $("#pagination a").attr("href", nextHref);
//加载完成上滑 //加载完成上滑
var tempScrollTop = $(window).scrollTop(); var tempScrollTop = $(window).scrollTop();
$(window).scrollTop(tempScrollTop); $(window).scrollTop(tempScrollTop);
$body.animate({ scrollTop: tempScrollTop + 300 }, 666) $body.animate({
scrollTop: tempScrollTop + 300
}, 666)
} else { } else {
$("#pagination").html("<span>很高兴你翻到这里,但是真的没有了...</span>"); $("#pagination").html("<span>很高兴你翻到这里,但是真的没有了...</span>");
} }
} }
}); });
return false; return false;
} }
}, },
XCS: function () { XCS: function () {
var __cancel = jQuery('#cancel-comment-reply-link'), var __cancel = jQuery('#cancel-comment-reply-link'),
@ -1748,8 +1781,8 @@ $(function () {
$(document).pjax('a[target!=_top]', '#page', { $(document).pjax('a[target!=_top]', '#page', {
fragment: '#page', fragment: '#page',
timeout: 8000, timeout: 8000,
}).on('pjax:beforeSend', () => { //离开页面停止播放 }).on('pjax:beforeSend', () => { //离开页面停止播放
$('.normal-cover-video').each(function() { $('.normal-cover-video').each(function () {
this.pause(); this.pause();
this.src = ''; this.src = '';
this.load = ''; this.load = '';
@ -1784,7 +1817,7 @@ $(function () {
if ($('.js-search.is-visible').length > 0) { if ($('.js-search.is-visible').length > 0) {
$('.js-toggle-search').toggleClass('is-active'); $('.js-toggle-search').toggleClass('is-active');
$('.js-search').toggleClass('is-visible'); $('.js-search').toggleClass('is-visible');
$('html').css('overflow-y','unset'); $('html').css('overflow-y', 'unset');
} }
}); });
window.addEventListener('popstate', function (e) { window.addEventListener('popstate', function (e) {
@ -1838,4 +1871,4 @@ if ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventL
element.focus(); element.focus();
} }
}, false); }, false);
} }

Binary file not shown.

View File

@ -1,23 +1,23 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Sakura\n" "Project-Id-Version: Sakura\n"
"POT-Creation-Date: 2019-11-01 15:09+0800\n" "POT-Creation-Date: 2019-11-14 19:31+0800\n"
"PO-Revision-Date: 2019-11-01 22:45+0800\n" "PO-Revision-Date: 2019-11-14 19:31+0800\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: en_US\n" "Language: en_US\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n" "X-Generator: Poedit 2.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Flags-xgettext: --add-comments=translators:\n" "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
"X-Poedit-WPHeader: style.css\n" "X-Poedit-WPHeader: style.css\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;" "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;" "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
"__ngettext_noop:1,2\n" "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.js\n" "X-Poedit-SearchPathExcluded-0: *.js\n"
@ -55,7 +55,6 @@ msgid " comment"
msgstr "" msgstr ""
#: comments.php:22 comments.php:27 #: comments.php:22 comments.php:27
#, php-format
msgid " comments" msgid " comments"
msgstr "" msgstr ""
@ -139,82 +138,84 @@ msgstr ""
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: functions.php:53 #: functions.php:52
msgid "Nav Menus" msgid "Nav Menus"
msgstr "" msgstr ""
#: functions.php:387 inc/theme_plus.php:187 layouts/authorprofile.php:11 options.php:123 #: functions.php:388 inc/theme_plus.php:187 layouts/authorprofile.php:11
#: options.php:123
msgid "Author" msgid "Author"
msgstr "" msgstr ""
#: functions.php:387 #: functions.php:388
msgid "Blogger" msgid "Blogger"
msgstr "" msgstr ""
#: functions.php:391 #: functions.php:392
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: functions.php:395 #: functions.php:396
msgid "Private" msgid "Private"
msgstr "" msgstr ""
#: functions.php:397 #: functions.php:398
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
#: functions.php:399 #: functions.php:400
msgid "No" msgid "No"
msgstr "" msgstr ""
#: functions.php:402 #: functions.php:403
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: functions.php:483 #: functions.php:484
msgid "" msgid ""
"Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/\" target=\"_blank" "Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/"
"\">WP-Statistics</a>" "\" target=\"_blank\">WP-Statistics</a>"
msgstr "" msgstr ""
#: functions.php:536 #: functions.php:537
msgid "This guy is so lazy ╮(╯▽╰)╭" msgid "This guy is so lazy ╮(╯▽╰)╭"
msgstr "" msgstr ""
#: functions.php:1257 #: functions.php:1258
msgid "All expand/collapse" msgid "All expand/collapse"
msgstr "" msgstr ""
#: functions.php:1272 #: functions.php:1273
msgid " post(s)" msgid " post(s)"
msgstr "" msgstr ""
#: functions.php:1294 functions.php:1297 inc/theme_plus.php:479 #: functions.php:1295 functions.php:1298 inc/theme_plus.php:479
msgid "Dashboard" msgid "Dashboard"
msgstr "" msgstr ""
#: functions.php:1510 #: functions.php:1511
msgid "<b>ERROR</b>: This email domain (<b>@" msgid "<b>ERROR</b>: This email domain (<b>@"
msgstr "" msgstr ""
#: functions.php:1590 #: functions.php:1591
msgid "QQ" msgid "QQ"
msgstr "" msgstr ""
#: functions.php:1667 inc/theme_plus.php:726
msgid "The comment is private"
msgstr ""
#: header.php:35 #: header.php:35
#, php-format #, php-format
msgid "page %s " msgid "page %s "
msgstr "" msgstr ""
#: inc/api.php:241 inc/theme_plus.php:728
msgid "The comment is private"
msgstr ""
#: inc/categories-images.php:45 inc/categories-images.php:66 #: inc/categories-images.php:45 inc/categories-images.php:66
msgid "category/tag image" msgid "category/tag image"
msgstr "" msgstr ""
#: inc/categories-images.php:48 inc/categories-images.php:68 inc/categories-images.php:197 #: inc/categories-images.php:48 inc/categories-images.php:68
#: inc/categories-images.php:197
msgid "add image" msgid "add image"
msgstr "Add image" msgstr "Add image"
@ -389,8 +390,8 @@ msgstr ""
msgid "Sign out? " msgid "Sign out? "
msgstr "" msgstr ""
#: inc/theme_plus.php:299 inc/theme_plus.php:354 inc/theme_plus.php:422 tpl/content-single.php:16 #: inc/theme_plus.php:299 inc/theme_plus.php:354 inc/theme_plus.php:422
#: tpl/single-image.php:18 #: tpl/content-single.php:16 tpl/single-image.php:18
msgid "View" msgid "View"
msgid_plural "Views" msgid_plural "Views"
msgstr[0] "" msgstr[0] ""
@ -479,8 +480,8 @@ msgstr ""
#: options.php:139 #: options.php:139
msgid "" msgid ""
"Adjust the theme scheme menu transparency, the smaller the value, the more transparent. The " "Adjust the theme scheme menu transparency, the smaller the value, the more "
"default value is 0.8" "transparent. The default value is 0.8"
msgstr "" msgstr ""
#: options.php:144 #: options.php:144
@ -533,12 +534,13 @@ msgstr ""
#: options.php:159 #: options.php:159
msgid "" msgid ""
"The foreground switches the background of the webpage. There are 8 urls separated by commas. " "The foreground switches the background of the webpage. There are 8 urls "
"The order corresponds to the foreground scheme tool button position (the order of the buttons " "separated by commas. The order corresponds to the foreground scheme tool "
"is from left to right, top to bottom). If no background is needed, fill in the corresponding " "button position (the order of the buttons is from left to right, top to "
"position as none.<strong>Note: If the theme is updated from v3.2.3 and below, be sure to " "bottom). If no background is needed, fill in the corresponding position as "
"change the [Version Control] parameter under the [Other] tab of this configuration page to any " "none.<strong>Note: If the theme is updated from v3.2.3 and below, be sure to "
"new value!</strong>" "change the [Version Control] parameter under the [Other] tab of this "
"configuration page to any new value!</strong>"
msgstr "" msgstr ""
#: options.php:165 #: options.php:165
@ -555,9 +557,9 @@ msgstr ""
#: options.php:172 #: options.php:172
msgid "" msgid ""
"The home page does not display the avatar above, but displays a paragraph of text (use the " "The home page does not display the avatar above, but displays a paragraph of "
"avatar above if left blank).The text is recommended not to be too long, about 16 bytes is " "text (use the avatar above if left blank).The text is recommended not to be "
"appropriate." "too long, about 16 bytes is appropriate."
msgstr "" msgstr ""
#: options.php:178 #: options.php:178
@ -614,20 +616,21 @@ msgstr ""
#: options.php:220 #: options.php:220
msgid "" msgid ""
"Enable by default, check off, display on the article page, separate page and category page" "Enable by default, check off, display on the article page, separate page and "
"category page"
msgstr "" msgstr ""
#: options.php:226 #: options.php:226
msgid "Search button" msgid "Search button"
msgstr "" msgstr ""
#: options.php:231 options.php:279 options.php:572 options.php:582 options.php:592 #: options.php:231 options.php:279 options.php:572 options.php:582
#: options.php:602 #: options.php:592 options.php:602
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: options.php:232 options.php:280 options.php:573 options.php:583 options.php:593 #: options.php:232 options.php:280 options.php:573 options.php:583
#: options.php:603 #: options.php:593 options.php:603
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -657,7 +660,8 @@ msgstr ""
#: options.php:256 #: options.php:256
msgid "" msgid ""
"Home article feature images alignment (only for graphic mode, default left and right alternate)" "Home article feature images alignment (only for graphic mode, default left "
"and right alternate)"
msgstr "" msgstr ""
#: options.php:261 #: options.php:261
@ -678,9 +682,9 @@ msgstr ""
#: options.php:268 #: options.php:268
msgid "" msgid ""
"The default image displayed without the article feature image set, use random cover if left " "The default image displayed without the article feature image set, use "
"blank (the image to be displayed is placed in the /wp-content/themes/Sakura/feature/gallery/ " "random cover if left blank (the image to be displayed is placed in the /wp-"
"directory)" "content/themes/Sakura/feature/gallery/ directory)"
msgstr "" msgstr ""
#: options.php:274 #: options.php:274
@ -713,7 +717,8 @@ msgstr ""
#: options.php:302 #: options.php:302
msgid "" msgid ""
"(seconds) Set to automatically load the next page time, the default is not automatically loaded" "(seconds) Set to automatically load the next page time, the default is not "
"automatically loaded"
msgstr "" msgstr ""
#: options.php:307 #: options.php:307
@ -825,7 +830,9 @@ msgid "Live"
msgstr "" msgstr ""
#: options.php:402 #: options.php:402
msgid "Check to enable, the video will continue to play automatically, you need to enable Pjax" msgid ""
"Check to enable, the video will continue to play automatically, you need to "
"enable Pjax"
msgstr "" msgstr ""
#: options.php:408 #: options.php:408
@ -834,8 +841,8 @@ msgstr ""
#: options.php:409 #: options.php:409
msgid "" msgid ""
"The source address of the video, the address is spliced below the video name, the slash is not " "The source address of the video, the address is spliced below the video "
"required at the end of the address" "name, the slash is not required at the end of the address"
msgstr "" msgstr ""
#: options.php:415 #: options.php:415
@ -844,8 +851,9 @@ msgstr ""
#: options.php:416 #: options.php:416
msgid "" msgid ""
"abc.mp4, just fill in the video file name abc, multiple videos separated by commas such as " "abc.mp4, just fill in the video file name abc, multiple videos separated by "
"abc, efg, do not care about the order, because the loading is random extraction" "commas such as abc, efg, do not care about the order, because the loading is "
"random extraction"
msgstr "" msgstr ""
#: options.php:422 #: options.php:422
@ -854,8 +862,8 @@ msgstr ""
#: options.php:423 #: options.php:423
msgid "" msgid ""
"Leave this blank to use the built-in API (put the images that need to be randomly displayed " "Leave this blank to use the built-in API (put the images that need to be "
"into the /cover/gallery/ directory)" "randomly displayed into the /cover/gallery/ directory)"
msgstr "" msgstr ""
#: options.php:429 #: options.php:429
@ -886,7 +894,7 @@ msgstr ""
msgid "Whether to turn on the top-feature" msgid "Whether to turn on the top-feature"
msgstr "" msgstr ""
#: options.php:443 options.php:1031 #: options.php:443 options.php:1084
msgid "Default on" msgid "Default on"
msgstr "" msgstr ""
@ -908,8 +916,8 @@ msgstr ""
#: options.php:460 #: options.php:460
msgid "" msgid ""
"Default is Discovery, you can also change it to other, of course you can't use it as an " "Default is Discovery, you can also change it to other, of course you can't "
"advertisement!Not allowed!!" "use it as an advertisement!Not allowed!!"
msgstr "" msgstr ""
#: options.php:467 #: options.php:467
@ -1040,7 +1048,9 @@ msgid "Tencent QQ"
msgstr "" msgstr ""
#: options.php:639 #: options.php:639
msgid "tencent://message/?uin={{QQ number}}. for example, tencent://message/?uin=123456" msgid ""
"tencent://message/?uin={{QQ number}}. for example, tencent://message/?"
"uin=123456"
msgstr "" msgstr ""
#: options.php:645 #: options.php:645
@ -1149,8 +1159,8 @@ msgstr ""
#: options.php:737 #: options.php:737
msgid "" msgid ""
"The name part of name@domain.com, only the frontend has js runtime environment can get the " "The name part of name@domain.com, only the frontend has js runtime "
"full address, you can rest assured to fill in" "environment can get the full address, you can rest assured to fill in"
msgstr "" msgstr ""
#: options.php:743 #: options.php:743
@ -1171,10 +1181,11 @@ msgstr ""
#: options.php:757 #: options.php:757
msgid "" msgid ""
"You can design the background panel (/wp-admin/) style yourself below, but before you start, " "You can design the background panel (/wp-admin/) style yourself below, but "
"please go to <a href=\"/wp-admin/profile.php\">here</a> to change the color scheme to custom." "before you start, please go to <a href=\"/wp-admin/profile.php\">here</a> to "
"(Custom).<br><b>Tip: </b>How to match colors? Maybe <a href=\"https://mashiro.top/color-thief/" "change the color scheme to custom.(Custom).<br><b>Tip: </b>How to match "
"\">this</a> can help you." "colors? Maybe <a href=\"https://mashiro.top/color-thief/\">this</a> can help "
"you."
msgstr "" msgstr ""
#: options.php:763 #: options.php:763
@ -1183,8 +1194,8 @@ msgstr ""
#: options.php:766 options.php:774 options.php:782 options.php:790 #: options.php:766 options.php:774 options.php:782 options.php:790
msgid "" msgid ""
"<i>(array) (optional)</i> An array of CSS color definitions which are used to give the user a " "<i>(array) (optional)</i> An array of CSS color definitions which are used "
"feel for the theme." "to give the user a feel for the theme."
msgstr "" msgstr ""
#: options.php:771 #: options.php:771
@ -1204,7 +1215,9 @@ msgid "Panel icon color——base"
msgstr "" msgstr ""
#: options.php:798 options.php:806 options.php:814 #: options.php:798 options.php:806 options.php:814
msgid "<i>(array) (optional)</i> An array of CSS color definitions used to color any SVG icons." msgid ""
"<i>(array) (optional)</i> An array of CSS color definitions used to color "
"any SVG icons."
msgstr "" msgstr ""
#: options.php:803 #: options.php:803
@ -1249,9 +1262,10 @@ msgstr ""
#: options.php:847 #: options.php:847
msgid "" msgid ""
"Forcibly do not use the background address to log in, fill in the new landing page address, " "Forcibly do not use the background address to log in, fill in the new "
"such as http://www.xxx.com/login [Note] Before you fill out, test your new page can be opened " "landing page address, such as http://www.xxx.com/login [Note] Before you "
"normally, so as not to enter the background or other problems happening" "fill out, test your new page can be opened normally, so as not to enter the "
"background or other problems happening"
msgstr "" msgstr ""
#: options.php:853 #: options.php:853
@ -1276,8 +1290,8 @@ msgstr ""
#: options.php:868 #: options.php:868
msgid "" msgid ""
"After checken, the administrator redirects to the background and the user redirects to the " "After checken, the administrator redirects to the background and the user "
"home page." "redirects to the home page."
msgstr "" msgstr ""
#: options.php:874 #: options.php:874
@ -1298,9 +1312,9 @@ msgstr ""
#: options.php:887 #: options.php:887
msgid "" msgid ""
"Note: Fill in the format http(s)://your CDN domain name/. <br>In other words, the original " "Note: Fill in the format http(s)://your CDN domain name/. <br>In other "
"path is http://your.domain/wp-content/uploads/2018/05/xx.png and the picture will load from " "words, the original path is http://your.domain/wp-content/uploads/2018/05/xx."
"http://your CDN domain/2018/05/xx.png" "png and the picture will load from http://your CDN domain/2018/05/xx.png"
msgstr "" msgstr ""
#: options.php:893 #: options.php:893
@ -1316,7 +1330,9 @@ msgid "Use js and css file of the theme (sakura-app.js、style.css) locally"
msgstr "" msgstr ""
#: options.php:901 #: options.php:901
msgid "The js and css files of the theme do not load from jsDelivr, please open when DIY" msgid ""
"The js and css files of the theme do not load from jsDelivr, please open "
"when DIY"
msgstr "" msgstr ""
#: options.php:908 #: options.php:908
@ -1341,8 +1357,9 @@ msgstr ""
#: options.php:932 #: options.php:932
msgid "" msgid ""
"If you don't need the player just leave it blank.Fill in the \"song list\" ID of Netease Cloud " "If you don't need the player just leave it blank.Fill in the \"song list\" "
"Music, eg: https://music.163.com/#/playlist?id=2288037900 The ID is 2288037900" "ID of Netease Cloud Music, eg: https://music.163.com/#/playlist?"
"id=2288037900 The ID is 2288037900"
msgstr "" msgstr ""
#: options.php:938 #: options.php:938
@ -1350,7 +1367,8 @@ msgid "Version Control"
msgstr "" msgstr ""
#: options.php:939 #: options.php:939
msgid "Used to update frontend cookies and browser caches, any string can be used" msgid ""
"Used to update frontend cookies and browser caches, any string can be used"
msgstr "" msgstr ""
#: options.php:945 #: options.php:945
@ -1365,7 +1383,7 @@ msgstr ""
msgid "Enable NProgress progress bar" msgid "Enable NProgress progress bar"
msgstr "" msgstr ""
#: options.php:960 options.php:953 #: options.php:953 options.php:960
msgid "Default off, check on" msgid "Default off, check on"
msgstr "" msgstr ""
@ -1379,8 +1397,8 @@ msgstr ""
#: options.php:967 #: options.php:967
msgid "" msgid ""
"Announcement content, the text exceeds 142 bytes will be scrolled display (mobile device is " "Announcement content, the text exceeds 142 bytes will be scrolled display "
"invalid)" "(mobile device is invalid)"
msgstr "" msgstr ""
#: options.php:973 #: options.php:973
@ -1400,7 +1418,8 @@ msgid "Statistics Interface"
msgstr "" msgstr ""
#: options.php:992 #: options.php:992
msgid "WP-Statistics plugin (Professional statistics, can exclude invalid access)" msgid ""
"WP-Statistics plugin (Professional statistics, can exclude invalid access)"
msgstr "" msgstr ""
#: options.php:993 #: options.php:993
@ -1428,124 +1447,206 @@ msgid "23k Views (chinese)"
msgstr "" msgstr ""
#: options.php:1009 #: options.php:1009
msgid "Enable live search" msgid "Comment image upload API"
msgstr "" msgstr ""
#: options.php:1010 #: options.php:1014
msgid "" msgid "Imgur (https://imgur.com)"
"Real-time search in the foreground, call the Rest API to update the cache every hour, you can " msgstr ""
"manually set the cache time in functions.php"
#: options.php:1015
msgid "SM.MS (https://sm.ms)"
msgstr "" msgstr ""
#: options.php:1016 #: options.php:1016
msgid "Chevereto (https://chevereto.com)"
msgstr ""
#: options.php:1020
msgid "Imgur Client ID"
msgstr ""
#: options.php:1021
msgid ""
"Register your application <a href=\"https://api.imgur.com/oauth2/addclient"
"\">here</a>, note we only need the Client ID here."
msgstr ""
#: options.php:1027
msgid "SM.MS Secret Token"
msgstr ""
#: options.php:1028
msgid ""
"Register your application <a href=\"https://sm.ms/home/apitoken\">here</a>."
msgstr ""
#: options.php:1034
msgid "Chevereto API v1 key"
msgstr ""
#: options.php:1035
msgid "Get your API key here "
msgstr ""
#: options.php:1041
msgid "Chevereto URL"
msgstr ""
#: options.php:1042
msgid ""
"Your Chevereto homepage url, no slash in the end, eg. https://your.cherverto."
"com"
msgstr ""
#: options.php:1048
msgid "Comment images proxy"
msgstr ""
#: options.php:1049
msgid ""
"A front-ed proxy for the uploaded images. Leave it blank if you do not need."
msgstr ""
#: options.php:1055
msgid "Imgur upload proxy"
msgstr ""
#: options.php:1056
msgid ""
"A back-ed proxy to upload images. You may set a self hosted proxy with "
"Nginx, following my <a href=\"https://2heng.xin/2018/06/06/javascript-upload-"
"images-with-imgur-api/\">turtal</a>. This feature is mainly for Chinese who "
"cannot access to Imgur due to the GFW. The default and official setting is "
"【<a href=\"https://api.imgur.com/3/image/\">https://api.imgur.com/3/image/</"
"a>】"
msgstr ""
#: options.php:1062
msgid "Enable live search"
msgstr ""
#: options.php:1063
msgid ""
"Real-time search in the foreground, call the Rest API to update the cache "
"every hour, you can manually set the cache time in functions.php"
msgstr ""
#: options.php:1069
msgid "Include comments in live search" msgid "Include comments in live search"
msgstr "" msgstr ""
#: options.php:1017 #: options.php:1070
msgid "" msgid ""
"Search for comments in real-time search (not recommended if there are too many comments on the " "Search for comments in real-time search (not recommended if there are too "
"site)" "many comments on the site)"
msgstr "" msgstr ""
#: options.php:1023 #: options.php:1076
msgid "Enable baguetteBox" msgid "Enable baguetteBox"
msgstr "" msgstr ""
#: options.php:1024 #: options.php:1077
msgid "" msgid ""
"Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">please read wiki</a>" "Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox"
"\">please read wiki</a>"
msgstr "" msgstr ""
#: options.php:1030 #: options.php:1083
msgid "Enable lazyload in posts" msgid "Enable lazyload in posts"
msgstr "" msgstr ""
#: options.php:1037 #: options.php:1090
msgid "lazyload spinner" msgid "lazyload spinner"
msgstr "" msgstr ""
#: options.php:1038 #: options.php:1091
msgid "The placeholder to display when the image loads, fill in the image url" msgid "The placeholder to display when the image loads, fill in the image url"
msgstr "" msgstr ""
#: options.php:1044 #: options.php:1097
msgid "Whether to enable the clipboard copyright" msgid "Whether to enable the clipboard copyright"
msgstr "" msgstr ""
#: options.php:1045 #: options.php:1098
msgid "" msgid ""
"Automatically add a copyright to the clipboard when copying more than 30 bytes, which is " "Automatically add a copyright to the clipboard when copying more than 30 "
"enabled by default." "bytes, which is enabled by default."
msgstr "" msgstr ""
#: options.php:1051 #: options.php:1104
msgid "Email address prefix" msgid "Email address prefix"
msgstr "" msgstr ""
#: options.php:1052 #: options.php:1105
msgid "" msgid ""
"For sending system mail, the sender address displayed in the user's mailbox, do not use " "For sending system mail, the sender address displayed in the user's mailbox, "
"Chinese, the default system email address is bibi@your_domain_name" "do not use Chinese, the default system email address is bibi@your_domain_name"
msgstr "" msgstr ""
#: options.php:1058 #: options.php:1111
msgid "Comments reply notification" msgid "Comments reply notification"
msgstr "" msgstr ""
#: options.php:1059 #: options.php:1112
msgid "" msgid ""
"WordPress will use email to notify users when their comments receive a reply by default. Tick " "WordPress will use email to notify users when their comments receive a reply "
"this item allows users to set their own comments reply notification" "by default. Tick this item allows users to set their own comments reply "
"notification"
msgstr "" msgstr ""
#: options.php:1065 #: options.php:1118
msgid "Administrator comment notification" msgid "Administrator comment notification"
msgstr "" msgstr ""
#: options.php:1066 #: options.php:1119
msgid "Whether to use email notification when the administrator's comments receive a reply" msgid ""
"Whether to use email notification when the administrator's comments receive "
"a reply"
msgstr "" msgstr ""
#: options.php:1072 #: options.php:1125
msgid "Enable private comment" msgid "Enable private comment"
msgstr "" msgstr ""
#: options.php:1073 #: options.php:1126
msgid "Allow users to set their own comments to be invisible to others" msgid "Allow users to set their own comments to be invisible to others"
msgstr "" msgstr ""
#: options.php:1079 #: options.php:1132
msgid "Human verification" msgid "Human verification"
msgstr "" msgstr ""
#: options.php:1080 #: options.php:1133
msgid "Enable human verification" msgid "Enable human verification"
msgstr "" msgstr ""
#: options.php:1086 #: options.php:1139
msgid "Comment UA infomation" msgid "Comment UA infomation"
msgstr "" msgstr ""
#: options.php:1087 #: options.php:1140
msgid "Check to enable, display the user's browser, operating system information" msgid ""
"Check to enable, display the user's browser, operating system information"
msgstr "" msgstr ""
#: options.php:1093 #: options.php:1146
msgid "Enable disqus" msgid "Enable disqus"
msgstr "" msgstr ""
#: options.php:1094 #: options.php:1147
msgid "Enable disqus for comment" msgid "Enable disqus for comment"
msgstr "" msgstr ""
#: options.php:1100 #: options.php:1153
msgid "Time Zone adjustment" msgid "Time Zone adjustment"
msgstr "" msgstr ""
#: options.php:1101 #: options.php:1154
msgid "" msgid ""
"If the comment has a time difference problem adjust here, fill in an integer, the calculation " "If the comment has a time difference problem adjust here, fill in an "
"method: actual_time = display_error_time - the_integer_you_entered (unit: hour)" "integer, the calculation method: actual_time = display_error_time - "
"the_integer_you_entered (unit: hour)"
msgstr "" msgstr ""
#: search.php:19 #: search.php:19
@ -1557,15 +1658,18 @@ msgstr "Search result: %s"
msgid "NOTHING" msgid "NOTHING"
msgstr "" msgstr ""
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53
#: tpl/content.php:34
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53
#: tpl/content.php:34
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
#: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content.php:37 tpl/content-thumb.php:52 #: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content-thumb.php:52
#: tpl/content.php:37
msgid "Hit" msgid "Hit"
msgid_plural "Hits" msgid_plural "Hits"
msgstr[0] "" msgstr[0] ""
@ -1577,7 +1681,8 @@ msgstr ""
#: tpl/content-none.php:21 #: tpl/content-none.php:21
#, php-format #, php-format
msgid "Ready to post your first article? <a href=\"%1$s\">Click here to start</a>." msgid ""
"Ready to post your first article? <a href=\"%1$s\">Click here to start</a>."
msgstr "" msgstr ""
#: tpl/content-none.php:25 #: tpl/content-none.php:25
@ -1600,10 +1705,11 @@ msgstr ""
msgid "Remember Me" msgid "Remember Me"
msgstr "" msgstr ""
#: user/page-register.php:14 user/page-register.php:16 user/page-register.php:19 #: user/page-register.php:14 user/page-register.php:16
#: user/page-register.php:24 user/page-register.php:26 user/page-register.php:29 #: user/page-register.php:19 user/page-register.php:24
#: user/page-register.php:34 user/page-register.php:36 user/page-register.php:41 #: user/page-register.php:26 user/page-register.php:29
#: user/page-register.php:47 #: user/page-register.php:34 user/page-register.php:36
#: user/page-register.php:41 user/page-register.php:47
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -1716,7 +1822,9 @@ msgstr ""
#~ msgstr "\"Switch theme button\" transparency" #~ msgstr "\"Switch theme button\" transparency"
#~ msgid "调整切换主题菜单透明度,值越小越透明,默认透明度0.8" #~ msgid "调整切换主题菜单透明度,值越小越透明,默认透明度0.8"
#~ msgstr "The smaller the value, the more transparent, the default transparency is 0.8" #~ msgstr ""
#~ "The smaller the value, the more transparent, the default transparency is "
#~ "0.8"
#~ msgid "全透明" #~ msgid "全透明"
#~ msgstr "Fully transparent 0" #~ msgstr "Fully transparent 0"

View File

@ -3,14 +3,14 @@ msgid ""
msgstr "" msgstr ""
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
"Project-Id-Version: Sakura\n" "Project-Id-Version: Sakura\n"
"POT-Creation-Date: 2019-11-01 22:45+0800\n" "POT-Creation-Date: 2019-11-14 19:18+0800\n"
"PO-Revision-Date: 2019-11-01 14:27+0800\n" "PO-Revision-Date: 2019-11-01 14:27+0800\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n" "X-Generator: Poedit 2.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"X-Poedit-Flags-xgettext: --add-comments=translators:\n" "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
"X-Poedit-WPHeader: style.css\n" "X-Poedit-WPHeader: style.css\n"
@ -55,7 +55,6 @@ msgid " comment"
msgstr "" msgstr ""
#: comments.php:22 comments.php:27 #: comments.php:22 comments.php:27
#, php-format
msgid " comments" msgid " comments"
msgstr "" msgstr ""
@ -139,77 +138,77 @@ msgstr ""
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: functions.php:53 #: functions.php:52
msgid "Nav Menus" msgid "Nav Menus"
msgstr "" msgstr ""
#: functions.php:387 inc/theme_plus.php:187 layouts/authorprofile.php:11 options.php:123 #: functions.php:388 inc/theme_plus.php:187 layouts/authorprofile.php:11 options.php:123
msgid "Author" msgid "Author"
msgstr "" msgstr ""
#: functions.php:387 #: functions.php:388
msgid "Blogger" msgid "Blogger"
msgstr "" msgstr ""
#: functions.php:391 #: functions.php:392
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: functions.php:395 #: functions.php:396
msgid "Private" msgid "Private"
msgstr "" msgstr ""
#: functions.php:397 #: functions.php:398
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
#: functions.php:399 #: functions.php:400
msgid "No" msgid "No"
msgstr "" msgstr ""
#: functions.php:402 #: functions.php:403
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: functions.php:483 #: functions.php:484
msgid "" msgid ""
"Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/\" target=\"_blank" "Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/\" target=\"_blank"
"\">WP-Statistics</a>" "\">WP-Statistics</a>"
msgstr "" msgstr ""
#: functions.php:536 #: functions.php:537
msgid "This guy is so lazy ╮(╯▽╰)╭" msgid "This guy is so lazy ╮(╯▽╰)╭"
msgstr "" msgstr ""
#: functions.php:1257 #: functions.php:1258
msgid "All expand/collapse" msgid "All expand/collapse"
msgstr "" msgstr ""
#: functions.php:1272 #: functions.php:1273
msgid " post(s)" msgid " post(s)"
msgstr "" msgstr ""
#: functions.php:1294 functions.php:1297 inc/theme_plus.php:479 #: functions.php:1295 functions.php:1298 inc/theme_plus.php:479
msgid "Dashboard" msgid "Dashboard"
msgstr "" msgstr ""
#: functions.php:1510 #: functions.php:1511
msgid "<b>ERROR</b>: This email domain (<b>@" msgid "<b>ERROR</b>: This email domain (<b>@"
msgstr "" msgstr ""
#: functions.php:1590 #: functions.php:1591
msgid "QQ" msgid "QQ"
msgstr "" msgstr ""
#: functions.php:1667 inc/theme_plus.php:726
msgid "The comment is private"
msgstr ""
#: header.php:35 #: header.php:35
#, php-format #, php-format
msgid "page %s " msgid "page %s "
msgstr "" msgstr ""
#: inc/api.php:241 inc/theme_plus.php:728
msgid "The comment is private"
msgstr ""
#: inc/categories-images.php:45 inc/categories-images.php:66 #: inc/categories-images.php:45 inc/categories-images.php:66
msgid "category/tag image" msgid "category/tag image"
msgstr "" msgstr ""
@ -886,7 +885,7 @@ msgstr ""
msgid "Whether to turn on the top-feature" msgid "Whether to turn on the top-feature"
msgstr "" msgstr ""
#: options.php:443 options.php:1031 #: options.php:443 options.php:1084
msgid "Default on" msgid "Default on"
msgstr "" msgstr ""
@ -1363,7 +1362,7 @@ msgstr ""
msgid "Enable NProgress progress bar" msgid "Enable NProgress progress bar"
msgstr "" msgstr ""
#: options.php:960 options.php:953 #: options.php:953 options.php:960
msgid "Default off, check on" msgid "Default off, check on"
msgstr "" msgstr ""
@ -1426,121 +1425,192 @@ msgid "23k Views (chinese)"
msgstr "" msgstr ""
#: options.php:1009 #: options.php:1009
msgid "Comment image upload API"
msgstr ""
#: options.php:1014
msgid "Imgur (https://imgur.com)"
msgstr ""
#: options.php:1015
msgid "SM.MS (https://sm.ms)"
msgstr ""
#: options.php:1016
msgid "Chevereto (https://chevereto.com)"
msgstr ""
#: options.php:1020
msgid "Imgur Client ID"
msgstr ""
#: options.php:1021
msgid ""
"Register your application <a href=\"https://api.imgur.com/oauth2/addclient\">here</a>, note we "
"only need the Client ID here."
msgstr ""
#: options.php:1027
msgid "SM.MS Secret Token"
msgstr ""
#: options.php:1028
msgid "Register your application <a href=\"https://sm.ms/home/apitoken\">here</a>."
msgstr ""
#: options.php:1034
msgid "Chevereto API v1 key"
msgstr ""
#: options.php:1035
msgid "Get your API key here "
msgstr ""
#: options.php:1041
msgid "Chevereto URL"
msgstr ""
#: options.php:1042
msgid "Your Chevereto homepage url, no slash in the end, eg. https://your.cherverto.com"
msgstr ""
#: options.php:1048
msgid "Comment images proxy"
msgstr ""
#: options.php:1049
msgid "A front-ed proxy for the uploaded images. Leave it blank if you do not need."
msgstr ""
#: options.php:1055
msgid "Imgur upload proxy"
msgstr ""
#: options.php:1056
msgid ""
"A back-ed proxy to upload images. You may set a self hosted proxy with Nginx, following my <a "
"href=\"https://2heng.xin/2018/06/06/javascript-upload-images-with-imgur-api/\">turtal</a>. "
"This feature is mainly for Chinese who cannot access to Imgur due to the GFW. The default and "
"official setting is 【<a href=\"https://api.imgur.com/3/image/\">https://api.imgur.com/3/image/"
"</a>】"
msgstr ""
#: options.php:1062
msgid "Enable live search" msgid "Enable live search"
msgstr "" msgstr ""
#: options.php:1010 #: options.php:1063
msgid "" msgid ""
"Real-time search in the foreground, call the Rest API to update the cache every hour, you can " "Real-time search in the foreground, call the Rest API to update the cache every hour, you can "
"manually set the cache time in functions.php" "manually set the cache time in functions.php"
msgstr "" msgstr ""
#: options.php:1016 #: options.php:1069
msgid "Include comments in live search" msgid "Include comments in live search"
msgstr "" msgstr ""
#: options.php:1017 #: options.php:1070
msgid "" msgid ""
"Search for comments in real-time search (not recommended if there are too many comments on the " "Search for comments in real-time search (not recommended if there are too many comments on the "
"site)" "site)"
msgstr "" msgstr ""
#: options.php:1023 #: options.php:1076
msgid "Enable baguetteBox" msgid "Enable baguetteBox"
msgstr "" msgstr ""
#: options.php:1024 #: options.php:1077
msgid "" msgid ""
"Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">please read wiki</a>" "Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">please read wiki</a>"
msgstr "" msgstr ""
#: options.php:1030 #: options.php:1083
msgid "Enable lazyload in posts" msgid "Enable lazyload in posts"
msgstr "" msgstr ""
#: options.php:1037 #: options.php:1090
msgid "lazyload spinner" msgid "lazyload spinner"
msgstr "" msgstr ""
#: options.php:1038 #: options.php:1091
msgid "The placeholder to display when the image loads, fill in the image url" msgid "The placeholder to display when the image loads, fill in the image url"
msgstr "" msgstr ""
#: options.php:1044 #: options.php:1097
msgid "Whether to enable the clipboard copyright" msgid "Whether to enable the clipboard copyright"
msgstr "" msgstr ""
#: options.php:1045 #: options.php:1098
msgid "" msgid ""
"Automatically add a copyright to the clipboard when copying more than 30 bytes, which is " "Automatically add a copyright to the clipboard when copying more than 30 bytes, which is "
"enabled by default." "enabled by default."
msgstr "" msgstr ""
#: options.php:1051 #: options.php:1104
msgid "Email address prefix" msgid "Email address prefix"
msgstr "" msgstr ""
#: options.php:1052 #: options.php:1105
msgid "" msgid ""
"For sending system mail, the sender address displayed in the user's mailbox, do not use " "For sending system mail, the sender address displayed in the user's mailbox, do not use "
"Chinese, the default system email address is bibi@your_domain_name" "Chinese, the default system email address is bibi@your_domain_name"
msgstr "" msgstr ""
#: options.php:1058 #: options.php:1111
msgid "Comments reply notification" msgid "Comments reply notification"
msgstr "" msgstr ""
#: options.php:1059 #: options.php:1112
msgid "" msgid ""
"WordPress will use email to notify users when their comments receive a reply by default. Tick " "WordPress will use email to notify users when their comments receive a reply by default. Tick "
"this item allows users to set their own comments reply notification" "this item allows users to set their own comments reply notification"
msgstr "" msgstr ""
#: options.php:1065 #: options.php:1118
msgid "Administrator comment notification" msgid "Administrator comment notification"
msgstr "" msgstr ""
#: options.php:1066 #: options.php:1119
msgid "Whether to use email notification when the administrator's comments receive a reply" msgid "Whether to use email notification when the administrator's comments receive a reply"
msgstr "" msgstr ""
#: options.php:1072 #: options.php:1125
msgid "Enable private comment" msgid "Enable private comment"
msgstr "" msgstr ""
#: options.php:1073 #: options.php:1126
msgid "Allow users to set their own comments to be invisible to others" msgid "Allow users to set their own comments to be invisible to others"
msgstr "" msgstr ""
#: options.php:1079 #: options.php:1132
msgid "Human verification" msgid "Human verification"
msgstr "" msgstr ""
#: options.php:1080 #: options.php:1133
msgid "Enable human verification" msgid "Enable human verification"
msgstr "" msgstr ""
#: options.php:1086 #: options.php:1139
msgid "Comment UA infomation" msgid "Comment UA infomation"
msgstr "" msgstr ""
#: options.php:1087 #: options.php:1140
msgid "Check to enable, display the user's browser, operating system information" msgid "Check to enable, display the user's browser, operating system information"
msgstr "" msgstr ""
#: options.php:1093 #: options.php:1146
msgid "Enable disqus" msgid "Enable disqus"
msgstr "" msgstr ""
#: options.php:1094 #: options.php:1147
msgid "Enable disqus for comment" msgid "Enable disqus for comment"
msgstr "" msgstr ""
#: options.php:1100 #: options.php:1153
msgid "Time Zone adjustment" msgid "Time Zone adjustment"
msgstr "" msgstr ""
#: options.php:1101 #: options.php:1154
msgid "" msgid ""
"If the comment has a time difference problem adjust here, fill in an integer, the calculation " "If the comment has a time difference problem adjust here, fill in an integer, the calculation "
"method: actual_time = display_error_time - the_integer_you_entered (unit: hour)" "method: actual_time = display_error_time - the_integer_you_entered (unit: hour)"
@ -1555,15 +1625,15 @@ msgstr ""
msgid "NOTHING" msgid "NOTHING"
msgstr "" msgstr ""
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53 tpl/content.php:34
msgid "Comment" msgid "Comment"
msgstr "" msgstr ""
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53 tpl/content.php:34
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
#: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content.php:37 tpl/content-thumb.php:52 #: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content-thumb.php:52 tpl/content.php:37
msgid "Hit" msgid "Hit"
msgid_plural "Hits" msgid_plural "Hits"
msgstr[0] "" msgstr[0] ""

Binary file not shown.

View File

@ -1,23 +1,23 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Sakura\n" "Project-Id-Version: Sakura\n"
"POT-Creation-Date: 2019-11-01 15:07+0800\n" "POT-Creation-Date: 2019-11-14 19:18+0800\n"
"PO-Revision-Date: 2019-11-01 22:45+0800\n" "PO-Revision-Date: 2019-11-14 19:31+0800\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: zh_CN\n" "Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n" "X-Generator: Poedit 2.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-Flags-xgettext: --add-comments=translators:\n" "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
"X-Poedit-WPHeader: style.css\n" "X-Poedit-WPHeader: style.css\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;" "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;" "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
"__ngettext_noop:1,2\n" "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.js\n" "X-Poedit-SearchPathExcluded-0: *.js\n"
@ -55,7 +55,6 @@ msgid " comment"
msgstr " 条评论" msgstr " 条评论"
#: comments.php:22 comments.php:27 #: comments.php:22 comments.php:27
#, php-format
msgid " comments" msgid " comments"
msgstr " 条评论" msgstr " 条评论"
@ -137,84 +136,88 @@ msgstr "想要找点什么呢?"
#: footer.php:85 #: footer.php:85
msgid "Search" msgid "Search"
msgstr "" msgstr "搜索"
#: functions.php:53 #: functions.php:52
msgid "Nav Menus" msgid "Nav Menus"
msgstr "导航菜单" msgstr "导航菜单"
#: functions.php:387 inc/theme_plus.php:187 layouts/authorprofile.php:11 options.php:123 #: functions.php:388 inc/theme_plus.php:187 layouts/authorprofile.php:11
#: options.php:123
msgid "Author" msgid "Author"
msgstr "作者" msgstr "作者"
#: functions.php:387 #: functions.php:388
msgid "Blogger" msgid "Blogger"
msgstr "博主" msgstr "博主"
#: functions.php:391 #: functions.php:392
msgid "Location" msgid "Location"
msgstr "来自" msgstr "来自"
#: functions.php:395 #: functions.php:396
msgid "Private" msgid "Private"
msgstr "私密" msgstr "私密"
#: functions.php:397 #: functions.php:398
msgid "Yes" msgid "Yes"
msgstr "是" msgstr "是"
#: functions.php:399 #: functions.php:400
msgid "No" msgid "No"
msgstr "否" msgstr "否"
#: functions.php:402 #: functions.php:403
msgid "Edit" msgid "Edit"
msgstr "编辑" msgstr "编辑"
#: functions.php:483 #: functions.php:484
msgid "" msgid ""
"Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/\" target=\"_blank" "Please install pulgin <a href=\"https://wordpress.org/plugins/wp-statistics/"
"\">WP-Statistics</a>" "\" target=\"_blank\">WP-Statistics</a>"
msgstr "" msgstr ""
"请安装插件 <a href=\"https://wordpress.org/plugins/wp-statistics/\" target="
"\"_blank\">WP-Statistics</a>"
#: functions.php:536 #: functions.php:537
msgid "This guy is so lazy ╮(╯▽╰)╭" msgid "This guy is so lazy ╮(╯▽╰)╭"
msgstr "这家伙好懒╮(╯▽╰)╭" msgstr "这家伙好懒╮(╯▽╰)╭"
#: functions.php:1257 #: functions.php:1258
msgid "All expand/collapse" msgid "All expand/collapse"
msgstr "全部展开/收缩" msgstr "全部展开/收缩"
#: functions.php:1272 #: functions.php:1273
msgid " post(s)" msgid " post(s)"
msgstr " 篇文章" msgstr " 篇文章"
#: functions.php:1294 functions.php:1297 inc/theme_plus.php:479 #: functions.php:1295 functions.php:1298 inc/theme_plus.php:479
msgid "Dashboard" msgid "Dashboard"
msgstr "管理中心" msgstr "管理中心"
#: functions.php:1510 #: functions.php:1511
msgid "<b>ERROR</b>: This email domain (<b>@" msgid "<b>ERROR</b>: This email domain (<b>@"
msgstr "" msgstr ""
#: functions.php:1590 #: functions.php:1591
msgid "QQ" msgid "QQ"
msgstr "" msgstr ""
#: functions.php:1667 inc/theme_plus.php:726
msgid "The comment is private"
msgstr "该评论为私密评论"
#: header.php:35 #: header.php:35
#, php-format #, php-format
msgid "page %s " msgid "page %s "
msgstr "第 %s 页 " msgstr "第 %s 页 "
#: inc/api.php:241 inc/theme_plus.php:728
msgid "The comment is private"
msgstr "该评论为私密评论"
#: inc/categories-images.php:45 inc/categories-images.php:66 #: inc/categories-images.php:45 inc/categories-images.php:66
msgid "category/tag image" msgid "category/tag image"
msgstr "分类/标签图像" msgstr "分类/标签图像"
#: inc/categories-images.php:48 inc/categories-images.php:68 inc/categories-images.php:197 #: inc/categories-images.php:48 inc/categories-images.php:68
#: inc/categories-images.php:197
msgid "add image" msgid "add image"
msgstr "添加图像" msgstr "添加图像"
@ -323,7 +326,7 @@ msgstr "<span class=\"screen-reader-text\"> 在 %s</span>中留言"
#: inc/template-tags.php:72 tpl/content-page.php:35 #: inc/template-tags.php:72 tpl/content-page.php:35
#, php-format #, php-format
msgid "Edit %s" msgid "Edit %s"
msgstr "编辑" msgstr "编辑 %s"
#: inc/theme_plus.php:64 #: inc/theme_plus.php:64
msgid " days ago" msgid " days ago"
@ -389,8 +392,8 @@ msgstr "登出"
msgid "Sign out? " msgid "Sign out? "
msgstr "登出? " msgstr "登出? "
#: inc/theme_plus.php:299 inc/theme_plus.php:354 inc/theme_plus.php:422 tpl/content-single.php:16 #: inc/theme_plus.php:299 inc/theme_plus.php:354 inc/theme_plus.php:422
#: tpl/single-image.php:18 #: tpl/content-single.php:16 tpl/single-image.php:18
msgid "View" msgid "View"
msgid_plural "Views" msgid_plural "Views"
msgstr[0] "次阅读" msgstr[0] "次阅读"
@ -478,8 +481,8 @@ msgstr "切换主题菜单透明度"
#: options.php:139 #: options.php:139
msgid "" msgid ""
"Adjust the theme scheme menu transparency, the smaller the value, the more transparent. The " "Adjust the theme scheme menu transparency, the smaller the value, the more "
"default value is 0.8" "transparent. The default value is 0.8"
msgstr "调整切换主题菜单透明度值越小越透明。默认透明度0.8" msgstr "调整切换主题菜单透明度值越小越透明。默认透明度0.8"
#: options.php:144 #: options.php:144
@ -532,16 +535,18 @@ msgstr "切换网页背景"
#: options.php:159 #: options.php:159
msgid "" msgid ""
"The foreground switches the background of the webpage. There are 8 urls separated by commas. " "The foreground switches the background of the webpage. There are 8 urls "
"The order corresponds to the foreground scheme tool button position (the order of the buttons " "separated by commas. The order corresponds to the foreground scheme tool "
"is from left to right, top to bottom). If no background is needed, fill in the corresponding " "button position (the order of the buttons is from left to right, top to "
"position as none.<strong>Note: If the theme is updated from v3.2.3 and below, be sure to " "bottom). If no background is needed, fill in the corresponding position as "
"change the [Version Control] parameter under the [Other] tab of this configuration page to any " "none.<strong>Note: If the theme is updated from v3.2.3 and below, be sure to "
"new value!</strong>" "change the [Version Control] parameter under the [Other] tab of this "
"configuration page to any new value!</strong>"
msgstr "" msgstr ""
"前台切换网页背景共8个url使用英文逗号分隔顺序对应前台切换主题按钮位置按钮顺序从左至右" "前台切换网页背景共8个url使用英文逗号分隔顺序对应前台切换主题按钮位置"
"从上至下),如不需要背景则填写对应位置为none。<strong>注意如果主题是从v3.2.3及以下更新过来的," "(按钮顺序从左至右,从上至下),如不需要背景则填写对应位置为none。<strong>注"
"请务必将本配置页的【其他】标签下的【版本控制】参数修改为任意新值!</strong>" "意如果主题是从v3.2.3及以下更新过来的,请务必将本配置页的【其他】标签下的"
"【版本控制】参数修改为任意新值!</strong>"
#: options.php:165 #: options.php:165
msgid "Personal avatar" msgid "Personal avatar"
@ -557,12 +562,12 @@ msgstr "文字版LOGO"
#: options.php:172 #: options.php:172
msgid "" msgid ""
"The home page does not display the avatar above, but displays a paragraph of text (use the " "The home page does not display the avatar above, but displays a paragraph of "
"avatar above if left blank).The text is recommended not to be too long, about 16 bytes is " "text (use the avatar above if left blank).The text is recommended not to be "
"appropriate." "too long, about 16 bytes is appropriate."
msgstr "" msgstr ""
"首页不显示上方的头像,而是显示一段文字(此处留空则使用上方的头像)。文字建议不要过长16个字节" "首页不显示上方的头像,而是显示一段文字(此处留空则使用上方的头像)。文字建议"
"左右为宜。" "不要过长16个字节左右为宜。"
#: options.php:178 #: options.php:178
msgid "logo" msgid "logo"
@ -618,20 +623,21 @@ msgstr "头部装饰图"
#: options.php:220 #: options.php:220
msgid "" msgid ""
"Enable by default, check off, display on the article page, separate page and category page" "Enable by default, check off, display on the article page, separate page and "
"category page"
msgstr "默认开启,勾选关闭,显示在文章页面,独立页面以及分类页" msgstr "默认开启,勾选关闭,显示在文章页面,独立页面以及分类页"
#: options.php:226 #: options.php:226
msgid "Search button" msgid "Search button"
msgstr "搜索按钮" msgstr "搜索按钮"
#: options.php:231 options.php:279 options.php:572 options.php:582 options.php:592 #: options.php:231 options.php:279 options.php:572 options.php:582
#: options.php:602 #: options.php:592 options.php:602
msgid "Open" msgid "Open"
msgstr "启用" msgstr "启用"
#: options.php:232 options.php:280 options.php:573 options.php:583 options.php:593 #: options.php:232 options.php:280 options.php:573 options.php:583
#: options.php:603 #: options.php:593 options.php:603
msgid "Close" msgid "Close"
msgstr "关闭" msgstr "关闭"
@ -661,7 +667,8 @@ msgstr "方形"
#: options.php:256 #: options.php:256
msgid "" msgid ""
"Home article feature images alignment (only for graphic mode, default left and right alternate)" "Home article feature images alignment (only for graphic mode, default left "
"and right alternate)"
msgstr "首页文章特色图对齐方式(仅对图文风格生效,默认左右交替)" msgstr "首页文章特色图对齐方式(仅对图文风格生效,默认左右交替)"
#: options.php:261 #: options.php:261
@ -682,12 +689,12 @@ msgstr "默认文章特色图"
#: options.php:268 #: options.php:268
msgid "" msgid ""
"The default image displayed without the article feature image set, use random cover if left " "The default image displayed without the article feature image set, use "
"blank (the image to be displayed is placed in the /wp-content/themes/Sakura/feature/gallery/ " "random cover if left blank (the image to be displayed is placed in the /wp-"
"directory)" "content/themes/Sakura/feature/gallery/ directory)"
msgstr "" msgstr ""
"在未设置文章特色图的情况下展示的默认图像,留空则调用本地随机封面(要展示的图片放入 /wp-content/" "在未设置文章特色图的情况下展示的默认图像,留空则调用本地随机封面(要展示的图"
"themes/Sakura/feature/gallery/ 目录)" "片放入 /wp-content/themes/Sakura/feature/gallery/ 目录)"
#: options.php:274 #: options.php:274
msgid "Comment shrink" msgid "Comment shrink"
@ -719,7 +726,8 @@ msgstr "自动加载下一页"
#: options.php:302 #: options.php:302
msgid "" msgid ""
"(seconds) Set to automatically load the next page time, the default is not automatically loaded" "(seconds) Set to automatically load the next page time, the default is not "
"automatically loaded"
msgstr "(秒)设置自动加载下一页时间,默认不自动加载" msgstr "(秒)设置自动加载下一页时间,默认不自动加载"
#: options.php:307 #: options.php:307
@ -831,7 +839,9 @@ msgid "Live"
msgstr "" msgstr ""
#: options.php:402 #: options.php:402
msgid "Check to enable, the video will continue to play automatically, you need to enable Pjax" msgid ""
"Check to enable, the video will continue to play automatically, you need to "
"enable Pjax"
msgstr "选开启视频自动续播需要开启Pjax功能" msgstr "选开启视频自动续播需要开启Pjax功能"
#: options.php:408 #: options.php:408
@ -840,8 +850,8 @@ msgstr "视频地址"
#: options.php:409 #: options.php:409
msgid "" msgid ""
"The source address of the video, the address is spliced below the video name, the slash is not " "The source address of the video, the address is spliced below the video "
"required at the end of the address" "name, the slash is not required at the end of the address"
msgstr "视频的来源地址,该地址拼接下面的视频名,地址尾部不需要加斜杠" msgstr "视频的来源地址,该地址拼接下面的视频名,地址尾部不需要加斜杠"
#: options.php:415 #: options.php:415
@ -850,11 +860,12 @@ msgstr "视频名称"
#: options.php:416 #: options.php:416
msgid "" msgid ""
"abc.mp4, just fill in the video file name abc, multiple videos separated by commas such as " "abc.mp4, just fill in the video file name abc, multiple videos separated by "
"abc, efg, do not care about the order, because the loading is random extraction" "commas such as abc, efg, do not care about the order, because the loading is "
"random extraction"
msgstr "" msgstr ""
"abc.mp4 ,只需要填写视频文件名 abc 即可,多个用英文逗号隔开如 abc,efg ,无需在意顺序,因为加载" "abc.mp4 ,只需要填写视频文件名 abc 即可,多个用英文逗号隔开如 abc,efg ,无需"
"是随机的抽取的" "在意顺序,因为加载是随机的抽取的"
#: options.php:422 #: options.php:422
msgid "Cover image" msgid "Cover image"
@ -862,8 +873,8 @@ msgstr "封面图"
#: options.php:423 #: options.php:423
msgid "" msgid ""
"Leave this blank to use the built-in API (put the images that need to be randomly displayed " "Leave this blank to use the built-in API (put the images that need to be "
"into the /cover/gallery/ directory)" "randomly displayed into the /cover/gallery/ directory)"
msgstr "此处留空则使用内置API将需要随机展示的图片放入 /cover/gallery/ 目录)" msgstr "此处留空则使用内置API将需要随机展示的图片放入 /cover/gallery/ 目录)"
#: options.php:429 #: options.php:429
@ -894,7 +905,7 @@ msgstr "点点"
msgid "Whether to turn on the top-feature" msgid "Whether to turn on the top-feature"
msgstr "是否开启聚焦" msgstr "是否开启聚焦"
#: options.php:443 options.php:1031 #: options.php:443 options.php:1084
msgid "Default on" msgid "Default on"
msgstr "默认开启" msgstr "默认开启"
@ -916,8 +927,8 @@ msgstr "聚焦标题"
#: options.php:460 #: options.php:460
msgid "" msgid ""
"Default is Discovery, you can also change it to other, of course you can't use it as an " "Default is Discovery, you can also change it to other, of course you can't "
"advertisement!Not allowed!!" "use it as an advertisement!Not allowed!!"
msgstr "默认为聚焦,你也可以修改为其他,当然不能当广告用!不允许!!" msgstr "默认为聚焦,你也可以修改为其他,当然不能当广告用!不允许!!"
#: options.php:467 #: options.php:467
@ -1048,7 +1059,9 @@ msgid "Tencent QQ"
msgstr "腾讯QQ" msgstr "腾讯QQ"
#: options.php:639 #: options.php:639
msgid "tencent://message/?uin={{QQ number}}. for example, tencent://message/?uin=123456" msgid ""
"tencent://message/?uin={{QQ number}}. for example, tencent://message/?"
"uin=123456"
msgstr "tencent://message/?uin={{QQ号码}}如tencent://message/?uin=123456" msgstr "tencent://message/?uin={{QQ号码}}如tencent://message/?uin=123456"
#: options.php:645 #: options.php:645
@ -1157,9 +1170,11 @@ msgstr "邮箱-用户名"
#: options.php:737 #: options.php:737
msgid "" msgid ""
"The name part of name@domain.com, only the frontend has js runtime environment can get the " "The name part of name@domain.com, only the frontend has js runtime "
"full address, you can rest assured to fill in" "environment can get the full address, you can rest assured to fill in"
msgstr "name@domain.com 的 name 部分,前端仅具有 js 运行环境时才能获取完整地址,可放心填写" msgstr ""
"name@domain.com 的 name 部分,前端仅具有 js 运行环境时才能获取完整地址,可放"
"心填写"
#: options.php:743 #: options.php:743
msgid "Email-domain" msgid "Email-domain"
@ -1179,14 +1194,16 @@ msgstr "后台面板自定义配色方案"
#: options.php:757 #: options.php:757
msgid "" msgid ""
"You can design the background panel (/wp-admin/) style yourself below, but before you start, " "You can design the background panel (/wp-admin/) style yourself below, but "
"please go to <a href=\"/wp-admin/profile.php\">here</a> to change the color scheme to custom." "before you start, please go to <a href=\"/wp-admin/profile.php\">here</a> to "
"(Custom).<br><b>Tip: </b>How to match colors? Maybe <a href=\"https://mashiro.top/color-thief/" "change the color scheme to custom.(Custom).<br><b>Tip: </b>How to match "
"\">this</a> can help you." "colors? Maybe <a href=\"https://mashiro.top/color-thief/\">this</a> can help "
"you."
msgstr "" msgstr ""
"你可以在下面自行设计后台面板(/wp-admin/)样式,不过在开始之前请到<a href=\"/wp-admin/profile." "你可以在下面自行设计后台面板(/wp-admin/)样式,不过在开始之前请到<a href=\"/"
"php\">这里</a>将配色方案改为自定义Custom。<br><b>Tip: </b>如何搭配颜色?或许<a href=" "wp-admin/profile.php\">这里</a>将配色方案改为自定义Custom。<br><b>Tip: </"
"\"https://mashiro.top/color-thief/\">这个</a>可以帮到你。" "b>如何搭配颜色?或许<a href=\"https://mashiro.top/color-thief/\">这个</a>可以"
"帮到你。"
#: options.php:763 #: options.php:763
msgid "Panel main color A" msgid "Panel main color A"
@ -1194,8 +1211,8 @@ msgstr "面板主色调A"
#: options.php:766 options.php:774 options.php:782 options.php:790 #: options.php:766 options.php:774 options.php:782 options.php:790
msgid "" msgid ""
"<i>(array) (optional)</i> An array of CSS color definitions which are used to give the user a " "<i>(array) (optional)</i> An array of CSS color definitions which are used "
"feel for the theme." "to give the user a feel for the theme."
msgstr "" msgstr ""
#: options.php:771 #: options.php:771
@ -1215,7 +1232,9 @@ msgid "Panel icon color——base"
msgstr "面板图标配色——base" msgstr "面板图标配色——base"
#: options.php:798 options.php:806 options.php:814 #: options.php:798 options.php:806 options.php:814
msgid "<i>(array) (optional)</i> An array of CSS color definitions used to color any SVG icons." msgid ""
"<i>(array) (optional)</i> An array of CSS color definitions used to color "
"any SVG icons."
msgstr "" msgstr ""
#: options.php:803 #: options.php:803
@ -1260,12 +1279,14 @@ msgstr "指定登录地址"
#: options.php:847 #: options.php:847
msgid "" msgid ""
"Forcibly do not use the background address to log in, fill in the new landing page address, " "Forcibly do not use the background address to log in, fill in the new "
"such as http://www.xxx.com/login [Note] Before you fill out, test your new page can be opened " "landing page address, such as http://www.xxx.com/login [Note] Before you "
"normally, so as not to enter the background or other problems happening" "fill out, test your new page can be opened normally, so as not to enter the "
"background or other problems happening"
msgstr "" msgstr ""
"强制不使用后台地址登陆,填写新建的登陆页面地址,比如 http://www.xxx.com/login【注意】填写前先测" "强制不使用后台地址登陆,填写新建的登陆页面地址,比如 http://www.xxx.com/"
"试下你新建的页面是可以正常打开的,以免造成无法进入后台等情况" "login【注意】填写前先测试下你新建的页面是可以正常打开的以免造成无法进入后台"
"等情况"
#: options.php:853 #: options.php:853
msgid "Specify registered address" msgid "Specify registered address"
@ -1289,8 +1310,8 @@ msgstr "登录后自动跳转"
#: options.php:868 #: options.php:868
msgid "" msgid ""
"After checken, the administrator redirects to the background and the user redirects to the " "After checken, the administrator redirects to the background and the user "
"home page." "redirects to the home page."
msgstr "勾选开启,管理员跳转至后台,用户跳转至主页。" msgstr "勾选开启,管理员跳转至后台,用户跳转至主页。"
#: options.php:874 #: options.php:874
@ -1311,12 +1332,13 @@ msgstr "图片库"
#: options.php:887 #: options.php:887
msgid "" msgid ""
"Note: Fill in the format http(s)://your CDN domain name/. <br>In other words, the original " "Note: Fill in the format http(s)://your CDN domain name/. <br>In other "
"path is http://your.domain/wp-content/uploads/2018/05/xx.png and the picture will load from " "words, the original path is http://your.domain/wp-content/uploads/2018/05/xx."
"http://your CDN domain/2018/05/xx.png" "png and the picture will load from http://your CDN domain/2018/05/xx.png"
msgstr "" msgstr ""
"注意:填写格式为 http(s)://你的CDN域名/。<br>也就是说,原路径为 http://your.domain/wp-content/" "注意:填写格式为 http(s)://你的CDN域名/。<br>也就是说,原路径为 http://your."
"uploads/2018/05/xx.png 的图片将从 http://你的CDN域名/2018/05/xx.png 加载" "domain/wp-content/uploads/2018/05/xx.png 的图片将从 http://你的CDN域"
"名/2018/05/xx.png 加载"
#: options.php:893 #: options.php:893
msgid "Use the front-end library locally (lib.js、lib.css)" msgid "Use the front-end library locally (lib.js、lib.css)"
@ -1331,7 +1353,9 @@ msgid "Use js and css file of the theme (sakura-app.js、style.css) locally"
msgstr "本地调用主题 js、css 文件sakura-app.js、style.css" msgstr "本地调用主题 js、css 文件sakura-app.js、style.css"
#: options.php:901 #: options.php:901
msgid "The js and css files of the theme do not load from jsDelivr, please open when DIY" msgid ""
"The js and css files of the theme do not load from jsDelivr, please open "
"when DIY"
msgstr "主题的 js、css 文件不走 jsDelivrDIY 时请开启" msgstr "主题的 js、css 文件不走 jsDelivrDIY 时请开启"
#: options.php:908 #: options.php:908
@ -1356,18 +1380,20 @@ msgstr "页脚悬浮播放器"
#: options.php:932 #: options.php:932
msgid "" msgid ""
"If you don't need the player just leave it blank.Fill in the \"song list\" ID of Netease Cloud " "If you don't need the player just leave it blank.Fill in the \"song list\" "
"Music, eg: https://music.163.com/#/playlist?id=2288037900 The ID is 2288037900" "ID of Netease Cloud Music, eg: https://music.163.com/#/playlist?"
"id=2288037900 The ID is 2288037900"
msgstr "" msgstr ""
"如果不需要播放器留空即可。填写网易云音乐的「歌单」IDeghttps://music.163.com/#/playlist?" "如果不需要播放器留空即可。填写网易云音乐的「歌单」IDeghttps://music.163."
"id=2288037900的ID是2288037900" "com/#/playlist?id=2288037900的ID是2288037900"
#: options.php:938 #: options.php:938
msgid "Version Control" msgid "Version Control"
msgstr "版本控制" msgstr "版本控制"
#: options.php:939 #: options.php:939
msgid "Used to update frontend cookies and browser caches, any string can be used" msgid ""
"Used to update frontend cookies and browser caches, any string can be used"
msgstr "用于更新前端 cookie 及浏览器缓存,可使用任意字符串" msgstr "用于更新前端 cookie 及浏览器缓存,可使用任意字符串"
#: options.php:945 #: options.php:945
@ -1382,7 +1408,7 @@ msgstr "原理与Ajax相同"
msgid "Enable NProgress progress bar" msgid "Enable NProgress progress bar"
msgstr "开启NProgress加载进度条" msgstr "开启NProgress加载进度条"
#: options.php:960 options.php:953 #: options.php:953 options.php:960
msgid "Default off, check on" msgid "Default off, check on"
msgstr "默认不开启,勾选开启" msgstr "默认不开启,勾选开启"
@ -1396,11 +1422,11 @@ msgstr "公告内容"
#: options.php:967 #: options.php:967
msgid "" msgid ""
"Announcement content, the text exceeds 142 bytes will be scrolled display (mobile device is " "Announcement content, the text exceeds 142 bytes will be scrolled display "
"invalid)" "(mobile device is invalid)"
msgstr "" msgstr ""
"公告内容文字超出142个字节将会被滚动显示移动端无效一个汉字 = 3字节个字母 = 1字节" "公告内容文字超出142个字节将会被滚动显示移动端无效一个汉字 = 3字节一"
"己计算吧" "个字母 = 1字节己计算吧"
#: options.php:973 #: options.php:973
msgid "The categories of articles that don\\t not show on homepage" msgid "The categories of articles that don\\t not show on homepage"
@ -1419,7 +1445,8 @@ msgid "Statistics Interface"
msgstr "统计接口" msgstr "统计接口"
#: options.php:992 #: options.php:992
msgid "WP-Statistics plugin (Professional statistics, can exclude invalid access)" msgid ""
"WP-Statistics plugin (Professional statistics, can exclude invalid access)"
msgstr "WP-Statistics 插件(专业性统计,可排除无效访问)" msgstr "WP-Statistics 插件(专业性统计,可排除无效访问)"
#: options.php:993 #: options.php:993
@ -1447,132 +1474,225 @@ msgid "23k Views (chinese)"
msgstr "23k 次访问(中式)" msgstr "23k 次访问(中式)"
#: options.php:1009 #: options.php:1009
msgid "Comment image upload API"
msgstr "评论上传图片接口"
#: options.php:1014
msgid "Imgur (https://imgur.com)"
msgstr ""
#: options.php:1015
msgid "SM.MS (https://sm.ms)"
msgstr ""
#: options.php:1016
msgid "Chevereto (https://chevereto.com)"
msgstr ""
#: options.php:1020
msgid "Imgur Client ID"
msgstr ""
#: options.php:1021
msgid ""
"Register your application <a href=\"https://api.imgur.com/oauth2/addclient"
"\">here</a>, note we only need the Client ID here."
msgstr ""
"在<a href=\"https://api.imgur.com/oauth2/addclient\">这里</a>注册你的 "
"application , 注意此处只需要填写 Client ID."
#: options.php:1027
msgid "SM.MS Secret Token"
msgstr ""
#: options.php:1028
msgid ""
"Register your application <a href=\"https://sm.ms/home/apitoken\">here</a>."
msgstr "在<a href=\"https://sm.ms/home/apitoken\">这里</a>获取 key."
#: options.php:1034
msgid "Chevereto API v1 key"
msgstr ""
#: options.php:1035
msgid "Get your API key here "
msgstr "在这里获取你的 API key"
#: options.php:1041
msgid "Chevereto URL"
msgstr ""
#: options.php:1042
msgid ""
"Your Chevereto homepage url, no slash in the end, eg. https://your.cherverto."
"com"
msgstr ""
"你的 Chevereto 首页 url, 注意结尾没有 /, 例如https://your.cherverto.com"
#: options.php:1048
msgid "Comment images proxy"
msgstr "评论图片代理"
#: options.php:1049
msgid ""
"A front-ed proxy for the uploaded images. Leave it blank if you do not need."
msgstr "前端显示的图片的代理"
#: options.php:1055
msgid "Imgur upload proxy"
msgstr "Imgur 上传代理"
#: options.php:1056
msgid ""
"A back-ed proxy to upload images. You may set a self hosted proxy with "
"Nginx, following my <a href=\"https://2heng.xin/2018/06/06/javascript-upload-"
"images-with-imgur-api/\">turtal</a>. This feature is mainly for Chinese who "
"cannot access to Imgur due to the GFW. The default and official setting is "
"【<a href=\"https://api.imgur.com/3/image/\">https://api.imgur.com/3/image/</"
"a>】"
msgstr ""
"后端上传图片到 Imgur 的时候使用的代理。你可以参考我的<a href=\"https://2heng."
"xin/2018/06/06/javascript-upload-images-with-imgur-api/\">教程</a>,借助 "
"Nginx 部署自己的代理。目前 Imgur 在国内处于被墙状态,国内服务器上传和浏览器前"
"端显示都需要代理!如果服务器在国外不需要上传代理,此处填写默认值即可:【<a "
"href=\"https://api.imgur.com/3/image/\">https://api.imgur.com/3/image/</a>】"
#: options.php:1062
msgid "Enable live search" msgid "Enable live search"
msgstr "启用实时搜索" msgstr "启用实时搜索"
#: options.php:1010 #: options.php:1063
msgid "" msgid ""
"Real-time search in the foreground, call the Rest API to update the cache every hour, you can " "Real-time search in the foreground, call the Rest API to update the cache "
"manually set the cache time in functions.php" "every hour, you can manually set the cache time in functions.php"
msgstr "" msgstr ""
"前台实现实时搜索,调用 Rest API 每小时更新一次缓存,可在 functions.php 里手动设置缓存时间" "前台实现实时搜索,调用 Rest API 每小时更新一次缓存,可在 functions.php 里手动"
"设置缓存时间"
#: options.php:1016 #: options.php:1069
msgid "Include comments in live search" msgid "Include comments in live search"
msgstr "实时搜索包含评论" msgstr "实时搜索包含评论"
#: options.php:1017 #: options.php:1070
msgid "" msgid ""
"Search for comments in real-time search (not recommended if there are too many comments on the " "Search for comments in real-time search (not recommended if there are too "
"site)" "many comments on the site)"
msgstr "在实时搜索中搜索评论(如果网站评论数量太多不建议开启)" msgstr "在实时搜索中搜索评论(如果网站评论数量太多不建议开启)"
#: options.php:1023 #: options.php:1076
msgid "Enable baguetteBox" msgid "Enable baguetteBox"
msgstr "启用 baguetteBox" msgstr "启用 baguetteBox"
#: options.php:1024 #: options.php:1077
msgid "" msgid ""
"Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">please read wiki</a>" "Default off<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox"
msgstr "默认禁用,<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">请阅读说明</a>" "\">please read wiki</a>"
msgstr ""
"默认禁用,<a href=\"https://github.com/mashirozx/Sakura/wiki/Fancybox\">请阅"
"读说明</a>"
#: options.php:1030 #: options.php:1083
msgid "Enable lazyload in posts" msgid "Enable lazyload in posts"
msgstr "文章内图片启用 lazyload" msgstr "文章内图片启用 lazyload"
#: options.php:1037 #: options.php:1090
msgid "lazyload spinner" msgid "lazyload spinner"
msgstr "lazyload 占位图" msgstr "lazyload 占位图"
#: options.php:1038 #: options.php:1091
msgid "The placeholder to display when the image loads, fill in the image url" msgid "The placeholder to display when the image loads, fill in the image url"
msgstr "图片加载时要显示的占位图,填写图片 url" msgstr "图片加载时要显示的占位图,填写图片 url"
#: options.php:1044 #: options.php:1097
msgid "Whether to enable the clipboard copyright" msgid "Whether to enable the clipboard copyright"
msgstr "是否开启剪贴板版权标识" msgstr "是否开启剪贴板版权标识"
#: options.php:1045 #: options.php:1098
msgid "" msgid ""
"Automatically add a copyright to the clipboard when copying more than 30 bytes, which is " "Automatically add a copyright to the clipboard when copying more than 30 "
"enabled by default." "bytes, which is enabled by default."
msgstr "复制超过30个字节时自动向剪贴板添加版权标识默认开启。" msgstr "复制超过30个字节时自动向剪贴板添加版权标识默认开启。"
#: options.php:1051 #: options.php:1104
msgid "Email address prefix" msgid "Email address prefix"
msgstr "发件地址前缀" msgstr "发件地址前缀"
#: options.php:1052 #: options.php:1105
msgid "" msgid ""
"For sending system mail, the sender address displayed in the user's mailbox, do not use " "For sending system mail, the sender address displayed in the user's mailbox, "
"Chinese, the default system email address is bibi@your_domain_name" "do not use Chinese, the default system email address is bibi@your_domain_name"
msgstr "" msgstr ""
"用于发送系统邮件,在用户的邮箱中显示的发件人地址,不要使用中文,默认系统邮件地址为 bibi@你的域" "用于发送系统邮件,在用户的邮箱中显示的发件人地址,不要使用中文,默认系统邮件"
"名" "地址为 bibi@你的域名"
#: options.php:1058 #: options.php:1111
msgid "Comments reply notification" msgid "Comments reply notification"
msgstr "邮件回复通知" msgstr "邮件回复通知"
#: options.php:1059 #: options.php:1112
msgid "" msgid ""
"WordPress will use email to notify users when their comments receive a reply by default. Tick " "WordPress will use email to notify users when their comments receive a reply "
"this item allows users to set their own comments reply notification" "by default. Tick this item allows users to set their own comments reply "
"notification"
msgstr "" msgstr ""
"WordPress默认会使用邮件通知用户评论收到回复开启此项允许用户设置自己的评论收到回复时是否使用邮" "WordPress默认会使用邮件通知用户评论收到回复开启此项允许用户设置自己的评论收"
"件通知" "到回复时是否使用邮件通知"
#: options.php:1065 #: options.php:1118
msgid "Administrator comment notification" msgid "Administrator comment notification"
msgstr "邮件回复通知管理员" msgstr "邮件回复通知管理员"
#: options.php:1066 #: options.php:1119
msgid "Whether to use email notification when the administrator's comments receive a reply" msgid ""
"Whether to use email notification when the administrator's comments receive "
"a reply"
msgstr "当管理员评论收到回复时是否使用邮件通知" msgstr "当管理员评论收到回复时是否使用邮件通知"
#: options.php:1072 #: options.php:1125
msgid "Enable private comment" msgid "Enable private comment"
msgstr "允许私密评论" msgstr "允许私密评论"
#: options.php:1073 #: options.php:1126
msgid "Allow users to set their own comments to be invisible to others" msgid "Allow users to set their own comments to be invisible to others"
msgstr "允许用户设置自己的评论对其他人不可见" msgstr "允许用户设置自己的评论对其他人不可见"
#: options.php:1079 #: options.php:1132
msgid "Human verification" msgid "Human verification"
msgstr "机器人验证" msgstr "机器人验证"
#: options.php:1080 #: options.php:1133
msgid "Enable human verification" msgid "Enable human verification"
msgstr "开启机器人验证" msgstr "开启机器人验证"
#: options.php:1086 #: options.php:1139
msgid "Comment UA infomation" msgid "Comment UA infomation"
msgstr "评论UA信息" msgstr "评论UA信息"
#: options.php:1087 #: options.php:1140
msgid "Check to enable, display the user's browser, operating system information" msgid ""
"Check to enable, display the user's browser, operating system information"
msgstr "勾选开启,显示用户的浏览器,操作系统信息" msgstr "勾选开启,显示用户的浏览器,操作系统信息"
#: options.php:1093 #: options.php:1146
msgid "Enable disqus" msgid "Enable disqus"
msgstr "开启多说插件支持" msgstr "开启多说插件支持"
#: options.php:1094 #: options.php:1147
msgid "Enable disqus for comment" msgid "Enable disqus for comment"
msgstr "多说已经凉了~~" msgstr "多说已经凉了~~"
#: options.php:1100 #: options.php:1153
msgid "Time Zone adjustment" msgid "Time Zone adjustment"
msgstr "时区调整" msgstr "时区调整"
#: options.php:1101 #: options.php:1154
msgid "" msgid ""
"If the comment has a time difference problem adjust here, fill in an integer, the calculation " "If the comment has a time difference problem adjust here, fill in an "
"method: actual_time = display_error_time - the_integer_you_entered (unit: hour)" "integer, the calculation method: actual_time = display_error_time - "
"the_integer_you_entered (unit: hour)"
msgstr "" msgstr ""
"如果评论出现时差问题在这里调整,填入一个整数,计算方法:实际时间=显示错误的时间-你输入的整数" "如果评论出现时差问题在这里调整,填入一个整数,计算方法:实际时间=显示错误的时"
"(单位:小时)" "间-你输入的整数(单位:小时)"
#: search.php:19 #: search.php:19
#, php-format #, php-format
@ -1581,17 +1701,20 @@ msgstr "关于 %s 的搜索结果: "
#: tpl/content-category.php:30 #: tpl/content-category.php:30
msgid "NOTHING" msgid "NOTHING"
msgstr "" msgstr "啥也没有呀"
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53
#: tpl/content.php:34
msgid "Comment" msgid "Comment"
msgstr "条评论" msgstr "条评论"
#: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content.php:34 tpl/content-thumb.php:53 #: tpl/content-image.php:35 tpl/content-status.php:31 tpl/content-thumb.php:53
#: tpl/content.php:34
msgid "Comments" msgid "Comments"
msgstr "条评论" msgstr "条评论"
#: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content.php:37 tpl/content-thumb.php:52 #: tpl/content-image.php:38 tpl/content-status.php:34 tpl/content-thumb.php:52
#: tpl/content.php:37
msgid "Hit" msgid "Hit"
msgid_plural "Hits" msgid_plural "Hits"
msgstr[0] "热度" msgstr[0] "热度"
@ -1602,7 +1725,8 @@ msgstr "没有找到任何东西!"
#: tpl/content-none.php:21 #: tpl/content-none.php:21
#, php-format #, php-format
msgid "Ready to post your first article? <a href=\"%1$s\">Click here to start</a>." msgid ""
"Ready to post your first article? <a href=\"%1$s\">Click here to start</a>."
msgstr "准备好发布你的第一篇文章了么? <a href=\"%1$s\">点击这里开始</a>." msgstr "准备好发布你的第一篇文章了么? <a href=\"%1$s\">点击这里开始</a>."
#: tpl/content-none.php:25 #: tpl/content-none.php:25
@ -1623,12 +1747,13 @@ msgstr "知识共享署名-非商业性使用-相同方式共享 4.0 国际许
#: user/page-login.php:18 #: user/page-login.php:18
msgid "Remember Me" msgid "Remember Me"
msgstr "" msgstr "记住我"
#: user/page-register.php:14 user/page-register.php:16 user/page-register.php:19 #: user/page-register.php:14 user/page-register.php:16
#: user/page-register.php:24 user/page-register.php:26 user/page-register.php:29 #: user/page-register.php:19 user/page-register.php:24
#: user/page-register.php:34 user/page-register.php:36 user/page-register.php:41 #: user/page-register.php:26 user/page-register.php:29
#: user/page-register.php:47 #: user/page-register.php:34 user/page-register.php:36
#: user/page-register.php:41 user/page-register.php:47
msgid "Error" msgid "Error"
msgstr "错误" msgstr "错误"

View File

@ -1004,6 +1004,59 @@ function optionsframework_options() {
'type_3' => __('23 333 Views (french)', 'sakura'),/*23 333 次访问(法式)*/ 'type_3' => __('23 333 Views (french)', 'sakura'),/*23 333 次访问(法式)*/
'type_4' => __('23k Views (chinese)', 'sakura'),/*23k 次访问(中式)*/ 'type_4' => __('23k Views (chinese)', 'sakura'),/*23k 次访问(中式)*/
)); ));
$options[] = array(
'name' => __('Comment image upload API', 'sakura'),/*评论图片上传接口*/
'id' => 'img_upload_api',
'std' => "imgur",
'type' => "radio",
'options' => array(
'imgur' => __('Imgur (https://imgur.com)', 'sakura'),
'smms' => __('SM.MS (https://sm.ms)', 'sakura'),
'chevereto' => __('Chevereto (https://chevereto.com)', 'sakura')
));
$options[] = array(
'name' => __('Imgur Client ID', 'sakura'),
'desc' => __('Register your application <a href="https://api.imgur.com/oauth2/addclient">here</a>, note we only need the Client ID here.', 'sakura'),
'id' => 'imgur_client_id',
'std' => '',
'type' => 'text');
$options[] = array(
'name' => __('SM.MS Secret Token', 'sakura'),
'desc' => __('Register your application <a href="https://sm.ms/home/apitoken">here</a>.', 'sakura'),
'id' => 'smms_client_id',
'std' => '',
'type' => 'text');
$options[] = array(
'name' => __('Chevereto API v1 key', 'sakura'),
'desc' => __('Get your API key here '.akina_option('cheverto_url').'/dashboard/settings/api', 'sakura'),
'id' => 'chevereto_api_key',
'std' => '',
'type' => 'text');
$options[] = array(
'name' => __('Chevereto URL', 'sakura'),
'desc' => __('Your Chevereto homepage url, no slash in the end, eg. https://your.cherverto.com', 'sakura'),
'id' => 'cheverto_url',
'std' => 'https://your.cherverto.com',
'type' => 'text');
$options[] = array(
'name' => __('Comment images proxy', 'sakura'),
'desc' => __('A front-ed proxy for the uploaded images. Leave it blank if you do not need.', 'sakura'),
'id' => 'cmt_image_proxy',
'std' => 'https://images.weserv.nl/?url=',
'type' => 'text');
$options[] = array(
'name' => __('Imgur upload proxy', 'sakura'),
'desc' => __('A back-ed proxy to upload images. You may set a self hosted proxy with Nginx, following my <a href="https://2heng.xin/2018/06/06/javascript-upload-images-with-imgur-api/">turtal</a>. This feature is mainly for Chinese who cannot access to Imgur due to the GFW. The default and official setting is 【<a href="https://api.imgur.com/3/image/">https://api.imgur.com/3/image/</a>】', 'sakura'),
'id' => 'imgur_upload_image_proxy',
'std' => 'https://api.imgur.com/3/image/',
'type' => 'text');
$options[] = array( $options[] = array(
'name' => __('Enable live search', 'sakura'),/*启用实时搜索*/ 'name' => __('Enable live search', 'sakura'),/*启用实时搜索*/

View File

@ -5,7 +5,7 @@ Theme URI: https://2heng.xin/theme-sakura/
Author: Mashiro, Louie, Fuzzz Author: Mashiro, Louie, Fuzzz
Author URI: http://2heng.xin Author URI: http://2heng.xin
Description: A branch of theme Akina Description: A branch of theme Akina
Version: 3.2.8 Version: 3.3.0
License: GNU General Public License v2 or later License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sakura Text Domain: sakura

View File

@ -10,7 +10,7 @@ get_header();
#ini_set('display_errors', '1'); #ini_set('display_errors', '1');
?> ?>
<div id="main"> <div id="main">
<header class="page-header"><h1 class="cat-title">归档</h1> <span class="cat-des"><p>Archives</p> </span></header> <header class="page-header"><h1 class="cat-title">时光轴</h1> <span class="cat-des"><p>TimeLine</p> </span></header>
<div id="main-part"> <div id="main-part">
<?php if (have_posts()) : the_post(); update_post_caches($posts); ?> <?php if (have_posts()) : the_post(); update_post_caches($posts); ?>
<article class="art"> <article class="art">
@ -28,4 +28,4 @@ get_header();
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </div>
<?php get_footer(); <?php get_footer();