文案:全站「你」改为「您」

用户要求邮件模板统一用敬语,确认后网页也一并改。

范围:
- lib/mailer.php  61 处(全部邮件模板:回执/回复/状态/审核/关闭/不公开/新反馈)
- new.php          6 处(提交页提示、占位文字)
- thread.php       4 处(提交成功提示、回复框占位)
- lib/layout.php   1 处(页脚隐私说明)
- admin.php        5 处(测试邮件正文、关闭邮件主题模板、通知规则说明、
                          先审后显说明)

已核查无「您们」等机械替换产生的别扭表达;
邮件模板渲染后「你」零残留、「您」77 处,文案通顺。
线上四个页面可见文字均无「你」,全站路由 200。
This commit is contained in:
2026-11-03 09:00:05 +08:00
parent 2ef119f7cb
commit db8c1969af
5 changed files with 77 additions and 77 deletions
+5 -5
View File
@@ -302,7 +302,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['act'])) {
'id' => 0, 'id' => 0,
'software_id' => $swRow ? (int)$swRow['id'] : 0, 'software_id' => $swRow ? (int)$swRow['id'] : 0,
'title' => '这是一封测试邮件,用来检查排版与配色', 'title' => '这是一封测试邮件,用来检查排版与配色',
'body' => "这是测试用的反馈正文。\n如果你收到这封信,说明 SMTP 配置正确,配色与图标也应当对应「" 'body' => "这是测试用的反馈正文。\n如果您收到这封信,说明 SMTP 配置正确,配色与图标也应当对应「"
. ($swRow ? (string)$swRow['name'] : '默认软件') . "」。\n\n发送时间:" . date('Y-m-d H:i:s'), . ($swRow ? (string)$swRow['name'] : '默认软件') . "」。\n\n发送时间:" . date('Y-m-d H:i:s'),
'author_name' => '测试', 'author_name' => '测试',
'author_email' => $to, 'author_email' => $to,
@@ -1157,11 +1157,11 @@ fb_layout_head('管理后台', ['robots' => 'noindex,nofollow']);
<input type="hidden" name="oss_visibility" value="<?php echo e((string)fb_cfg('oss.visibility', 'private')); ?>"> <input type="hidden" name="oss_visibility" value="<?php echo e((string)fb_cfg('oss.visibility', 'private')); ?>">
<h2 style="margin:24px 0 10px">审核</h2> <h2 style="margin:24px 0 10px">审核</h2>
<label class="check"><input type="checkbox" name="moderation_enabled" value="1"<?php echo fb_moderation_on() ? ' checked' : ''; ?>> 先审后显(新提交的问题默认不公开,需你通过后才显示)</label> <label class="check"><input type="checkbox" name="moderation_enabled" value="1"<?php echo fb_moderation_on() ? ' checked' : ''; ?>> 先审后显(新提交的问题默认不公开,需您通过后才显示)</label>
<label class="field"><span>关闭通知邮件标题</span> <label class="field"><span>关闭通知邮件标题</span>
<input type="text" name="moderation_close_mail_subject" <input type="text" name="moderation_close_mail_subject"
placeholder="留空即用:关于你反馈的问题《%s》" placeholder="留空即用:关于您反馈的问题《%s》"
value="<?php echo e(fb_form_val(fb_cfg('moderation.close_mail_subject', '关于你反馈的问题《%s》'), '关于你反馈的问题《%s》', 'moderation.close_mail_subject')); ?>"> value="<?php echo e(fb_form_val(fb_cfg('moderation.close_mail_subject', '关于您反馈的问题《%s》'), '关于您反馈的问题《%s》', 'moderation.close_mail_subject')); ?>">
<i class="hint">%s 会替换成问题标题。留空则用默认模板。</i></label> <i class="hint">%s 会替换成问题标题。留空则用默认模板。</i></label>
<div class="form-actions"> <div class="form-actions">
@@ -1284,7 +1284,7 @@ fb_layout_head('管理后台', ['robots' => 'noindex,nofollow']);
$smVerify= (bool)fb_cfg('smtp.verify_ssl', true); $smVerify= (bool)fb_cfg('smtp.verify_ssl', true);
?> ?>
<label class="check"><input type="checkbox" name="smtp_enabled" value="1"<?php echo $smOn ? ' checked' : ''; ?>> 开启邮件通知 <label class="check"><input type="checkbox" name="smtp_enabled" value="1"<?php echo $smOn ? ' checked' : ''; ?>> 开启邮件通知
<span class="hint" style="display:block;margin:2px 0 0 24px">开启后,有人回复你反馈的问题会发信通知提交人。填好下方参数并用「发送测试邮件」验证通了再勾。</span></label> <span class="hint" style="display:block;margin:2px 0 0 24px">开启后,有人回复您反馈的问题会发信通知提交人。填好下方参数并用「发送测试邮件」验证通了再勾。</span></label>
<div class="grid2"> <div class="grid2">
<label class="field"><span>SMTP 服务器</span> <label class="field"><span>SMTP 服务器</span>
+1 -1
View File
@@ -127,7 +127,7 @@ function fb_layout_foot() {
?> ?>
<footer class="foot"> <footer class="foot">
<div class="wrap"> <div class="wrap">
<p class="muted">本站仅保存你提交的昵称、邮箱与内容,用于问题跟进;页面不会公开展示邮箱与手机号。</p> <p class="muted">本站仅保存您提交的昵称、邮箱与内容,用于问题跟进;页面不会公开展示邮箱与手机号。</p>
<p class="muted foot-line"> <p class="muted foot-line">
<?php if ($showCredit): ?><span><?php echo e((string)fb_cfg('site_name', '轻反馈')); ?> · 由 <a href="<?php echo e($creditUrl); ?>" target="_blank" rel="noopener">FeedLite</a> 驱动</span><?php endif; ?> <?php if ($showCredit): ?><span><?php echo e((string)fb_cfg('site_name', '轻反馈')); ?> · 由 <a href="<?php echo e($creditUrl); ?>" target="_blank" rel="noopener">FeedLite</a> 驱动</span><?php endif; ?>
<?php if ($showCredit): ?><span class="dot">·</span><?php endif; ?> <?php if ($showCredit): ?><span class="dot">·</span><?php endif; ?>
+61 -61
View File
@@ -128,8 +128,8 @@ function fb_smtp_send(array $s, $to, $subject, $html) {
* echo fb_mail_layout([ * echo fb_mail_layout([
* 'preheader' => '预览摘要(收件箱列表里显示的那行灰字)', * 'preheader' => '预览摘要(收件箱列表里显示的那行灰字)',
* 'badge' => ['text' => '处理中', 'color' => '#0a6cf5'], * 'badge' => ['text' => '处理中', 'color' => '#0a6cf5'],
* 'title' => '你的反馈已被受理', * 'title' => '您的反馈已被受理',
* 'intro' => '老杨,你好:', * 'intro' => '老杨,您好:',
* 'blocks' => [ ... ], // 内容块,见下 * 'blocks' => [ ... ], // 内容块,见下
* 'button' => ['text' => '查看详情', 'url' => 'https://...'], * 'button' => ['text' => '查看详情', 'url' => 'https://...'],
* 'footer' => '此邮件由系统自动发送。', * 'footer' => '此邮件由系统自动发送。',
@@ -431,7 +431,7 @@ if (!function_exists('fb_mail_layout')) {
. ($recipient !== '' . ($recipient !== ''
? '<p style="margin:0;font-size:11.5px;line-height:1.6;color:#b3b9c2">' ? '<p style="margin:0;font-size:11.5px;line-height:1.6;color:#b3b9c2">'
. '这封邮件发给了 ' . fb_mail_esc($recipient) . '。' . '这封邮件发给了 ' . fb_mail_esc($recipient) . '。'
. '如果这不是你,忽略即可。</p>' : '') . '如果这不是您,忽略即可。</p>' : '')
. '<p style="margin:8px 0 0;font-size:11.5px;color:#b3b9c2">' . '<p style="margin:8px 0 0;font-size:11.5px;color:#b3b9c2">'
. '<a href="' . fb_mail_esc($base) . '" target="_blank"' . '<a href="' . fb_mail_esc($base) . '" target="_blank"'
. ' style="color:#9aa2ad;text-decoration:none">' . ' style="color:#9aa2ad;text-decoration:none">'
@@ -456,8 +456,8 @@ function fb_notify_html($thread, $reply, $isAdmin) {
$safeRName = htmlspecialchars($rname, ENT_QUOTES, 'UTF-8'); $safeRName = htmlspecialchars($rname, ENT_QUOTES, 'UTF-8');
return '<div style="font-family:-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7;color:#1f2329">' return '<div style="font-family:-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7;color:#1f2329">'
. '<p>' . $safeName . ',你好:</p>' . '<p>' . $safeName . ',您好:</p>'
. '<p>你在「' . htmlspecialchars($site, ENT_QUOTES, 'UTF-8') . '」提交的问题 <strong>《' . $safeTitle . '》</strong> 有了新的回复:</p>' . '<p>您在「' . htmlspecialchars($site, ENT_QUOTES, 'UTF-8') . '」提交的问题 <strong>《' . $safeTitle . '》</strong> 有了新的回复:</p>'
. '<blockquote style="margin:12px 0;padding:12px 16px;border-left:3px solid #0a6cf5;background:#f5f8ff;border-radius:6px">' . '<blockquote style="margin:12px 0;padding:12px 16px;border-left:3px solid #0a6cf5;background:#f5f8ff;border-radius:6px">'
. '<div style="color:#6b7280;font-size:13px;margin-bottom:6px">' . $safeRName . ' 回复:</div>' . '<div style="color:#6b7280;font-size:13px;margin-bottom:6px">' . $safeRName . ' 回复:</div>'
. $rbody . $rbody
@@ -504,19 +504,19 @@ function fb_notify_closed_html(array $thread, string $note) {
$mail = htmlspecialchars((string)fb_cfg('admin_email'), ENT_QUOTES, 'UTF-8'); $mail = htmlspecialchars((string)fb_cfg('admin_email'), ENT_QUOTES, 'UTF-8');
return '<div style="font-family:-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7;color:#1f2329">' return '<div style="font-family:-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7;color:#1f2329">'
. '<p>' . $name . ',你好:</p>' . '<p>' . $name . ',您好:</p>'
. '<p>感谢你反馈 <strong>《' . $title . '》</strong>。我们已经核实过,' . '<p>感谢您反馈 <strong>《' . $title . '》</strong>。我们已经核实过,'
. '<strong>该情况并不是应用的问题</strong>,因此这条反馈已被关闭(不会公开显示)。</p>' . '<strong>该情况并不是应用的问题</strong>,因此这条反馈已被关闭(不会公开显示)。</p>'
. '<div style="margin:14px 0;padding:12px 16px;border-left:3px solid #0a6cf5;background:#f5f8ff;border-radius:6px">' . '<div style="margin:14px 0;padding:12px 16px;border-left:3px solid #0a6cf5;background:#f5f8ff;border-radius:6px">'
. '<div style="color:#6b7280;font-size:13px;margin-bottom:6px">官方说明:</div>' . '<div style="color:#6b7280;font-size:13px;margin-bottom:6px">官方说明:</div>'
. $noteH . $noteH
. '</div>' . '</div>'
. '<p style="color:#6b7280;font-size:13px">你当时反馈的内容:</p>' . '<p style="color:#6b7280;font-size:13px">您当时反馈的内容:</p>'
. '<div style="margin:8px 0 16px;padding:10px 14px;background:#f7f8fa;border-radius:6px;color:#4b5563;font-size:14px">' . '<div style="margin:8px 0 16px;padding:10px 14px;background:#f7f8fa;border-radius:6px;color:#4b5563;font-size:14px">'
. $body . $body
. '</div>' . '</div>'
. ($mail !== '' ? '<p>如果上面的说明没能解决你的疑问,可以直接回复本邮件,我们会继续跟进;' . ($mail !== '' ? '<p>如果上面的说明没能解决您的疑问,可以直接回复本邮件,我们会继续跟进;'
. '也可以发邮件到 ' . $mail . ' 补充说明。</p>' : '<p>如果上面的说明没能解决你的疑问,可以直接回复本邮件,我们会继续跟进。</p>') . '也可以发邮件到 ' . $mail . ' 补充说明。</p>' : '<p>如果上面的说明没能解决您的疑问,可以直接回复本邮件,我们会继续跟进。</p>')
. '<hr style="border:none;border-top:1px solid #e5e7eb;margin:18px 0">' . '<hr style="border:none;border-top:1px solid #e5e7eb;margin:18px 0">'
. '<p style="color:#9aa2ad;font-size:12px">此邮件由「' . htmlspecialchars($site, ENT_QUOTES, 'UTF-8') . '」自动发送。</p>' . '<p style="color:#9aa2ad;font-size:12px">此邮件由「' . htmlspecialchars($site, ENT_QUOTES, 'UTF-8') . '」自动发送。</p>'
. '</div>'; . '</div>';
@@ -569,7 +569,7 @@ function fb_notify_log2(PDO $pdo, array $thread, $to, $reason, $ok, $err) {
* 邮件通知事件(工单 #2) * 邮件通知事件(工单 #2)
* *
* 全部事件: * 全部事件:
* reply 有人回复了你的反馈 → 发帖人 * reply 有人回复了您的反馈 → 发帖人
* status 处理状态变了 → 发帖人 * status 处理状态变了 → 发帖人
* approve 审核通过、已公开 → 发帖人 * approve 审核通过、已公开 → 发帖人
* hide 转为不公开 → 发帖人 * hide 转为不公开 → 发帖人
@@ -788,33 +788,33 @@ if (!function_exists('fb_notify_status_meta')) {
$map = [ $map = [
'open' => [ 'open' => [
'badge' => '待处理', 'color' => '#5c6572', 'tone' => 'muted', 'badge' => '待处理', 'color' => '#5c6572', 'tone' => 'muted',
'title' => '你的反馈已收到,正在等待处理', 'title' => '您的反馈已收到,正在等待处理',
'intro' => '我们已经收到你的反馈,会尽快安排处理。', 'intro' => '我们已经收到您的反馈,会尽快安排处理。',
'tip' => null, 'tip' => null,
], ],
'doing' => [ 'doing' => [
'badge' => '处理中', 'color' => '#0a6cf5', 'tone' => 'info', 'badge' => '处理中', 'color' => '#0a6cf5', 'tone' => 'info',
'title' => '你反馈的问题正在处理中', 'title' => '您反馈的问题正在处理中',
'intro' => '我们已经开始跟进你反馈的问题,有进展会第一时间告诉你。', 'intro' => '我们已经开始跟进您反馈的问题,有进展会第一时间告诉您。',
'tip' => '感谢你的耐心等待,暂时不需要你做任何操作。', 'tip' => '感谢您的耐心等待,暂时不需要您做任何操作。',
], ],
'resolved' => [ 'resolved' => [
'badge' => '已完成', 'color' => '#1e7b3c', 'tone' => 'ok', 'badge' => '已完成', 'color' => '#1e7b3c', 'tone' => 'ok',
'title' => '你反馈的问题已完成并上线', 'title' => '您反馈的问题已完成并上线',
'intro' => '好消息:你反馈的内容我们已经处理完成,并已发布上线。', 'intro' => '好消息:您反馈的内容我们已经处理完成,并已发布上线。',
'tip' => '建议更新到最新版本后试一下。如果问题仍然存在,直接在本页回复即可,我们会继续跟进。', 'tip' => '建议更新到最新版本后试一下。如果问题仍然存在,直接在本页回复即可,我们会继续跟进。',
], ],
'closed' => [ 'closed' => [
'badge' => '已关闭', 'color' => '#8a6a15', 'tone' => 'warn', 'badge' => '已关闭', 'color' => '#8a6a15', 'tone' => 'warn',
'title' => '你反馈的问题已关闭', 'title' => '您反馈的问题已关闭',
'intro' => '你反馈的问题已经关闭。', 'intro' => '您反馈的问题已经关闭。',
'tip' => null, 'tip' => null,
], ],
'wontfix' => [ 'wontfix' => [
'badge' => '不予考虑', 'color' => '#b4553c', 'tone' => 'warn', 'badge' => '不予考虑', 'color' => '#b4553c', 'tone' => 'warn',
'title' => '关于你反馈的问题,我们的处理意见', 'title' => '关于您反馈的问题,我们的处理意见',
'intro' => '感谢你的反馈。经核实,这条反馈我们暂时不会改动,原因如下。', 'intro' => '感谢您的反馈。经核实,这条反馈我们暂时不会改动,原因如下。',
'tip' => '如果你认为这个判断有误,或者有补充信息,直接在本页回复即可。', 'tip' => '如果您认为这个判断有误,或者有补充信息,直接在本页回复即可。',
], ],
]; ];
return isset($map[$key]) ? $map[$key] : $map['open']; return isset($map[$key]) ? $map[$key] : $map['open'];
@@ -871,15 +871,15 @@ if (!function_exists('fb_notify_render')) {
/* 像博客评论通知那样带上上下文: /* 像博客评论通知那样带上上下文:
* 用户可能同时提过好几条反馈,只给「回复内容」根本想不起来是哪一条。 * 用户可能同时提过好几条反馈,只给「回复内容」根本想不起来是哪一条。
* 所以固定三段:① 你反馈了什么 ② 谁回复了什么 ③ 去哪里继续。 */ * 所以固定三段:① 您反馈了什么 ② 谁回复了什么 ③ 去哪里继续。 */
$origBody = (string)(isset($thread['body']) ? $thread['body'] : ''); $origBody = (string)(isset($thread['body']) ? $thread['body'] : '');
$blocks = [ $blocks = [
['type' => 'text', 'text' => ($swName !== '' ? '你在「' . $swName . '」提交的反馈' : '你提交的反馈') ['type' => 'text', 'text' => ($swName !== '' ? '您在「' . $swName . '」提交的反馈' : '您提交的反馈')
. '有新的回复。'], . '有新的回复。'],
['type' => 'field', 'rows' => ['反馈标题' => $title]], ['type' => 'field', 'rows' => ['反馈标题' => $title]],
]; ];
if (trim($origBody) !== '') { if (trim($origBody) !== '') {
$blocks[] = ['type' => 'quote', 'who' => '你当时反馈的内容:', 'text' => fb_excerpt($origBody, 220)]; $blocks[] = ['type' => 'quote', 'who' => '您当时反馈的内容:', 'text' => fb_excerpt($origBody, 220)];
} }
$blocks[] = ['type' => 'quote', 'who' => $rname . ' 回复:', 'text' => $rbody]; $blocks[] = ['type' => 'quote', 'who' => $rname . ' 回复:', 'text' => $rbody];
if ($isAdmin) { if ($isAdmin) {
@@ -891,8 +891,8 @@ if (!function_exists('fb_notify_render')) {
'software' => $sw, 'software' => $sw,
'preheader' => $rname . ':' . fb_excerpt($rbody, 60), 'preheader' => $rname . ':' . fb_excerpt($rbody, 60),
'badge' => ['text' => $isOff, 'color' => $isAdmin ? fb_mail_brand() : '#5c6572'], 'badge' => ['text' => $isOff, 'color' => $isAdmin ? fb_mail_brand() : '#5c6572'],
'title' => $isAdmin ? '官方回复了你的反馈' : '有人回复了你的反馈', 'title' => $isAdmin ? '官方回复了您的反馈' : '有人回复了您的反馈',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => $blocks, 'blocks' => $blocks,
'button' => ['text' => '查看并回复', 'url' => $url], 'button' => ['text' => '查看并回复', 'url' => $url],
'link' => $url, 'link' => $url,
@@ -948,7 +948,7 @@ if (!function_exists('fb_notify_render')) {
'preheader' => '状态更新为「' . $label . '」', 'preheader' => '状态更新为「' . $label . '」',
'badge' => ['text' => $meta['badge'], 'color' => $meta['color']], 'badge' => ['text' => $meta['badge'], 'color' => $meta['color']],
'title' => $meta['title'], 'title' => $meta['title'],
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => $blocks, 'blocks' => $blocks,
'button' => ['text' => $btnText, 'url' => $btnUrl], 'button' => ['text' => $btnText, 'url' => $btnUrl],
// 下载按钮之外,始终保留「查看这条反馈」的原文链接 // 下载按钮之外,始终保留「查看这条反馈」的原文链接
@@ -960,19 +960,19 @@ if (!function_exists('fb_notify_render')) {
/* ---------------- 3. 审核通过 ---------------- */ /* ---------------- 3. 审核通过 ---------------- */
elseif ($reason === 'approve') { elseif ($reason === 'approve') {
$subject = $pfx . '你的反馈已发布:' . $short; $subject = $pfx . '您的反馈已发布:' . $short;
$layout = [ $layout = [
'software' => $sw, 'software' => $sw,
'preheader' => '你的反馈已经公开可见', 'preheader' => '您的反馈已经公开可见',
'badge' => ['text' => '已发布', 'color' => '#1e7b3c'], 'badge' => ['text' => '已发布', 'color' => '#1e7b3c'],
'title' => '你的反馈已通过审核并公开', 'title' => '您的反馈已通过审核并公开',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => [ 'blocks' => [
['type' => 'text', 'text' => '你提交的反馈已通过审核,现在可以在' ['type' => 'text', 'text' => '您提交的反馈已通过审核,现在可以在'
. ($swName !== '' ? '「' . $swName . '」的' : '') . '公开列表中看到了。'], . ($swName !== '' ? '「' . $swName . '」的' : '') . '公开列表中看到了。'],
['type' => 'field', 'rows' => ['反馈标题' => $title]], ['type' => 'field', 'rows' => ['反馈标题' => $title]],
['type' => 'callout', 'tone' => 'info', ['type' => 'callout', 'tone' => 'info',
'text' => '后续的处理进展与回复,我们会通过邮件通知你。'], 'text' => '后续的处理进展与回复,我们会通过邮件通知您。'],
], ],
'button' => ['text' => '查看并跟踪这条反馈', 'url' => $url], 'button' => ['text' => '查看并跟踪这条反馈', 'url' => $url],
'link' => $url, 'link' => $url,
@@ -983,24 +983,24 @@ if (!function_exists('fb_notify_render')) {
/* ---------------- 4. 转为不公开 ---------------- */ /* ---------------- 4. 转为不公开 ---------------- */
elseif ($reason === 'hide') { elseif ($reason === 'hide') {
$note = trim((string)(isset($extra['note']) ? $extra['note'] : '')); $note = trim((string)(isset($extra['note']) ? $extra['note'] : ''));
$subject = $pfx . '你的反馈已转为不公开:' . $short; $subject = $pfx . '您的反馈已转为不公开:' . $short;
$blocks = [ $blocks = [
['type' => 'text', 'text' => '你提交的反馈已从公开列表中撤下,不再对其他人可见。'], ['type' => 'text', 'text' => '您提交的反馈已从公开列表中撤下,不再对其他人可见。'],
['type' => 'field', 'rows' => ['反馈标题' => $title]], ['type' => 'field', 'rows' => ['反馈标题' => $title]],
]; ];
if ($note !== '') { if ($note !== '') {
$blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note]; $blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note];
} }
$blocks[] = ['type' => 'callout', 'tone' => 'muted', $blocks[] = ['type' => 'callout', 'tone' => 'muted',
'text' => '这条反馈本身仍然保留,你依然可以通过原链接访问和处理进展。']; 'text' => '这条反馈本身仍然保留,您依然可以通过原链接访问和处理进展。'];
$layout = [ $layout = [
'software' => $sw, 'software' => $sw,
'preheader' => '这条反馈已不对其他人可见', 'preheader' => '这条反馈已不对其他人可见',
'badge' => ['text' => '不公开', 'color' => '#5c6572'], 'badge' => ['text' => '不公开', 'color' => '#5c6572'],
'title' => '你的反馈已转为不公开', 'title' => '您的反馈已转为不公开',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => $blocks, 'blocks' => $blocks,
'button' => ['text' => '查看这条反馈', 'url' => $url], 'button' => ['text' => '查看这条反馈', 'url' => $url],
'link' => $url, 'link' => $url,
@@ -1014,31 +1014,31 @@ if (!function_exists('fb_notify_render')) {
$body = (string)$thread['body']; $body = (string)$thread['body'];
$mail = trim((string)fb_cfg('admin_email', '')); $mail = trim((string)fb_cfg('admin_email', ''));
$subject = $pfx . '关于你反馈的问题《' . $short . '》'; $subject = $pfx . '关于您反馈的问题《' . $short . '》';
$blocks = [ $blocks = [
['type' => 'text', ['type' => 'text',
'text' => '感谢你的反馈。我们已经核实过,这个情况并不是' 'text' => '感谢您的反馈。我们已经核实过,这个情况并不是'
. ($swName !== '' ? '「' . $swName . '」' : '应用') . '本身的问题,因此这条反馈已关闭(不会公开显示)。'], . ($swName !== '' ? '「' . $swName . '」' : '应用') . '本身的问题,因此这条反馈已关闭(不会公开显示)。'],
['type' => 'field', 'rows' => ['反馈标题' => $title]], ['type' => 'field', 'rows' => ['反馈标题' => $title]],
]; ];
if ($note !== '') { if ($note !== '') {
$blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note]; $blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note];
} }
$blocks[] = ['type' => 'quote', 'who' => '你当时反馈的内容:', 'text' => $body]; $blocks[] = ['type' => 'quote', 'who' => '您当时反馈的内容:', 'text' => $body];
$blocks[] = [ $blocks[] = [
'type' => 'callout', 'tone' => 'info', 'type' => 'callout', 'tone' => 'info',
'text' => ($mail !== '' 'text' => ($mail !== ''
? '如果上面的说明没能解决你的疑问,直接回复本邮件即可,我们继续跟进;也可以发到 ' . $mail . '。' ? '如果上面的说明没能解决您的疑问,直接回复本邮件即可,我们继续跟进;也可以发到 ' . $mail . '。'
: '如果上面的说明没能解决你的疑问,直接回复本邮件即可,我们继续跟进。'), : '如果上面的说明没能解决您的疑问,直接回复本邮件即可,我们继续跟进。'),
]; ];
$layout = [ $layout = [
'software' => $sw, 'software' => $sw,
'preheader' => '关于你反馈的问题,我们的说明', 'preheader' => '关于您反馈的问题,我们的说明',
'badge' => ['text' => '已关闭', 'color' => '#8a6a15'], 'badge' => ['text' => '已关闭', 'color' => '#8a6a15'],
'title' => '关于你反馈的问题,我们的说明', 'title' => '关于您反馈的问题,我们的说明',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => $blocks, 'blocks' => $blocks,
'recipient' => $to, 'recipient' => $to,
]; ];
@@ -1078,7 +1078,7 @@ if (!function_exists('fb_notify_render')) {
'preheader' => $name . ':' . fb_excerpt($body, 60), 'preheader' => $name . ':' . fb_excerpt($body, 60),
'badge' => ['text' => '新反馈', 'color' => '#b4553c'], 'badge' => ['text' => '新反馈', 'color' => '#b4553c'],
'title' => ($swName !== '' ? $swName . ' 收到一条新反馈' : '收到一条新反馈'), 'title' => ($swName !== '' ? $swName . ' 收到一条新反馈' : '收到一条新反馈'),
'intro' => '你好:', 'intro' => '您好:',
'blocks' => $blocks, 'blocks' => $blocks,
'button' => ['text' => '去后台处理这条反馈', 'url' => $adminUrl], 'button' => ['text' => '去后台处理这条反馈', 'url' => $adminUrl],
'link' => $adminUrl, 'link' => $adminUrl,
@@ -1091,25 +1091,25 @@ if (!function_exists('fb_notify_render')) {
elseif ($reason === 'receipt') { elseif ($reason === 'receipt') {
$body = (string)$thread['body']; $body = (string)$thread['body'];
$subject = $pfx . '已收到你的反馈:' . $short; $subject = $pfx . '已收到您的反馈:' . $short;
$blocks = [ $blocks = [
['type' => 'text', 'text' => '我们已收到你在' ['type' => 'text', 'text' => '我们已收到您在'
. ($swName !== '' ? '「' . $swName . '」' : '本站') . ($swName !== '' ? '「' . $swName . '」' : '本站')
. '提交的反馈,感谢你的反馈!'], . '提交的反馈,感谢您的反馈!'],
['type' => 'field', 'rows' => ['反馈标题' => $title]], ['type' => 'field', 'rows' => ['反馈标题' => $title]],
['type' => 'quote', 'who' => '你提交的内容:', 'text' => fb_excerpt($body, 400)], ['type' => 'quote', 'who' => '您提交的内容:', 'text' => fb_excerpt($body, 400)],
['type' => 'callout', 'tone' => 'info', ['type' => 'callout', 'tone' => 'info',
'text' => '这条反馈正在等待管理员审核,请耐心等待。审核通过后会在列表中公开显示。'], 'text' => '这条反馈正在等待管理员审核,请耐心等待。审核通过后会在列表中公开显示。'],
['type' => 'text', 'text' => '审核结果与后续处理进展,我们都会通过邮件通知你,无需反复回来查看。'], ['type' => 'text', 'text' => '审核结果与后续处理进展,我们都会通过邮件通知您,无需反复回来查看。'],
]; ];
$layout = [ $layout = [
'software' => $sw, 'software' => $sw,
'preheader' => '已收到你的反馈,正在等待审核', 'preheader' => '已收到您的反馈,正在等待审核',
'badge' => ['text' => '已收到', 'color' => fb_mail_brand()], 'badge' => ['text' => '已收到', 'color' => fb_mail_brand()],
'title' => '已收到你的反馈', 'title' => '已收到您的反馈',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => $blocks, 'blocks' => $blocks,
'button' => ['text' => '查看这条反馈', 'url' => $url], 'button' => ['text' => '查看这条反馈', 'url' => $url],
'link' => $url, 'link' => $url,
@@ -1122,10 +1122,10 @@ if (!function_exists('fb_notify_render')) {
$subject = $pfx . $short; $subject = $pfx . $short;
$layout = [ $layout = [
'software' => $sw, 'software' => $sw,
'preheader' => '你有一条新的通知', 'preheader' => '您有一条新的通知',
'title' => '你有一条新的通知', 'title' => '您有一条新的通知',
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'), 'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
'blocks' => [['type' => 'text', 'text' => '你关注的反馈有更新。']], 'blocks' => [['type' => 'text', 'text' => '您关注的反馈有更新。']],
'button' => ['text' => '查看详情', 'url' => $url], 'button' => ['text' => '查看详情', 'url' => $url],
'link' => $url, 'link' => $url,
'recipient' => $to, 'recipient' => $to,
+6 -6
View File
@@ -146,9 +146,9 @@ fb_layout_head('我要反馈', ['robots' => 'noindex,follow', 'software' => $sw]
<h1>我要反馈</h1> <h1>我要反馈</h1>
<?php if ($sw): ?> <?php if ($sw): ?>
<div class="sw-context"><?php echo fb_software_badge($sw, 'md'); ?> <div class="sw-context"><?php echo fb_software_badge($sw, 'md'); ?>
<span class="muted small">你正在为「<?php echo e(fb_software_site_title($sw)); ?>」提交反馈</span></div> <span class="muted small">您正在为「<?php echo e(fb_software_site_title($sw)); ?>」提交反馈</span></div>
<?php endif; ?> <?php endif; ?>
<p class="muted">请描述你遇到的问题或想要的功能。提交后会先进入审核,确认为有效问题后才会公开显示;<b>若经确认不是应用的问题,我们会把结论与说明通过邮件发送给你</b>(请填写常用邮箱)。</p> <p class="muted">请描述您遇到的问题或想要的功能。提交后会先进入审核,确认为有效问题后才会公开显示;<b>若经确认不是应用的问题,我们会把结论与说明通过邮件发送给您</b>(请填写常用邮箱)。</p>
<?php fb_flash_box($err, 'error'); ?> <?php fb_flash_box($err, 'error'); ?>
@@ -178,18 +178,18 @@ fb_layout_head('我要反馈', ['robots' => 'noindex,follow', 'software' => $sw]
<label class="field"> <label class="field">
<span>标题 <b class="req">*</b></span> <span>标题 <b class="req">*</b></span>
<input type="text" name="title" maxlength="80" value="<?php echo e($form['title']); ?>" placeholder="一句话概括你的问题" required> <input type="text" name="title" maxlength="80" value="<?php echo e($form['title']); ?>" placeholder="一句话概括您的问题" required>
</label> </label>
<label class="field"> <label class="field">
<span>详细描述 <b class="req">*</b></span> <span>详细描述 <b class="req">*</b></span>
<textarea name="body" rows="9" maxlength="5000" placeholder="请尽量说明:你做了什么、期望的结果、实际的结果;如是同步问题,可说明使用的邮箱 / 服务器类型。" required><?php echo e($form['body']); ?></textarea> <textarea name="body" rows="9" maxlength="5000" placeholder="请尽量说明:您做了什么、期望的结果、实际的结果;如是同步问题,可说明使用的邮箱 / 服务器类型。" required><?php echo e($form['body']); ?></textarea>
</label> </label>
<div class="row2"> <div class="row2">
<label class="field"> <label class="field">
<span>昵称 <b class="req">*</b></span> <span>昵称 <b class="req">*</b></span>
<input type="text" name="name" maxlength="24" value="<?php echo e($form['name']); ?>" placeholder="怎么称呼你" required> <input type="text" name="name" maxlength="24" value="<?php echo e($form['name']); ?>" placeholder="怎么称呼您" required>
</label> </label>
<label class="field"> <label class="field">
<span>邮箱 <b class="req">*</b><i class="hint">仅用于接收回复通知,不会公开</i></span> <span>邮箱 <b class="req">*</b><i class="hint">仅用于接收回复通知,不会公开</i></span>
@@ -220,7 +220,7 @@ fb_layout_head('我要反馈', ['robots' => 'noindex,follow', 'software' => $sw]
</div> </div>
</form> </form>
<p class="muted small">提示:本页面不会公开展示你的邮箱与手机号。请勿在内容中填写密码等敏感信息。可上传截图或录屏帮助说明问题;文件会直接传到对象存储,不占用本站服务器空间。</p> <p class="muted small">提示:本页面不会公开展示您的邮箱与手机号。请勿在内容中填写密码等敏感信息。可上传截图或录屏帮助说明问题;文件会直接传到对象存储,不占用本站服务器空间。</p>
</section> </section>
<?php <?php
+4 -4
View File
@@ -26,9 +26,9 @@ if (!fb_thread_public($thread)) {
fb_layout_head('提交成功', ['robots' => 'noindex,nofollow']); fb_layout_head('提交成功', ['robots' => 'noindex,nofollow']);
echo '<div class="empty">' echo '<div class="empty">'
. '<h2 style="margin:0 0 10px">提交成功,等待审核</h2>' . '<h2 style="margin:0 0 10px">提交成功,等待审核</h2>'
. '<p>你的反馈已收到(编号 #' . (int)$thread['id'] . '),我们会先确认它是否为应用问题:</p>' . '<p>您的反馈已收到(编号 #' . (int)$thread['id'] . '),我们会先确认它是否为应用问题:</p>'
. '<p>· 确认为问题 —— 审核通过后会公开显示,其他人也能查看与回复;<br>' . '<p>· 确认为问题 —— 审核通过后会公开显示,其他人也能查看与回复;<br>'
. '· 确认不是问题 —— 我们会关闭它,并把结论与说明发送到你留下的邮箱。</p>' . '· 确认不是问题 —— 我们会关闭它,并把结论与说明发送到您留下的邮箱。</p>'
. '<p class="muted">审核通常在 1~2 个工作日内完成,请留意邮箱。</p>' . '<p class="muted">审核通常在 1~2 个工作日内完成,请留意邮箱。</p>'
. '<p><a class="btn primary" href="index.php">返回问题列表</a></p>' . '<p><a class="btn primary" href="index.php">返回问题列表</a></p>'
. '</div>'; . '</div>';
@@ -217,7 +217,7 @@ fb_layout_head(fb_excerpt($thread['title'], 50), ['software' => $thSwForColor]);
<div class="row2"> <div class="row2">
<label class="field"> <label class="field">
<span>昵称 <b class="req">*</b></span> <span>昵称 <b class="req">*</b></span>
<input type="text" name="name" maxlength="24" value="<?php echo e($form['name']); ?>" placeholder="怎么称呼你" required> <input type="text" name="name" maxlength="24" value="<?php echo e($form['name']); ?>" placeholder="怎么称呼您" required>
</label> </label>
<label class="field" id="emailField"> <label class="field" id="emailField">
<span>邮箱 <b class="req">*</b><i class="hint">仅用于接收回复通知,不会公开</i></span> <span>邮箱 <b class="req">*</b><i class="hint">仅用于接收回复通知,不会公开</i></span>
@@ -227,7 +227,7 @@ fb_layout_head(fb_excerpt($thread['title'], 50), ['software' => $thSwForColor]);
<label class="field"> <label class="field">
<span>回复内容 <b class="req">*</b></span> <span>回复内容 <b class="req">*</b></span>
<textarea name="body" rows="6" maxlength="5000" placeholder="说说你的看法或补充…" required><?php echo e($form['body']); ?></textarea> <textarea name="body" rows="6" maxlength="5000" placeholder="说说您的看法或补充…" required><?php echo e($form['body']); ?></textarea>
</label> </label>
<?php fb_uploaders($atts); ?> <?php fb_uploaders($atts); ?>