lokalise/Push to Lokalise
GitHub action to upload changed translation files in the base language from your GitHub repository to Lokalise TMS.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 2, 2026
- License
- Apache 2.0
Pinned Snippet
uses: lokalise/lokalise-push-action@48a07f0c11b7ae2afa8e9966554238a7976539e3 # v5.4.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| api_token | API token for Lokalise with read/write permissions | yes | — |
| project_id | Project ID for Lokalise | yes | — |
| base_lang | Base language (e.g., en, fr_FR) | no | en |
| translations_path | Paths to translation files | no | locales |
| file_ext | Custom file extension(s) to use when searching for translation files (without leading dot). Accepts either a single value (e.g. "json") or multiple newline-separated values. This parameter has no effect when the name_pattern is provided. | no | json |
| additional_params | Additional parameters for Lokalise API on push. Must be valid JSON or YAML. Find all supported options at https://developers.lokalise.com/reference/upload-a-file | no | "" |
| flat_naming | Use flat naming convention (true/false). If true, expects files like locales/en.json instead of locales/en/file.json | no | false |
| name_pattern | Custom pattern for naming translation files. Overrides default language-based naming. Must include both filename and extension if applicable (e.g., "custom_name.json" or "**/*.yaml"). Default behavior is used if not set. | no | "" |
| skip_tagging | Do not assign tags to the uploaded translation keys on Lokalise | no | false |
| skip_polling | Do not wait for the upload operation to be marked as completed on Lokalise | no | false |
| skip_default_flags | Do not set any extra flags for the upload command | no | false |
| rambo_mode | Always upload all translation files for the base language regardless of changes | no | false |
| max_retries | Maximum number of retries on rate limit errors | no | 3 |
| sleep_on_retry | Number of seconds to sleep before retrying | no | 1 |
| http_timeout | Timeout for HTTP calls (in seconds) | no | 120 |
| upload_timeout | Timeout for the whole upload operation (in seconds) | no | 600 |
| poll_initial_wait | Number of seconds to wait before polling the upload process for the first time | no | 1 |
| poll_max_wait | Timeout for polling the upload process | no | 120 |
| os_platform | Target platform for the binary (linux_amd64, linux_arm64, mac_amd64, mac_arm64). If not set, the action will auto-detect based on the runner. | no | "" |
| git_user_name | Optional Git username to use when tagging the initial Lokalise upload. Defaults to GitHub actor. | no | "" |
| git_user_email | Optional Git email to use when tagging the initial Lokalise upload. Defaults to "<username>@users.noreply.github.com". | no | "" |
| use_tag_tracking | Use git tags to track last synced commit per branch | no | false |
Outputs
| name | description |
|---|---|
| initial_run | A boolean value indicating whether this is the initial run on the branch. |
| files_uploaded | A boolean value indicating whether any files were uploaded to Lokalise. |