0
0
mirror of https://github.com/nextcloud/server.git synced 2024-11-14 20:36:50 +00:00
nextcloud_server/lib/private/Repair/Owncloud/UpdateLanguageCodes.php
Andy Scherzinger dae7c159f7
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00

72 lines
1.7 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Repair\Owncloud;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
class UpdateLanguageCodes implements IRepairStep {
/** @var IDBConnection */
private $connection;
/** @var IConfig */
private $config;
/**
* @param IDBConnection $connection
* @param IConfig $config
*/
public function __construct(IDBConnection $connection,
IConfig $config) {
$this->connection = $connection;
$this->config = $config;
}
/**
* {@inheritdoc}
*/
public function getName() {
return 'Repair language codes';
}
/**
* {@inheritdoc}
*/
public function run(IOutput $output) {
$versionFromBeforeUpdate = $this->config->getSystemValueString('version', '0.0.0');
if (version_compare($versionFromBeforeUpdate, '12.0.0.13', '>')) {
return;
}
$languages = [
'bg_BG' => 'bg',
'cs_CZ' => 'cs',
'fi_FI' => 'fi',
'hu_HU' => 'hu',
'nb_NO' => 'nb',
'sk_SK' => 'sk',
'th_TH' => 'th',
];
foreach ($languages as $oldCode => $newCode) {
$qb = $this->connection->getQueryBuilder();
$affectedRows = $qb->update('preferences')
->set('configvalue', $qb->createNamedParameter($newCode))
->where($qb->expr()->eq('appid', $qb->createNamedParameter('core')))
->andWhere($qb->expr()->eq('configkey', $qb->createNamedParameter('lang')))
->andWhere($qb->expr()->eq('configvalue', $qb->createNamedParameter($oldCode), IQueryBuilder::PARAM_STR))
->execute();
$output->info('Changed ' . $affectedRows . ' setting(s) from "' . $oldCode . '" to "' . $newCode . '" in preferences table.');
}
}
}