Our app lets users pick the locale for a particular document (macOS document-based AppKit), then produce outputs using various inputs (user-provided and others) in that locale. We've written much of the plumbing, but are getting really close to String Catalogs and the like.
What can we do to use AppKit and Xcode's localization tools correctly and efficiently in this case?
We already have "Localization" objects, and are splitting the work into multiple String Catalogs for clarity. In each case the app will need to use the given Localization to produce (or replace) text at runtime, including the result of formatters
From what you described I think your best bet is still to rely on the LocalizedStringResource and passing the locale parameter picked by the user to extract the strings from the bundle for the given locale from your .lproj.
One caveat, you may need to pay attention to locale fallback (i.e. user has selected Spanish Mexican but your App is supporting Spanish only). LocalizedStringResource implements an automatic fallback that may or may not match your requirements.