# AshGettext v0.1.0 - Table of Contents > Translations for Ash apps, with Gettext. Your text, your enum values and Ash's error messages come out in each user's language. ## Pages - [Home](readme.md) - Topics - [Set it up once for the whole app](set-up-once.md) - [Translating text](translating-text.md) - [Locales](locales.md) - [Translating errors](translating-errors.md) - [Extracting messages](extracting-messages.md) - [How to test with AshGettext](testing.md) - [How AshGettext works](how-it-works.md) - Reference - [AshGettext.Domain](dsl-ashgettext-domain.md) - [AshGettext.Resource](dsl-ashgettext-resource.md) - About AshGettext - [Changelog](changelog.md) ## Modules - [AshGettext.Calculations.EnumLabel](AshGettext.Calculations.EnumLabel.md): The translated label of an enum attribute, in the language of the query's actor. With no actor, Gettext's current locale. - [AshGettext.Resource.Transformers.AddEnumLabels](AshGettext.Resource.Transformers.AddEnumLabels.md): Adds a public `_label` calculation for every attribute whose type is an `AshGettext.Enum` (or a list of one). A resource that already has a field with that name keeps it. - [AshGettext.Resource.Verifiers.ValidateLabels](AshGettext.Resource.Verifiers.ValidateLabels.md): Fails compilation when a `label` in the resource's `gettext` block names an attribute the resource does not have. - Public API - [AshGettext](AshGettext.md): Translate the text an Ash app shows: strings, plurals, enum labels and attribute labels. - [AshGettext.Domain](AshGettext.Domain.md): Declares, once per Ash domain, how its action errors are translated. - [AshGettext.Enum](AshGettext.Enum.md): An `Ash.Type.Enum` whose `label/1` and `description/1` come back translated. - [AshGettext.Error](AshGettext.Error.md): A user-visible failure with a stable `code` and a translatable `message`. - [AshGettext.Resource](AshGettext.Resource.md): Opts a resource into translated action errors, enum labels and attribute names. - Locales - [AshGettext.Locale.Normalizer](AshGettext.Locale.Normalizer.md): Reduce a locale as it arrives in the wild to one the catalogs actually have. - [AshGettext.Locale.Resolver](AshGettext.Locale.Resolver.md): Reads a user's language from the actor. - How it works - [AshGettext.AshMessages](AshGettext.AshMessages.md): The sentences shown for Ash's own errors, which carry no message of their own. - [AshGettext.AshMessages.Translated](AshGettext.AshMessages.Translated.md): An Ash error whose text is now the translated sentence. - [AshGettext.Domain.Transformers.MarkTexts](AshGettext.Domain.Transformers.MarkTexts.md): Shows `mix gettext.extract` every text this domain's resources translate: written attribute labels, literal `message`s in their DSL and in the app's own validation, change and preparation modules they use, and the sentences for Ash's own errors (`AshGettext.AshMessages`). See `AshGettext.Extractor`. - [AshGettext.Domain.Verifiers.ValidateResourceExtensions](AshGettext.Domain.Verifiers.ValidateResourceExtensions.md): Reports, at compile time, every resource of a domain that asked for it which never added `AshGettext.Resource`. - [AshGettext.ErrorTranslation](AshGettext.ErrorTranslation.md): Turn an Ash error's message into the reader's language. - [AshGettext.ErrorTranslation.ErrorHandler](AshGettext.ErrorTranslation.ErrorHandler.md): The `error_handler` that `AshGettext.Resource` installs on write actions. - [AshGettext.Extractor](AshGettext.Extractor.md): Shows every text AshGettext translates to `mix gettext.extract`. - [AshGettext.Info](AshGettext.Info.md): Read a domain's `gettext do ... end` configuration. - [AshGettext.Installer](AshGettext.Installer.md): The source rewrites `mix ash_gettext.install` performs, as pure functions. - [AshGettext.Resource.Transformers.AttachErrorHandler](AshGettext.Resource.Transformers.AttachErrorHandler.md): Point every write action's `error_handler` at `AshGettext.ErrorTranslation.ErrorHandler`. ## Mix Tasks - Mix tasks - [mix ash_gettext.install](Mix.Tasks.AshGettext.Install.md): Wire this application into `ash_gettext`.