mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 14:50:17 -04:00
Merge pull request #29004 from nextcloud/bugfix/noid/fix-translated-app-details
Fix translated app details
This commit is contained in:
commit
4cae2cc06c
5 changed files with 31 additions and 22 deletions
|
|
@ -378,7 +378,7 @@ class ThemingController extends Controller {
|
|||
$startUrl = $this->urlGenerator->getBaseUrl();
|
||||
$description = $this->themingDefaults->getSlogan();
|
||||
} else {
|
||||
$info = $this->appManager->getAppInfo($app);
|
||||
$info = $this->appManager->getAppInfo($app, false, $this->l10n->getLanguageCode());
|
||||
$name = $info['name'] . ' - ' . $this->themingDefaults->getName();
|
||||
$shortName = $info['name'];
|
||||
if (strpos($this->request->getRequestUri(), '/index.php/') !== false) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ use OCP\AppFramework\Http\DataResponse;
|
|||
use OCP\AppFramework\OCSController;
|
||||
use OCP\IConfig;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
|
||||
class APIController extends OCSController {
|
||||
|
||||
|
|
@ -46,23 +48,29 @@ class APIController extends OCSController {
|
|||
/** @var AppFetcher */
|
||||
protected $appFetcher;
|
||||
|
||||
/**
|
||||
* @param string $appName
|
||||
* @param IRequest $request
|
||||
* @param IConfig $config
|
||||
* @param IAppManager $appManager
|
||||
* @param AppFetcher $appFetcher
|
||||
*/
|
||||
public function __construct($appName,
|
||||
/** @var IFactory */
|
||||
protected $l10nFactory;
|
||||
|
||||
/** @var IUserSession */
|
||||
protected $userSession;
|
||||
|
||||
/** @var string */
|
||||
protected $language;
|
||||
|
||||
public function __construct(string $appName,
|
||||
IRequest $request,
|
||||
IConfig $config,
|
||||
IAppManager $appManager,
|
||||
AppFetcher $appFetcher) {
|
||||
AppFetcher $appFetcher,
|
||||
IFactory $l10nFactory,
|
||||
IUserSession $userSession) {
|
||||
parent::__construct($appName, $request);
|
||||
|
||||
$this->config = $config;
|
||||
$this->appManager = $appManager;
|
||||
$this->appFetcher = $appFetcher;
|
||||
$this->l10nFactory = $l10nFactory;
|
||||
$this->userSession = $userSession;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -97,7 +105,7 @@ class APIController extends OCSController {
|
|||
$this->appFetcher->setVersion($newVersion, 'future-apps.json', false);
|
||||
|
||||
// Apps available on the app store for that version
|
||||
$availableApps = array_map(function (array $app) {
|
||||
$availableApps = array_map(static function (array $app) {
|
||||
return $app['id'];
|
||||
}, $this->appFetcher->get());
|
||||
|
||||
|
|
@ -108,6 +116,8 @@ class APIController extends OCSController {
|
|||
], Http::STATUS_NOT_FOUND);
|
||||
}
|
||||
|
||||
$this->language = $this->l10nFactory->getUserLanguage($this->userSession->getUser());
|
||||
|
||||
$missing = array_diff($installedApps, $availableApps);
|
||||
$missing = array_map([$this, 'getAppDetails'], $missing);
|
||||
sort($missing);
|
||||
|
|
@ -128,8 +138,8 @@ class APIController extends OCSController {
|
|||
* @param string $appId
|
||||
* @return string[]
|
||||
*/
|
||||
protected function getAppDetails($appId): array {
|
||||
$app = $this->appManager->getAppInfo($appId);
|
||||
protected function getAppDetails(string $appId): array {
|
||||
$app = $this->appManager->getAppInfo($appId, false, $this->language);
|
||||
return [
|
||||
'appId' => $appId,
|
||||
'appName' => $app['name'] ?? $appId,
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ class Notifier implements INotifier {
|
|||
$notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index', ['section' => 'overview']) . '#version');
|
||||
}
|
||||
} else {
|
||||
$appInfo = $this->getAppInfo($notification->getObjectType());
|
||||
$appInfo = $this->getAppInfo($notification->getObjectType(), $languageCode);
|
||||
$appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
|
||||
|
||||
if (isset($this->appVersions[$notification->getObjectType()])) {
|
||||
|
|
@ -194,7 +194,7 @@ class Notifier implements INotifier {
|
|||
return \OC_App::getAppVersions();
|
||||
}
|
||||
|
||||
protected function getAppInfo($appId) {
|
||||
return \OC_App::getAppInfo($appId);
|
||||
protected function getAppInfo($appId, $languageCode) {
|
||||
return \OC_App::getAppInfo($appId, false, $languageCode);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,9 +113,8 @@ class Installer {
|
|||
throw new \Exception('The appinfo/database.xml file is not longer supported. Used in ' . $appId);
|
||||
}
|
||||
|
||||
$info = OC_App::getAppInfo($basedir.'/appinfo/info.xml', true);
|
||||
|
||||
$l = \OC::$server->getL10N('core');
|
||||
$info = OC_App::getAppInfo($basedir.'/appinfo/info.xml', true, $l->getLanguageCode());
|
||||
|
||||
if (!is_array($info)) {
|
||||
throw new \Exception(
|
||||
|
|
@ -163,8 +162,7 @@ class Installer {
|
|||
//run appinfo/install.php
|
||||
self::includeAppScript($basedir . '/appinfo/install.php');
|
||||
|
||||
$appData = OC_App::getAppInfo($appId);
|
||||
OC_App::executeRepairSteps($appId, $appData['repair-steps']['install']);
|
||||
OC_App::executeRepairSteps($appId, $info['repair-steps']['install']);
|
||||
|
||||
//set the installed version
|
||||
\OC::$server->getConfig()->setAppValue($info['id'], 'installed_version', OC_App::getAppVersion($info['id'], false));
|
||||
|
|
|
|||
|
|
@ -992,13 +992,14 @@ class OC_App {
|
|||
}
|
||||
|
||||
\OC::$server->getAppManager()->clearAppsCache();
|
||||
$appData = self::getAppInfo($appId);
|
||||
$l = \OC::$server->getL10N('core');
|
||||
$appData = self::getAppInfo($appId, false, $l->getLanguageCode());
|
||||
|
||||
$ignoreMaxApps = \OC::$server->getConfig()->getSystemValue('app_install_overwrite', []);
|
||||
$ignoreMax = in_array($appId, $ignoreMaxApps, true);
|
||||
\OC_App::checkAppDependencies(
|
||||
\OC::$server->getConfig(),
|
||||
\OC::$server->getL10N('core'),
|
||||
$l,
|
||||
$appData,
|
||||
$ignoreMax
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue