import locale ''' 本地化方式如下所示 ''' LANGUAGE_LIST = ['zh_CN', 'en_US', 'ja_JP'] LANGUAGE_ALL = { 'zh_CN': { 'SUPER': 'END', 'LANGUAGE': 'zh_CN', '选择模型文件': '选择模型文件', '模型:.pt格式(自动识别同目录下config.yaml)': '模型:.pt格式(自动识别同目录下config.yaml)', '选择配置文件所在目录': '选择配置文件所在目录', '打开文件夹': '打开文件夹', '读取配置文件': '读取配置文件', '保存配置文件': '保存配置文件', '快速配置文件': '快速配置文件', '输入设备': '输入设备', '输出设备': '输出设备', '音频设备': '音频设备', '说话人id': '说话人id', '响应阈值': '响应阈值', '变调': '变调', '采样率': '采样率', '启用捏音色功能': '启用捏音色功能', '设置混合音色': '设置混合音色', '普通设置': '普通设置', '音频切分大小': '音频切分大小', '交叉淡化时长': '交叉淡化时长', '使用历史区块数量': '使用历史区块数量', 'f0预测模式': 'f0预测模式', '启用增强器': '启用增强器', '启用相位声码器': '启用相位声码器', '性能设置': '性能设置', '开始音频转换': '开始音频转换', '停止音频转换': '停止音频转换', '推理所用时间(ms):': '推理所用时间(ms):', '扩散设置': '扩散设置', '启用扩散': '启用扩散', '扩散加速': '扩散加速', '扩散深度': '扩散深度', '扩散说话人id': '扩散说话人id', '扩散模型文件': '扩散模型文件', '不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', '启用DPMs(推荐)': '启用DPMs(推荐)' }, 'en_US': { 'SUPER': 'zh_CN', 'LANGUAGE': 'en_US', '选择模型文件': 'Select Model File', '模型:.pt格式(自动识别同目录下config.yaml)': 'Model:.pt format(Auto ust config.yaml in here)', '选择配置文件所在目录': 'Select the configuration file directory', '打开文件夹': 'Open folder', '读取配置文件': 'Read config file', '保存配置文件': 'Save config file', '快速配置文件': 'Fast config file', '输入设备': 'Input device', '输出设备': 'Output device', '音频设备': 'Audio devices', '说话人id': 'Speaker ID', '响应阈值': 'Response threshold', '变调': 'Pitch', '采样率': 'Sampling rate', '启用捏音色功能': 'Enable Mix Speaker', '设置混合音色': 'Mix Speaker', '普通设置': 'Normal Settings', '音频切分大小': 'Segmentation size', '交叉淡化时长': 'Cross fade duration', '使用历史区块数量': 'Historical blocks used', 'f0预测模式': 'f0Extractor', '启用增强器': 'Enable Enhancer', '启用相位声码器': 'Enable Phase Vocoder', '性能设置': 'Performance settings', '开始音频转换': 'Start conversion', '停止音频转换': 'Stop conversion', '推理所用时间(ms):': 'Inference time(ms):', '扩散设置': '扩散设置', '启用扩散': '启用扩散', '扩散加速': '扩散加速', '扩散深度': '扩散深度', '扩散说话人id': '扩散说话人id', '扩散模型文件': '扩散模型文件', '不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', '启用DPMs(推荐)': '启用DPMs(推荐)' }, 'ja_JP': { 'SUPER': 'zh_CN', 'LANGUAGE': 'ja_JP', '选择模型文件': 'モデルを選択', '模型:.pt格式(自动识别同目录下config.yaml)': 'モデル:.pt形式(同じディレクトリにあるconfig.yamlを自動認識します)', '选择配置文件所在目录': '設定ファイルを選択', '打开文件夹': 'フォルダを開く', '读取配置文件': '設定ファイルを読み込む', '保存配置文件': '設定ファイルを保存', '快速配置文件': '設定プロファイル', '输入设备': '入力デバイス', '输出设备': '出力デバイス', '音频设备': '音声デバイス', '说话人id': '話者ID', '响应阈值': '応答時の閾値', '变调': '音程', '采样率': 'サンプリングレート', '启用捏音色功能': 'ミキシングを有効化', '设置混合音色': 'ミキシング', '普通设置': '通常設定', '音频切分大小': 'セグメンテーションのサイズ', '交叉淡化时长': 'クロスフェードの間隔', '使用历史区块数量': '使用するヒストリカルブロック数', 'f0预测模式': 'f0予測モデル', '启用增强器': 'Enhancerを有効化', '启用相位声码器': 'フェーズボコーダを有効化', '性能设置': 'パフォーマンスの設定', '开始音频转换': '変換開始', '停止音频转换': '変換停止', '推理所用时间(ms):': '推論時間(ms):', '扩散设置': '扩散设置', '启用扩散': '启用扩散', '扩散加速': '扩散加速', '扩散深度': '扩散深度', '扩散说话人id': '扩散说话人id', '扩散模型文件': '扩散模型文件', '不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', '启用DPMs(推荐)': '启用DPMs(推荐)' } } class I18nAuto: def __init__(self, language=None): self.language_list = LANGUAGE_LIST self.language_all = LANGUAGE_ALL self.language_map = {} if language is None: language = 'auto' if language == 'auto': language = locale.getdefaultlocale()[0] if language not in self.language_list: language = 'zh_CN' self.language = language super_language_list = [] while self.language_all[language]['SUPER'] != 'END': super_language_list.append(language) language = self.language_all[language]['SUPER'] super_language_list.append('zh_CN') super_language_list.reverse() for _lang in super_language_list: self.read_language(self.language_all[_lang]) def read_language(self, lang_dict: dict): for _key in lang_dict.keys(): self.language_map[_key] = lang_dict[_key] def __call__(self, key): return self.language_map[key]