forked from qt-creator/qt-creator
Lua: Add support for translation
Change-Id: I5398480233c830bb08c641bc8193b068fb037032 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
#include "luaengine.h"
|
||||
#include "luatr.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <extensionsystem/extensionsystemtr.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
@@ -14,6 +16,7 @@
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QLoggingCategory>
|
||||
#include <QTranslator>
|
||||
|
||||
Q_LOGGING_CATEGORY(luaPluginSpecLog, "qtc.lua.pluginspec", QtWarningMsg)
|
||||
|
||||
@@ -45,6 +48,7 @@ LuaPluginSpec::LuaPluginSpec()
|
||||
|
||||
expected_str<LuaPluginSpec *> LuaPluginSpec::create(const FilePath &filePath, sol::table pluginTable)
|
||||
{
|
||||
const FilePath directory = filePath.parentDir();
|
||||
std::unique_ptr<LuaPluginSpec> pluginSpec(new LuaPluginSpec());
|
||||
|
||||
if (!pluginTable.get_or<sol::function>("setup", {}))
|
||||
@@ -63,8 +67,20 @@ expected_str<LuaPluginSpec *> LuaPluginSpec::create(const FilePath &filePath, so
|
||||
if (!r)
|
||||
return make_unexpected(r.error());
|
||||
|
||||
const QString langId = Core::ICore::userInterfaceLanguage();
|
||||
FilePath path = directory / "ts" / QString("%1_%2.qm").arg(directory.fileName()).arg(langId);
|
||||
|
||||
QTranslator *translator = new QTranslator(qApp);
|
||||
bool success = translator->load(path.toFSPathString(), directory.toFSPathString());
|
||||
if (success)
|
||||
qApp->installTranslator(translator);
|
||||
else {
|
||||
delete translator;
|
||||
qCInfo(luaPluginSpecLog) << "No translation found";
|
||||
}
|
||||
|
||||
pluginSpec->setFilePath(filePath);
|
||||
pluginSpec->setLocation(filePath.parentDir());
|
||||
pluginSpec->setLocation(directory);
|
||||
|
||||
pluginSpec->d->pluginScriptPath = filePath;
|
||||
pluginSpec->d->printToOutputPane = pluginTable.get_or("printToOutputPane", false);
|
||||
|
||||
Reference in New Issue
Block a user