mirror of
https://github.com/humhub/humhub.git
synced 2025-03-14 12:09:44 +01:00
Merge branch 'develop' of github.com:humhub/humhub into develop
This commit is contained in:
commit
2cc2ff3547
@ -30,10 +30,8 @@ class JqueryTimeAgoLocaleAsset extends AssetBundle
|
||||
*/
|
||||
public $languageMapping = [
|
||||
'nb_no' => 'no',
|
||||
'pt_br' => 'pt-br',
|
||||
'zh_cn' => 'zh-CN',
|
||||
'zh_tw' => 'zh-TW',
|
||||
'fa_ir' => 'fa',
|
||||
'pt-BR' => 'pt-br',
|
||||
'fa-IR' => 'fa',
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
namespace humhub\components\i18n;
|
||||
|
||||
use humhub\libs\I18NHelper;
|
||||
use Yii;
|
||||
use yii\base\InvalidArgumentException;
|
||||
use humhub\models\forms\ChooseLanguage;
|
||||
@ -71,8 +72,6 @@ class I18N extends \yii\i18n\I18N
|
||||
}
|
||||
|
||||
Yii::$app->formatter->defaultTimeZone = Yii::$app->timeZone;
|
||||
|
||||
$this->fixLocaleCodes();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,8 +98,6 @@ class I18N extends \yii\i18n\I18N
|
||||
$this->setLocale($language);
|
||||
}
|
||||
}
|
||||
|
||||
$this->fixLocaleCodes();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,7 +106,6 @@ class I18N extends \yii\i18n\I18N
|
||||
public function setDefaultLocale()
|
||||
{
|
||||
$this->setLocale(Yii::$app->settings->get('defaultLanguage'));
|
||||
$this->fixLocaleCodes();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -130,21 +126,6 @@ class I18N extends \yii\i18n\I18N
|
||||
*/
|
||||
public function translate($category, $message, $params, $language)
|
||||
{
|
||||
// Fix Yii source language is en-US
|
||||
if (($language == 'en' || $language == 'en_gb') && $category == 'yii') {
|
||||
$language = 'en-US';
|
||||
}
|
||||
if ($language == 'zh_cn' && $category == 'yii') {
|
||||
$language = 'zh-CN';
|
||||
}
|
||||
if ($language == 'zh_tw' && $category == 'yii') {
|
||||
$language = 'zh-TW';
|
||||
}
|
||||
|
||||
if ($language == 'nb_no' && $category == 'yii') {
|
||||
$language = 'nb-NO';
|
||||
}
|
||||
|
||||
if ($category === 'yii' && in_array($language, $this->unsupportedYiiLanguages)) {
|
||||
$category = 'humhub.yii';
|
||||
}
|
||||
@ -164,16 +145,11 @@ class I18N extends \yii\i18n\I18N
|
||||
|
||||
// Try to automatically assign Module->MessageSource
|
||||
foreach (Yii::$app->moduleManager->getModules(['includeCoreModules' => true, 'returnClass' => true]) as $moduleId => $className) {
|
||||
$moduleCategory = $this->getTranslationCategory($moduleId);
|
||||
|
||||
$moduleCategory = I18NHelper::getModuleTranslationCategory($moduleId);
|
||||
if (substr($category, 0, strlen($moduleCategory)) === $moduleCategory) {
|
||||
$reflector = new \ReflectionClass($className);
|
||||
|
||||
$this->translations[$moduleCategory . '*'] = [
|
||||
'class' => 'humhub\components\i18n\MessageSource',
|
||||
'sourceLanguage' => Yii::$app->sourceLanguage,
|
||||
'sourceCategory' => $moduleCategory,
|
||||
'basePath' => dirname($reflector->getFileName()) . '/messages',
|
||||
'class' => 'humhub\components\i18n\ModuleMessageSource',
|
||||
'moduleId' => $moduleId
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -208,7 +184,6 @@ class I18N extends \yii\i18n\I18N
|
||||
{
|
||||
if (count($params) !== 0) {
|
||||
$fixedParams = [];
|
||||
|
||||
// Try to fix old placeholder formats
|
||||
foreach ($params as $param => $value) {
|
||||
if (substr($param, 0, 1) === "%" && substr($param, -1, 1) === "%" && strlen($param) > 2) {
|
||||
@ -236,33 +211,6 @@ class I18N extends \yii\i18n\I18N
|
||||
}
|
||||
return parent::format($message, $fixedParams, $language);
|
||||
}
|
||||
|
||||
return parent::format($message, $params, $language);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default translation category for a given moduleId.
|
||||
*
|
||||
* Examples:
|
||||
* example -> ExampleModule.
|
||||
* long_module_name -> LongModuleNameModule.
|
||||
*
|
||||
* @param string $moduleId
|
||||
* @return string Category Id
|
||||
*/
|
||||
protected function getTranslationCategory($moduleId)
|
||||
{
|
||||
return implode('', array_map("ucfirst", preg_split("/(_|\-)/", $moduleId))) . 'Module.';
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that old language codes are translated to the
|
||||
* current format.
|
||||
*/
|
||||
protected function fixLocaleCodes()
|
||||
{
|
||||
if (Yii::$app->language == 'en') {
|
||||
$this->setLocale('en-US');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,78 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @link https://www.humhub.org/
|
||||
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
|
||||
* @license https://www.humhub.com/licences
|
||||
*/
|
||||
|
||||
namespace humhub\components\i18n;
|
||||
|
||||
use Yii;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
class MessageSource extends \yii\i18n\PhpMessageSource
|
||||
{
|
||||
public $sourceCategory = '';
|
||||
|
||||
protected function getMessageFilePath($category, $language)
|
||||
{
|
||||
$category = str_replace($this->sourceCategory, '', $category);
|
||||
|
||||
return parent::getMessageFilePath($category, $language);
|
||||
}
|
||||
|
||||
protected function loadMessagesFromFile($messageFile)
|
||||
{
|
||||
$messageFile = str_replace($this->sourceCategory, '', $messageFile);
|
||||
|
||||
return parent::loadMessagesFromFile($messageFile);
|
||||
}
|
||||
|
||||
protected function getConfigMessageFilePath($category, $language)
|
||||
{
|
||||
return Yii::getAlias(Yii::$app->i18n->messageOverwritePath . "/$language/" . $category . '.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*
|
||||
* Change: Don't show warning if message file don't exists
|
||||
*/
|
||||
protected function loadMessages($category, $language)
|
||||
{
|
||||
$messageFile = $this->getMessageFilePath($category, $language);
|
||||
$messages = $this->loadMessagesFromFile($messageFile);
|
||||
|
||||
//Used for overwriting the default language files under @app/config/messages/.
|
||||
$configMessageFile = $this->getConfigMessageFilePath($category, $language);
|
||||
$configMessages = parent::loadMessagesFromFile($configMessageFile);
|
||||
|
||||
if ($messages !== null && $configMessages !== null) {
|
||||
$messages = array_merge($messages, $configMessages);
|
||||
} elseif ($messages === null && $configMessages !== null) {
|
||||
$messages = $configMessages;
|
||||
}
|
||||
|
||||
$fallbackLanguage = substr($language, 0, 2);
|
||||
if ($fallbackLanguage != $language) {
|
||||
$fallbackMessageFile = $this->getMessageFilePath($category, $fallbackLanguage);
|
||||
$fallbackMessages = $this->loadMessagesFromFile($fallbackMessageFile);
|
||||
|
||||
if ($messages === null && $fallbackMessages === null && $fallbackLanguage != $this->sourceLanguage) {
|
||||
} elseif (empty($messages)) {
|
||||
return $fallbackMessages;
|
||||
} elseif (!empty($fallbackMessages)) {
|
||||
foreach ($fallbackMessages as $key => $value) {
|
||||
if (!empty($value) && empty($messages[$key])) {
|
||||
$messages[$key] = $fallbackMessages[$key];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (array) $messages;
|
||||
}
|
||||
}
|
89
protected/humhub/components/i18n/ModuleMessageSource.php
Normal file
89
protected/humhub/components/i18n/ModuleMessageSource.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @link https://www.humhub.org/
|
||||
* @copyright Copyright (c) 2019 HumHub GmbH & Co. KG
|
||||
* @license https://www.humhub.com/licences
|
||||
*/
|
||||
|
||||
namespace humhub\components\i18n;
|
||||
|
||||
use humhub\components\Module;
|
||||
use humhub\libs\I18NHelper;
|
||||
use Yii;
|
||||
use yii\base\InvalidConfigException;
|
||||
|
||||
|
||||
/**
|
||||
* ModuleMessageSource
|
||||
*
|
||||
* @since 1.4
|
||||
* @package humhub\components\i18n
|
||||
*/
|
||||
class ModuleMessageSource extends PhpMessageSource
|
||||
{
|
||||
/**
|
||||
* @var string the id of the module
|
||||
*/
|
||||
public $moduleId;
|
||||
|
||||
/**
|
||||
* @var Module the module
|
||||
*/
|
||||
public $module;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @throws InvalidConfigException
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
if ($this->module === null && !empty($this->moduleId)) {
|
||||
$this->module = Yii::$app->getModule($this->moduleId);
|
||||
}
|
||||
|
||||
if ($this->module === null) {
|
||||
throw new InvalidConfigException("Module cannot be null!");
|
||||
}
|
||||
|
||||
$this->basePath = $this->module->getBasePath() . '/messages';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function translate($category, $message, $language)
|
||||
{
|
||||
$category = str_replace(I18NHelper::getModuleTranslationCategory($this->module->id), '', $category);
|
||||
return parent::translate($category, $message, $language);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function loadMessages($category, $language)
|
||||
{
|
||||
$messages = parent::loadMessages($category, $language);
|
||||
|
||||
// Merge message overwrites specified in configuration folder
|
||||
$configMessages = parent::loadMessagesFromFile($this->getConfigMessageFilePath($category, $language));
|
||||
if ($configMessages !== null) {
|
||||
$messages = array_merge($messages, $configMessages);
|
||||
}
|
||||
|
||||
return $messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message file for messages overrides via configuration
|
||||
*
|
||||
* @param $category
|
||||
* @param $language
|
||||
* @return string
|
||||
*/
|
||||
private function getConfigMessageFilePath($category, $language)
|
||||
{
|
||||
return Yii::getAlias(Yii::$app->i18n->messageOverwritePath . "/$language/" . I18NHelper::getModuleTranslationCategory($this->module->id) . $category . '.php');
|
||||
}
|
||||
|
||||
}
|
102
protected/humhub/components/i18n/PhpMessageSource.php
Normal file
102
protected/humhub/components/i18n/PhpMessageSource.php
Normal file
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @link https://www.humhub.org/
|
||||
* @copyright Copyright (c) 2019 HumHub GmbH & Co. KG
|
||||
* @license https://www.humhub.com/licences
|
||||
*/
|
||||
|
||||
namespace humhub\components\i18n;
|
||||
|
||||
use Yii;
|
||||
use yii\i18n\PhpMessageSource as PhpMessageSourceYii;
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
class PhpMessageSource extends PhpMessageSourceYii
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function getMessageFilePath($category, $language)
|
||||
{
|
||||
$messageFile = Yii::getAlias($this->basePath) . '/' . $language . '/';
|
||||
|
||||
// Try old language code syntax (e.g. pt_br instead pt-BR)
|
||||
if (!is_dir($messageFile) && strpos($language, '-') !== false) {
|
||||
$language = strtolower(str_replace('-', '_', $language));
|
||||
if (is_dir(Yii::getAlias($this->basePath) . '/' . $language . '/')) {
|
||||
$messageFile = Yii::getAlias($this->basePath) . '/' . $language . '/';
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($this->fileMap[$category])) {
|
||||
$messageFile .= $this->fileMap[$category];
|
||||
} else {
|
||||
$messageFile .= str_replace('\\', '/', $category) . '.php';
|
||||
}
|
||||
|
||||
return $messageFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*
|
||||
* Actually the original method with reduced error messages!
|
||||
*/
|
||||
protected function loadMessages($category, $language)
|
||||
{
|
||||
$messageFile = $this->getMessageFilePath($category, $language);
|
||||
$messages = $this->loadMessagesFromFile($messageFile);
|
||||
|
||||
$fallbackLanguage = substr($language, 0, 2);
|
||||
$fallbackSourceLanguage = substr($this->sourceLanguage, 0, 2);
|
||||
|
||||
if ($language !== $fallbackLanguage) {
|
||||
$messages = $this->loadFallbackMessages($category, $fallbackLanguage, $messages, $messageFile);
|
||||
} elseif ($language === $fallbackSourceLanguage) {
|
||||
$messages = $this->loadFallbackMessages($category, $this->sourceLanguage, $messages, $messageFile);
|
||||
} else {
|
||||
if ($messages === null) {
|
||||
// modification warning --> debug
|
||||
Yii::debug("The message file for category '$category' does not exist: $messageFile", __METHOD__);
|
||||
}
|
||||
}
|
||||
|
||||
return (array)$messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*
|
||||
* Actually the original method with reduced error messages!
|
||||
*/
|
||||
protected function loadFallbackMessages($category, $fallbackLanguage, $messages, $originalMessageFile)
|
||||
{
|
||||
$fallbackMessageFile = $this->getMessageFilePath($category, $fallbackLanguage);
|
||||
$fallbackMessages = $this->loadMessagesFromFile($fallbackMessageFile);
|
||||
|
||||
if (
|
||||
$messages === null && $fallbackMessages === null
|
||||
&& $fallbackLanguage !== $this->sourceLanguage
|
||||
&& $fallbackLanguage !== substr($this->sourceLanguage, 0, 2)
|
||||
) {
|
||||
// modification warning --> debug
|
||||
Yii::debug("The message file for category '$category' does not exist: $originalMessageFile "
|
||||
. "Fallback file does not exist as well: $fallbackMessageFile", __METHOD__);
|
||||
} elseif (empty($messages)) {
|
||||
return $fallbackMessages;
|
||||
} elseif (!empty($fallbackMessages)) {
|
||||
foreach ($fallbackMessages as $key => $value) {
|
||||
if (!empty($value) && empty($messages[$key])) {
|
||||
$messages[$key] = $fallbackMessages[$key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (array)$messages;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -5,6 +5,9 @@
|
||||
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
|
||||
* @license https://www.humhub.com/licences
|
||||
*/
|
||||
|
||||
use humhub\components\i18n\PhpMessageSource;
|
||||
|
||||
Yii::setAlias('@webroot', realpath(__DIR__ . '/../../../'));
|
||||
Yii::setAlias('@app', '@webroot/protected');
|
||||
Yii::setAlias('@humhub', '@app/humhub');
|
||||
@ -72,27 +75,27 @@ $config = [
|
||||
'class' => \humhub\components\i18n\I18N::class,
|
||||
'translations' => [
|
||||
'base' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
'security' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
'error' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
'widgets_views_markdownEditor' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
'humhub.yii' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
'custom' => [
|
||||
'class' => \yii\i18n\PhpMessageSource::class,
|
||||
'class' => PhpMessageSource::class,
|
||||
'basePath' => '@humhub/messages'
|
||||
],
|
||||
],
|
||||
@ -167,14 +170,14 @@ $config = [
|
||||
'dynamicConfigFile' => '@config/dynamic.php',
|
||||
'moduleAutoloadPaths' => ['@app/modules', '@humhub/modules'],
|
||||
'availableLanguages' => [
|
||||
'en' => 'English (US)',
|
||||
'en_gb' => 'English (UK)',
|
||||
'en-US' => 'English (US)',
|
||||
'en-GB' => 'English (UK)',
|
||||
'de' => 'Deutsch',
|
||||
'fr' => 'Français',
|
||||
'nl' => 'Nederlands',
|
||||
'pl' => 'Polski',
|
||||
'pt' => 'Português',
|
||||
'pt_br' => 'Português do Brasil',
|
||||
'pt-BR' => 'Português do Brasil',
|
||||
'es' => 'Español',
|
||||
'ca' => 'Català',
|
||||
'it' => 'Italiano',
|
||||
@ -185,17 +188,17 @@ $config = [
|
||||
'el' => 'Ελληνικά',
|
||||
'ja' => '日本語',
|
||||
'hu' => 'Magyar',
|
||||
'nb_no' => 'Norsk bokmål',
|
||||
'nn_no' => 'Nynorsk',
|
||||
'zh_cn' => '中文(简体)',
|
||||
'zh_tw' => '中文(台灣)',
|
||||
'nb-NO' => 'Norsk bokmål',
|
||||
'nn-NO' => 'Nynorsk',
|
||||
'zh-CN' => '中文(简体)',
|
||||
'zh-TW' => '中文(台灣)',
|
||||
'an' => 'Aragonés',
|
||||
'vi' => 'Tiếng Việt',
|
||||
'sv' => 'Svenska',
|
||||
'cs' => 'čeština',
|
||||
'da' => 'dansk',
|
||||
'uz' => 'Ўзбек',
|
||||
'fa_ir' => 'فارسی',
|
||||
'fa-IR' => 'فارسی',
|
||||
'bg' => 'български',
|
||||
'sk' => 'slovenčina',
|
||||
'ro' => 'română',
|
||||
|
@ -56,4 +56,5 @@ HumHub Change Log (DEVELOP)
|
||||
- Enh #3649: Provide a way to S/MIME sign e-mails (@ChadiRachid)
|
||||
- Fix `humhub\modules\file\widgets\Upload::progress` config options not working
|
||||
- Enh: More generic approach to determine themed view files
|
||||
- Enh: Always use ISO 639-1 alpha-2 (and ISO 3166-2) language codes
|
||||
- Enh: Update Yii version to 2.0.27
|
||||
|
27
protected/humhub/docs/guide/admin/updating-140.md
Normal file
27
protected/humhub/docs/guide/admin/updating-140.md
Normal file
@ -0,0 +1,27 @@
|
||||
Updating to 1.4
|
||||
===============
|
||||
|
||||
> NOTE: This guide only affects updates from HumHub 1.3.x or lower to HumHub 1.4
|
||||
|
||||
|
||||
1.) Please check following guides if you're using custom modules or themes:
|
||||
- [Theme Migration Guide](../theme/migrate.md)
|
||||
- [Module Migration Guide](../developer/modules-migrate.md)
|
||||
|
||||
|
||||
2.) Language codes
|
||||
|
||||
Some language codes have changed. If you use any codes in configuration files or in manually overwritten translations, please check if they are affected.
|
||||
|
||||
Affected codes:
|
||||
|
||||
| Old language code| New language code |
|
||||
|----------|-------------|
|
||||
| en | en-US |
|
||||
| en_gb | en-GB |
|
||||
| pt_br | pt-BR |
|
||||
| nb_no | nb-NO |
|
||||
| nn_no | nn-NO |
|
||||
| zh_cn | zh-CN |
|
||||
| zh_tw | zh-TW |
|
||||
| fa_ir | fa-IR |
|
@ -8,6 +8,7 @@ For each version there will be a themeing and module migration guide available:
|
||||
- [Module Migration Guide](../developer/modules-migrate.md)
|
||||
|
||||
> Additional update notes for older versions:
|
||||
> - [Update from 1.3 or below](updating-140.md)
|
||||
> - [Update from 1.2 or below](updating-130.md)
|
||||
> - [Update from 0.20 or below](updating-020.md)
|
||||
|
||||
|
@ -34,6 +34,26 @@ The menu system has been revised, is mostly downward compatible, but the old API
|
||||
|
||||
Please adjust your module menus accordingly. More details can be found in the [Menu](menus.md) chapter of the developer documentation.
|
||||
|
||||
### Language codes
|
||||
|
||||
Following language codes has been changed.
|
||||
|
||||
If you're using any custom modules, please change the message directories accordingly.
|
||||
|
||||
| Old language code| New language code |
|
||||
|----------|-------------|
|
||||
| en | en-US |
|
||||
| en_gb | en-GB |
|
||||
| pt_br | pt-BR |
|
||||
| nb_no | nb-NO |
|
||||
| nn_no | nn-NO |
|
||||
| zh_cn | zh-CN |
|
||||
| zh_tw | zh-TW |
|
||||
| fa_ir | fa-IR |
|
||||
|
||||
|
||||
|
||||
|
||||
Migrate from 1.2 to 1.3
|
||||
-----------------------
|
||||
|
||||
|
30
protected/humhub/libs/I18NHelper.php
Normal file
30
protected/humhub/libs/I18NHelper.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace humhub\libs;
|
||||
|
||||
use humhub\components\Module;
|
||||
|
||||
/**
|
||||
* Class I18NHelper
|
||||
*
|
||||
* @since 1.4
|
||||
* @package humhub\libs
|
||||
*/
|
||||
class I18NHelper
|
||||
{
|
||||
/**
|
||||
* Returns the default translation category for a given moduleId.
|
||||
*
|
||||
* Examples:
|
||||
* example -> ExampleModule.
|
||||
* long_module_name -> LongModuleNameModule.
|
||||
*
|
||||
* @return string the category id
|
||||
*/
|
||||
public static function getModuleTranslationCategory($moduleId)
|
||||
{
|
||||
return implode('', array_map("ucfirst", preg_split("/(_|\-)/", $moduleId))) . 'Module.';
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
use humhub\modules\file\libs\FileHelper;
|
||||
use yii\db\Migration;
|
||||
|
||||
/**
|
||||
* Class m190920_142605_fix_language_codes
|
||||
*/
|
||||
class m190920_142605_fix_language_codes extends Migration
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeUp()
|
||||
{
|
||||
$changedCodes = [
|
||||
'en' => 'en-US',
|
||||
'en_gb' => 'en-GB',
|
||||
'pt_br' => 'pt-BR',
|
||||
'nb_no' => 'nb-NO',
|
||||
'nn_no' => 'nn-NO',
|
||||
'zh_cn' => 'zh-CN',
|
||||
'zh_tw' => 'zh-TW',
|
||||
'fa_ir' => 'fa-IR'
|
||||
];
|
||||
|
||||
foreach ($changedCodes as $old => $new) {
|
||||
$this->update('user', ['language' => $new], ['language' => $old]);
|
||||
$this->update('setting', ['value' => $new], ['value' => $old]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeDown()
|
||||
{
|
||||
echo "m190920_142605_fix_language_codes cannot be reverted.\n";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
// Use up()/down() to run migration code without a transaction.
|
||||
public function up()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
echo "m190920_142605_fix_language_codes cannot be reverted.\n";
|
||||
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user