@@ -64,25 +64,14 @@ LlamaPlugin::~LlamaPlugin()
6464 disconnect (m_ringUpdateTimer, &QTimer::timeout, this , &LlamaPlugin::ring_update);
6565}
6666
67- static FilePath scanForTranslation (const QString &translationFile)
67+ FilePath LlamaPlugin::getTranslationFilePath (const QString &translationFile)
6868{
69- const FilePaths &pluginPaths = ExtensionSystem::PluginManager::pluginPaths ();
70- for (const FilePath &plugin : pluginPaths) {
71- const FilePaths pluginFolders = plugin.dirEntries (
72- FileFilter ({}, QDir::Dirs | QDir::NoDotAndDotDot));
73-
74- for (const FilePath &folder : pluginFolders) {
75- FilePath translationDir = folder
76- / (HostOsInfo::isMacHost ()
77- ? QString (" Qt Creator.app/Contents/Resources" )
78- : QString (" share/qtcreator" ))
79- / " translations" ;
80- if (!translationDir.dirEntries ({{translationFile}, QDir::Files | QDir::NoDotAndDotDot})
81- .isEmpty ())
82- return translationDir.pathAppended (translationFile);
83- }
84- }
85- return FilePath ();
69+ const FilePath pluginLocation = ExtensionSystem::PluginManager::specForPlugin (this )->location ();
70+ const FilePath translationDir = HostOsInfo::isMacHost ()
71+ ? (pluginLocation / " ../../Resources/translations" )
72+ : (pluginLocation / " ../../../share/qtcreator/translations" )
73+ .cleanPath ();
74+ return translationDir / translationFile;
8675}
8776
8877void LlamaPlugin::initialize ()
@@ -92,7 +81,7 @@ void LlamaPlugin::initialize()
9281 QString locale = ICore::userInterfaceLanguage ();
9382 locale = locale.contains (" zh_" ) ? locale : locale.left (locale.indexOf (" _" ));
9483 const QString languageFile = " llamacpp_" + locale + " .qm" ;
95- const QString llamaCppTranslation = scanForTranslation (languageFile).path ();
84+ const QString llamaCppTranslation = getTranslationFilePath (languageFile).path ();
9685 if (translator->load (llamaCppTranslation))
9786 QCoreApplication::installTranslator (translator);
9887
0 commit comments