Incremental source generator для строго типизированного доступа к .resx ключам.
Генератор читает .resx файлы из AdditionalFiles:
<AdditionalFiles Include="Resources\Localization\*.resx" />
Ключи вида:
MainWindow_Title
Settings_Log_FileCreated_Format
становятся API:
Localization.MainWindow.Title()
Localization.Settings.Log.FileCreated(arg0)
Если ключ заканчивается на _Format, generator ожидает placeholders:
<data name="MainWindow_Message_Format" xml:space="preserve">
<value>Current folder: {0}</value>
</data>
В коде:
var text = L.MainWindow.Message(AppContext.BaseDirectory);
LOC001: ключ есть в одном языке, но отсутствует в другом.LOC002: количество placeholders отличается между языками.