| google-client-email | Google service-account client e-mail (GOOGLE_CLIENT_EMAIL). Required when using classic service-account key authentication. Omit when using Workload Identity Federation (WIF) — use google-github-actions/auth before this action instead.
| no | "" |
| google-private-key | Google service-account private key (GOOGLE_PRIVATE_KEY). Required when using classic service-account key authentication. Omit when using Workload Identity Federation (WIF) — use google-github-actions/auth before this action instead.
| no | "" |
| google-spreadsheet-id | ID of the Google Spreadsheet (GOOGLE_SPREADSHEET_ID). If omitted and auto-create is true, a new spreadsheet is created automatically. | no | "" |
| sheet-titles | Comma-separated list of sheet tab names to process (e.g. "landingPage,about"). The "i18n" sheet is always included automatically.
| yes | — |
| row-limit | Maximum number of rows to read per sheet | no | 100 |
| wait-seconds | Seconds to wait between consecutive Google Sheets write API calls (proactive throttle) and as the base back-off delay when retrying rate-limited calls (HTTP 429/503). Increase this value if you hit quota errors during sync or fresh-push with many keys.
| no | 1 |
| translations-output-dir | Directory to write per-locale JSON translation files | no | translations |
| locales-output-path | File path for the generated locales.ts index | no | src/i18n/locales.ts |
| data-json-path | File path for the languageData.json snapshot | no | src/lib/languageData.json |
| sync-local-changes | Push local changes from languageData.json back to the spreadsheet before fetching. Set to "false" to disable.
| no | true |
| auto-translate | Automatically add GOOGLETRANSLATE formulas for missing locale columns when new keys are pushed to the spreadsheet. Set to "true" to enable.
| no | false |
| override | When "true" and auto-translate is also "true", existing translations in other language columns are overwritten with GOOGLETRANSLATE formulas whenever a key is pushed. When "false" (the default) only empty cells receive a formula – existing translations are preserved.
| no | false |
| clean-push | When "true", ALL keys from the local languageData.json are pushed to the spreadsheet – including keys that already exist there – and the file-timestamp guard is bypassed. Existing cell values are updated with the local value when they differ; whether other language columns receive GOOGLETRANSLATE formulas depends on the auto-translate and override flags. Useful when the file has been copied from another project and the spreadsheet needs a complete refresh. Default: "false".
| no | false |
| auto-create | Automatically create a new Google Spreadsheet when no spreadsheet ID is provided. Requires google-client-email and google-private-key.
| no | true |
| spreadsheet-title | Title for the auto-created spreadsheet | no | google-sheet-translations |
| source-locale | Source locale for GOOGLETRANSLATE formulas in the auto-created spreadsheet | no | en |
| target-locales | Comma-separated target locales for auto-translation (e.g. "de,fr,es") | no | de,fr,es,it,pt,ja,zh |
| node-version | DEPRECATED – no longer used. The action always runs on Node 20. | no | 20 |
| package-version | DEPRECATED – no longer used. The bundled package version is fixed at release time. | no | latest |
| drive-folder-id | Google Drive folder ID to scan for spreadsheets and/or images. When set, the action automatically discovers all Google Spreadsheet files inside the folder (and sub-folders) and fetches translations from each one.
| no | — |
| scan-for-spreadsheets | Scan the drive-folder-id for Google Spreadsheet files automatically. Set to "false" to disable auto-discovery (useful when you supply spreadsheet-ids explicitly).
| no | true |
| spreadsheet-ids | Comma-separated list of additional spreadsheet IDs to fetch translations from, in addition to (or instead of) Drive folder auto-discovery. Example: "1abc…,1def…"
| no | — |
| sync-images | When "true", downloads image assets from the Drive folder to the local path specified by image-output-path. Requires drive-folder-id.
| no | false |
| image-output-path | Local directory to download Drive images into | no | ./public/remote-images |