@fonderie/auth 7.21.1 → 7.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3814,7 +3814,7 @@ var AuthModule = class {
3814
3814
  name = "@fonderie/auth";
3815
3815
  // Baked in at build time by tsup.base, so the operator's Modules page can
3816
3816
  // say what is actually deployed rather than 'not reported'.
3817
- version = "7.21.1";
3817
+ version = "7.22.0";
3818
3818
  // Users, sessions, login history, suspend — only through @fonderie/admin.
3819
3819
  describeAdmin() {
3820
3820
  return { routes: describeAuthAdminRoutes(this.store, this.bus) };
@@ -4165,6 +4165,314 @@ Si c'est bien vous, tout est en ordre. Sinon, contactez imm\xE9diatement le supp
4165
4165
  }
4166
4166
  };
4167
4167
 
4168
+ // src/templates.zh-Hans.ts
4169
+ var ZH_HANS_TEMPLATES = {
4170
+ [MESSAGE_KEYS.emailRegistration]: {
4171
+ subject: "\u786E\u8BA4\u60A8\u7684\u8D26\u6237",
4172
+ html: `<h1>\u6B22\u8FCE\u52A0\u5165</h1>
4173
+ <p>{{firstName}}\uFF0C\u60A8\u597D\uFF1A</p>
4174
+ <p>\u611F\u8C22\u60A8\u7684\u6CE8\u518C\u3002\u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u786E\u8BA4\u60A8\u7684\u8D26\u6237\uFF1A</p>
4175
+ <p><span class="pin-code">{{pin}}</span></p>
4176
+ <p class="muted">\u6B64\u9A8C\u8BC1\u7801\u5C06\u5728 24 \u5C0F\u65F6\u540E\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u8D26\u6237\uFF0C\u8BF7\u5FFD\u7565\u6B64\u90AE\u4EF6\u3002</p>`,
4177
+ text: `\u6B22\u8FCE\u52A0\u5165
4178
+
4179
+ {{firstName}}\uFF0C\u60A8\u597D\uFF1A
4180
+
4181
+ \u611F\u8C22\u60A8\u7684\u6CE8\u518C\u3002\u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u786E\u8BA4\u60A8\u7684\u8D26\u6237\uFF1A{{pin}}
4182
+
4183
+ \u6B64\u9A8C\u8BC1\u7801\u5C06\u5728 24 \u5C0F\u65F6\u540E\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u8D26\u6237\uFF0C\u8BF7\u5FFD\u7565\u6B64\u90AE\u4EF6\u3002`
4184
+ },
4185
+ [MESSAGE_KEYS.emailVerification]: {
4186
+ subject: "\u60A8\u7684\u9A8C\u8BC1\u7801",
4187
+ html: `<h1>\u9A8C\u8BC1\u60A8\u7684\u7535\u5B50\u90AE\u7BB1</h1>
4188
+ <p>{{firstName}}\uFF0C\u60A8\u597D\uFF1A</p>
4189
+ <p>\u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u5B8C\u6210\u8D26\u6237\u8BBE\u7F6E\uFF1A</p>
4190
+ <p><span class="pin-code">{{pin}}</span></p>
4191
+ <p class="muted">\u6B64\u9A8C\u8BC1\u7801\u5C06\u5728 24 \u5C0F\u65F6\u540E\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u8D26\u6237\uFF0C\u8BF7\u5FFD\u7565\u6B64\u90AE\u4EF6\u3002</p>`,
4192
+ text: `\u9A8C\u8BC1\u60A8\u7684\u7535\u5B50\u90AE\u7BB1
4193
+
4194
+ {{firstName}}\uFF0C\u60A8\u597D\uFF1A
4195
+
4196
+ \u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u5B8C\u6210\u8D26\u6237\u8BBE\u7F6E\uFF1A{{pin}}
4197
+
4198
+ \u6B64\u9A8C\u8BC1\u7801\u5C06\u5728 24 \u5C0F\u65F6\u540E\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u8D26\u6237\uFF0C\u8BF7\u5FFD\u7565\u6B64\u90AE\u4EF6\u3002`
4199
+ },
4200
+ [MESSAGE_KEYS.passwordReset]: {
4201
+ subject: "\u91CD\u7F6E\u60A8\u7684\u5BC6\u7801",
4202
+ html: `<h1>\u91CD\u7F6E\u60A8\u7684\u5BC6\u7801</h1>
4203
+ <p>\u6211\u4EEC\u6536\u5230\u4E86\u91CD\u7F6E\u60A8\u5BC6\u7801\u7684\u8BF7\u6C42\u3002\u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u7EE7\u7EED\uFF1A</p>
4204
+ <p><span class="pin-code">{{pin}}</span></p>
4205
+ <p class="muted">\u6B64\u9A8C\u8BC1\u7801\u5F88\u5FEB\u5C31\u4F1A\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u7533\u8BF7\u91CD\u7F6E\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\uFF0C\u60A8\u7684\u5BC6\u7801\u4FDD\u6301\u4E0D\u53D8\u3002</p>`,
4206
+ text: `\u91CD\u7F6E\u60A8\u7684\u5BC6\u7801
4207
+
4208
+ \u6211\u4EEC\u6536\u5230\u4E86\u91CD\u7F6E\u60A8\u5BC6\u7801\u7684\u8BF7\u6C42\u3002\u8BF7\u4F7F\u7528\u4EE5\u4E0B\u9A8C\u8BC1\u7801\u7EE7\u7EED\uFF1A{{pin}}
4209
+
4210
+ \u6B64\u9A8C\u8BC1\u7801\u5F88\u5FEB\u5C31\u4F1A\u5931\u6548\u3002\u5982\u679C\u60A8\u6CA1\u6709\u7533\u8BF7\u91CD\u7F6E\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\uFF0C\u60A8\u7684\u5BC6\u7801\u4FDD\u6301\u4E0D\u53D8\u3002`
4211
+ },
4212
+ [MESSAGE_KEYS.phoneOtp]: {
4213
+ text: "\u60A8\u7684\u9A8C\u8BC1\u7801\u662F {{otp}}\uFF0C10 \u5206\u949F\u5185\u6709\u6548\u3002"
4214
+ },
4215
+ [MESSAGE_KEYS.mfaEnabled]: {
4216
+ subject: "\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5F00\u542F",
4217
+ html: `<h1>\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5F00\u542F</h1>
4218
+ <p>\u60A8\u7684\u8D26\u6237\u521A\u521A\u5F00\u542F\u4E86\u53CC\u91CD\u9A8C\u8BC1\u3002\u4ECA\u540E\u767B\u5F55\u65F6\uFF0C\u60A8\u9700\u8981\u8F93\u5165\u8EAB\u4EFD\u9A8C\u8BC1\u5668\u5E94\u7528\u4E2D\u7684\u9A8C\u8BC1\u7801\u3002</p>
4219
+ <p class="muted">\u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002</p>`,
4220
+ text: `\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5F00\u542F
4221
+
4222
+ \u60A8\u7684\u8D26\u6237\u521A\u521A\u5F00\u542F\u4E86\u53CC\u91CD\u9A8C\u8BC1\u3002\u4ECA\u540E\u767B\u5F55\u65F6\uFF0C\u60A8\u9700\u8981\u8F93\u5165\u8EAB\u4EFD\u9A8C\u8BC1\u5668\u5E94\u7528\u4E2D\u7684\u9A8C\u8BC1\u7801\u3002
4223
+
4224
+ \u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002`
4225
+ },
4226
+ [MESSAGE_KEYS.mfaDisabled]: {
4227
+ subject: "\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5173\u95ED",
4228
+ html: `<h1>\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5173\u95ED</h1>
4229
+ <p>\u60A8\u7684\u8D26\u6237\u521A\u521A\u5173\u95ED\u4E86\u53CC\u91CD\u9A8C\u8BC1\u3002\u73B0\u5728\u60A8\u7684\u8D26\u6237\u4EC5\u7531\u5BC6\u7801\u4FDD\u62A4\u3002</p>
4230
+ <p class="muted">\u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u5E76\u91CD\u65B0\u5F00\u542F\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002</p>`,
4231
+ text: `\u53CC\u91CD\u9A8C\u8BC1\u5DF2\u5173\u95ED
4232
+
4233
+ \u60A8\u7684\u8D26\u6237\u521A\u521A\u5173\u95ED\u4E86\u53CC\u91CD\u9A8C\u8BC1\u3002\u73B0\u5728\u60A8\u7684\u8D26\u6237\u4EC5\u7531\u5BC6\u7801\u4FDD\u62A4\u3002
4234
+
4235
+ \u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u5E76\u91CD\u65B0\u5F00\u542F\u53CC\u91CD\u9A8C\u8BC1\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002`
4236
+ },
4237
+ [MESSAGE_KEYS.mfaBackupCodesRegenerated]: {
4238
+ subject: "\u60A8\u7684\u5907\u7528\u9A8C\u8BC1\u7801\u5DF2\u91CD\u65B0\u751F\u6210",
4239
+ html: `<h1>\u5DF2\u751F\u6210\u65B0\u7684\u5907\u7528\u9A8C\u8BC1\u7801</h1>
4240
+ <p>\u60A8\u7684\u8D26\u6237\u521A\u521A\u751F\u6210\u4E86\u4E00\u7EC4\u65B0\u7684\u53CC\u91CD\u9A8C\u8BC1\u5907\u7528\u7801\u3002\u4E4B\u524D\u7684\u5907\u7528\u7801\u5DF2\u5168\u90E8\u5931\u6548\u3002</p>
4241
+ <p class="muted">\u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002</p>`,
4242
+ text: `\u5DF2\u751F\u6210\u65B0\u7684\u5907\u7528\u9A8C\u8BC1\u7801
4243
+
4244
+ \u60A8\u7684\u8D26\u6237\u521A\u521A\u751F\u6210\u4E86\u4E00\u7EC4\u65B0\u7684\u53CC\u91CD\u9A8C\u8BC1\u5907\u7528\u7801\u3002\u4E4B\u524D\u7684\u5907\u7528\u7801\u5DF2\u5168\u90E8\u5931\u6548\u3002
4245
+
4246
+ \u5982\u679C\u8FD9\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002`
4247
+ },
4248
+ [MESSAGE_KEYS.emailChanged]: {
4249
+ subject: "\u60A8\u7684\u7535\u5B50\u90AE\u7BB1\u5730\u5740\u5DF2\u66F4\u6539",
4250
+ html: `<h1>\u60A8\u7684\u7535\u5B50\u90AE\u7BB1\u5DF2\u66F4\u6539</h1>
4251
+ <p>\u60A8\u8D26\u6237\u7684\u7535\u5B50\u90AE\u7BB1\u5730\u5740\u521A\u521A\u66F4\u6539\u4E3A <strong>{{newEmail}}</strong>\u3002</p>
4252
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u66F4\u6539\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002</p>`,
4253
+ text: `\u60A8\u7684\u7535\u5B50\u90AE\u7BB1\u5DF2\u66F4\u6539
4254
+
4255
+ \u60A8\u8D26\u6237\u7684\u7535\u5B50\u90AE\u7BB1\u5730\u5740\u521A\u521A\u66F4\u6539\u4E3A {{newEmail}}\u3002
4256
+
4257
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u66F4\u6539\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002`
4258
+ },
4259
+ [MESSAGE_KEYS.phoneChanged]: {
4260
+ subject: "\u60A8\u7684\u624B\u673A\u53F7\u7801\u5DF2\u66F4\u6539",
4261
+ html: `<h1>\u60A8\u7684\u624B\u673A\u53F7\u7801\u5DF2\u66F4\u6539</h1>
4262
+ <p>\u60A8\u8D26\u6237\u7684\u624B\u673A\u53F7\u7801\u521A\u521A\u5B8C\u6210\u66F4\u65B0\u3002</p>
4263
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u66F4\u6539\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002</p>`,
4264
+ text: `\u60A8\u7684\u624B\u673A\u53F7\u7801\u5DF2\u66F4\u6539
4265
+
4266
+ \u60A8\u8D26\u6237\u7684\u624B\u673A\u53F7\u7801\u521A\u521A\u5B8C\u6210\u66F4\u65B0\u3002
4267
+
4268
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u66F4\u6539\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u7ECF\u80FD\u591F\u8BBF\u95EE\u60A8\u7684\u8D26\u6237\u3002`
4269
+ },
4270
+ [MESSAGE_KEYS.passwordRevoked]: {
4271
+ subject: "\u60A8\u8D26\u6237\u7684\u5BC6\u7801\u5DF2\u88AB\u79FB\u9664",
4272
+ html: `<h1>\u60A8\u7684\u5BC6\u7801\u5DF2\u88AB\u79FB\u9664</h1>
4273
+ <p>\u60A8\u521A\u521A\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5F55\u3002\u6B64\u8D26\u6237\u4E4B\u524D\u8BBE\u7F6E\u8FC7\u5BC6\u7801\uFF0C\u4F46\u8BE5\u7535\u5B50\u90AE\u7BB1\u5730\u5740\u4ECE\u672A\u7ECF\u8FC7\u786E\u8BA4\uFF0C\u56E0\u6B64\u6211\u4EEC\u65E0\u6CD5\u786E\u5B9A\u5BC6\u7801\u662F\u8C01\u8BBE\u7F6E\u7684\uFF0C\u5DF2\u5C06\u5176\u79FB\u9664\u3002</p>
4274
+ <p>\u4F7F\u7528 {{provider}} \u767B\u5F55\u4E0D\u53D7\u5F71\u54CD\u3002\u5982\u679C\u60A8\u8FD8\u60F3\u8BBE\u7F6E\u5BC6\u7801\uFF0C\u53EF\u4EE5\u5728\u8D26\u6237\u8BBE\u7F6E\u4E2D\u8FDB\u884C\u8BBE\u7F6E\u3002</p>
4275
+ <p class="muted">\u5982\u679C\u60A8\u4ECE\u672A\u5728\u6B64\u8BBE\u7F6E\u8FC7\u5BC6\u7801\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u66FE\u8BD5\u56FE\u7528\u60A8\u7684\u5730\u5740\u6CE8\u518C\u3002\u60A8\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\uFF0C\u6B64\u8D26\u6237\u5C5E\u4E8E\u60A8\u3002</p>`,
4276
+ text: `\u60A8\u7684\u5BC6\u7801\u5DF2\u88AB\u79FB\u9664
4277
+
4278
+ \u60A8\u521A\u521A\u4F7F\u7528 {{provider}} \u767B\u5F55\u3002\u6B64\u8D26\u6237\u4E4B\u524D\u8BBE\u7F6E\u8FC7\u5BC6\u7801\uFF0C\u4F46\u8BE5\u7535\u5B50\u90AE\u7BB1\u5730\u5740\u4ECE\u672A\u7ECF\u8FC7\u786E\u8BA4\uFF0C
4279
+ \u56E0\u6B64\u6211\u4EEC\u65E0\u6CD5\u786E\u5B9A\u5BC6\u7801\u662F\u8C01\u8BBE\u7F6E\u7684\uFF0C\u5DF2\u5C06\u5176\u79FB\u9664\u3002
4280
+
4281
+ \u4F7F\u7528 {{provider}} \u767B\u5F55\u4E0D\u53D7\u5F71\u54CD\u3002\u5982\u679C\u60A8\u8FD8\u60F3\u8BBE\u7F6E\u5BC6\u7801\uFF0C\u53EF\u4EE5\u5728\u8D26\u6237\u8BBE\u7F6E\u4E2D\u8FDB\u884C\u8BBE\u7F6E\u3002
4282
+
4283
+ \u5982\u679C\u60A8\u4ECE\u672A\u5728\u6B64\u8BBE\u7F6E\u8FC7\u5BC6\u7801\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u66FE\u8BD5\u56FE\u7528\u60A8\u7684\u5730\u5740\u6CE8\u518C\u3002\u60A8\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\uFF0C\u6B64\u8D26\u6237\u5C5E\u4E8E\u60A8\u3002`
4284
+ },
4285
+ [MESSAGE_KEYS.oauthRegistration]: {
4286
+ subject: "\u6B22\u8FCE\u4F7F\u7528 {{appName}}",
4287
+ html: `<h1>\u6B22\u8FCE\u4F7F\u7528 {{appName}}</h1>
4288
+ <p>\u60A8\u7684\u8D26\u6237\u5DF2\u901A\u8FC7 <strong>{{provider}}</strong> \u521B\u5EFA\u3002\u4ECA\u540E\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u540C\u4E00\u4E2A {{provider}} \u8D26\u6237\u767B\u5F55\uFF0C\u65E0\u9700\u8BB0\u4F4F\u5BC6\u7801\u3002</p>
4289
+ <p class="muted">\u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u6B64\u8D26\u6237\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D\u3002</p>`,
4290
+ text: `\u6B22\u8FCE
4291
+
4292
+ \u60A8\u7684\u8D26\u6237\u5DF2\u901A\u8FC7 {{provider}} \u521B\u5EFA\u3002\u4ECA\u540E\u968F\u65F6\u53EF\u4EE5\u4F7F\u7528\u540C\u4E00\u4E2A
4293
+ {{provider}} \u8D26\u6237\u767B\u5F55\uFF0C\u65E0\u9700\u8BB0\u4F4F\u5BC6\u7801\u3002
4294
+
4295
+ \u5982\u679C\u60A8\u6CA1\u6709\u521B\u5EFA\u6B64\u8D26\u6237\uFF0C\u8BF7\u8054\u7CFB\u5BA2\u670D\u3002`
4296
+ },
4297
+ [MESSAGE_KEYS.oauthLinked]: {
4298
+ subject: "\u60A8\u7684\u8D26\u6237\u65B0\u589E\u4E86\u4E00\u79CD\u767B\u5F55\u65B9\u5F0F",
4299
+ html: `<h1>\u5DF2\u6DFB\u52A0 {{provider}} \u767B\u5F55</h1>
4300
+ <p>\u73B0\u5728\u4E5F\u53EF\u4EE5\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5F55\u60A8\u7684\u8D26\u6237\u3002</p>
4301
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u6DFB\u52A0\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u5E76\u66F4\u6539\u5BC6\u7801\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u80FD\u591F\u4EE5\u60A8\u7684\u8EAB\u4EFD\u767B\u5F55\u3002</p>`,
4302
+ text: `\u5DF2\u6DFB\u52A0 {{provider}} \u767B\u5F55
4303
+
4304
+ \u73B0\u5728\u4E5F\u53EF\u4EE5\u4F7F\u7528 {{provider}} \u767B\u5F55\u60A8\u7684\u8D26\u6237\u3002
4305
+
4306
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u6DFB\u52A0\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u5E76\u66F4\u6539\u5BC6\u7801\uFF0C
4307
+ \u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u80FD\u591F\u4EE5\u60A8\u7684\u8EAB\u4EFD\u767B\u5F55\u3002`
4308
+ },
4309
+ [MESSAGE_KEYS.oauthUnlinked]: {
4310
+ subject: "\u60A8\u7684\u8D26\u6237\u79FB\u9664\u4E86\u4E00\u79CD\u767B\u5F55\u65B9\u5F0F",
4311
+ html: `<h1>\u5DF2\u79FB\u9664 {{provider}} \u767B\u5F55</h1>
4312
+ <p>\u5DF2\u65E0\u6CD5\u518D\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5F55\u3002\u60A8\u7684\u7535\u5B50\u90AE\u7BB1\u548C\u5BC6\u7801\u4ECD\u7136\u53EF\u7528\u3002</p>
4313
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u79FB\u9664\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u3002</p>`,
4314
+ text: `\u5DF2\u79FB\u9664 {{provider}} \u767B\u5F55
4315
+
4316
+ \u5DF2\u65E0\u6CD5\u518D\u4F7F\u7528 {{provider}} \u767B\u5F55\u3002\u60A8\u7684\u7535\u5B50\u90AE\u7BB1\u548C\u5BC6\u7801\u4ECD\u7136\u53EF\u7528\u3002
4317
+
4318
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u79FB\u9664\u7684\uFF0C\u65E0\u9700\u4EFB\u4F55\u64CD\u4F5C\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u7ACB\u5373\u8054\u7CFB\u5BA2\u670D\u3002`
4319
+ }
4320
+ };
4321
+
4322
+ // src/templates.zh-Hant.ts
4323
+ var ZH_HANT_TEMPLATES = {
4324
+ [MESSAGE_KEYS.emailRegistration]: {
4325
+ subject: "\u78BA\u8A8D\u60A8\u7684\u5E33\u6236",
4326
+ html: `<h1>\u6B61\u8FCE\u52A0\u5165</h1>
4327
+ <p>{{firstName}}\uFF0C\u60A8\u597D\uFF1A</p>
4328
+ <p>\u611F\u8B1D\u60A8\u7684\u8A3B\u518A\u3002\u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u78BA\u8A8D\u60A8\u7684\u5E33\u6236\uFF1A</p>
4329
+ <p><span class="pin-code">{{pin}}</span></p>
4330
+ <p class="muted">\u6B64\u9A57\u8B49\u78BC\u5C07\u65BC 24 \u5C0F\u6642\u5F8C\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u5E33\u6236\uFF0C\u8ACB\u7565\u904E\u9019\u5C01\u90F5\u4EF6\u3002</p>`,
4331
+ text: `\u6B61\u8FCE\u52A0\u5165
4332
+
4333
+ {{firstName}}\uFF0C\u60A8\u597D\uFF1A
4334
+
4335
+ \u611F\u8B1D\u60A8\u7684\u8A3B\u518A\u3002\u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u78BA\u8A8D\u60A8\u7684\u5E33\u6236\uFF1A{{pin}}
4336
+
4337
+ \u6B64\u9A57\u8B49\u78BC\u5C07\u65BC 24 \u5C0F\u6642\u5F8C\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u5E33\u6236\uFF0C\u8ACB\u7565\u904E\u9019\u5C01\u90F5\u4EF6\u3002`
4338
+ },
4339
+ [MESSAGE_KEYS.emailVerification]: {
4340
+ subject: "\u60A8\u7684\u9A57\u8B49\u78BC",
4341
+ html: `<h1>\u9A57\u8B49\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6</h1>
4342
+ <p>{{firstName}}\uFF0C\u60A8\u597D\uFF1A</p>
4343
+ <p>\u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u5B8C\u6210\u5E33\u6236\u8A2D\u5B9A\uFF1A</p>
4344
+ <p><span class="pin-code">{{pin}}</span></p>
4345
+ <p class="muted">\u6B64\u9A57\u8B49\u78BC\u5C07\u65BC 24 \u5C0F\u6642\u5F8C\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u5E33\u6236\uFF0C\u8ACB\u7565\u904E\u9019\u5C01\u90F5\u4EF6\u3002</p>`,
4346
+ text: `\u9A57\u8B49\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6
4347
+
4348
+ {{firstName}}\uFF0C\u60A8\u597D\uFF1A
4349
+
4350
+ \u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u5B8C\u6210\u5E33\u6236\u8A2D\u5B9A\uFF1A{{pin}}
4351
+
4352
+ \u6B64\u9A57\u8B49\u78BC\u5C07\u65BC 24 \u5C0F\u6642\u5F8C\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u5E33\u6236\uFF0C\u8ACB\u7565\u904E\u9019\u5C01\u90F5\u4EF6\u3002`
4353
+ },
4354
+ [MESSAGE_KEYS.passwordReset]: {
4355
+ subject: "\u91CD\u8A2D\u60A8\u7684\u5BC6\u78BC",
4356
+ html: `<h1>\u91CD\u8A2D\u60A8\u7684\u5BC6\u78BC</h1>
4357
+ <p>\u6211\u5011\u6536\u5230\u91CD\u8A2D\u60A8\u5BC6\u78BC\u7684\u8981\u6C42\u3002\u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u7E7C\u7E8C\uFF1A</p>
4358
+ <p><span class="pin-code">{{pin}}</span></p>
4359
+ <p class="muted">\u6B64\u9A57\u8B49\u78BC\u5373\u5C07\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u63D0\u51FA\u91CD\u8A2D\u8981\u6C42\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\uFF0C\u60A8\u7684\u5BC6\u78BC\u7DAD\u6301\u4E0D\u8B8A\u3002</p>`,
4360
+ text: `\u91CD\u8A2D\u60A8\u7684\u5BC6\u78BC
4361
+
4362
+ \u6211\u5011\u6536\u5230\u91CD\u8A2D\u60A8\u5BC6\u78BC\u7684\u8981\u6C42\u3002\u8ACB\u4F7F\u7528\u4EE5\u4E0B\u9A57\u8B49\u78BC\u7E7C\u7E8C\uFF1A{{pin}}
4363
+
4364
+ \u6B64\u9A57\u8B49\u78BC\u5373\u5C07\u5931\u6548\u3002\u5982\u679C\u60A8\u6C92\u6709\u63D0\u51FA\u91CD\u8A2D\u8981\u6C42\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\uFF0C\u60A8\u7684\u5BC6\u78BC\u7DAD\u6301\u4E0D\u8B8A\u3002`
4365
+ },
4366
+ [MESSAGE_KEYS.phoneOtp]: {
4367
+ text: "\u60A8\u7684\u9A57\u8B49\u78BC\u662F {{otp}}\uFF0C10 \u5206\u9418\u5167\u6709\u6548\u3002"
4368
+ },
4369
+ [MESSAGE_KEYS.mfaEnabled]: {
4370
+ subject: "\u96D9\u91CD\u9A57\u8B49\u5DF2\u555F\u7528",
4371
+ html: `<h1>\u96D9\u91CD\u9A57\u8B49\u5DF2\u555F\u7528</h1>
4372
+ <p>\u60A8\u7684\u5E33\u6236\u525B\u525B\u555F\u7528\u4E86\u96D9\u91CD\u9A57\u8B49\u3002\u5F80\u5F8C\u767B\u5165\u6642\uFF0C\u60A8\u9700\u8981\u8F38\u5165\u9A57\u8B49\u5668\u61C9\u7528\u7A0B\u5F0F\u4E2D\u7684\u9A57\u8B49\u78BC\u3002</p>
4373
+ <p class="muted">\u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002</p>`,
4374
+ text: `\u96D9\u91CD\u9A57\u8B49\u5DF2\u555F\u7528
4375
+
4376
+ \u60A8\u7684\u5E33\u6236\u525B\u525B\u555F\u7528\u4E86\u96D9\u91CD\u9A57\u8B49\u3002\u5F80\u5F8C\u767B\u5165\u6642\uFF0C\u60A8\u9700\u8981\u8F38\u5165\u9A57\u8B49\u5668\u61C9\u7528\u7A0B\u5F0F\u4E2D\u7684\u9A57\u8B49\u78BC\u3002
4377
+
4378
+ \u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002`
4379
+ },
4380
+ [MESSAGE_KEYS.mfaDisabled]: {
4381
+ subject: "\u96D9\u91CD\u9A57\u8B49\u5DF2\u505C\u7528",
4382
+ html: `<h1>\u96D9\u91CD\u9A57\u8B49\u5DF2\u505C\u7528</h1>
4383
+ <p>\u60A8\u7684\u5E33\u6236\u525B\u525B\u505C\u7528\u4E86\u96D9\u91CD\u9A57\u8B49\u3002\u73FE\u5728\u60A8\u7684\u5E33\u6236\u50C5\u53D7\u5BC6\u78BC\u4FDD\u8B77\u3002</p>
4384
+ <p class="muted">\u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u4E26\u91CD\u65B0\u555F\u7528\u96D9\u91CD\u9A57\u8B49\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002</p>`,
4385
+ text: `\u96D9\u91CD\u9A57\u8B49\u5DF2\u505C\u7528
4386
+
4387
+ \u60A8\u7684\u5E33\u6236\u525B\u525B\u505C\u7528\u4E86\u96D9\u91CD\u9A57\u8B49\u3002\u73FE\u5728\u60A8\u7684\u5E33\u6236\u50C5\u53D7\u5BC6\u78BC\u4FDD\u8B77\u3002
4388
+
4389
+ \u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u4E26\u91CD\u65B0\u555F\u7528\u96D9\u91CD\u9A57\u8B49\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002`
4390
+ },
4391
+ [MESSAGE_KEYS.mfaBackupCodesRegenerated]: {
4392
+ subject: "\u60A8\u7684\u5099\u7528\u9A57\u8B49\u78BC\u5DF2\u91CD\u65B0\u7522\u751F",
4393
+ html: `<h1>\u5DF2\u7522\u751F\u65B0\u7684\u5099\u7528\u9A57\u8B49\u78BC</h1>
4394
+ <p>\u60A8\u7684\u5E33\u6236\u525B\u525B\u7522\u751F\u4E86\u4E00\u7D44\u65B0\u7684\u96D9\u91CD\u9A57\u8B49\u5099\u7528\u78BC\u3002\u5148\u524D\u7684\u5099\u7528\u78BC\u5DF2\u5168\u90E8\u5931\u6548\u3002</p>
4395
+ <p class="muted">\u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002</p>`,
4396
+ text: `\u5DF2\u7522\u751F\u65B0\u7684\u5099\u7528\u9A57\u8B49\u78BC
4397
+
4398
+ \u60A8\u7684\u5E33\u6236\u525B\u525B\u7522\u751F\u4E86\u4E00\u7D44\u65B0\u7684\u96D9\u91CD\u9A57\u8B49\u5099\u7528\u78BC\u3002\u5148\u524D\u7684\u5099\u7528\u78BC\u5DF2\u5168\u90E8\u5931\u6548\u3002
4399
+
4400
+ \u5982\u679C\u9019\u4E0D\u662F\u60A8\u672C\u4EBA\u7684\u64CD\u4F5C\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002`
4401
+ },
4402
+ [MESSAGE_KEYS.emailChanged]: {
4403
+ subject: "\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u5DF2\u8B8A\u66F4",
4404
+ html: `<h1>\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u5DF2\u8B8A\u66F4</h1>
4405
+ <p>\u60A8\u5E33\u6236\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u525B\u525B\u8B8A\u66F4\u70BA <strong>{{newEmail}}</strong>\u3002</p>
4406
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u8B8A\u66F4\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002</p>`,
4407
+ text: `\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u5DF2\u8B8A\u66F4
4408
+
4409
+ \u60A8\u5E33\u6236\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u525B\u525B\u8B8A\u66F4\u70BA {{newEmail}}\u3002
4410
+
4411
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u8B8A\u66F4\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002`
4412
+ },
4413
+ [MESSAGE_KEYS.phoneChanged]: {
4414
+ subject: "\u60A8\u7684\u96FB\u8A71\u865F\u78BC\u5DF2\u8B8A\u66F4",
4415
+ html: `<h1>\u60A8\u7684\u96FB\u8A71\u865F\u78BC\u5DF2\u8B8A\u66F4</h1>
4416
+ <p>\u60A8\u5E33\u6236\u7684\u96FB\u8A71\u865F\u78BC\u525B\u525B\u5B8C\u6210\u66F4\u65B0\u3002</p>
4417
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u8B8A\u66F4\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002</p>`,
4418
+ text: `\u60A8\u7684\u96FB\u8A71\u865F\u78BC\u5DF2\u8B8A\u66F4
4419
+
4420
+ \u60A8\u5E33\u6236\u7684\u96FB\u8A71\u865F\u78BC\u525B\u525B\u5B8C\u6210\u66F4\u65B0\u3002
4421
+
4422
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u8B8A\u66F4\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\uFF0C\u53EF\u80FD\u6709\u4EBA\u5DF2\u80FD\u5B58\u53D6\u60A8\u7684\u5E33\u6236\u3002`
4423
+ },
4424
+ [MESSAGE_KEYS.passwordRevoked]: {
4425
+ subject: "\u60A8\u5E33\u6236\u7684\u5BC6\u78BC\u5DF2\u88AB\u79FB\u9664",
4426
+ html: `<h1>\u60A8\u7684\u5BC6\u78BC\u5DF2\u88AB\u79FB\u9664</h1>
4427
+ <p>\u60A8\u525B\u525B\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5165\u3002\u6B64\u5E33\u6236\u5148\u524D\u8A2D\u5B9A\u904E\u5BC6\u78BC\uFF0C\u4F46\u9019\u500B\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u5F9E\u672A\u7D93\u904E\u78BA\u8A8D\uFF0C\u56E0\u6B64\u6211\u5011\u7121\u6CD5\u5224\u65B7\u5BC6\u78BC\u662F\u8AB0\u8A2D\u5B9A\u7684\uFF0C\u5DF2\u5C07\u5176\u79FB\u9664\u3002</p>
4428
+ <p>\u4F7F\u7528 {{provider}} \u767B\u5165\u4E0D\u53D7\u5F71\u97FF\u3002\u5982\u679C\u60A8\u4E5F\u60F3\u8A2D\u5B9A\u5BC6\u78BC\uFF0C\u53EF\u4EE5\u5728\u5E33\u6236\u8A2D\u5B9A\u4E2D\u9032\u884C\u8A2D\u5B9A\u3002</p>
4429
+ <p class="muted">\u5982\u679C\u60A8\u5F9E\u672A\u5728\u6B64\u8A2D\u5B9A\u904E\u5BC6\u78BC\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u66FE\u8A66\u5716\u7528\u60A8\u7684\u5730\u5740\u8A3B\u518A\u3002\u60A8\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\uFF0C\u6B64\u5E33\u6236\u5C6C\u65BC\u60A8\u3002</p>`,
4430
+ text: `\u60A8\u7684\u5BC6\u78BC\u5DF2\u88AB\u79FB\u9664
4431
+
4432
+ \u60A8\u525B\u525B\u4F7F\u7528 {{provider}} \u767B\u5165\u3002\u6B64\u5E33\u6236\u5148\u524D\u8A2D\u5B9A\u904E\u5BC6\u78BC\uFF0C\u4F46\u9019\u500B\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u5F9E\u672A\u7D93\u904E\u78BA\u8A8D\uFF0C
4433
+ \u56E0\u6B64\u6211\u5011\u7121\u6CD5\u5224\u65B7\u5BC6\u78BC\u662F\u8AB0\u8A2D\u5B9A\u7684\uFF0C\u5DF2\u5C07\u5176\u79FB\u9664\u3002
4434
+
4435
+ \u4F7F\u7528 {{provider}} \u767B\u5165\u4E0D\u53D7\u5F71\u97FF\u3002\u5982\u679C\u60A8\u4E5F\u60F3\u8A2D\u5B9A\u5BC6\u78BC\uFF0C\u53EF\u4EE5\u5728\u5E33\u6236\u8A2D\u5B9A\u4E2D\u9032\u884C\u8A2D\u5B9A\u3002
4436
+
4437
+ \u5982\u679C\u60A8\u5F9E\u672A\u5728\u6B64\u8A2D\u5B9A\u904E\u5BC6\u78BC\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u66FE\u8A66\u5716\u7528\u60A8\u7684\u5730\u5740\u8A3B\u518A\u3002\u60A8\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\uFF0C\u6B64\u5E33\u6236\u5C6C\u65BC\u60A8\u3002`
4438
+ },
4439
+ [MESSAGE_KEYS.oauthRegistration]: {
4440
+ subject: "\u6B61\u8FCE\u4F7F\u7528 {{appName}}",
4441
+ html: `<h1>\u6B61\u8FCE\u4F7F\u7528 {{appName}}</h1>
4442
+ <p>\u60A8\u7684\u5E33\u6236\u5DF2\u900F\u904E <strong>{{provider}}</strong> \u5EFA\u7ACB\u3002\u5F80\u5F8C\u96A8\u6642\u90FD\u80FD\u4F7F\u7528\u540C\u4E00\u500B {{provider}} \u5E33\u6236\u767B\u5165\uFF0C\u4E0D\u5FC5\u8A18\u4F4F\u5BC6\u78BC\u3002</p>
4443
+ <p class="muted">\u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u6B64\u5E33\u6236\uFF0C\u8ACB\u806F\u7D61\u5BA2\u670D\u3002</p>`,
4444
+ text: `\u6B61\u8FCE
4445
+
4446
+ \u60A8\u7684\u5E33\u6236\u5DF2\u900F\u904E {{provider}} \u5EFA\u7ACB\u3002\u5F80\u5F8C\u96A8\u6642\u90FD\u80FD\u4F7F\u7528\u540C\u4E00\u500B
4447
+ {{provider}} \u5E33\u6236\u767B\u5165\uFF0C\u4E0D\u5FC5\u8A18\u4F4F\u5BC6\u78BC\u3002
4448
+
4449
+ \u5982\u679C\u60A8\u6C92\u6709\u5EFA\u7ACB\u6B64\u5E33\u6236\uFF0C\u8ACB\u806F\u7D61\u5BA2\u670D\u3002`
4450
+ },
4451
+ [MESSAGE_KEYS.oauthLinked]: {
4452
+ subject: "\u60A8\u7684\u5E33\u6236\u65B0\u589E\u4E86\u4E00\u7A2E\u767B\u5165\u65B9\u5F0F",
4453
+ html: `<h1>\u5DF2\u65B0\u589E {{provider}} \u767B\u5165</h1>
4454
+ <p>\u73FE\u5728\u4E5F\u53EF\u4EE5\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5165\u60A8\u7684\u5E33\u6236\u3002</p>
4455
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u65B0\u589E\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u4E26\u8B8A\u66F4\u5BC6\u78BC\uFF0C\u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u80FD\u4EE5\u60A8\u7684\u8EAB\u5206\u767B\u5165\u3002</p>`,
4456
+ text: `\u5DF2\u65B0\u589E {{provider}} \u767B\u5165
4457
+
4458
+ \u73FE\u5728\u4E5F\u53EF\u4EE5\u4F7F\u7528 {{provider}} \u767B\u5165\u60A8\u7684\u5E33\u6236\u3002
4459
+
4460
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u65B0\u589E\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u4E26\u8B8A\u66F4\u5BC6\u78BC\uFF0C
4461
+ \u53EF\u80FD\u6709\u5176\u4ED6\u4EBA\u80FD\u4EE5\u60A8\u7684\u8EAB\u5206\u767B\u5165\u3002`
4462
+ },
4463
+ [MESSAGE_KEYS.oauthUnlinked]: {
4464
+ subject: "\u60A8\u7684\u5E33\u6236\u79FB\u9664\u4E86\u4E00\u7A2E\u767B\u5165\u65B9\u5F0F",
4465
+ html: `<h1>\u5DF2\u79FB\u9664 {{provider}} \u767B\u5165</h1>
4466
+ <p>\u5DF2\u7121\u6CD5\u518D\u4F7F\u7528 <strong>{{provider}}</strong> \u767B\u5165\u3002\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u548C\u5BC6\u78BC\u4ECD\u53EF\u4F7F\u7528\u3002</p>
4467
+ <p class="muted">\u5982\u679C\u662F\u60A8\u672C\u4EBA\u79FB\u9664\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u3002</p>`,
4468
+ text: `\u5DF2\u79FB\u9664 {{provider}} \u767B\u5165
4469
+
4470
+ \u5DF2\u7121\u6CD5\u518D\u4F7F\u7528 {{provider}} \u767B\u5165\u3002\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u548C\u5BC6\u78BC\u4ECD\u53EF\u4F7F\u7528\u3002
4471
+
4472
+ \u5982\u679C\u662F\u60A8\u672C\u4EBA\u79FB\u9664\u7684\uFF0C\u7121\u9808\u63A1\u53D6\u4EFB\u4F55\u884C\u52D5\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u7ACB\u5373\u806F\u7D61\u5BA2\u670D\u3002`
4473
+ }
4474
+ };
4475
+
4168
4476
  // src/templates.ts
4169
4477
  var EN_TEMPLATES = {
4170
4478
  [MESSAGE_KEYS.emailRegistration]: {
@@ -4322,7 +4630,12 @@ change your password \u2014 someone else may be able to sign in as you.`
4322
4630
  If you did this, you're all set. If not, contact support right away.`
4323
4631
  }
4324
4632
  };
4325
- var DEFAULT_TEMPLATES = withTranslations(EN_TEMPLATES, { fr: FR_TEMPLATES, es: ES_TEMPLATES });
4633
+ var DEFAULT_TEMPLATES = withTranslations(EN_TEMPLATES, {
4634
+ fr: FR_TEMPLATES,
4635
+ es: ES_TEMPLATES,
4636
+ "zh-Hans": ZH_HANS_TEMPLATES,
4637
+ "zh-Hant": ZH_HANT_TEMPLATES
4638
+ });
4326
4639
  var SAMPLE_PAYLOADS = {
4327
4640
  [MESSAGE_KEYS.passwordRevoked]: { provider: "Google" },
4328
4641
  [MESSAGE_KEYS.oauthRegistration]: { provider: "Google", appName: "Fonderie" },