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",
"kbb1ef795": "Verification failed, OTP has expired",
"kbb96754b": "Group OP not allowed to be kicked out",
"kbe05914c": "{{user}} invited {{others}} to join the session",
"kc1e668f5": "Not allowed to kick yourself out",
"kc4b77045": "{{nickname}} join this group with invite code from {{creator}}",
"kcb07c88f": "Personal message subscription created, subscribeId: {{subscribeId}}",

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

@ -1,7 +1,7 @@
import acceptLanguage from 'accept-language';
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
@ -15,5 +15,9 @@ export function parseLanguageFromHead(
return 'zh-CN';
}
if (language === 'en' || language === 'en-US') {
return 'en-US';
}
return language as AllowedLanguage;
}

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

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

Loading…
Cancel
Save