HoraLocale class abstract

Abstract base class for locale definitions.

Implement this class to add support for a new language. All locale classes should be immutable with const constructors for optimal performance and tree-shaking.

Built-in Locales

Hora includes 143 locale definitions. The most common are:

  • HoraLocaleEn - English (default)
  • HoraLocaleZhCn - Chinese (Simplified)

Import additional locales from package:hora/src/locales/:

import 'package:hora/src/locales/ja.dart'; // Japanese
import 'package:hora/src/locales/ko.dart'; // Korean
import 'package:hora/src/locales/de.dart'; // German

Usage

// Per-instance locale
final h = Hora.now(locale: const HoraLocaleJa());
print(h.format('MMMM D日')); // 12月 5日

// Change locale on existing instance
final h2 = h.withLocale(const HoraLocaleEn());

// Global default locale
Hora.globalLocale = const HoraLocaleZhCn();

Creating Custom Locales

class HoraLocaleEs extends HoraLocale {
  const HoraLocaleEs();

  @override
  String get code => 'es';

  @override
  List<String> get months => const [
    'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
    'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'
  ];

  @override
  List<String> get monthsShort => const [...];

  @override
  List<String> get weekdays => const [...];

  @override
  List<String> get weekdaysShort => const [...];

  @override
  List<String> get weekdaysMin => const [...];

  // Optional overrides for formats, relativeTime, ordinal, meridiem
}
Implementers
Available extensions
Annotations
  • @immutable

Constructors

HoraLocale()
const

Properties

code → String
The locale code (e.g., 'en', 'zh-cn', 'ja').
no setter
formats → HoraFormats
Localized date formats.
no setter
hashCode → int
The hash code for this object.
no setteroverride
invalidDate → String
Invalid date string.
no setter
months → List<String>
Full month names (January, February, ...).
no setter
monthsShort → List<String>
Abbreviated month names (Jan, Feb, ...).
no setter
relativeTime → HoraRelativeTime
Relative time expressions.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
weekdays → List<String>
Full weekday names starting from Sunday.
no setter
weekdaysMin → List<String>
Minimum weekday names (Su, Mo, ...).
no setter
weekdaysShort → List<String>
Short weekday names (Sun, Mon, ...).
no setter
weekStart → int
First day of week.
no setter
yearStart → int
Minimum days in the first week of year.
no setter

Methods

meridiem(int hour, int minute, {bool lowercase = false}) → String
Returns the meridiem indicator (AM/PM or locale equivalent).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
ordinal(int n, [String? unit]) → String
Returns the ordinal suffix for a number (1st, 2nd, 3rd, etc.).
toString() → String
A string representation of this object.
inherited
update({String? code, List<String>? months, List<String>? monthsShort, List<String>? weekdays, List<String>? weekdaysShort, List<String>? weekdaysMin, int? weekStart, int? yearStart, String? invalidDate, HoraFormats? formats, HoraRelativeTime? relativeTime, String ordinal(int n, String? unit)?, String meridiem(int hour, int minute, {bool lowercase})?}) → UpdatedLocale

Available on HoraLocale, provided by the UpdateLocaleExtension extension

Creates a new locale with updated properties.
updateFormats({String? lt, String? lts, String? l, String? ll, String? lll, String? llll}) → UpdatedLocale

Available on HoraLocale, provided by the UpdateLocaleExtension extension

Creates a new locale with updated formats.
updateRelativeTime({String? future, String? past, String? s, String? m, String? mm, String? h, String? hh, String? d, String? dd, String? w, String? ww, String? mo, String? mos, String? y, String? yy}) → UpdatedLocale

Available on HoraLocale, provided by the UpdateLocaleExtension extension

Creates a new locale with updated relative time.

Operators

operator ==(Object other) → bool
The equality operator.
override