Настройка языка сообщений об ошибках
Сообщения об ошибках сервера MariaDB по умолчанию на английском языке. Однако сервер MariaDB также поддерживает локализованные сообщения об ошибках на многих языках. Каждый поддерживаемый язык имеет свою версию файла сообщений об ошибках, называемого errmsg.sys, в отдельной директории для этого языка.
Поддерживаемые языки для сообщений об ошибках
Локализация сообщений об ошибках поддерживается для следующих языков:
- Болгарский
- Китайский (с версии MariaDB 10.4.25, 10.5.16, 10.6.8, 10.7.4, 10.8.3)
- Чешский
- Датский
- Голландский
- Английский
- Эстонский
- Французский
- Грузинский (с версии MariaDB 10.11.3)
- Немецкий
- Греческий
- Хинди
- Венгерский
- Итальянский
- Японский
- Корейский
- Норвежский
- Норвежский (Ньюнорск)
- Польский
- Португальский
- Румынский
- Русский
- Сербский
- Словацкий
- Испанский
- Суахили (с версии MariaDB 11.1.2)
- Шведский
- Украинский
Настройка системных переменных lc_messages и lc_messages_dir
Системные переменные lc_messages и lc_messages_dir могут использоваться для настройки локали сервера, используемой для сообщений об ошибках.
Переменная lc_messages может быть задана как имя локали. Язык связанной локали будет использован для сообщений об ошибках. Список поддерживаемых локалей и соответствующих им языков см. в разделе Локали сервера.
Переменная lc_messages по умолчанию установлена в значение en_US, что означает, что сообщения об ошибках по умолчанию на английском языке.
Если переменная lc_messages установлена на корректное имя локали, но сервер не может найти файл сообщений об ошибках для языка, связанного с локалью, то будет использован язык по умолчанию.
Эту переменную можно задать в командной строке для mariadbd или в соответствующей группе параметров сервера в файле параметров.
[mariadb] ... lc_messages=fr_CA
Переменную lc_messages также можно изменить динамически с помощью SET GLOBAL. Например:
SET GLOBAL lc_messages='fr_CA';
Если на сервере переменная lc_messages установлена на локаль fr_CA, как в примере выше, то сообщения об ошибках будут на французском языке. Например:
SELECT blah; ERROR 1054 (42S22): Champ 'blah' inconnu dans field list
Переменная lc_messages_dir может быть задана либо как путь к каталогу, содержащему файлы сообщений об ошибках сервера, либо как путь к каталогу, содержащему файл сообщений об ошибках для конкретного языка.
Сервер первоначально пытается интерпретировать значение переменной lc_messages_dir как путь к каталогу, содержащему файлы сообщений об ошибках сервера. Поэтому он создаёт путь к файлу сообщений об ошибках для языка, объединив значение переменной lc_messages_dir с именем языка локали, указанной переменной lc_messages.
Если сервер не находит файл сообщений об ошибках для языка, то он пытается интерпретировать значение переменной lc_messages_dir как прямой путь к каталогу, содержащему файл сообщений об ошибках для конкретного языка.
Эту переменную можно задать в командной строке для mariadbd или в соответствующей группе параметров сервера в файле параметров.
Например, чтобы указать путь к каталогу, содержащему файлы сообщений об ошибках сервера:
[mariadb] ... lc_messages_dir=/usr/share/mysql/
Или чтобы указать путь к каталогу, содержащему файл сообщений об ошибках для конкретного языка:
[mariadb] ... lc_messages_dir=/usr/share/mysql/french/
Переменную lc_messages_dir нельзя изменить динамически.
Настройка параметра --language
Параметр --language также может использоваться для настройки языка сервера для сообщений об ошибках, но он устарел. Рекомендуется вместо него использовать системную переменную lc_messages.
Параметр --language можно указать либо как имя языка, либо как путь к каталогу, содержащему файл сообщений об ошибках для языка. Список поддерживаемых локалей и соответствующих им языков см. в разделе Локали сервера.
Этот параметр можно указать в командной строке для mariadbd или в соответствующей группе параметров сервера в файле параметров.
Например, чтобы указать имя языка:
[mariadb] ... language=french
Или чтобы указать путь к каталогу, содержащему файл сообщений об ошибках для языка:
[mariadb] ... language=/usr/share/mysql/french/
Кодировка
Кодировка, в которой возвращаются сообщения об ошибках, определяется переменной character_set_results, которая по умолчанию UTF8.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/setting-the-language-for-error-messages/