文案:全站「你」改为「您」
用户要求邮件模板统一用敬语,确认后网页也一并改。
范围:
- lib/mailer.php 61 处(全部邮件模板:回执/回复/状态/审核/关闭/不公开/新反馈)
- new.php 6 处(提交页提示、占位文字)
- thread.php 4 处(提交成功提示、回复框占位)
- lib/layout.php 1 处(页脚隐私说明)
- admin.php 5 处(测试邮件正文、关闭邮件主题模板、通知规则说明、
先审后显说明)
已核查无「您们」等机械替换产生的别扭表达;
邮件模板渲染后「你」零残留、「您」77 处,文案通顺。
线上四个页面可见文字均无「你」,全站路由 200。
This commit is contained in:
+61
-61
@@ -128,8 +128,8 @@ function fb_smtp_send(array $s, $to, $subject, $html) {
|
||||
* echo fb_mail_layout([
|
||||
* 'preheader' => '预览摘要(收件箱列表里显示的那行灰字)',
|
||||
* 'badge' => ['text' => '处理中', 'color' => '#0a6cf5'],
|
||||
* 'title' => '你的反馈已被受理',
|
||||
* 'intro' => '老杨,你好:',
|
||||
* 'title' => '您的反馈已被受理',
|
||||
* 'intro' => '老杨,您好:',
|
||||
* 'blocks' => [ ... ], // 内容块,见下
|
||||
* 'button' => ['text' => '查看详情', 'url' => 'https://...'],
|
||||
* 'footer' => '此邮件由系统自动发送。',
|
||||
@@ -431,7 +431,7 @@ if (!function_exists('fb_mail_layout')) {
|
||||
. ($recipient !== ''
|
||||
? '<p style="margin:0;font-size:11.5px;line-height:1.6;color:#b3b9c2">'
|
||||
. '这封邮件发给了 ' . fb_mail_esc($recipient) . '。'
|
||||
. '如果这不是你,忽略即可。</p>' : '')
|
||||
. '如果这不是您,忽略即可。</p>' : '')
|
||||
. '<p style="margin:8px 0 0;font-size:11.5px;color:#b3b9c2">'
|
||||
. '<a href="' . fb_mail_esc($base) . '" target="_blank"'
|
||||
. ' style="color:#9aa2ad;text-decoration:none">'
|
||||
@@ -456,8 +456,8 @@ function fb_notify_html($thread, $reply, $isAdmin) {
|
||||
$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">'
|
||||
. '<p>' . $safeName . ',你好:</p>'
|
||||
. '<p>你在「' . htmlspecialchars($site, ENT_QUOTES, 'UTF-8') . '」提交的问题 <strong>《' . $safeTitle . '》</strong> 有了新的回复:</p>'
|
||||
. '<p>' . $safeName . ',您好:</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">'
|
||||
. '<div style="color:#6b7280;font-size:13px;margin-bottom:6px">' . $safeRName . ' 回复:</div>'
|
||||
. $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');
|
||||
|
||||
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>感谢你反馈 <strong>《' . $title . '》</strong>。我们已经核实过,'
|
||||
. '<p>' . $name . ',您好:</p>'
|
||||
. '<p>感谢您反馈 <strong>《' . $title . '》</strong>。我们已经核实过,'
|
||||
. '<strong>该情况并不是应用的问题</strong>,因此这条反馈已被关闭(不会公开显示)。</p>'
|
||||
. '<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>'
|
||||
. $noteH
|
||||
. '</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">'
|
||||
. $body
|
||||
. '</div>'
|
||||
. ($mail !== '' ? '<p>如果上面的说明没能解决你的疑问,可以直接回复本邮件,我们会继续跟进;'
|
||||
. '也可以发邮件到 ' . $mail . ' 补充说明。</p>' : '<p>如果上面的说明没能解决你的疑问,可以直接回复本邮件,我们会继续跟进。</p>')
|
||||
. ($mail !== '' ? '<p>如果上面的说明没能解决您的疑问,可以直接回复本邮件,我们会继续跟进;'
|
||||
. '也可以发邮件到 ' . $mail . ' 补充说明。</p>' : '<p>如果上面的说明没能解决您的疑问,可以直接回复本邮件,我们会继续跟进。</p>')
|
||||
. '<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>'
|
||||
. '</div>';
|
||||
@@ -569,7 +569,7 @@ function fb_notify_log2(PDO $pdo, array $thread, $to, $reason, $ok, $err) {
|
||||
* 邮件通知事件(工单 #2)
|
||||
*
|
||||
* 全部事件:
|
||||
* reply 有人回复了你的反馈 → 发帖人
|
||||
* reply 有人回复了您的反馈 → 发帖人
|
||||
* status 处理状态变了 → 发帖人
|
||||
* approve 审核通过、已公开 → 发帖人
|
||||
* hide 转为不公开 → 发帖人
|
||||
@@ -788,33 +788,33 @@ if (!function_exists('fb_notify_status_meta')) {
|
||||
$map = [
|
||||
'open' => [
|
||||
'badge' => '待处理', 'color' => '#5c6572', 'tone' => 'muted',
|
||||
'title' => '你的反馈已收到,正在等待处理',
|
||||
'intro' => '我们已经收到你的反馈,会尽快安排处理。',
|
||||
'title' => '您的反馈已收到,正在等待处理',
|
||||
'intro' => '我们已经收到您的反馈,会尽快安排处理。',
|
||||
'tip' => null,
|
||||
],
|
||||
'doing' => [
|
||||
'badge' => '处理中', 'color' => '#0a6cf5', 'tone' => 'info',
|
||||
'title' => '你反馈的问题正在处理中',
|
||||
'intro' => '我们已经开始跟进你反馈的问题,有进展会第一时间告诉你。',
|
||||
'tip' => '感谢你的耐心等待,暂时不需要你做任何操作。',
|
||||
'title' => '您反馈的问题正在处理中',
|
||||
'intro' => '我们已经开始跟进您反馈的问题,有进展会第一时间告诉您。',
|
||||
'tip' => '感谢您的耐心等待,暂时不需要您做任何操作。',
|
||||
],
|
||||
'resolved' => [
|
||||
'badge' => '已完成', 'color' => '#1e7b3c', 'tone' => 'ok',
|
||||
'title' => '你反馈的问题已完成并上线',
|
||||
'intro' => '好消息:你反馈的内容我们已经处理完成,并已发布上线。',
|
||||
'title' => '您反馈的问题已完成并上线',
|
||||
'intro' => '好消息:您反馈的内容我们已经处理完成,并已发布上线。',
|
||||
'tip' => '建议更新到最新版本后试一下。如果问题仍然存在,直接在本页回复即可,我们会继续跟进。',
|
||||
],
|
||||
'closed' => [
|
||||
'badge' => '已关闭', 'color' => '#8a6a15', 'tone' => 'warn',
|
||||
'title' => '你反馈的问题已关闭',
|
||||
'intro' => '你反馈的问题已经关闭。',
|
||||
'title' => '您反馈的问题已关闭',
|
||||
'intro' => '您反馈的问题已经关闭。',
|
||||
'tip' => null,
|
||||
],
|
||||
'wontfix' => [
|
||||
'badge' => '不予考虑', 'color' => '#b4553c', 'tone' => 'warn',
|
||||
'title' => '关于你反馈的问题,我们的处理意见',
|
||||
'intro' => '感谢你的反馈。经核实,这条反馈我们暂时不会改动,原因如下。',
|
||||
'tip' => '如果你认为这个判断有误,或者有补充信息,直接在本页回复即可。',
|
||||
'title' => '关于您反馈的问题,我们的处理意见',
|
||||
'intro' => '感谢您的反馈。经核实,这条反馈我们暂时不会改动,原因如下。',
|
||||
'tip' => '如果您认为这个判断有误,或者有补充信息,直接在本页回复即可。',
|
||||
],
|
||||
];
|
||||
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'] : '');
|
||||
$blocks = [
|
||||
['type' => 'text', 'text' => ($swName !== '' ? '你在「' . $swName . '」提交的反馈' : '你提交的反馈')
|
||||
['type' => 'text', 'text' => ($swName !== '' ? '您在「' . $swName . '」提交的反馈' : '您提交的反馈')
|
||||
. '有新的回复。'],
|
||||
['type' => 'field', 'rows' => ['反馈标题' => $title]],
|
||||
];
|
||||
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];
|
||||
if ($isAdmin) {
|
||||
@@ -891,8 +891,8 @@ if (!function_exists('fb_notify_render')) {
|
||||
'software' => $sw,
|
||||
'preheader' => $rname . ':' . fb_excerpt($rbody, 60),
|
||||
'badge' => ['text' => $isOff, 'color' => $isAdmin ? fb_mail_brand() : '#5c6572'],
|
||||
'title' => $isAdmin ? '官方回复了你的反馈' : '有人回复了你的反馈',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'title' => $isAdmin ? '官方回复了您的反馈' : '有人回复了您的反馈',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => $blocks,
|
||||
'button' => ['text' => '查看并回复', 'url' => $url],
|
||||
'link' => $url,
|
||||
@@ -948,7 +948,7 @@ if (!function_exists('fb_notify_render')) {
|
||||
'preheader' => '状态更新为「' . $label . '」',
|
||||
'badge' => ['text' => $meta['badge'], 'color' => $meta['color']],
|
||||
'title' => $meta['title'],
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => $blocks,
|
||||
'button' => ['text' => $btnText, 'url' => $btnUrl],
|
||||
// 下载按钮之外,始终保留「查看这条反馈」的原文链接
|
||||
@@ -960,19 +960,19 @@ if (!function_exists('fb_notify_render')) {
|
||||
|
||||
/* ---------------- 3. 审核通过 ---------------- */
|
||||
elseif ($reason === 'approve') {
|
||||
$subject = $pfx . '你的反馈已发布:' . $short;
|
||||
$subject = $pfx . '您的反馈已发布:' . $short;
|
||||
$layout = [
|
||||
'software' => $sw,
|
||||
'preheader' => '你的反馈已经公开可见',
|
||||
'preheader' => '您的反馈已经公开可见',
|
||||
'badge' => ['text' => '已发布', 'color' => '#1e7b3c'],
|
||||
'title' => '你的反馈已通过审核并公开',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'title' => '您的反馈已通过审核并公开',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => [
|
||||
['type' => 'text', 'text' => '你提交的反馈已通过审核,现在可以在'
|
||||
['type' => 'text', 'text' => '您提交的反馈已通过审核,现在可以在'
|
||||
. ($swName !== '' ? '「' . $swName . '」的' : '') . '公开列表中看到了。'],
|
||||
['type' => 'field', 'rows' => ['反馈标题' => $title]],
|
||||
['type' => 'callout', 'tone' => 'info',
|
||||
'text' => '后续的处理进展与回复,我们会通过邮件通知你。'],
|
||||
'text' => '后续的处理进展与回复,我们会通过邮件通知您。'],
|
||||
],
|
||||
'button' => ['text' => '查看并跟踪这条反馈', 'url' => $url],
|
||||
'link' => $url,
|
||||
@@ -983,24 +983,24 @@ if (!function_exists('fb_notify_render')) {
|
||||
/* ---------------- 4. 转为不公开 ---------------- */
|
||||
elseif ($reason === 'hide') {
|
||||
$note = trim((string)(isset($extra['note']) ? $extra['note'] : ''));
|
||||
$subject = $pfx . '你的反馈已转为不公开:' . $short;
|
||||
$subject = $pfx . '您的反馈已转为不公开:' . $short;
|
||||
|
||||
$blocks = [
|
||||
['type' => 'text', 'text' => '你提交的反馈已从公开列表中撤下,不再对其他人可见。'],
|
||||
['type' => 'text', 'text' => '您提交的反馈已从公开列表中撤下,不再对其他人可见。'],
|
||||
['type' => 'field', 'rows' => ['反馈标题' => $title]],
|
||||
];
|
||||
if ($note !== '') {
|
||||
$blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note];
|
||||
}
|
||||
$blocks[] = ['type' => 'callout', 'tone' => 'muted',
|
||||
'text' => '这条反馈本身仍然保留,你依然可以通过原链接访问和处理进展。'];
|
||||
'text' => '这条反馈本身仍然保留,您依然可以通过原链接访问和处理进展。'];
|
||||
|
||||
$layout = [
|
||||
'software' => $sw,
|
||||
'preheader' => '这条反馈已不对其他人可见',
|
||||
'badge' => ['text' => '不公开', 'color' => '#5c6572'],
|
||||
'title' => '你的反馈已转为不公开',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'title' => '您的反馈已转为不公开',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => $blocks,
|
||||
'button' => ['text' => '查看这条反馈', 'url' => $url],
|
||||
'link' => $url,
|
||||
@@ -1014,31 +1014,31 @@ if (!function_exists('fb_notify_render')) {
|
||||
$body = (string)$thread['body'];
|
||||
$mail = trim((string)fb_cfg('admin_email', ''));
|
||||
|
||||
$subject = $pfx . '关于你反馈的问题《' . $short . '》';
|
||||
$subject = $pfx . '关于您反馈的问题《' . $short . '》';
|
||||
|
||||
$blocks = [
|
||||
['type' => 'text',
|
||||
'text' => '感谢你的反馈。我们已经核实过,这个情况并不是'
|
||||
'text' => '感谢您的反馈。我们已经核实过,这个情况并不是'
|
||||
. ($swName !== '' ? '「' . $swName . '」' : '应用') . '本身的问题,因此这条反馈已关闭(不会公开显示)。'],
|
||||
['type' => 'field', 'rows' => ['反馈标题' => $title]],
|
||||
];
|
||||
if ($note !== '') {
|
||||
$blocks[] = ['type' => 'quote', 'who' => '官方说明:', 'text' => $note];
|
||||
}
|
||||
$blocks[] = ['type' => 'quote', 'who' => '你当时反馈的内容:', 'text' => $body];
|
||||
$blocks[] = ['type' => 'quote', 'who' => '您当时反馈的内容:', 'text' => $body];
|
||||
$blocks[] = [
|
||||
'type' => 'callout', 'tone' => 'info',
|
||||
'text' => ($mail !== ''
|
||||
? '如果上面的说明没能解决你的疑问,直接回复本邮件即可,我们继续跟进;也可以发到 ' . $mail . '。'
|
||||
: '如果上面的说明没能解决你的疑问,直接回复本邮件即可,我们继续跟进。'),
|
||||
? '如果上面的说明没能解决您的疑问,直接回复本邮件即可,我们继续跟进;也可以发到 ' . $mail . '。'
|
||||
: '如果上面的说明没能解决您的疑问,直接回复本邮件即可,我们继续跟进。'),
|
||||
];
|
||||
|
||||
$layout = [
|
||||
'software' => $sw,
|
||||
'preheader' => '关于你反馈的问题,我们的说明',
|
||||
'preheader' => '关于您反馈的问题,我们的说明',
|
||||
'badge' => ['text' => '已关闭', 'color' => '#8a6a15'],
|
||||
'title' => '关于你反馈的问题,我们的说明',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'title' => '关于您反馈的问题,我们的说明',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => $blocks,
|
||||
'recipient' => $to,
|
||||
];
|
||||
@@ -1078,7 +1078,7 @@ if (!function_exists('fb_notify_render')) {
|
||||
'preheader' => $name . ':' . fb_excerpt($body, 60),
|
||||
'badge' => ['text' => '新反馈', 'color' => '#b4553c'],
|
||||
'title' => ($swName !== '' ? $swName . ' 收到一条新反馈' : '收到一条新反馈'),
|
||||
'intro' => '你好:',
|
||||
'intro' => '您好:',
|
||||
'blocks' => $blocks,
|
||||
'button' => ['text' => '去后台处理这条反馈', 'url' => $adminUrl],
|
||||
'link' => $adminUrl,
|
||||
@@ -1091,25 +1091,25 @@ if (!function_exists('fb_notify_render')) {
|
||||
elseif ($reason === 'receipt') {
|
||||
$body = (string)$thread['body'];
|
||||
|
||||
$subject = $pfx . '已收到你的反馈:' . $short;
|
||||
$subject = $pfx . '已收到您的反馈:' . $short;
|
||||
|
||||
$blocks = [
|
||||
['type' => 'text', 'text' => '我们已收到你在'
|
||||
['type' => 'text', 'text' => '我们已收到您在'
|
||||
. ($swName !== '' ? '「' . $swName . '」' : '本站')
|
||||
. '提交的反馈,感谢你的反馈!'],
|
||||
. '提交的反馈,感谢您的反馈!'],
|
||||
['type' => 'field', 'rows' => ['反馈标题' => $title]],
|
||||
['type' => 'quote', 'who' => '你提交的内容:', 'text' => fb_excerpt($body, 400)],
|
||||
['type' => 'quote', 'who' => '您提交的内容:', 'text' => fb_excerpt($body, 400)],
|
||||
['type' => 'callout', 'tone' => 'info',
|
||||
'text' => '这条反馈正在等待管理员审核,请耐心等待。审核通过后会在列表中公开显示。'],
|
||||
['type' => 'text', 'text' => '审核结果与后续处理进展,我们都会通过邮件通知你,无需反复回来查看。'],
|
||||
['type' => 'text', 'text' => '审核结果与后续处理进展,我们都会通过邮件通知您,无需反复回来查看。'],
|
||||
];
|
||||
|
||||
$layout = [
|
||||
'software' => $sw,
|
||||
'preheader' => '已收到你的反馈,正在等待审核',
|
||||
'preheader' => '已收到您的反馈,正在等待审核',
|
||||
'badge' => ['text' => '已收到', 'color' => fb_mail_brand()],
|
||||
'title' => '已收到你的反馈',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'title' => '已收到您的反馈',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => $blocks,
|
||||
'button' => ['text' => '查看这条反馈', 'url' => $url],
|
||||
'link' => $url,
|
||||
@@ -1122,10 +1122,10 @@ if (!function_exists('fb_notify_render')) {
|
||||
$subject = $pfx . $short;
|
||||
$layout = [
|
||||
'software' => $sw,
|
||||
'preheader' => '你有一条新的通知',
|
||||
'title' => '你有一条新的通知',
|
||||
'intro' => ($name !== '' ? $name . ',你好:' : '你好:'),
|
||||
'blocks' => [['type' => 'text', 'text' => '你关注的反馈有更新。']],
|
||||
'preheader' => '您有一条新的通知',
|
||||
'title' => '您有一条新的通知',
|
||||
'intro' => ($name !== '' ? $name . ',您好:' : '您好:'),
|
||||
'blocks' => [['type' => 'text', 'text' => '您关注的反馈有更新。']],
|
||||
'button' => ['text' => '查看详情', 'url' => $url],
|
||||
'link' => $url,
|
||||
'recipient' => $to,
|
||||
|
||||
Reference in New Issue
Block a user