How to setup Localization/Addressables to have initial tables packaged via App build but can be updated later on remotely

Hi there,

I’m new to the localization system but have some experience with the Addressables system.
I read through the documentation and found some similar questions in the forum but didn’t get a working answer out of it, so maybe someone can point me in the right direction.
The use case I want for my current app is like this:

Main Menue as the first scene (after an empty one that does some setup stuff):

In this main menue I have some Textfields and Sprites that are set via the Localization system.
Since the Apple App Store has some restrictions on loading content without user authorization the Addressables setting for Build & Load paths to remote (I’m using my own webspace to set the addressables packages there) wont work, since as far as I could test with setting the device to airplane mode, the strings/sprites for the main menue are missing on first start of the app and are only added after I enable internet access and restart the app.

When I set the build/load paths to local I can’t update the localization tables via upload to my server (maybe I’m missing something in the settings, but as far as I understand the Addressables system, the local option packages the tables into the Streaming Assets folder of the app).

Is there a way to package the initial state of the Localization tables for the first release and update them later on through uploaded Addressables packages?

Also I have a list with packaged scenes the user can download to open later on. I would like to add localization tables to only these addressable groups (which include sprites, audio and strings) to keep the initial download of the app as slim as possible. As far as I currently have the overview, even if I create new tables for these assets and try to add them to the buildgroups, the assets from the asset table are still in only one Localization-Assets entry.

Thanks and best regards.
Leo

There is a way to include a local copy of the remote asset bundle so it can fallback to that. It is complicated to do and doesnt always work so not recommended, some info on it is in here Implementing Local Fallback for Remote Addressables in Unity Localization

I would suggest using 2 tables, 1 local and 1 remote. First try the remote, if it fails then fallback to the local one.
You can also try this Scripting | Localization | 1.5.2

Hi Karl,

Thanks for your reply. I gathered as much from the thread about Implementing Local Fallback but thought maybe there might be another solution.

I will try your recommendation of using two tables. It will suck for updating both but with the CSV import/export it should be possible to keep up to date rather quickly.

Have you any insight on my second question about packaging localized assets to be only downloaded when the scene that uses it is requested to be downloaded by the user?

Thanks and best regards,
Leo

The assets will be downloaded when the scene opens and requests them. If you want to download them sooner then you could preload them by name so they have been cached.

var preloadOperation = LocalizationSettings.StringDatabase.PreloadTables(new TableReference[] { "My Scene", "My Other Scene etc" });
yield return preloadOperation;