Наследование локали не работает правильно

Я использую MooTools 1.4.1 (подробнее) и испытываю проблему с наследованием

Locale.define('de-CH').inherit('de-DE', 'Date');

Когда я использую эту локаль (de-CH) и получаю к ней доступ следующим образом

var myLocale = Locale.getCurrent()

myLocale.sets.Date НЕ определен, единственное, что определено, это myLocale.sets.FormValidator, но это только потому, что это явно установлено и не наследуется.

Например, при проверке дат это приводит к ошибке.

Так что, на мой взгляд, я делаю что-то не так, или у Механизма наследования Locale есть ошибка.

У кого-нибудь есть опыт? Благодарю.

1 ответ

Решение

Вы не должны напрямую использовать sets собственность локали. sets свойство будет содержать только наборы, определенные в этой локали. Унаследованные наборы определяются только в унаследованной локали (которую вы можете увидеть, посмотрев на myLocale.inherits.sets, но это не должно использоваться напрямую).

Вместо этого, используя myLocale.get('Date') вернет набор, который вам нужен.

С помощью Locale.get('Date') также будет работать и всегда будет возвращать набор текущей активной локали (устанавливается через Locale.use('de-CH')).

Вы также можете использовать звонки, как .get('Date.months') чтобы получить конкретную собственность.

Дополнительную информацию можно найти в документации MooTools' Locale.

Другие вопросы по тегам