liumaolin
Rename 'src/VoiceDialogue' to 'src/voice_dialogue'.
511ff0c
raw
history blame
1.78 kB
"""系统相关工具函数"""
import locale
import os
import platform
from typing import Literal
__all__ = ('get_system_language', 'get_system_info')
def get_system_language() -> Literal['zh', 'en']:
"""
获取系统当前语言设置
Returns:
str: 返回 'zh' 或 'en',默认为 'zh'
"""
try:
# 首先尝试从环境变量获取
lang = os.environ.get('LANG', '')
if not lang:
lang = os.environ.get('LANGUAGE', '')
if not lang:
lang = os.environ.get('LC_ALL', '')
if not lang:
lang = os.environ.get('LC_MESSAGES', '')
# 如果环境变量为空,尝试使用locale模块
if not lang:
try:
lang, _ = locale.getdefaultlocale()
if not lang:
lang = locale.getlocale()[0]
except (ValueError, AttributeError):
lang = None
# 解析语言代码
if lang:
lang = lang.lower()
if 'zh' in lang or 'chinese' in lang:
return 'zh'
elif 'en' in lang or 'english' in lang:
return 'en'
except Exception:
# 如果所有方法都失败,返回默认值
pass
# 默认返回中文
return 'zh'
def get_system_info() -> dict:
"""
获取系统信息
Returns:
dict: 包含系统信息的字典
"""
return {
'platform': platform.system(),
'platform_version': platform.version(),
'architecture': platform.architecture()[0],
'machine': platform.machine(),
'processor': platform.processor(),
'language': get_system_language(),
'python_version': platform.python_version(),
}