跳转到内容

参与贡献

欢迎贡献!在提交 pull request 之前,请阅读贡献指南。你也可以在讨论区提出想法,或查看项目待办列表。

需要 Python 3.10 至 3.13。如果没有安装,uv 会自动下载。

  1. 安装 FFmpeg,在 Linux 上还需安装 PortAudio:

    终端窗口
    # macOS
    brew install ffmpeg
    # Ubuntu 或 Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. 克隆仓库:

    终端窗口
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. 安装 uv,它负责管理依赖项和虚拟环境。

  4. 安装依赖:

    终端窗口
    uv sync

    uv sync 会安装支持 CUDA 的 PyTorch,在 Linux 和 Windows 上下载量很大。如果没有 NVIDIA GPU,请改为安装 CPU 版本:

    终端窗口
    uv sync --no-group cuda --group cpu
  5. 运行应用:

    终端窗口
    uv run src/app.py
终端窗口
uv run pre-commit install # 每次提交前检查并格式化代码
uv run pytest # 运行测试

界面使用 gettext 翻译。文本位于 res/locales/audiotext.pot,各语言的翻译位于 res/locales/<语言>/LC_MESSAGES/audiotext.po。 依赖数字的文本(例如 {count} file / {count} files)会按照其目录的 Plural-Forms 标头,为该语言的每种复数形式提供一个翻译(msgstr[0]、msgstr[1]…)。 同一文本可能出现两次,其中一次带有上下文(msgctxt),以便在不同位置使用不同的翻译:例如 Done 是转写的状态,而带 files 上下文的是文件夹中文件的筛选条件。

当代码中的文本发生变化,或编辑 .po 文件(例如使用 Poedit)之后,请运行此脚本。它会提取文本、更新并编译各语言目录,并列出仍需翻译或审校的文本(标记为 fuzzy),在此之前应用会以英语显示这些文本。只要有目录未更新,测试就会失败。

终端窗口
uv run .github/scripts/update_translations.py

要添加语言,请创建其目录、翻译并编译,然后将该语言添加到 src/utils/i18n.py 中的 UI_LANGUAGES:

终端窗口
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <代码>
uv run .github/scripts/update_translations.py

本网站使用 Starlight 构建,位于 audiotext-docs 仓库中。每种语言在 src/content/docs 中都有自己的文件夹(英语位于 en)。

终端窗口
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # 在 http://localhost:4321 上运行网站
npm run build # 将网站构建到 dist

每个页面底部都有一个编辑此页链接,可在 GitHub 上打开该页面。