Commit 133fdb1d authored by mingyard's avatar mingyard

feat:限定翻译语言

parent 803b440a
...@@ -4,10 +4,18 @@ export interface ServiceConfig { ...@@ -4,10 +4,18 @@ export interface ServiceConfig {
tts: { tts: {
txAsrTokenUrl: string; txAsrTokenUrl: string;
}; };
fanYiGou: {
endpoint: string;
secret: string;
};
} }
export const service: ServiceConfig = { export const service: ServiceConfig = {
tts: { tts: {
txAsrTokenUrl: env.TTS_TX_ASR_TOKEN_URL ?? '', 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 { ...@@ -14,6 +14,16 @@ export class TranslateReqDto {
@IsEnum(SupportLanguages) @IsEnum(SupportLanguages)
target: SupportLanguages; target: SupportLanguages;
@ApiProperty({
description: '源语言',
enum: SupportLanguages,
example: SupportLanguages.EN,
})
@Expose()
@IsNotEmpty()
@IsEnum(SupportLanguages)
source: SupportLanguages;
@ApiProperty({ @ApiProperty({
description: '待翻译文本', description: '待翻译文本',
type: String, type: String,
......
...@@ -8,6 +8,7 @@ import { TranslateResDto } from './dto/res/translateRes.dto'; ...@@ -8,6 +8,7 @@ import { TranslateResDto } from './dto/res/translateRes.dto';
import { axiosPostRequest } from '@/common/utils/requests/request'; import { axiosPostRequest } from '@/common/utils/requests/request';
import { config } from '@/config'; import { config } from '@/config';
import { BadRequestError } from '@/common/exception/badRequest/BadRequestError'; import { BadRequestError } from '@/common/exception/badRequest/BadRequestError';
import crypto from 'crypto';
@Injectable() @Injectable()
export class TranslateService { export class TranslateService {
...@@ -29,6 +30,7 @@ export class TranslateService { ...@@ -29,6 +30,7 @@ export class TranslateService {
{ {
text: [translateDto.text], text: [translateDto.text],
target_lang: translateDto.target, target_lang: translateDto.target,
source_lang: translateDto.source,
}, },
{ {
headers: { headers: {
...@@ -48,4 +50,23 @@ export class TranslateService { ...@@ -48,4 +50,23 @@ export class TranslateService {
return { source, text }; 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