Compare commits

...
5 Commits
Author SHA1 Message Date
Boria138 ca321ac0ae chore(changelog): oops added @iodnoorov to thanks
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-11-13 21:57:51 +05:00
Boria138 5048244ed7 fix: respect disabled video fix setting in PortProton
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-11-13 21:48:24 +05:00
Boria138 e96550d155 chore: update Brazilian Portuguese and Simplified Chinese translations
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-11-13 21:19:14 +05:00
Boria138 eef9824596 fix(ci): fall back to rate-mirrors when Lenuma CDN is unavailable
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-11-13 21:15:29 +05:00
Codeberg Translateandadem c7acdd2ef4 Translated using Weblate (Russian)
Currently translated at 100.0% (808 of 808 strings)

Co-authored-by: Andrei Stepanov <adem4ik@gmail.com>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-11-13 17:44:11 +05:00
9 changed files with 201 additions and 106 deletions

No files matched your search

+34 -4
View File
@@ -31,9 +31,24 @@ jobs:
image: archlinux:base-devel
options: --privileged --device /dev/fuse
steps:
- name: Configure Arch mirror
- name: Configure Arch mirrors
run: |
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
if curl -fL --connect-timeout 10 --max-time 20 \
https://cdn.lenuma.ru/archlinux-mirror/core/os/x86_64/core.db -o /dev/null; then
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
elif curl -fL --retry 2 --connect-timeout 10 --max-time 60 \
https://github.com/westandskif/rate-mirrors/releases/download/v0.33.0/rate-mirrors-v0.33.0-x86_64-unknown-linux-musl.tar.gz \
-o /tmp/rate-mirrors.tar.gz &&
echo 'e0ffb221649b7e1ce6b67ffaabe7cfd2b619c8bf8d6971e07ff9507d4e19a4b3 /tmp/rate-mirrors.tar.gz' | sha256sum -c - &&
tar -xzf /tmp/rate-mirrors.tar.gz -C /tmp --strip-components=1 \
rate-mirrors-v0.33.0-x86_64-unknown-linux-musl/rate_mirrors &&
timeout --kill-after=5s 120s /tmp/rate_mirrors --allow-root --protocol=https --disable-untested-fallback \
--save=/tmp/arch-mirrorlist arch --max-delay=21600 &&
grep -q '^Server = https://' /tmp/arch-mirrorlist; then
install -m 644 /tmp/arch-mirrorlist /etc/pacman.d/mirrorlist
else
echo '::warning::Mirror ranking failed; keeping the original Arch mirrorlist'
fi
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
- name: Prepare container
@@ -74,9 +89,24 @@ jobs:
image: archlinux:base-devel
steps:
- name: Configure Arch mirror
- name: Configure Arch mirrors
run: |
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
if curl -fL --connect-timeout 10 --max-time 20 \
https://cdn.lenuma.ru/archlinux-mirror/core/os/x86_64/core.db -o /dev/null; then
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
elif curl -fL --retry 2 --connect-timeout 10 --max-time 60 \
https://github.com/westandskif/rate-mirrors/releases/download/v0.33.0/rate-mirrors-v0.33.0-x86_64-unknown-linux-musl.tar.gz \
-o /tmp/rate-mirrors.tar.gz &&
echo 'e0ffb221649b7e1ce6b67ffaabe7cfd2b619c8bf8d6971e07ff9507d4e19a4b3 /tmp/rate-mirrors.tar.gz' | sha256sum -c - &&
tar -xzf /tmp/rate-mirrors.tar.gz -C /tmp --strip-components=1 \
rate-mirrors-v0.33.0-x86_64-unknown-linux-musl/rate_mirrors &&
timeout --kill-after=5s 120s /tmp/rate_mirrors --allow-root --protocol=https --disable-untested-fallback \
--save=/tmp/arch-mirrorlist arch --max-delay=21600 &&
grep -q '^Server = https://' /tmp/arch-mirrorlist; then
install -m 644 /tmp/arch-mirrorlist /etc/pacman.d/mirrorlist
else
echo '::warning::Mirror ranking failed; keeping the original Arch mirrorlist'
fi
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
- name: Prepare container
+17 -2
View File
@@ -24,9 +24,24 @@ jobs:
container:
image: archlinux:base-devel@sha256:3cbf69d2d5958d6a294f3722c5668e6187c4df8e00fa27f72352f0bf83e495e1
steps:
- name: Configure Arch mirror
- name: Configure Arch mirrors
run: |
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
if curl -fL --connect-timeout 10 --max-time 20 \
https://cdn.lenuma.ru/archlinux-mirror/core/os/x86_64/core.db -o /dev/null; then
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
elif curl -fL --retry 2 --connect-timeout 10 --max-time 60 \
https://github.com/westandskif/rate-mirrors/releases/download/v0.33.0/rate-mirrors-v0.33.0-x86_64-unknown-linux-musl.tar.gz \
-o /tmp/rate-mirrors.tar.gz &&
echo 'e0ffb221649b7e1ce6b67ffaabe7cfd2b619c8bf8d6971e07ff9507d4e19a4b3 /tmp/rate-mirrors.tar.gz' | sha256sum -c - &&
tar -xzf /tmp/rate-mirrors.tar.gz -C /tmp --strip-components=1 \
rate-mirrors-v0.33.0-x86_64-unknown-linux-musl/rate_mirrors &&
timeout --kill-after=5s 120s /tmp/rate_mirrors --allow-root --protocol=https --disable-untested-fallback \
--save=/tmp/arch-mirrorlist arch --max-delay=21600 &&
grep -q '^Server = https://' /tmp/arch-mirrorlist; then
install -m 644 /tmp/arch-mirrorlist /etc/pacman.d/mirrorlist
else
echo '::warning::Mirror ranking failed; keeping the original Arch mirrorlist'
fi
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
- name: Install CI dependencies
+34 -4
View File
@@ -83,9 +83,24 @@ jobs:
image: archlinux:base-devel@sha256:3cbf69d2d5958d6a294f3722c5668e6187c4df8e00fa27f72352f0bf83e495e1
options: --privileged --device /dev/fuse
steps:
- name: Configure Arch mirror
- name: Configure Arch mirrors
run: |
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
if curl -fL --connect-timeout 10 --max-time 20 \
https://cdn.lenuma.ru/archlinux-mirror/core/os/x86_64/core.db -o /dev/null; then
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
elif curl -fL --retry 2 --connect-timeout 10 --max-time 60 \
https://github.com/westandskif/rate-mirrors/releases/download/v0.33.0/rate-mirrors-v0.33.0-x86_64-unknown-linux-musl.tar.gz \
-o /tmp/rate-mirrors.tar.gz &&
echo 'e0ffb221649b7e1ce6b67ffaabe7cfd2b619c8bf8d6971e07ff9507d4e19a4b3 /tmp/rate-mirrors.tar.gz' | sha256sum -c - &&
tar -xzf /tmp/rate-mirrors.tar.gz -C /tmp --strip-components=1 \
rate-mirrors-v0.33.0-x86_64-unknown-linux-musl/rate_mirrors &&
timeout --kill-after=5s 120s /tmp/rate_mirrors --allow-root --protocol=https --disable-untested-fallback \
--save=/tmp/arch-mirrorlist arch --max-delay=21600 &&
grep -q '^Server = https://' /tmp/arch-mirrorlist; then
install -m 644 /tmp/arch-mirrorlist /etc/pacman.d/mirrorlist
else
echo '::warning::Mirror ranking failed; keeping the original Arch mirrorlist'
fi
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
- name: Prepare container
@@ -198,9 +213,24 @@ jobs:
image: archlinux:base-devel@sha256:3cbf69d2d5958d6a294f3722c5668e6187c4df8e00fa27f72352f0bf83e495e1
steps:
- name: Configure Arch mirror
- name: Configure Arch mirrors
run: |
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
if curl -fL --connect-timeout 10 --max-time 20 \
https://cdn.lenuma.ru/archlinux-mirror/core/os/x86_64/core.db -o /dev/null; then
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
elif curl -fL --retry 2 --connect-timeout 10 --max-time 60 \
https://github.com/westandskif/rate-mirrors/releases/download/v0.33.0/rate-mirrors-v0.33.0-x86_64-unknown-linux-musl.tar.gz \
-o /tmp/rate-mirrors.tar.gz &&
echo 'e0ffb221649b7e1ce6b67ffaabe7cfd2b619c8bf8d6971e07ff9507d4e19a4b3 /tmp/rate-mirrors.tar.gz' | sha256sum -c - &&
tar -xzf /tmp/rate-mirrors.tar.gz -C /tmp --strip-components=1 \
rate-mirrors-v0.33.0-x86_64-unknown-linux-musl/rate_mirrors &&
timeout --kill-after=5s 120s /tmp/rate_mirrors --allow-root --protocol=https --disable-untested-fallback \
--save=/tmp/arch-mirrorlist arch --max-delay=21600 &&
grep -q '^Server = https://' /tmp/arch-mirrorlist; then
install -m 644 /tmp/arch-mirrorlist /etc/pacman.d/mirrorlist
else
echo '::warning::Mirror ranking failed; keeping the original Arch mirrorlist'
fi
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
- name: Prepare container
+3
View File
@@ -36,6 +36,7 @@
- Обновлён перевод на Португальский (Бразилия) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
- Обновлён перевод на Русский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/`
- Обновлён перевод на Немецкий `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/de/`
- Обновлён перевод на Китайский (упрощённый) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/`
### Fixed
@@ -58,12 +59,14 @@
- В меню системного трея при запуске игры с `--silent` добавлены отсутствовавшие действия приостановки и возобновления игры
- Исправлена гонка при запуске игры с `--silent`
- Исправлено обрезание значений в избранных настройках
- При выключенной опции «Fix video in game» больше не блокируется создание DXGI Device Manager в Wine/Proton
### Contributors
- @Dervart
- @adem4ik
- @rogerio-mattos
- @Rubin13
- @iodnoorov
---
@@ -2999,7 +2999,7 @@ start_portproton () {
if [[ "${PW_FIX_VIDEO_IN_GAME}" == 1 ]]
then export WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER="1"
else export WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER="0"
else unset WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER
fi
if [[ -f "$PATH_TO_GAME/MangoHud.conf" ]] ; then
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: PortProtonQt 0.1.1\n"
"Report-Msgid-Bugs-To: support@linux-gaming.ru\n"
"POT-Creation-Date: 2026-06-04 10:32+0500\n"
"PO-Revision-Date: 2026-10-17 23:27+0000\n"
"PO-Revision-Date: 2026-11-01 00:08+0000\n"
"Last-Translator: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>\n"
"Language-Team: Portuguese (Brazil) <https://translate.codeberg.org/projects/"
"portprotonqt/portprotonqt/pt_BR/>\n"
@@ -32,6 +32,8 @@ msgid ""
"PortProtonQt is already running. Stop it and all games, then restart for "
"the new launch?"
msgstr ""
"O PortProtonQt já está em execução. Deseja encerrá-lo junto com todos os "
"jogos abertos e reiniciá-lo para iniciar uma nova sessão?"
msgid "Yes"
msgstr "Sim"
@@ -149,9 +151,8 @@ msgstr "A pasta já existe: {file_name}"
msgid "Failed to rename file: {error}"
msgstr "Falha ao renomear o arquivo: {error}"
#, fuzzy
msgid "Select multiple"
msgstr "Selecionar Tudo"
msgstr "Selecionar vários"
msgid "Delete from PortProton"
msgstr "Excluir do PortProton"
@@ -481,9 +482,13 @@ msgid ""
"characters:\n"
"\n"
msgstr ""
"Foram encontrados caracteres cirílicos nos seguintes caminhos. O Wine pode "
"funcionar de forma instável. Mova o jogo ou o PortProton para um caminho sem "
"caracteres cirílicos:\n"
"\n"
msgid "Don't remind again"
msgstr ""
msgstr "Não lembrar novamente"
msgid "Game not found."
msgstr "Jogo não encontrado."
@@ -964,19 +969,19 @@ msgstr "Iniciando {0}"
#, python-brace-format
msgid "Scanning: {folder}"
msgstr ""
msgstr "Verificado: {folder}"
#, python-brace-format
msgid "Checking existing shortcuts: {path}"
msgstr ""
msgstr "Verificando os atalhos existentes: {path}"
#, python-brace-format
msgid "Adding: {name}"
msgstr ""
msgstr "Adicionando: {name}"
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Failed to create shortcut: {name}"
msgstr "Falha ao criar a pasta: {error}"
msgstr "Falha ao criar atalho: {name}"
msgid "Name:"
msgstr "Nome:"
@@ -993,9 +998,8 @@ msgstr "Capa Personalizada:"
msgid "Enter local path or URL for cover image"
msgstr "Informe o caminho local ou a URL da imagem de capa"
#, fuzzy
msgid "Custom Icon:"
msgstr "Capa Personalizada:"
msgstr "Ícone personalizado:"
msgid "Add shortcut to:"
msgstr "Adicionar atalho em:"
@@ -1009,29 +1013,28 @@ msgstr "Aplicar"
msgid "Invalid image"
msgstr "Imagem inválida"
#, fuzzy
msgid "Select folder"
msgstr "Excluir Pasta"
msgstr "Selecionar pasta"
#, fuzzy
msgid "Processing games…"
msgstr "Jogos Recentes"
msgstr "Processando jogos…"
#, python-brace-format
msgid ""
"Processed {completed}/{total}\n"
"{current}"
msgstr ""
"Processados: {completed}/{total}\n"
"{current}"
msgid "Information"
msgstr "Informação"
msgid "No games found in the selected folder."
msgstr ""
msgstr "Nenhum jogo encontrado na pasta selecionada."
#, fuzzy
msgid "Select games"
msgstr "Jogos Recentes"
msgstr "Selecionar jogos"
msgid "Close"
msgstr "Fechar"
@@ -2401,7 +2404,7 @@ msgid "Show compatibility report after game crash"
msgstr "Mostrar relatório de compatibilidade após a falha do jogo"
msgid "Disable Cyrillic path warning"
msgstr ""
msgstr "Desativar aviso de caminho em cirílico"
msgid "Disable ALT Linux i586 dependency check"
msgstr "Desativar verificação de dependências do ALT Linux i586"
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: support@linux-gaming.ru\n"
"POT-Creation-Date: 2026-03-22 13:50+0500\n"
"PO-Revision-Date: 2026-10-24 09:27+0000\n"
"PO-Revision-Date: 2026-10-26 12:27+0000\n"
"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/portprotonqt/"
"portprotonqt/ru/>\n"
@@ -996,9 +996,8 @@ msgstr "Пользовательская обложка:"
msgid "Enter local path or URL for cover image"
msgstr "Введите локальный путь или URL обложки"
#, fuzzy
msgid "Custom Icon:"
msgstr "Пользовательская обложка:"
msgstr "Пользовательский значок:"
msgid "Add shortcut to:"
msgstr "Добавить ярлык:"
@@ -7,9 +7,9 @@
msgid ""
msgstr ""
"Project-Id-Version: PortProtonQt 0.1.1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"Report-Msgid-Bugs-To: support@linux-gaming.ru\n"
"POT-Creation-Date: 2026-06-18 23:41+0500\n"
"PO-Revision-Date: 2026-07-22 12:06+0000\n"
"PO-Revision-Date: 2026-11-01 00:08+0000\n"
"Last-Translator: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>\n"
"Language-Team: Chinese (Simplified Han script) <https://"
"translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2026.6.1\n"
"X-Generator: Weblate 2026.10.1\n"
"Generated-By: Babel 2.18.0\n"
msgid ""
@@ -29,7 +29,7 @@ msgstr "PortProton 数据文件夹不可读写。请为 PortProton 数据选择
msgid ""
"PortProtonQt is already running. Stop it and all games, then restart for "
"the new launch?"
msgstr ""
msgstr "PortProtonQt 已 stacked运行。请关闭它及所有游戏,然后重新启动以应用新设置?"
msgid "Yes"
msgstr "是"
@@ -143,9 +143,8 @@ msgstr "文件已存在:{file_name}"
msgid "Failed to rename file: {error}"
msgstr "重命名文件失败:{error}"
#, fuzzy
msgid "Select multiple"
msgstr "全选"
msgstr "多选"
msgid "Delete from PortProton"
msgstr "从 PortProton 中删除"
@@ -156,9 +155,8 @@ msgstr "停止游戏"
msgid "Launch Game"
msgstr "启动游戏"
#, fuzzy
msgid "Repair"
msgstr "已配对"
msgstr "修复"
msgid "Remove from Desktop"
msgstr "从桌面移除"
@@ -176,7 +174,7 @@ msgid "Delete"
msgstr "删除"
msgid "Import"
msgstr ""
msgstr "导入"
msgid "Edit Shortcut"
msgstr "编辑快捷方式"
@@ -260,9 +258,9 @@ msgstr "桌面"
msgid "Failed to save custom data: {error}"
msgstr "保存自定义数据失败:{error}"
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Executable not found"
msgstr "找不到可执行文件:{0}"
msgstr "未找到可执行文件"
#, python-brace-format
msgid "Executable not found: {0}"
@@ -456,14 +454,14 @@ msgstr "缺少 32 位依赖项。现在安装吗?"
#, python-brace-format
msgid "Delete '{0}' and all files in its installation folder?"
msgstr ""
msgstr "导入('{0}'及其安装文件夹中的所有文件)?"
#, fuzzy
msgid "Select Epic game folder"
msgstr "删除文件夹"
msgid "Another Epic operation is running"
msgstr ""
msgstr "另一个 Epic 操作正在运行中"
#, fuzzy
msgid "Wine prefix not found"
@@ -475,9 +473,12 @@ msgid ""
"characters:\n"
"\n"
msgstr ""
"在以下路径中找到了西里尔字母字符。Wine 可能会运行不稳定。请将游戏或 "
"PortProton 移动到不包含西里尔字母字符的路径:\n"
"\n"
msgid "Don't remind again"
msgstr ""
msgstr "不再提示"
msgid "Game not found."
msgstr "未找到游戏。"
@@ -930,19 +931,19 @@ msgstr "正在启动 {0}"
#, python-brace-format
msgid "Scanning: {folder}"
msgstr ""
msgstr "正在扫描:{folder}"
#, python-brace-format
msgid "Checking existing shortcuts: {path}"
msgstr ""
msgstr "正在检查现有快捷方式:{path}"
#, python-brace-format
msgid "Adding: {name}"
msgstr ""
msgstr "正在添加:{name}"
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Failed to create shortcut: {name}"
msgstr "创建文件夹失败:{error}"
msgstr "创建快捷方式失败:{name}"
msgid "Name:"
msgstr "名称:"
@@ -979,21 +980,22 @@ msgstr "图像无效"
msgid "Select folder"
msgstr "删除文件夹"
#, fuzzy
msgid "Processing games…"
msgstr "最近游戏"
msgstr "正在处理游戏…"
#, python-brace-format
msgid ""
"Processed {completed}/{total}\n"
"{current}"
msgstr ""
"已处理:{completed}/{total}\n"
"{current}"
msgid "Information"
msgstr "信息"
msgid "No games found in the selected folder."
msgstr ""
msgstr "在所选文件夹中未找到任何游戏。"
#, fuzzy
msgid "Select games"
@@ -1013,10 +1015,10 @@ msgid "No cover selected"
msgstr "未选择封面"
msgid "Compatibility report"
msgstr ""
msgstr "兼容性报告"
msgid "The program stopped. Compatibility details were collected automatically."
msgstr ""
msgstr "程序已停止。已自动收集兼容性详细信息。"
msgid "Downloading…"
msgstr "正在下载…"
@@ -1242,7 +1244,7 @@ msgid "Exe Settings"
msgstr "可执行文件设置"
msgid "Edit user.conf"
msgstr ""
msgstr "编辑 user.conf"
msgid "Search settings…"
msgstr "搜索设置…"
@@ -1268,9 +1270,8 @@ msgstr "编辑 PPDB"
msgid "Clear PPDB"
msgstr "清除 PPDB"
#, fuzzy
msgid "Failed to load global game settings."
msgstr "加载主题失败"
msgstr "加载全局游戏设置失败"
msgid "Executable path is not available."
msgstr "可执行文件路径不可用。"
@@ -1281,9 +1282,8 @@ msgstr "PPDB 文件不存在于: "
msgid "Failed to open PPDB file:\n"
msgstr "打开 PPDB 文件失败:\n"
#, fuzzy
msgid "Failed to open file:\n"
msgstr "打开 PPDB 文件失败:\n"
msgstr "打开文件失败:\n"
msgid "Confirm PPDB Clear"
msgstr "确认清除 PPDB"
@@ -1303,9 +1303,8 @@ msgstr "默认"
msgid "disabled"
msgstr "已禁用"
#, fuzzy
msgid "Download Wine/Proton..."
msgstr "将 WINE/Proton 下载到 Steam"
msgstr "下载 Wine/Proton…"
msgid "Enter prefix name"
msgstr "输入前缀名称"
@@ -2104,13 +2103,11 @@ msgstr "全部清除"
msgid "Now Downloading"
msgstr "正在下载"
#, fuzzy
msgid "Waiting…"
msgstr "警告"
msgstr "请稍候…"
#, fuzzy
msgid "Disk: "
msgstr "链接:"
msgstr "磁盘: "
#, fuzzy
msgid "Started at"
@@ -2124,10 +2121,10 @@ msgid "Store"
msgstr "存储"
msgid "Copy the link to clipboard"
msgstr ""
msgstr "将链接复制到剪贴板"
msgid "Failed to log out of GOG account"
msgstr ""
msgstr "退出 GOG 账号失败"
msgid "Refreshing…"
msgstr "正在刷新…"
@@ -2149,27 +2146,27 @@ msgid "Log out"
msgstr "注销"
msgid "Open login page"
msgstr ""
msgstr "打开登录页面"
msgid "GOG account not connected"
msgstr ""
msgstr "未连接 GOG 账号"
#, python-brace-format
msgid "Refreshing GOG library… {0}/{1}"
msgstr ""
msgstr "正在刷新 GOG 藏品库… {0}/{1}"
#, fuzzy, python-brace-format
msgid "Failed to refresh GOG library: {0}"
msgstr "启动游戏失败:{0}"
msgid "Failed to log out of Epic account"
msgstr ""
msgstr "退出 Epic 账号失败"
msgid "Copy the authorization code to clipboard"
msgstr ""
msgstr "将授权码复制到剪贴板"
msgid "Epic authorization…"
msgstr ""
msgstr "Epic 授权中…"
#, fuzzy, python-brace-format
msgid "Epic login failed: {0}"
@@ -2183,33 +2180,33 @@ msgstr "已连接"
msgid "Epic account not connected"
msgstr "已连接"
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Refreshing Epic library… {0}/{1}"
msgstr "启动游戏失败:{0}"
msgstr "正在刷新 Epic 游戏库… {0}/{1}"
#, fuzzy, python-brace-format
msgid "Failed to refresh Epic library: {0}"
msgstr "启动游戏失败:{0}"
msgid "Select installation folder"
msgstr ""
msgstr "选择安装文件夹"
#, fuzzy
msgid "Another download is running"
msgstr "正在下载"
msgid "Another GOG operation is already running"
msgstr ""
msgstr "另一个 GOG 操作正在运行中"
msgid "GOG installation not found"
msgstr ""
msgstr "未找到 GOG 安装"
#, fuzzy
msgid "Select GOG game folder"
msgstr "删除文件夹"
msgid "Selected folder is not this GOG game"
msgstr ""
msgstr "所选文件夹不是此 GOG 游戏"
#, fuzzy
msgid "Starting"
@@ -2221,11 +2218,11 @@ msgstr "正在下载… {0}%"
#, python-brace-format
msgid "Disk: {0} MiB/s"
msgstr ""
msgstr "磁盘:{0} MiB/s"
#, fuzzy, python-brace-format
msgid "ETA: {0}"
msgstr ",预计剩余时间:{}秒"
msgstr "ETA: {0}"
#, fuzzy
msgid "Failed"
@@ -2279,7 +2276,7 @@ msgid "Theme"
msgstr "主题"
msgid "Grid"
msgstr ""
msgstr "网格"
#, fuzzy
msgid "List"
@@ -2289,21 +2286,17 @@ msgstr "浅色"
msgid "Vertical"
msgstr "部分"
#, fuzzy
msgid "Horizontal Blocks"
msgstr "水平 HUD 布局"
msgstr "水平块"
#, fuzzy
msgid "Horizontal Cards"
msgstr "水平 HUD 布局"
msgstr "水平卡片"
#, fuzzy
msgid "Horizontal endless Blocks"
msgstr "水平 HUD 布局"
msgstr "水平无限块"
#, fuzzy
msgid "Horizontal endless Cards"
msgstr "水平 HUD 布局"
msgstr "水平无限卡片"
#, fuzzy
msgid "Layout"
@@ -2331,7 +2324,7 @@ msgid "Auto"
msgstr "自动"
msgid "Account"
msgstr ""
msgstr "账号"
msgid "Brief"
msgstr "简要"
@@ -2359,7 +2352,7 @@ msgid "Auto Fullscreen on Gamepad connected"
msgstr "连接手柄时自动全屏"
msgid "Disable Boot Animation"
msgstr ""
msgstr "禁用开机动画"
msgid "Minimize to tray on close"
msgstr "关闭时最小化到系统托盘"
@@ -2374,22 +2367,22 @@ msgid "Hide Auto-Install Tab"
msgstr "隐藏自动安装标签页"
msgid "Hide Control Hints"
msgstr ""
msgstr "隐藏操作提示"
msgid "Force English language"
msgstr ""
msgstr "强制使用英语"
msgid "Enable UI Sounds"
msgstr "启用界面音效"
msgid "Show compatibility report after game crash"
msgstr ""
msgstr "游戏崩溃后显示兼容性报告"
msgid "Disable Cyrillic path warning"
msgstr ""
msgstr "禁用西里尔字母路径警告"
msgid "Disable ALT Linux i586 dependency check"
msgstr ""
msgstr "禁用 ALT Linux i586 依赖项检查"
msgid "Disable runtime download"
msgstr "禁用运行时下载"
@@ -2398,7 +2391,7 @@ msgid "Add to Steam compatibility tools"
msgstr "添加到 Steam 兼容工具"
msgid "Disable Steam Proton scanning"
msgstr ""
msgstr "禁用 Steam Proton 扫描"
msgid "Download WINE/Proton to Steam"
msgstr "将 WINE/Proton 下载到 Steam"
@@ -2487,7 +2480,7 @@ msgstr "确定要清除缓存吗?此操作无法撤销。"
#, python-brace-format
msgid "AppImage integrated at: {path}"
msgstr ""
msgstr "AppImage 已集成于:{path}"
#, fuzzy, python-brace-format
msgid "Failed to integrate AppImage: {error}"
@@ -2635,13 +2628,12 @@ msgstr "作者:"
msgid "Link:"
msgstr "链接:"
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Delete theme '{0}'?"
msgstr "选择主题:"
msgstr "删除主题“{0}”?"
#, fuzzy
msgid "Failed to delete theme."
msgstr "加载主题失败"
msgstr "删除主题失败。"
msgid "Prefix:"
msgstr "前缀:"
+23
View File
@@ -42,6 +42,29 @@ gui_config () {
assert ppdb.read_text() == expected
@mark.parametrize("enabled", ["0", "1", ""])
@mark.parametrize("inherited", [None, "0", "1"])
def test_video_fix_controls_dxgi_device_manager(
tmp_path: Path, enabled: str, inherited: str | None,
) -> None:
helper = Path("build-aux/share/portproton/scripts/functions_helper").read_text()
block = ' if [[ "${PW_FIX_VIDEO_IN_GAME}" == 1 ]]' + helper.split(
' if [[ "${PW_FIX_VIDEO_IN_GAME}" == 1 ]]', 1,
)[1].split(" fi", 1)[0] + " fi\n"
env = {"PATH": os.defpath, "PW_FIX_VIDEO_IN_GAME": enabled}
if inherited is not None:
env["WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER"] = inherited
result = subprocess.run(
["bash", "-c", block
+ 'printf "%s" "${WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER-unset}"'],
cwd=tmp_path, env=env, capture_output=True, text=True, check=False,
)
assert result.returncode == 0, result.stderr
assert result.stdout == ("1" if enabled == "1" else "unset")
@mark.parametrize("second_name", ["Game.exe", "Trainer.exe"])
@mark.parametrize("copies", [1, 3])
def test_run_after_accepts_same_exe(tmp_path: Path, second_name: str, copies: int) -> None: