Сателлитные сборки - это небольшие сборки, которые содержат только ресурсы и относятся к определенному языку (или, точнее, культуре). Например, скажем, у меня есть сборка под названием «MyAssembly.dll». Если бы у меня были переводы для американского английского и китайского (КНР), структура файла была бы такой:
MyAssembly.dll
en-US/
MyAssembly.resources.dll
zh-CN/
MyAssembly.resources.dll
Каждый из файлов .resources.dll
будет содержать данные из любых специфичных для культуры файлов ресурсов, которые будут находиться в проекте (они будут иметь форму FileName.culture.resx
, поэтому, если мы говорим о переводе английского языка в США на английский язык) Ресурсы Form1
, это будет Form1.us-EN.resx
).
Что касается использования этих файлов, это делается автоматически менеджером ресурсов. В сгенерированном коде для файла ресурсов (который предоставляет синтаксис на основе свойств для чтения значения ресурса) он использует текущую культуру пользовательского интерфейса, но вы можете переопределить это, вызвав перегрузку ResourceManager.GetString(string name, CultureInfo culture)
.