RelativeYearLocalizer

class RelativeYearLocalizer(options: RelativeYearOptions = RelativeYearOptions(), locale: PlatformLocale = getDefaultLocale()) : PolyglotReferenceDateTimeLocalizer<Int> (source)

Localizes a year relative to a Zoned<Instant> reference point.

As this class implements PolyglotReferenceDateTimeLocalizer, it allows to use localizeAsFlow.

Localization could, based on options, prioritize a word style localization (e.g. last year) over a numeric style (e.g. 1 year ago).

Because kotlinx-datetime doesn't provide a standard type for a year, there is no extension function equivalent for one-off localizations.

Examples:

  • last yr.

  • this year

  • next year

  • 1 year ago

  • in 5y

See also

Constructors

Link copied to clipboard
constructor(options: RelativeYearOptions = RelativeYearOptions(), locale: PlatformLocale = getDefaultLocale())

Functions

Link copied to clipboard
open override fun localize(value: Int, reference: Zoned<Instant>): TickingValue<String>
Link copied to clipboard
fun <T, R> PolyglotReferenceValueLocalizer<T, R>.localizeAsFlow(value: T, clock: Flow<ClockWrapper> = SYSTEM_CLOCK, timeZone: Flow<TimeZone> = SYSTEM_TIMEZONE, maxTick: Duration? = null): Flow<R>

Localizes value by using the given clock's Clock.now and timeZone flows as a reference point and returns a Flow that emits updated values based on the underlying TickingValue.nextTick. This function assumes that each Clock emitted by the clock flow moves forward linearly.

Link copied to clipboard
fun localizeDiff(diff: Int): String

Convenience function to format an already calculated diff of years (e.g. -1 for last year).

Link copied to clipboard
fun <T, R> PolyglotReferenceValueLocalizer<T, R>.localizeNow(value: T, clock: Clock = Clock.System, timeZone: TimeZone = TimeZone.currentSystemDefault()): TickingValue<R>

Localizes value by using the given clock's Clock.now and timeZone as a reference point, rather than passing the reference explicitly.

Link copied to clipboard

Returns a new PolyglotReferenceValueLocalizer that localizes the received value using this localizer, calls map, and returns whatever TickingValue the mapping function returns.

Link copied to clipboard