Использование premake с несколькими локализациями
Я работаю с premake 5 уже несколько дней. В настоящее время я пытаюсь перенести наше решение VS2015 (в основном C++ native и CLI) на решение premake 5. До сих пор у меня не было проблем, но сейчас я не могу создавать библиотеки ресурсов для всех языков, на которые мы локализуем наши сборки. Например, если у нас есть fr и es (для французского и испанского), у нас должно быть разделение сборки следующим образом:
foo.dll
(по умолчанию английский),- спутники
foo.resources.dll
друг для друга языки (разнесенные в разные папки конечно).
Но я не могу (читай: я не знаю как) правильно написать скрипт lua.
Кто-нибудь знает, как генерировать локализованные (сателлитные) сборки с premake5?
Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ 1
Я добавил это к моему сценарию lua:
files({"/**.resx"})
Добавил .resx
файлы в .vcxproj
файл, но не включается так:
<EmbeddedResource Include="bar.resx"/>
они включены как это:
<None Include="bar.resx"/>
В чем дело?
РЕДАКТИРОВАТЬ 2
Затем я добавил:
filter "files:**.resx"
buildaction "Embed"
Но это остается прежним. В premake 5 doc я обнаружил, что buildaction
был поддержан только в C# (мой код на C++/CLI). Если это правда (кажется, что есть), есть ли способ углубиться в мой сценарий, чтобы добавить, скажем, записи XML непосредственно в .vcxproj
?
1 ответ
Ну... после многих попыток я нашел способ. Я только что добавил новую (файловую) категорию для EmbeddedResource, например:
premake.vstudio.vc2010.categories.EmbeddedResource = {
name = "EmbeddedResource",
extensions = {".resx"},
priority = 50, -- arbitrary number, I saw priorities are 0, 1, 2...
emitFiles = function(prj, group)
premake.vstudio.vc2010.emitFiles(
prj,
group,
"EmbeddedResource",
{premake.vstudio.vc2010.generatedFile} -- cannot explain this...
)
end,
emitFilter = function(prj, group)
premake.vstudio.vc2010.filterGroup(prj, group, "EmbeddedResource")
end
}
Надеюсь, что это может помочь...