Locales/Search

* do not apply minimum string length limiter to logographic languages
This commit is contained in:
Sarjuuk
2024-05-27 17:52:08 +02:00
parent f6565ea924
commit 2c451b8deb
3 changed files with 11 additions and 2 deletions

View File

@@ -157,10 +157,13 @@ define('U_GROUP_PREMIUM_PERMISSIONS', (U_GROUP_PREMIUM|U_GROUP_STAFF|U_GRO
// Locales
define('LOCALE_EN', 0);
define('LOCALE_KR', 1); // unused
define('LOCALE_FR', 2);
define('LOCALE_DE', 3);
define('LOCALE_CN', 4);
define('LOCALE_TW', 5); // unused
define('LOCALE_ES', 6);
define('LOCALE_MX', 7); // unused
define('LOCALE_RU', 8);
// red buttons on the top of the page

View File

@@ -853,6 +853,12 @@ abstract class Util
));
}
// todo: create Locale object and integrate
public static function isLogographic(int $localeId) : bool
{
return $localeId == LOCALE_CN || $localeId == LOCALE_TW || $localeId == LOCALE_KR;
}
// default back to enUS if localization unavailable
public static function localizedString(array $data, string $field, bool $silent = false) : string
{

View File

@@ -135,14 +135,14 @@ class SearchPage extends GenericPage
continue;
else if ($clean[0] == '-')
{
if (mb_strlen($clean) < 4)
if (mb_strlen($clean) < 4 && !Util::isLogographic(User::$localeId))
$this->invalid[] = mb_substr($raw, 1);
else
$this->excluded[] = mb_substr(str_replace('_', '\\_', $clean), 1);
}
else if ($clean !== '')
{
if (mb_strlen($clean) < 3)
if (mb_strlen($clean) < 3 && !Util::isLogographic(User::$localeId))
$this->invalid[] = $raw;
else
$this->included[] = str_replace('_', '\\_', $clean);