RainLab.Translate vs plugin language files

I found - as always - another strange behaviour for multisite and translate plugin as well.
when i use {{ "acme.demo::lang.key"|_ }} it was not reaching for translation at plugin language file, but it stays as empty value / default value as key, because it is “found” by rainlab.translate plugin.

not sure if this is something, that rainlab.translate is meant to be, to enforce all translations to be editable at translate plugin, but, when there is no translation it may still reach for that origin inside plugin i guess.

now, when i wish to translate page titles, or url’s i need to use translate plugin, right? and when i used translate plugin, im not able to use plugins, because translate plugin wont use language files anymore, then whole page is full of translation keys from plugins …

Deep-dive:

{{ key|_ }} - single _ → looking only on trans messages
{{ key|__ }} - double _ → looking only trans messages
{{ Lang::get(key) }} → looking only for plugin trans files
{{ key|trans }} → looking only for plugin trans files

Yeah this is expected behavior. RainLab.Translate is designed to override all translations so editors can customize them.

The translations exist in two places and are intentionally isolated for clarity. The deep-dive you gave is exactly how it is intended to work.