feat: support translation for profile abount

This commit is contained in:
codytseng
2025-06-29 14:13:18 +08:00
parent e89cfc03e9
commit d3093a1c4e
20 changed files with 290 additions and 133 deletions

View File

@@ -13,7 +13,10 @@ class LibreTranslateService {
target: string,
server?: string,
api_key?: string
): Promise<string | undefined> {
): Promise<string> {
if (!text) {
return text
}
if (!server) {
throw new Error('LibreTranslate server address is not configured')
}
@@ -27,7 +30,11 @@ class LibreTranslateService {
if (!response.ok) {
throw new Error(data.error ?? 'Failed to translate')
}
return data.translatedText
const translatedText = data.translatedText
if (!translatedText) {
throw new Error('Translation failed')
}
return translatedText
}
}

View File

@@ -60,14 +60,21 @@ class TranslationService {
}
}
async translate(text: string, target: string): Promise<string | undefined> {
async translate(text: string, target: string): Promise<string> {
if (!text) {
return text
}
try {
const data = await this._fetch({
path: '/v1/translation/translate',
method: 'POST',
body: JSON.stringify({ q: text, target })
})
return data.translatedText
const translatedText = data.translatedText
if (!translatedText) {
throw new Error('Translation failed')
}
return translatedText
} catch (error) {
const errMsg = error instanceof Error ? error.message : ''
throw new Error(errMsg || 'Failed to translate')