ការប្រើប្រាស់ GitHub Action Co-op Translator (ការដំឡើងសាធារណៈ)

April 7, 2026 · View on GitHub

អ្នកគោលដៅ៖ មគ្គុទេសក៍នេះគឺសំរាប់អ្នកប្រើប្រាស់នៅក្នុងឃ្លាំងទិន្នន័យសាធារណៈ ឬឯកជនភាគច្រើន ដែលសិទ្ធិ GitHub Actions លំនាំដើមគឺគ្រប់គ្រាន់។ វាប្រើប្រាស់ GITHUB_TOKEN នៅក្នុង។

ធ្វើឲ្យប្រព័ន្ធបកប្រែឯកសាររបស់ឃ្លាំងទិន្នន័យរបស់អ្នកដោយស្វ័យប្រវត្តិ ដោយប្រើ GitHub Action Co-op Translator។ មគ្គុទេសក៍នេះនឹងណែនាំអ្នកដោយជំហានក្នុងការកំណត់កិច្ចការដើម្បីបង្កើត pull requests ដោយស្វ័យប្រវត្តិជាមួយការបកប្រែបានធ្វើបច្ចុប្បន្នភាព នៅពេលដែលឯកសារ Markdown ប្រភព ឬរូបភាពរបស់អ្នកមានការផ្លាស់ប្ដូរ។

Important

ការជ្រើសរើសមគ្គុទេសក៍ត្រឹមត្រូវ៖

មគ្គុទេសក៍នេះពិស្តារការកំណត់សាមញ្ញជាមួយ GITHUB_TOKEN លំនាំដើម។ វាជាវិធីសាស្រ្តណែនាំសម្រាប់អ្នកភាគច្រើន ដោយមិនចាំបាច់គ្រប់គ្រងកិចឯរកូនសោឯកជន GitHub App ដែលមានភាពទាន់សម័យ។

លក្ខខ័ណ្ឌមុនចាប់ផ្ដើម

មុនពេលកំណត់ GitHub Action សូមប្រាកដថាអ្នកមានសក្ខីប័ត្រជំនួយសេវាកម្ម AI ដែលចាំបាច់រួចរាល់។

1. ចាំបាច់៖ សក្ខីប័ត្រម៉ូដែលភាសា AI
អ្នកត្រូវការសក្ខីប័ត្រសម្រាប់យុទ្ធសាស្រ្តភាសាដែលគាំទ្ររឺមួយប្រភេទយ៉ាងហោចណាស់៖

  • Azure OpenAI៖ ត្រូវការនគរបាល Endpoint, API Key, ឈ្មោះម៉ូដែល/Deployment និងកំណែ API។
  • OpenAI៖ ត្រូវការក钥 API, (ជាជម្រើស៖ អាយឌីស្ថាប័ន, URL មូលដ្ឋាន, ឈ្មោះម៉ូដែល)។
  • សូមមើល ម៉ូដែល និងសេវាកម្មដែលគាំទ្រ សម្រាប់ព័តមានលម្អិត។

2. ជាជម្រើស៖ សក្ខីប័ត្រធ្វើ AI Vision (សម្រាប់បកប្រែរូបភាព)

  • ត្រូវការដែកែបកប្រែអត្ថបទក្នុងរូបភាពប៉ុណ្ណោះ។
  • Azure AI Vision៖ ត្រូវការនគរបាល Endpoint និង Subscription Key។
  • ប្រសិនមិនត្រូវផ្តល់ទេ កិច្ចការនេះនឹងប្រើ របៀប Markdown ប៉ុណ្ណោះ

ការដំឡើង និងកំណត់តំម្លើង

អនុវត្តជំហានទាំងនេះដើម្បីកំណត់ប្រើ GitHub Action Co-op Translator ក្នុងឃ្លាំងទិន្នន័យរបស់អ្នកជាមួយ GITHUB_TOKEN លំនាំដើម។

ជំហាន 1៖ យល់ដឹងអំពីការផ្ទៀងផ្ទាត់ (ប្រើ GITHUB_TOKEN)

កិច្ចការនេះប្រើ GITHUB_TOKEN ដែលបង្កើតឡើងដោយ GitHub Actions។ កូនសោនេះផ្តល់សិទ្ធិស្វ័យប្រវត្ដទៅកាន់កិច្ចការដើម្បីធ្វើប្រតិបត្តិការចំពោះឃ្លាំងទិន្នន័យរបស់អ្នក តាមបណ្ដា​ការកំណត់ ដែលស្ថិតក្នុង ជំហាន 3

ជំហាន 2៖ កំណត់រឿងសម្ងាត់ក្នុងឃ្លាំងទិន្នន័យ

