Compare commits

...

7 Commits

Author SHA1 Message Date
33017eda63 Merge pull request #3982 from ytmd-devs/copilot/fix-ea870049-5d1f-406a-84f3-54e3b62e2df6
Fix workflow skipping build jobs due to incorrect output reference
2025-10-05 10:10:59 -07:00
779006d0cd Fix pr-build-artifacts workflow to use correct output name
Co-authored-by: ArjixWasTaken <53124886+ArjixWasTaken@users.noreply.github.com>
2025-10-05 17:09:33 +00:00
a0c0e3a21f Initial plan 2025-10-05 17:05:49 +00:00
b6a622a151 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-05 19:02:12 +02:00
ac59883b5c chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-05 19:02:11 +02:00
c5b6d24f10 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-10-05 19:02:11 +02:00
6fd97d8b88 Add automated build workflow for pull requests from repository members (#3981)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ArjixWasTaken <53124886+ArjixWasTaken@users.noreply.github.com>
2025-10-05 19:56:19 +03:00
3 changed files with 168 additions and 19 deletions

146
.github/workflows/pr-build-artifacts.yml vendored Normal file
View File

@ -0,0 +1,146 @@
name: Build PR Artifacts
on:
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "22.x"
jobs:
check-permissions:
name: Check if user has write access
runs-on: ubuntu-latest
outputs:
has-write-access: ${{ steps.check.outputs.require-result }}
steps:
- name: Check user permission
id: check
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.event.pull_request.user.login }}
build:
name: Build ${{ matrix.os }}
needs: check-permissions
if: needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build on macOS
if: startsWith(matrix.os, 'macOS')
run: |
pnpm dist:mac
pnpm dist:mac:arm64
- name: Install Linux dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo snap install snapcraft --classic
sudo apt update
sudo apt install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform/x86_64/24.08
sudo flatpak install -y flathub org.freedesktop.Sdk/x86_64/24.08
sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp/x86_64/24.08
- name: Build on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
pnpm dist:linux
pnpm dist:linux:deb-arm64
pnpm dist:linux:rpm-arm64
- name: Build on Windows
if: startsWith(matrix.os, 'windows')
run: |
pnpm dist:win
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.os }}
path: pack/
retention-days: 7
if-no-files-found: error
comment:
name: Comment on PR
needs: [check-permissions, build]
if: always() && needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Create comment
uses: actions/github-script@v7
with:
script: |
const runId = context.runId;
const runUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
const buildResult = '${{ needs.build.result }}';
let comment;
if (buildResult === 'success') {
comment = `## 🚀 Build Artifacts Ready!
The builds have completed successfully. You can download the artifacts from the workflow run:
**[📦 Download Artifacts](${runUrl})**
### Available builds:
- **Windows**: \`build-artifacts-windows-latest\`
- **macOS**: \`build-artifacts-macos-latest\`
- **Linux**: \`build-artifacts-ubuntu-latest\`
*Note: Artifacts are available for 7 days.*`;
} else if (buildResult === 'failure') {
comment = `## ❌ Build Failed
Unfortunately, one or more builds failed. Please check the workflow run for details:
**[View Workflow Run](${runUrl})**`;
} else {
comment = `## ⚠️ Build Status: ${buildResult}
The build process completed with status: **${buildResult}**
**[View Workflow Run](${runUrl})**`;
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});

View File

@ -884,8 +884,10 @@
"name": "TouchBar"
},
"transparent-player": {
"description": "Maakt de applicatiescherm doorzichtbaar",
"menu": {
"opacity": {
"label": "Dekking",
"submenu": {
"percent": "{{opacity}}%"
}
@ -899,7 +901,8 @@
"tabbed": "Tabbed"
}
}
}
},
"name": "Doorzichtige muziek speler"
},
"tuna-obs": {
"description": "Integratie met OBS's plug-in Tuna",

View File

@ -151,9 +151,9 @@
"label": "介面設定",
"submenu": {
"custom-window-title": {
"label": "客製化窗口標題",
"label": "自訂窗口標題",
"prompt": {
"label": "輸入客製化窗口標題: (留空其停用)",
"label": "輸入自訂視窗標題: (留空其停用)",
"placeholder": "例如: YouTube 音樂"
}
},
@ -459,11 +459,11 @@
"play-on-youtube-music": "顯示 Play on YouTube Music 按鈕",
"set-inactivity-timeout": "設定閒置狀態時長",
"set-status-display-type": {
"label": "狀態文字",
"label": "狀態樣式",
"submenu": {
"artist": "正在聽 {artist}",
"title": "正在聽 {song title}",
"youtube-music": "正在聽 YouTube Music"
"artist": "正在聽 {artist} 的歌曲",
"title": "正在聽 {song title}",
"youtube-music": "正在聽 YouTube Music"
}
}
},
@ -666,8 +666,8 @@
"name": "歌曲播放通知"
},
"performance-improvement": {
"description": "使用實驗性的腳本以最佳化效能",
"name": "效能最佳化 [Beta]"
"description": "使用實驗性的腳本以化效能",
"name": "效能化 [Beta]"
},
"picture-in-picture": {
"description": "允許應用程式切換至子母畫面模式",
@ -765,7 +765,7 @@
"prompt": {
"lastfm": {
"api-key": "Last.fm API 金鑰",
"api-secret": "Last.fm API 鑰"
"api-secret": "Last.fm API 鑰"
},
"listenbrainz": {
"token": {
@ -849,7 +849,7 @@
"label": "無",
"tooltip": "沒有偏好的提供者"
},
"tooltip": "選擇要使用的預設提供者"
"tooltip": "選擇預設的歌詞提供者"
},
"romanization": {
"label": "羅馬拼音化歌詞",
@ -884,7 +884,7 @@
"name": "觸控列 (Touchbar) 支援"
},
"transparent-player": {
"description": "讓應用程式視窗變為透明",
"description": "讓視窗背景變為透明糢糊",
"menu": {
"opacity": {
"label": "不透明度",
@ -893,16 +893,16 @@
}
},
"type": {
"label": "類型",
"label": "樣式",
"submenu": {
"acrylic": "壓克力",
"mica": "雲母",
"acrylic": "壓克力(Acrylic)",
"mica": "雲母(Mica)",
"none": "無",
"tabbed": "分頁式"
"tabbed": "分頁式(Tabbed)"
}
}
},
"name": "透明撥放器"
"name": "透明糢糊效果"
},
"tuna-obs": {
"description": "與 OBS 的 Tuna 外掛連線",
@ -940,9 +940,9 @@
}
},
"visualizer": {
"description": "新增一個視覺化音樂效果",
"description": "在播放器新增視覺化效果",
"menu": {
"visualizer-type": "視覺化效果類型"
"visualizer-type": "視覺化效果樣式"
},
"name": "視覺化效果"
}