All localization can be found in the Devdog.General.Localization namespace. And Devdog.General.Localization.Editors for all editor code.
You can also create your own localized object types (anything that inherits from UnityEngine.Object), but this does require you to implement your own editor, as unity doesn't support generic editors.
public class LocalizedSprite : LocalizedObjectBase<Sprite>
public LocalizedSprite(string key)
And for the editor code:
public class LocalizedSpriteEditor : LocalizedObjectEditorBase<Sprite, LocalizedSprite>
To set the current language through code you can call LocalizationManager.SetLanguag
LocalizationManager.SetLanguage("en-GB"); // To set the langauge to Britsh english.
The UI isn't repainted when the localization database changes, and a restart would be required (the current localization database would have to be set before any UI is displayed and rendered.