Commit 133fdb1d authored by mingyard's avatar mingyard

feat:限定翻译语言

parent 803b440a
......@@ -4,10 +4,18 @@ export interface ServiceConfig {
tts: {
txAsrTokenUrl: string;
};
fanYiGou: {
endpoint: string;
secret: string;
};
}
export const service: ServiceConfig = {
tts: {
txAsrTokenUrl: env.TTS_TX_ASR_TOKEN_URL ?? '',
},
fanYiGou: {
endpoint: env.FAN_YI_GOU_ENDPOINT ?? 'https://www.fanyigou.com',
secret: env.FAN_YI_GOU_SECRET ?? '',
},
};
......@@ -14,6 +14,16 @@ export class TranslateReqDto {
@IsEnum(SupportLanguages)
target: SupportLanguages;
@ApiProperty({
description: '源语言',
enum: SupportLanguages,
example: SupportLanguages.EN,
})
@Expose()
@IsNotEmpty()
@IsEnum(SupportLanguages)
source: SupportLanguages;
@ApiProperty({
description: '待翻译文本',
type: String,
......
......@@ -8,6 +8,7 @@ import { TranslateResDto } from './dto/res/translateRes.dto';
import { axiosPostRequest } from '@/common/utils/requests/request';
import { config } from '@/config';
import { BadRequestError } from '@/common/exception/badRequest/BadRequestError';
import crypto from 'crypto';
@Injectable()
export class TranslateService {
......@@ -29,6 +30,7 @@ export class TranslateService {
{
text: [translateDto.text],
target_lang: translateDto.target,
source_lang: translateDto.source,
},
{
headers: {
......@@ -48,4 +50,23 @@ export class TranslateService {
return { source, text };
}
// 获取翻译狗token
async generateToken(params, privateKey) {
// 按照key=value的格式,并按照参数名ASCII字典序排序
const sortedParams = Object.keys(params)
.sort()
.map((key) => `${key}=${params[key]}`)
.join('&');
const stringToHash = `${sortedParams}&privatekey=${privateKey}`;
// 生成MD5哈希并转换为大写
const token = crypto
.createHash('md5')
.update(stringToHash)
.digest('hex')
.toUpperCase();
return token;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment