- The time it takes to download each individual file from Smartling is now logged
- Download time for an entire localization project is also logged.
#rb: trivial
#jira: none
#test locally compiled everything and performed a download of Smartling files for a project. The times were indeed reported correctly.
[CL 28526978 by leon huang in ue5-main branch]
Fixed issue with Smartling downloads failing during localization import. Issue is caused by an authentication token being retrieved/refreshed but not set as part of HttpClient Authentication request header.
This resulted in HTTP 401 errors where the authentication fails with the endpoint.
- Updated retrieval/refreshing of authentication token to also set the newly retreived/refreshed authentication data in the HttpClient Authentication request header.
- Introduce HTTP 401 status checks in the downloading/uploading of PO files to detect authentication token expiration. Token refreshing is performed the upload/download operation is retried.
- Refactored UploadLatestPOFile and DownloadLatestPOFile to reduce nesting blocks and minimize code in try-catch blocks.
- This is an urgent fix so no approved reviews yet. Will fix/address problems after.
#jira: FORT-645798
#rb: none
#rnx
#test Locally ran the Localize UAT command with the Download step. Before these changes, the download step would have HTTP 401 errors failing to authenticate. After these changes, I haven't encountered them.
[CL 27394443 by leon huang in ue5-main branch]
- Slack for authentication has been increased to 30s to account for heavy network traffic.
- Fixed logical error in determining authentication expiration time.
- Demoted Smartling Http errors from errors to warnings to prevent over-aggressive Horde notifications.
#rnx
#jira: UE-182142
#rb: trivial
#preflight: 642e1aa53670071d8324bbcb
#test: Ran a localization import job locally to verify that all authentication tokens are valid with a slack of 470s to simulate heavy network traffic. Ran a Horde job to ensure Setup Build ran successfully.
[CL 24951886 by leon huang in ue5-main branch]
- The default timeout for HttpClient is 100s, this can result in certain files not being able to be downloaded in time. The httpResponse is never received. From experiments, it seems responses can take ~160s to respond during busier network traffic.
- Introduced retries up to 5 times with exponential backoff of multiples of 150s when requesteing the HttpResponse. First try is 150s, second is 300s etc
- Introduced authentication token refreshing. This cuts down the amount of time required to retrieve a new authentication token. Introduced to ensure that the token used after a retry will still be valid.
#jira: none
#rb: Jamie.Dale, Vincent.Gauthier
#preflight: 6425645f5e52099fe3c85006
#test: Ran UAT locally with teh Localize command. Timeouts of 150s seems to work within 2 tries of exponential backoff while downloading the files. No additional timeout exceptions have been encountered so far.
[CL 24868100 by leon huang in ue5-main branch]
- Updated downloads to only use published. The Smartling workflow will take care of publishing strings after each step. This is to emulate the "pending" behavior.
- Introduced the smartling.entity_escaping directive and set it to false for all files that are uploaded. This prevents characters that resemble HTML tags from being escaped and garbling the translations.
#rnx
#rb: trivbial
#jira: none
#preflight: 64235f36b72410fc17f6533b
[CL 24831959 by leon huang in ue5-main branch]
The placeholders we use for FText are of the form {0} for positional argumens and {MyVariableName} as named arguments.
Smartling will flag those as warnings as potential placeholders and need to be manually reviewed. This feature will fix all the warnings and have all files to be uploaded have the directive applied to them.
#jira: FORT-541778
#rb: trivial
#preflight: 637e98b54364ef8d1493ce9b
#test Ran the BuildGraph command locally to make sure that UAt is able to compile properly
[CL 23258967 by leon huang in ue5-main branch]
#rb: trivial
#jira: FORT-528666
#preflight: none
#test: Ran BuildGraph locally for the "Localize UnrealEditor Release" target. Everything compiles fine but fix cannot be verified as localization data for 22.35 is not present yet.
[CL 22798379 by leon huang in ue5-main branch]
- Introduced the SmartlingLocalizationProvider abstract class to interface with Smartling backend for authentication, uploading and downloading of .po files.
- Subclasses of SmartlingLocalizationProvider can now be used as part of the Localize UAT command for automation.
#jira: none
#rb: Vincent.Gauthier, Jamie.Dale
#preflight: 632240dd506f1a33e0e3b52f
[CL 22030197 by leon huang in ue5-main branch]