Repository navigation
Caramel 0.7.0
Caramel 0.7.0
0.7.0 - 2026-10-02
Upgrade notes
- Caramel can translate an application (ADR 0024). Nothing changes until it runs
frappe make locale CODE. That command addsapp/locales/en.cr,app/locales/CODE.crand thecaramel/i18nlines inconfig/application.cr. Resources generated after it are translated, andfrappe translationslists the keys each locale still lacks. Resources generated before it keep their English text until you replace it witht.calls. - In an existing application, change
html lang: "en"inapp/views/layouts/application.crtohtml lang: Caramel.language, as new applications have it. For a right-to-left locale, also adddir: locale.dir. Caramel::Application::EXPIRED_FORMis removed; useCaramel::Wording.expired_form, which a catalog can translate. Caramel's other messages now come fromCaramel::WordingandSugarORM::Wording, with the same English text as before.- In a translated application, contract and changeset errors are in the request's locale, in pages and in JSON
errorsalike, and so is the router's 404 body (caramel.pages.not_found). A changeset built outside a request, such as in a Cold Brew job, uses the default locale unless the job wraps its work inCaramel::I18n.with(locale) { … }.
Breaking changes
- core: move Caramel's messages into Wording hooks (46f8dc4)