-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.yml
60 lines (55 loc) · 1.93 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
name: 'Translate i18next Files'
description: 'Translate i18next JSON files using AI and create a pull request with the changes'
inputs:
source_pattern:
description: 'Glob pattern for source language file(s)'
required: true
source_language:
description: 'Source language code'
required: true
default: 'en'
target_languages:
description: 'Comma-separated list of target language codes'
required: true
output_pattern:
description: 'Output file pattern (e.g., "locales/<lang>.json")'
required: true
replace_all:
description: 'Replace all existing translations'
required: true
default: 'false'
openai_api_key:
description: 'OpenAI API Key'
required: true
runs:
using: "composite"
steps:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Run translation
env:
OPENAI_API_KEY: ${{ inputs.openai_api_key }}
run: |
npx @bluedrop-learning-networks/i18next-translate \
--source "${{ inputs.source_pattern }}" \
--source-lang "${{ inputs.source_language }}" \
$(echo "${{ inputs.target_languages }}" | tr ',' '\n' | sed 's/^/--target /' | tr '\n' ' ') \
--output "${{ inputs.output_pattern }}" \
${{ inputs.replace_all == 'true' && '--replace-all' || '' }}
shell: bash
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
commit-message: 'chore: update translations'
title: 'Update translations'
body: |
This PR updates translations for i18next JSON files.
Source pattern: ${{ inputs.source_pattern }}
Source language: ${{ inputs.source_language }}
Target languages: ${{ inputs.target_languages }}
Output pattern: ${{ inputs.output_pattern }}
Replace all: ${{ inputs.replace_all }}
branch: update-translations
delete-branch: true