អ្នកត្រូវបញ្ចូលសក្ខីប័ត្រជំនួយសេវាកម្ម AI របស់អ្នកជារឿងសម្ងាត់ដែលចាក់សោរ នៅក្នុងការកំណត់ឃ្លាំងទិន្នន័យ។

  1. ចូលទៅឃ្លាំង GitHub ដែលអ្នកចង់ប្រើ។

  2. ទៅកាន់ Settings > Secrets and variables > Actions

  3. នៅខាងក្រោម Repository secrets ចុច New repository secret សម្រាប់មួយៗនៃសម្ងាត់សេវាកម្ម AI ដែលទាមទារខាងក្រោម។

    Select setting action (យោងរូបភាព៖ បង្ហាញទីតាំងបញ្ចូលសម្ងាត់)

សម្ងាត់សេវាកម្ម AI ដែលចាំបាច់ (បញ្ចូលទាំងអស់ដែលត្រូវអាស្រ័យលើលក្ខខ័ណ្ឌមុន)៖

ឈ្មោះសម្ងាត់ការពិពណ៌នាប្រភពតម្លៃ
AZURE_AI_SERVICE_API_KEYកូនសោសម្រាប់ Azure AI Service (Computer Vision)Azure AI Foundry របស់អ្នក
AZURE_AI_SERVICE_ENDPOINTចំណុចបញ្ចូលសម្រាប់ Azure AI Service (Computer Vision)Azure AI Foundry របស់អ្នក
AZURE_OPENAI_API_KEYកូនសោសម្រាប់សេវាកម្ម Azure OpenAIAzure AI Foundry របស់អ្នក
AZURE_OPENAI_ENDPOINTចំណុចបញ្ចូលសម្រាប់សេវាកម្ម Azure OpenAIAzure AI Foundry របស់អ្នក
AZURE_OPENAI_MODEL_NAMEឈ្មោះម៉ូដែល Azure OpenAI របស់អ្នកAzure AI Foundry របស់អ្នក
AZURE_OPENAI_CHAT_DEPLOYMENT_NAMEឈ្មោះការចែកចាយ Azure OpenAI របស់អ្នកAzure AI Foundry របស់អ្នក
AZURE_OPENAI_API_VERSIONកំណែ API សម្រាប់ Azure OpenAIAzure AI Foundry របស់អ្នក
OPENAI_API_KEYកូនសោសម្រាប់ OpenAIOpenAI Platform របស់អ្នក
OPENAI_ORG_IDអាយឌីអង្គការជាមួយ OpenAI (ជាជម្រើស)OpenAI Platform របស់អ្នក
OPENAI_CHAT_MODEL_IDអាយឌីម៉ូដែល OpenAI ជាក់លាក់ (ជាជម្រើស)OpenAI Platform របស់អ្នក
OPENAI_BASE_URLURL មូលដ្ឋាន API OpenAI ផ្ទាល់ខ្លួន (ជាជម្រើស)OpenAI Platform របស់អ្នក

ជំហាន 3៖ កំណត់សិទ្ធិកម្មវិធីរត់ Workflow

GitHub Action ត្រូវការសិទ្ធិធ្វើប្រតិបត្តិការតាម GITHUB_TOKEN ដើម្បីចាក់សោរកូដ និងបង្កើត pull requests។

  1. នៅក្នុងឃ្លាំងរបស់អ្នក ទៅកាន់ Settings > Actions > General
  2. រអិលចុះទៅផ្នែក Workflow permissions
  3. ជ្រើសរើស Read and write permissions។ វាផ្តល់សិទិ្ធ contents: write និង pull-requests: write ទាំងនេះសម្រាប់ GITHUB_TOKEN ក្នុងកិច្ចការនេះ។
  4. ធានាថាបញ្ចាក់ទិញចូលដំណើរការសម្រាប់ Allow GitHub Actions to create and approve pull requests មានការត្រួតពិនិត្យ។
  5. ចុច Save

Permission setting

ជំហាន 4៖ បង្កើតឯកសារ Workflow

ចុងក្រោយ បង្កើតឯកសារ YAML ដែលកំណត់លំដាប់ស្វ័យប្រវត្តិកម្មសម្រាប់ប្រើ GITHUB_TOKEN

  1. នៅថត root នៃឃ្លាំងទិន្នន័យរបស់អ្នក បង្កើតថត .github/workflows/ ប្រសិនបើវាមិនមានទេ។
  2. នៅក្នុង .github/workflows/ បង្កើតឯកសារឈ្មោះ co-op-translator.yml
  3. វាយបញ្ចូលមាតិកាដូចខាងក្រោមទៅក្នុង co-op-translator.yml
name: Co-op Translator

on:
  push:
    branches:
      - main

