refactor: add i18n support for converse system message

feat/group-preview
moonrailgun 2 years ago
parent 4172203dbb
commit f6c2f6fced

@ -47,6 +47,7 @@
"kba207c17": "No permission to view", "kba207c17": "No permission to view",
"kbb1ef795": "Verification failed, OTP has expired", "kbb1ef795": "Verification failed, OTP has expired",
"kbb96754b": "Group OP not allowed to be kicked out", "kbb96754b": "Group OP not allowed to be kicked out",
"kbe05914c": "{{user}} invited {{others}} to join the session",
"kc1e668f5": "Not allowed to kick yourself out", "kc1e668f5": "Not allowed to kick yourself out",
"kc4b77045": "{{nickname}} join this group with invite code from {{creator}}", "kc4b77045": "{{nickname}} join this group with invite code from {{creator}}",
"kcb07c88f": "Personal message subscription created, subscribeId: {{subscribeId}}", "kcb07c88f": "Personal message subscription created, subscribeId: {{subscribeId}}",

@ -47,6 +47,7 @@
"kba207c17": "没有查看权限", "kba207c17": "没有查看权限",
"kbb1ef795": "校验失败, OTP已过期", "kbb1ef795": "校验失败, OTP已过期",
"kbb96754b": "不允许踢出群组OP", "kbb96754b": "不允许踢出群组OP",
"kbe05914c": "{{user}} 邀请 {{others}} 加入会话",
"kc1e668f5": "不允许踢出自己", "kc1e668f5": "不允许踢出自己",
"kc4b77045": "{{nickname}} 通过 {{creator}} 的邀请码加入群组", "kc4b77045": "{{nickname}} 通过 {{creator}} 的邀请码加入群组",
"kcb07c88f": "个人消息订阅已创建, subscribeId: {{subscribeId}}", "kcb07c88f": "个人消息订阅已创建, subscribeId: {{subscribeId}}",

@ -1,7 +1,7 @@
import acceptLanguage from 'accept-language'; import acceptLanguage from 'accept-language';
type AllowedLanguage = 'en-US' | 'zh-CN'; type AllowedLanguage = 'en-US' | 'zh-CN';
acceptLanguage.languages(['en-US', 'zh-CN', 'zh', 'zh-TW']); acceptLanguage.languages(['en', 'en-US', 'zh-CN', 'zh', 'zh-TW']);
/** /**
* Accept-Language * Accept-Language
@ -15,5 +15,9 @@ export function parseLanguageFromHead(
return 'zh-CN'; return 'zh-CN';
} }
if (language === 'en' || language === 'en-US') {
return 'en-US';
}
return language as AllowedLanguage; return language as AllowedLanguage;
} }

@ -53,6 +53,7 @@ class ConverseService extends TcService {
async createDMConverse(ctx: TcContext<{ memberIds: string[] }>) { async createDMConverse(ctx: TcContext<{ memberIds: string[] }>) {
const userId = ctx.meta.userId; const userId = ctx.meta.userId;
const memberIds = ctx.params.memberIds; const memberIds = ctx.params.memberIds;
const t = ctx.meta.t;
const participantList = _.uniq([userId, ...memberIds]); const participantList = _.uniq([userId, ...memberIds]);
@ -105,13 +106,14 @@ class ConverseService extends TcService {
// 如果创建的是一个多人会话(非双人), 发送系统消息 // 如果创建的是一个多人会话(非双人), 发送系统消息
await Promise.all( await Promise.all(
_.without(participantList, userId).map<Promise<UserStruct>>( _.without(participantList, userId).map<Promise<UserStruct>>(
(memberId) => ctx.call('user.getUserInfo', { userId: memberId }) (memberId) => call(ctx).getUserInfo(memberId)
) )
).then((infoList) => { ).then((infoList) => {
return call(ctx).sendSystemMessage( return call(ctx).sendSystemMessage(
`${ctx.meta.user.nickname} 邀请 ${infoList t('{{user}} 邀请 {{others}} 加入会话', {
.map((info) => info.nickname) user: ctx.meta.user.nickname,
.join(', ')} `, others: infoList.map((info) => info.nickname).join(', '),
}),
roomId roomId
); );
}); });

@ -1,12 +1,11 @@
import type { Ref } from '@typegoose/typegoose'; import type { Ref } from '@typegoose/typegoose';
import { Types } from 'mongoose';
import type { Converse } from '../../../models/chat/converse'; import type { Converse } from '../../../models/chat/converse';
import type { import type {
UserDMList, UserDMList,
UserDMListDocument, UserDMListDocument,
UserDMListModel, UserDMListModel,
} from '../../../models/user/dmlist'; } from '../../../models/user/dmlist';
import { TcService, TcContext, TcDbService } from 'tailchat-server-sdk'; import { TcService, TcContext, TcDbService, db } from 'tailchat-server-sdk';
interface UserDMListService interface UserDMListService
extends TcService, extends TcService,
@ -41,7 +40,7 @@ class UserDMListService extends TcService {
const res = await this.adapter.model.findByIdAndUpdate(record.doc._id, { const res = await this.adapter.model.findByIdAndUpdate(record.doc._id, {
$addToSet: { $addToSet: {
converseIds: new Types.ObjectId(converseId), converseIds: new db.Types.ObjectId(converseId),
}, },
}); });
@ -62,7 +61,7 @@ class UserDMListService extends TcService {
}, },
{ {
$pull: { $pull: {
converseIds: new Types.ObjectId(converseId), converseIds: new db.Types.ObjectId(converseId),
}, },
} }
) )

Loading…
Cancel
Save