Merge pull request #715 from toeverything/feat/add-sync-language
feat: add i18n keys auto sync
This commit is contained in:
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@@ -1,2 +1,3 @@
|
|||||||
**/project.json @darkskygit
|
**/project.json @darkskygit
|
||||||
**/pnpm-lock.yaml @darkskygit
|
**/pnpm-lock.yaml @darkskygit
|
||||||
|
**/en.json @JimmFly
|
||||||
63
.github/workflows/languages-sync.yml
vendored
Normal file
63
.github/workflows/languages-sync.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: Languages Sync
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ['master']
|
||||||
|
paths:
|
||||||
|
- 'packages/i18n/**'
|
||||||
|
- '.github/workflows/languages-sync.yml'
|
||||||
|
pull_request:
|
||||||
|
branches: ['master']
|
||||||
|
paths:
|
||||||
|
- 'packages/i18n/**'
|
||||||
|
- '.github/workflows/languages-sync.yml'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Cancels all previous workflow runs for pull requests that have not completed.
|
||||||
|
# See https://docs.github.com/en/actions/using-jobs/using-concurrency
|
||||||
|
concurrency:
|
||||||
|
# The concurrency group contains the workflow name and the branch name for
|
||||||
|
# pull requests or the commit hash for any other events.
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
main:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [18]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Use pnpm
|
||||||
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 7
|
||||||
|
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
# https://github.com/actions/setup-node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install node modules
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Check Language Key
|
||||||
|
if: github.ref != 'refs/heads/master'
|
||||||
|
working-directory: ./packages/i18n
|
||||||
|
run: pnpm run sync-languages:check
|
||||||
|
env:
|
||||||
|
TOLGEE_API_KEY: ${{ secrets.TOLGEE_API_KEY }}
|
||||||
|
|
||||||
|
- name: Sync Languages
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
working-directory: ./packages/i18n
|
||||||
|
run: pnpm run sync-languages
|
||||||
|
env:
|
||||||
|
TOLGEE_API_KEY: ${{ secrets.TOLGEE_API_KEY }}
|
||||||
@@ -36,6 +36,12 @@ const App = () => {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## How the i18n workflow works?
|
||||||
|
|
||||||
|
- When the `src/resources/en.json`(base language) updated and merged to the develop branch, will trigger the `languages-sync` action.
|
||||||
|
- The `languages-sync` action will check the base language and add missing translations to the Tolgee platform.
|
||||||
|
- This way, partners from the community can update the translations.
|
||||||
|
|
||||||
## How to sync translations manually
|
## How to sync translations manually
|
||||||
|
|
||||||
- Set token as environment variable
|
- Set token as environment variable
|
||||||
@@ -45,7 +51,8 @@ export TOLGEE_API_KEY=tgpak_XXXXXXX
|
|||||||
```
|
```
|
||||||
|
|
||||||
- Run the `sync-languages:check` to check all languages
|
- Run the `sync-languages:check` to check all languages
|
||||||
- Run the `sync-languages` script to add new keys to the tolgee platform
|
- Run the `sync-languages` script to add new keys to the Tolgee platform
|
||||||
|
- Run the `download-resources` script to download the latest full-translation translation resources from the Tolgee platform
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user