Ceremony orchestrator + governance UI layer over substrate CRDs. guildhall presents and coordinates; substrate decides and enforces. Apps: - guildhall_web: Phoenix LiveView UI for ceremony workflows, Forge visualization, posture dashboards - guildhall_orchestrator: watches CeremonyRequest CRDs, notifies witnesses, collects signatures, tracks ceremony lifecycle - guildhall_ops_db: Ecto schemas for the five Ops DB tables (per DESIGN-OPS-DB-CHAIN-OF-CUSTODY-0001) - guildhall_graph_bridge: Microsoft Graph API reconciler (stub) - guildhall_chronicle: Chronicle event consumer + Ops DB projector (stub) Naming: guildhall components are orchestrators (workflow), NOT engines (enforcement). The ceremony engine is a substrate K8s operator. guildhall coordinates humans around CRDs. Elixir 1.17.3 / OTP 27 / Phoenix 1.8.5. SHA-256 git repo. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Tyler J King <tking@guildhouse.dev>
25 lines
834 B
Elixir
25 lines
834 B
Elixir
defmodule GuildhallWeb.Gettext do
|
|
@moduledoc """
|
|
A module providing Internationalization with a gettext-based API.
|
|
|
|
By using [Gettext](https://hexdocs.pm/gettext), your module compiles translations
|
|
that you can use in your application. To use this Gettext backend module,
|
|
call `use Gettext` and pass it as an option:
|
|
|
|
use Gettext, backend: GuildhallWeb.Gettext
|
|
|
|
# Simple translation
|
|
gettext("Here is the string to translate")
|
|
|
|
# Plural translation
|
|
ngettext("Here is the string to translate",
|
|
"Here are the strings to translate",
|
|
3)
|
|
|
|
# Domain-based translation
|
|
dgettext("errors", "Here is the error message to translate")
|
|
|
|
See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
|
|
"""
|
|
use Gettext.Backend, otp_app: :guildhall_web
|
|
end
|