diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 344b95ee..d0b31d4d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -29,3 +29,4 @@ _(Optional: add before/after screenshots, GIFs, or console output)_ - [ ] Code follows project style guidelines - [ ] Supports mobile and desktop UI/app (if applicable) - [ ] I have read [Contributing.md](https://github.com/Termix-SSH/Termix/blob/main/CONTRIBUTING.md) +- [ ] This is not a translation request. See [docs](https://docs.termix.site/translations) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 34f78ea8..d5352b14 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -17,7 +17,7 @@ on: jobs: build: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: blacksmith-8vcpu-ubuntu-2404 steps: - name: Checkout repository uses: actions/checkout@v5 diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml index 7c087e03..56ed3acb 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron.yml @@ -688,7 +688,7 @@ jobs: retention-days: 30 submit-to-flatpak: - runs-on: ubuntu-latest + runs-on: blacksmith-4vcpu-ubuntu-2404 if: github.event.inputs.artifact_destination == 'submit' && (github.event.inputs.build_type == 'all' || github.event.inputs.build_type == 'linux' || github.event.inputs.build_type == '') needs: [] permissions: diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 5d0df61f..664c9538 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -6,7 +6,7 @@ on: jobs: lint-and-build: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: Checkout code diff --git a/.github/workflows/translate.yml b/.github/workflows/translate.yml deleted file mode 100644 index 7c9db568..00000000 --- a/.github/workflows/translate.yml +++ /dev/null @@ -1,437 +0,0 @@ -name: Auto Translate - -on: - workflow_dispatch: - -permissions: - contents: write - pull-requests: write - -jobs: - translate-zh: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t zh --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-zh - path: src/locales/zh.json - continue-on-error: true - - translate-ru: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ru --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-ru - path: src/locales/ru.json - continue-on-error: true - - translate-pt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t pt --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-pt - path: src/locales/pt.json - continue-on-error: true - - translate-fr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t fr --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-fr - path: src/locales/fr.json - continue-on-error: true - - translate-es: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t es --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-es - path: src/locales/es.json - continue-on-error: true - - translate-de: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t de --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-de - path: src/locales/de.json - continue-on-error: true - - translate-hi: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t hi --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-hi - path: src/locales/hi.json - continue-on-error: true - - translate-bn: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t bn --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-bn - path: src/locales/bn.json - continue-on-error: true - - translate-ja: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ja --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-ja - path: src/locales/ja.json - continue-on-error: true - - translate-vi: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t vi --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-vi - path: src/locales/vi.json - continue-on-error: true - - translate-tr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t tr --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-tr - path: src/locales/tr.json - continue-on-error: true - - translate-ko: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ko --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-ko - path: src/locales/ko.json - continue-on-error: true - - translate-it: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t it --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-it - path: src/locales/it.json - continue-on-error: true - - translate-he: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t he --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-he - path: src/locales/he.json - continue-on-error: true - - translate-ar: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ar --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-ar - path: src/locales/ar.json - continue-on-error: true - - translate-pl: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t pl --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-pl - path: src/locales/pl.json - continue-on-error: true - - translate-nl: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t nl --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-nl - path: src/locales/nl.json - continue-on-error: true - - translate-sv: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t sv --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-sv - path: src/locales/sv.json - continue-on-error: true - - translate-id: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t id --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-id - path: src/locales/id.json - continue-on-error: true - - translate-th: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t th --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-th - path: src/locales/th.json - continue-on-error: true - - translate-uk: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t uk --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-uk - path: src/locales/uk.json - continue-on-error: true - - translate-cs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t cs --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-cs - path: src/locales/cs.json - continue-on-error: true - - translate-ro: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ro --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-ro - path: src/locales/ro.json - continue-on-error: true - - translate-el: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t el --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-el - path: src/locales/el.json - continue-on-error: true - - translate-nb: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t nb --maxLinesPerRequest 1 - - uses: actions/upload-artifact@v4 - with: - name: translations-nb - path: src/locales/nb.json - continue-on-error: true - - create-pr: - needs: - [ - translate-zh, - translate-ru, - translate-pt, - translate-fr, - translate-es, - translate-de, - translate-hi, - translate-bn, - translate-ja, - translate-vi, - translate-tr, - translate-ko, - translate-it, - translate-he, - translate-ar, - translate-pl, - translate-nl, - translate-sv, - translate-id, - translate-th, - translate-uk, - translate-cs, - translate-ro, - translate-el, - translate-nb, - ] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.GHCR_TOKEN }} - - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: translations-temp - - - name: Move translations to src/locales - run: | - cp translations-temp/translations-zh/zh.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-ru/ru.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-pt/pt.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-fr/fr.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-es/es.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-de/de.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-hi/hi.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-bn/bn.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-ja/ja.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-vi/vi.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-tr/tr.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-ko/ko.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-it/it.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-he/he.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-ar/ar.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-pl/pl.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-nl/nl.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-sv/sv.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-id/id.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-th/th.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-uk/uk.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-cs/cs.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-ro/ro.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-el/el.json src/locales/ 2>/dev/null || true - cp translations-temp/translations-nb/nb.json src/locales/ 2>/dev/null || true - rm -rf translations-temp - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 - with: - token: ${{ secrets.GHCR_TOKEN }} - commit-message: "chore: auto-translate to multiple languages" - branch: translations-update - delete-branch: true - title: "chore: Update translations for all languages" diff --git a/README-CN.md b/README-CN.md index 593c6a23..5c224730 100644 --- a/README-CN.md +++ b/README-CN.md @@ -16,17 +16,6 @@ 2025年9月1日获得
-#### 核心技术 - -[](#) -[](#) -[](#) -[](#) -[](#) -[](#) -[](#) -[](#) -