use Cubist\Util\Json;
use Cubist\Util\ObjectUtil;
use Cubist\Util\PHP;
+use Cubist\Util\Text;
use Illuminate\Contracts\Cache\Lock;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Cache;
$v = $this->_normalizeTranslations($v, $e->lang);
} else if (Json::isJson($v)) {
$v = json_decode($v, true);
+ } else if ($new === 'locale') {
+ $v = $this->_normalizeLang($v);
}
$c->setAttribute($new, $v);
}
} else if (Json::isJson($data)) {
$data = json_decode($data, true);
}
- if (isset($mapValues[$data])) {
+ if (is_scalar($data) && isset($mapValues[$data])) {
$data = $mapValues[$data];
}
}
}
+ protected function _normalizeLang($lang)
+ {
+ $e = preg_split('/[-_]+/', $lang);
+ if (count($e) === 1) {
+ return $lang;
+ }
+ return mb_strtolower($e[0]) . "_" . mb_strtoupper($e[1]);
+ }
+
protected function _normalizeTranslations($value, $lang)
{
if (!is_string($value) || !Json::isJson($value)) {
$translations = json_decode($value);
$res = [];
- $l10n = FluidbookTranslate::getCompiledTranslations()[$lang];
+ $l10n = FluidbookTranslate::getCompiledTranslations()[$this->_normalizeLang($lang)];
foreach ($translations as $base => $trans) {
if (!isset($l10n[$base]) || !$trans || $l10n[$base] === $trans) {