You can customize much of the default behavior of the GitHub Connector by configuring custom settings within each configuration set.
How to customize a configuration set
After you have successfully created a configuration set, you can modify the custom settings to change the default behavior.
A configuration set must be disabled in order to make any changes to the custom settings. For more information, read our documentation on Modifying a Configuration Set.
- Within your GitHub Connector project, navigate to the Settings tab > GitHub Settings.
- Select the ellipsis (...) actions menu next to the disabled configuration set you wish to modify and click Edit.
- This will open the configuration details and settings page where you can configure any of the settings discussed below.
GitHub Activity Processing
Translation Hold
This option is only available in Pull Request mode.
When enabled, the GitHub Connector automatically applies a “hold” label to your GitHub pull requests. This instructs the connector to pause the creation of Smartling translation jobs until the label is manually removed in GitHub. When the pull request is ready for translation, removing the label triggers the creation of translation jobs.
This feature is designed for development workflows that use placeholder copy in pull requests, helping prevent translations from being created before the final copy is ready. By using Translation Hold, you ensure that translations begin only when the placeholder text has been replaced with finalized content.
Ignore Draft Pull Request
This option is only available in Pull Request mode.
You can configure the connector to monitor only active pull requests and ignore any content in draft pull requests.
Job Creation
Locale Management
By default, the GitHub Connector requests translations for all available locales in your Smartling project. You can customize this behavior and select which locales should be included in translation jobs.
Auto Authorize
You can enable Auto Authorize to automatically authorize all jobs created by the connector. This means translation jobs will be authorized automatically into each locale’s default workflow.
If Auto Authorize is not enabled, users must authorize jobs manually from the Jobs Dashboard.
Consult your Solution Architect for guidance on whether this option should be enabled for your project.
Translation Job Create Mode
Choose whether the connector should always create a new job for each pull request or commit containing files that match the configuration paths (recommended), or whether it should add content to an existing job.
If you choose to add content to an existing job, the connector looks for the most recent job it created for the configuration set (Single Branch mode) or pull request (Pull Request mode). If the job status is in progress, the connector adds any new files or strings to that job. If the job is canceled, complete, or deleted, a new job is created. This option is not recommended if you push content frequently, because source content may be overwritten.
We recommend creating a new job for each file, as this ensures that the content translated in that job reflects the exact content committed. The tradeoff is that multiple pull requests must remain open until the job is complete (Pull Request mode only) and the translated files are delivered. The benefit is that translation delivery is not delayed by continually adding new content to an existing job.
Translation Delivery
Translation Auto-delivery
Automatic translation delivery is enabled by default in both Pull Request mode and Single Branch mode. If you prefer not to have translations delivered back to GitHub automatically, you can disable this setting. In that case, you will need to create a scheduled task or trigger a manual export to have translations delivered back to GitHub.
Custom Locale Codes
You can specify what the value of the {locale} variable will be for the translation path when translations are delivered back to your repository. If a custom locale value is not specified, the default Smartling locale code is used.
Include Original Strings
Choose whether Smartling should return the original source string or an empty string when no translation is available. When enabled, the original source string is returned. When disabled, an empty string is returned
This option is only supported for Android XML, ARB, Gettext, IDML, iOS, Java, JSON, QT, Strings Dict, XLIFF, custom XML, and YAML files.
Include PR Reviewers
Choose whether Smartling should automatically add all GitHub users who committed changes as reviewers to the translation pull request. This setting is only available for configuration sets using Pull Request mode or Single Branch mode and is not supported for On-Demand mode. The GitHub users added as reviewers do not need to be Smartling users.
In Pull Request mode, the connector tags all GitHub users who contributed to the pull request that triggered the translation job.
In Single Branch mode, the connector tags only the GitHub user who made the commit that triggered the job.
Early Delivery
Enable Early Delivery to receive translated files in GitHub before translation jobs are completed and strings reach the final published step. With Early Delivery, prepublished translations are delivered in a separate early delivery pull request. This unblocks the original pull request, allowing you to merge both the source and translations into the feature branch before the translation job is complete.
For more information, see Get Translations Before Job Completion with Early Delivery.
Commit Grouping
This setting allows you to control how commits are pushed back to GitHub in translation delivery pull requests. The available options include:
- Single Commit: Combines all translated files for all locales into one single commit.*
- Per Locale: Combines all translated files for each locale into one large commit.*
- Per File: Combines translations for each file across all locales into one large commit.*
- Per File and Locale: Creates a separate commit for each file per translated locale.
* If the size of any commit is too large, it will be split into two or more parts.