We also use XLOC at Epic, so we have the existing automation in place to work with that provider.
What you’ll need to do is create an UAT module for your project (these are in C#, I don’t know how to set them up off-hand), and create a class deriving from XLocLocalizationProvider and fill in the Config data for it (the Server, (XLOC server address), APIKey (XLOC username), APISecret (XLOC password), and LocalizationId (XLOC project ID)).
You also need to add a static method called StaticGetLocalizationProviderId returning a string, and override GetLocalizationProviderId to return the static version.
You may also need to map additional culture codes to XLOC IDs if we don’t map them by default (see GetEpicCultureToXLocLanguageId).
If you’re using the Localization Dashboard, you’ll need to make sure that your Config/Localization files are generated for your target (which you can do by running the Gather, Import, Export, and Compile steps) and checked into your source control.
With that done you’ll be able to use your XLOC project with our automation pipeline, by invoking UAT with something like the following arguments (you may also need to pass general UAT arguments to enable source control):
You can also use -LocalizationBranch if you have different branches of your game running automation at the same time and you don’t want them to conflict (we do this for the UE4 engine release branches).
You’ll also need to make sure that XLOC is prepared to accept the PO filename you use, and that your server has support for the UE4 PO format.
That’s what XLocLocalizationProvider is, although you didn’t state which version you’re using so it may be too old to have XLOC support out-of-the-box.