jobs:
  co-op-translator:
    runs-on: ubuntu-latest

    permissions:
      contents: write
      pull-requests: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'

      - name: Install Co-op Translator
        run: |
          python -m pip install --upgrade pip
          pip install co-op-translator

      - name: Run Co-op Translator
        env:
          PYTHONIOENCODING: utf-8
          # === AI Service Credentials ===
          AZURE_AI_SERVICE_API_KEY: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
          AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
          AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
          AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
          AZURE_OPENAI_MODEL_NAME: ${{ secrets.AZURE_OPENAI_MODEL_NAME }}
          AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }}
          AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          OPENAI_ORG_ID: ${{ secrets.OPENAI_ORG_ID }}
          OPENAI_CHAT_MODEL_ID: ${{ secrets.OPENAI_CHAT_MODEL_ID }}
          OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
        run: |
          # =====================================================================
          # IMPORTANT: Set your target languages here (REQUIRED CONFIGURATION)
          # =====================================================================
          # Example: Translate to Spanish, French, German. Add -y to auto-confirm.
          translate -l "es fr de" -y  # <--- MODIFY THIS LINE with your desired languages

      - name: Create Pull Request with translations
        uses: peter-evans/create-pull-request@v5
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          commit-message: "🌐 Update translations via Co-op Translator"
          title: "🌐 Update translations via Co-op Translator"
          body: |
            This PR updates translations for recent changes to the main branch.

            ### 📋 Changes included
            - Translated contents are available in the `translations/` directory
            - Translated images are available in the `translated_images/` directory

            ---
            🌐 Automatically generated by the [Co-op Translator](https://github.com/Azure/co-op-translator) GitHub Action.
          branch: update-translations
          base: main
          labels: translation, automated-pr
          delete-branch: true
          add-paths: |
            translations/
            translated_images/
  1. ប្ដូរតាមតម្រូវការ Workflow៖
  • [!IMPORTANT] ភាសាគោលដៅ៖ នៅជំហាន Run Co-op Translator អ្នក ត្រូវពិនិត្យនិងកែប្រែបញ្ជីកូដភាសា នៅក្នុងបញ្ជា translate -l "..." -y ឲ្យសមរម្យជាមួយគម្រោងរបស់អ្នក។ បញ្ជីឧទាហរណ៍ (ar de es...) ត្រូវបានជំនួស ឬកែប្រែ។
  • ឧបករណ៍ចាប់ផ្ដើម (on:): ការចាប់ផ្ដើមបច្ចុប្បន្នបើកការងារនេះនៅពេលមាន push ថ្មីទៅកាន់ main។ សម្រាប់ឃ្លាំងធំនេះ អាចបន្ថែម paths: ជា filter (មើលឧទាហរណ៍មិនបានដំណើរការជាលាយឡំក្នុង YAML) ដើម្បីដំណើរការកិច្ចការនេះតែលើពេលដែលឯកសារពាក់ព័ន្ធ (ឧ. ឯកសារជំនួយប្រភព) មានការផ្លាស់ប្ដូរ ដើម្បីការពារពេលរបស់ runner។
  • ព័ត៌មានលំអិត PR៖ អាចកែ commit-message, title, body, ឈ្មោះbranch និង labels នៅក្នុងជំហាន Create Pull Request ប្រសិនបើចាំបាច់។

ការបើកដំណើរការ Workflow

Warning


កំណត់ពេលរត់ GitHub-hosted Runner:
GitHub-hosted runners ដូចជា ubuntu-latest មាន កំណត់ពេលអតិបរមារត្រឹម 6 ម៉ោង
សម្រាប់ឃ្លាំងឯកសារធំ ប្រសិនបើដំណើរការបកប្រែហួស 6 ម៉ោង កិច្ចការនឹងត្រូវបញ្ចប់ដោយស្វ័យប្រវត្តិ។
ដើម្បីជៀសវាងនេះ សូមពិចារណា៖

  • ប្រើ self-hosted runner (គ្មានកំណត់ពេល)
  • បន្ថយចំនួនភាសាគោលដៅក្នុងមួយដំណើរ

ពេលដែលឯកសារ co-op-translator.yml ត្រូវបានបញ្ចូលក្នុងសាខា main របស់អ្នក (ឬសាខាដែលកំណត់នៅក្នុងកម្មវិធីចាប់ផ្ដើម on:) កិច្ចការនេះនឹងដំណើរការដោយស្វ័យប្រវត្តិនៅពេលមានការផ្លាស់ប្ដូរទៅកាន់សាខានោះ (ហើយត្រូវនឹង filter paths ប្រសិនបើមានកំណត់)។


ការបដិសេធៈ
ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ បើទោះជាយើងខិតខំរកភាពត្រឹមត្រូវ ក៏សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬមិនត្រឹមត្រូវ។ គួរមើលឯកសារដើមដែលមានភាសាគោលជាធនធានដ៏ទៃទៀតដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឲ្យបកប្រែដោយមនុស្សជំនាញជាមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបច្ចុប្បន្នភាពណាមួយនៅពីក្រោយការប្រើប្រាស់ការបកប្រែនេះឡើយ។