From f417a109bf6acf58e31764de637ffd956d9b685e Mon Sep 17 00:00:00 2001 From: "1808837298@qq.com" <1808837298@qq.com> Date: Sat, 4 Jan 2025 17:46:06 +0800 Subject: [PATCH] refactor: realtime i18n --- web/src/helpers/render.js | 50 +++++++++++++++++++++++++++--------- web/src/i18n/locales/en.json | 5 ++++ 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/web/src/helpers/render.js b/web/src/helpers/render.js index 85ff3ed4..4c241bfd 100644 --- a/web/src/helpers/render.js +++ b/web/src/helpers/render.js @@ -326,13 +326,31 @@ export function renderAudioModelPrice( return ( <>
-

提示:${inputRatioPrice} * {groupRatio} = ${inputRatioPrice * groupRatio} / 1M tokens

-

补全:${completionRatioPrice} * {groupRatio} = ${completionRatioPrice * groupRatio} / 1M tokens

-

音频提示:${inputRatioPrice} * {groupRatio} * {audioRatio} = ${inputRatioPrice * audioRatio * groupRatio} / 1M tokens

-

音频补全:${inputRatioPrice} * {groupRatio} * {audioRatio} * {audioCompletionRatio} = ${inputRatioPrice * audioRatio * audioCompletionRatio * groupRatio} / 1M tokens

-

+

{i18next.t('提示:${{price}} * {{ratio}} = ${{total}} / 1M tokens', { + price: inputRatioPrice, + ratio: groupRatio, + total: inputRatioPrice * groupRatio + })}

+

{i18next.t('补全:${{price}} * {{ratio}} = ${{total}} / 1M tokens', { + price: completionRatioPrice, + ratio: groupRatio, + total: completionRatioPrice * groupRatio + })}

+

{i18next.t('音频提示:${{price}} * {{ratio}} * {{audioRatio}} = ${{total}} / 1M tokens', { + price: inputRatioPrice, + ratio: groupRatio, + audioRatio, + total: inputRatioPrice * audioRatio * groupRatio + })}

+

{i18next.t('音频补全:${{price}} * {{ratio}} * {{audioRatio}} * {{audioCompRatio}} = ${{total}} / 1M tokens', { + price: inputRatioPrice, + ratio: groupRatio, + audioRatio, + audioCompRatio: audioCompletionRatio, + total: inputRatioPrice * audioRatio * audioCompletionRatio * groupRatio + })}

- {i18next.t('提示 {{input}} tokens / 1M tokens * ${{price}} + 补全 {{completion}} tokens / 1M tokens * ${{compPrice}} +', { + {i18next.t('文字提示 {{input}} tokens / 1M tokens * ${{price}} + 文字补全 {{completion}} tokens / 1M tokens * ${{compPrice}} +', { input: inputTokens, price: inputRatioPrice, completion: completionTokens, @@ -340,13 +358,21 @@ export function renderAudioModelPrice( })}

- 音频提示 {audioInputTokens} tokens / 1M tokens * ${inputRatioPrice} * {audioRatio} + 音频补全 {audioCompletionTokens} tokens / 1M tokens * ${inputRatioPrice} * {audioRatio} * {audioCompletionRatio} + {i18next.t('音频提示 {{input}} tokens / 1M tokens * ${{price}} * {{audioRatio}} + 音频补全 {{completion}} tokens / 1M tokens * ${{price}} * {{audioRatio}} * {{audioCompRatio}}', { + input: audioInputTokens, + completion: audioCompletionTokens, + price: inputRatioPrice, + audioRatio, + audioCompRatio: audioCompletionRatio + })}

- (文字 + 音频) * 分组 {groupRatio} = - ${price.toFixed(6)} + {i18next.t('(文字 + 音频)* 分组倍率 {{ratio}} = ${{total}}', { + ratio: groupRatio, + total: price.toFixed(6) + })}

-

仅供参考,以实际扣费为准

+

{i18next.t('仅供参考,以实际扣费为准')}

); @@ -377,13 +403,13 @@ const colors = [ 'red', 'teal', 'violet', - 'yellow', + 'yellow' ]; // 基础10色色板 (N ≤ 10) const baseColors = [ '#1664FF', // 主色 - '#1AC6FF', + '#1AC6FF', '#FF8A00', '#3CC780', '#7442D4', diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json index d668620a..eb9f98db 100644 --- a/web/src/i18n/locales/en.json +++ b/web/src/i18n/locales/en.json @@ -1053,6 +1053,11 @@ "模型价格:${{price}} * 分组倍率:{{ratio}} = ${{total}}": "Model price: ${{price}} * Group ratio: {{ratio}} = ${{total}}", "提示:${{price}} * {{ratio}} = ${{total}} / 1M tokens": "Prompt: ${{price}} * {{ratio}} = ${{total}} / 1M tokens", "补全:${{price}} * {{ratio}} = ${{total}} / 1M tokens": "Completion: ${{price}} * {{ratio}} = ${{total}} / 1M tokens", + "音频提示:${{price}} * {{ratio}} * {{audioRatio}} = ${{total}} / 1M tokens": "Audio prompt: ${{price}} * {{ratio}} * {{audioRatio}} = ${{total}} / 1M tokens", + "音频提示 {{input}} tokens / 1M tokens * ${{price}} * {{audioRatio}} + 音频补全 {{completion}} tokens / 1M tokens * ${{price}} * {{audioRatio}} * {{audioCompRatio}}": "Audio prompt {{input}} tokens / 1M tokens * ${{price}} * {{audioRatio}} + Audio completion {{completion}} tokens / 1M tokens * ${{price}} * {{audioRatio}} * {{audioCompRatio}}", + "音频补全:${{price}} * {{ratio}} * {{audioRatio}} * {{audioCompRatio}} = ${{total}} / 1M tokens": "Audio completion: ${{price}} * {{ratio}} * {{audioRatio}} * {{audioCompRatio}} = ${{total}} / 1M tokens", + "(文字 + 音频)* 分组倍率 {{ratio}} = ${{total}}": "(Text + Audio) * Group ratio {{ratio}} = ${{total}}", + "文字提示 {{input}} tokens / 1M tokens * ${{price}} + 文字补全 {{completion}} tokens / 1M tokens * ${{compPrice}} +": "Text prompt {{input}} tokens / 1M tokens * ${{price}} + Text completion {{completion}} tokens / 1M tokens * ${{compPrice}} +", "提示 {{input}} tokens / 1M tokens * ${{price}} + 补全 {{completion}} tokens / 1M tokens * ${{compPrice}} * 分组 {{ratio}} = ${{total}}": "Prompt {{input}} tokens / 1M tokens * ${{price}} + Completion {{completion}} tokens / 1M tokens * ${{compPrice}} * Group {{ratio}} = ${{total}}", "价格:${{price}} * 分组:{{ratio}}": "Price: ${{price}} * Group: {{ratio}}", "模型: {{ratio}} * 分组: {{groupRatio}}": "Model: {{ratio}} * Group: {{groupRatio}}",