From 1c35e5056300b7529177629d6b3a85c7d29e04e9 Mon Sep 17 00:00:00 2001 From: vuisme Date: Wed, 17 Apr 2024 10:57:16 +0700 Subject: [PATCH] Add vietnamese and sample font Vietnamese. String pre-translated by chatGPT --- app/services/voice.py | 2 +- resource/fonts/UTM Kabel KT.ttf | Bin 0 -> 35456 bytes webui/Main.py | 4 +- webui/i18n/vi.json | 66 ++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 resource/fonts/UTM Kabel KT.ttf create mode 100644 webui/i18n/vi.json diff --git a/app/services/voice.py b/app/services/voice.py index 5b6a460..5a9e597 100644 --- a/app/services/voice.py +++ b/app/services/voice.py @@ -15,7 +15,7 @@ from app.utils import utils def get_all_azure_voices(filter_locals=None) -> list[str]: if filter_locals is None: - filter_locals = ["zh-CN", "en-US", "zh-HK", "zh-TW"] + filter_locals = ["zh-CN", "en-US", "zh-HK", "zh-TW", "vi-VN"] voices_str = """ Name: af-ZA-AdriNeural Gender: Female diff --git a/resource/fonts/UTM Kabel KT.ttf b/resource/fonts/UTM Kabel KT.ttf new file mode 100644 index 0000000000000000000000000000000000000000..399bd07dde4a9961244db6f4c57ab2bf3e96d7e6 GIT binary patch literal 35456 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