i18n-timezone-money-safety

Design locale-safe timezone, currency, and formatting rules for product logic.

4|Updated May 16, 2026
One-click install
npx skills add https://github.com/machenjie/rd-skills --skill i18n-timezone-money-safety
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: i18n-timezone-money-safety
Source: https://github.com/machenjie/rd-skills/tree/main/src/foundation/capabilities/i18n-timezone-money-safety
Command: npx skills add https://github.com/machenjie/rd-skills --skill i18n-timezone-money-safety

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Prevents product correctness defects caused by mixing localized formatting with canonical storage, mishandling time zones and DST transitions, and performing unsafe money calculations that drift by cents or rounding incorrectly across currencies and regions.

Core Features & Use Cases

  • Locale-safe design: Defines BCP 47 locale support, negotiation order, fallback chain, and deterministic missing-translation behavior.
  • Correct time handling: Separates instants from civil dates/datetimes and specifies UTC storage plus IANA timezone retention for civil-time scenarios, including DST gap/overlap policies.
  • Currency and money precision: Enforces ISO 4217 currency pairing, minor-unit or fixed-precision decimal representations, and documented rounding modes per operation to eliminate float-based monetary errors.
  • Localized pluralization and collation: Mandates ICU MessageFormat usage for user-visible strings and ICU Collator-based sorting/search with Unicode NFC normalization.

Quick Start

Ask the agent to generate an i18n/timezone/money design for your change by describing the relevant user locales, the affected time fields and scheduling rules, and the money operations and currencies involved.

Frequently Asked Questions about i18n-timezone-money-safety

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent DST transition bugs when scheduling recurring events across timezones?

Avoid money precision drift by pairing ISO 4217 currency codes with minor-unit or fixed-precision decimal representations. This eliminates binary float errors and enforces documented rounding modes per financial operation.

How do I handle localized pluralization and collation for user-visible strings?

Handle localized pluralization and collation by mandating ICU MessageFormat for strings and ICU Collator-based sorting. This requires Unicode NFC normalization to ensure correct multi-language text ordering and grammar.

What is the correct API and database storage format for internationalized datetime fields?

The correct API and database storage format requires UTC instant storage with RFC 3339 API formats. This separates instants from civil dates and preserves IANA timezone data for regional time behaviors.

How do I design a locale fallback chain for missing translations?

Design a locale fallback chain by defining BCP 47 locale support and a deterministic negotiation order. This establishes deterministic missing-translation behavior for user-visible strings across supported regions.

Do I need to pin tzdata and CLDR versions for internationalization design?

Yes, you need to pin tzdata and CLDR versions to maintain boundary-testable policies. Pinned versions prevent sudden shifts in DST rules, locale formatting, and collation behavior from breaking product logic.