Перейти к основному содержимому

Десятичный разделитель

Файл langconfig — это важный файл в языковом пакете, который содержит все настройки языка, включая десятичный разделитель.

Исходный код Moodle на английском языке использует точку в качестве разделителя, но в некоторых странах (и их языковых пакетах) может использоваться десятичная запятая.

Карта мира с указанием десятичного разделителя по странам

Wikipedia_DecimalSeparator_world_map.png

Страны, где в качестве десятичного знака используется точка "."

  • Австралия
  • Бангладеш
  • Ботсвана
  • Британские Западные Индии
  • Бруней
  • Канада (при использовании английского языка)
  • Китай, Народная Республика
  • Доминиканская республика
  • Египет
  • Гана
  • Гватемала
  • Гондурас
  • Гонконг
  • Индия
  • Ирландия
  • Израиль
  • Япония
  • Иордания
  • Кения
  • Корея (как Северная, так и Южная)
  • Ливан
  • Люксембург (официально используются оба знака)
  • Макао (в китайском и английском текстах)
  • Малайзия
  • Мальта
  • Мексика
  • Монголия
  • Непал
  • Новая Зеландия
  • Никарагуа
  • Нигерия
  • Пакистан
  • Палестина
  • Панама
  • Филиппины
  • Сингапур
  • Шри-Ланка
  • Швейцария
  • Тайвань
  • Танзания
  • Таиланд
  • Уганда
  • Великобритания
  • Соединённые Штаты Америки (включая островные территории)
  • Зимбабве

Страны, где в качестве десятичного знака используется запятая ","

  • Албания
  • Алжир
  • Андорра
  • Ангола
  • Аргентина
  • Армения
  • Австрия
  • Азербайджан
  • Беларусь
  • Бельгия
  • Боливия
  • Босния и Герцеговина
  • Бразилия
  • Болгария
  • Камерун
  • Канада (при использовании французского языка)
  • Чили
  • Колумбия
  • Коста-Рика
  • Хорватия (запятая используется официально, но применяются обе формы)
  • Куба
  • Кипр
  • Чехия
  • Дания
  • Восточный Тимор
  • Эквадор
  • Эстония
  • Фарерские острова
  • Финляндия
  • Франция
  • Германия
  • Грузия
  • Греция
  • Гренландия
  • Венгрия
  • Исландия
  • Индонезия
  • Италия
  • Казахстан
  • Косово
  • Кыргызстан
  • Латвия
  • Ливан
  • Литва
  • Люксембург (официально используются оба знака)
  • Макао (в португальском тексте)
  • Македония
  • Молдова
  • Монголия
  • Марокко
  • Мозамбик
  • Намибия
  • Нидерланды
  • Норвегия
  • Парагвай
  • Перу
  • Польша
  • Португалия
  • Румыния
  • Россия
  • Сербия
  • Словакия
  • Словения
  • Южная Африка
  • Испания
  • Швейцария
  • Швеция
  • Тунис
  • Турция
  • Украина
  • Уругвай
  • Узбекистан
  • Венесуэла
  • Вьетнам

Проблемы с языковыми пакетами, использующими десятичную запятую

Если в языковом пакете используется запятая (,) в качестве десятичного разделителя, то необходимо использовать точку с запятой (;) в качестве разделителя списка, иначе могут возникнуть серьёзные ошибки.

  • Смотрите все зарегистрированные проблемы (исправленные и не исправленные) на Moodle Tracker
  • Пользователи Moodle с языковым пакетом, в котором запятая используется в качестве десятичного разделителя, нередко сталкиваются с проблемами при использовании формул, скопированных из англоязычной онлайн-документации Moodle и встроенной документации.

Проблемы с журналом оценок

Вычисления в журнале оценок могут использовать формулу "=average(item1, item2, item3, item4, item5, item6)", которая легко понимается и используется на английском языке, но преподаватель с (например) международным испанским (es) языковым пакетом будет испытывать трудности, пока не поймёт, что эту формулу следует изменить на "=average(item1; item2; item3; item4; item5; item6)"

Проблемы с вопросами Cloze

Cloze помечает правильный числовой ответ как неправильный при использовании запятой в качестве десятичного разделителя. Смотрите MDL-33744

Проблемы с Pmatch и другими типами вопросов Open University

= Pmatch (и другие типы вопросов, созданные Open University) были созданы для использования в английской университете. Следовательно, весь специальный код для обработки чисел предполагает, что десятичный разделитель — это точка. Смотрите эту ветку форума. Предложенное решение — использовать только точку в качестве десятичного разделителя.

Проблемы с викторинами

Как сообщается в этой ветке форума, при использовании запятой в некоторых языках, которые используют запятую в качестве десятичного разделителя в ответе (в отличие от точки), в викторине с интерактивным режимом и несколькими попытками нет подсказок. Викторина не показывает подсказки (используя интерактивный режим с несколькими попытками). Вместо этого викторина рассматривает использование запятой как "не завершено", даже если она пометит этот ответ как правильный или неправильный при отложенном отзыве. Предложенное решение — никогда не использовать десятичную запятую в качестве разделителя тысяч.

Устранение проблем

Администратор Moodle, использующий языковой пакет с десятичной запятой, должен проверить файл langconfig и убедиться, что символы decsep, listsep и thousandssep правильно установлены для языка, или использовать настройку для исправления своего сервера.

Использование англоязычного языкового пакета с десятичной запятой

  • Если вам нужен английский текст, но с неанглийским десятичным разделителем, можно создать новый языковой пакет en_commadecimal или что-то в этом роде.
  • Вам нужно будет создать только часть langconfig.php языкового пакета, чтобы указать, что родительским языком является английский, и какие используются десятичный и тысячный разделители.
  • Смотрите https://docs.moodle.org/en/Starting_a_new_language_pack и https://docs.moodle.org/en/Language_packs
  • Смотрите эту ветку форума