Phoenix 1.8 app that scrapes ammunition retailers (Lucky Gunner, SGAmmo) for price data and displays historical price trends. - Data model: retailers, calibers, products, price snapshots - Scraper infrastructure with Req, Floki, realistic browser headers - Oban-scheduled scrape jobs (every 4h with randomized delays) - LiveView pages: homepage with category cards, caliber detail with price table, Chart.js price history, and price stats banner - 18 seeded calibers across handgun/rifle/rimfire/shotgun categories - 77 tests
25 lines
833 B
Elixir
25 lines
833 B
Elixir
defmodule AmmopricesWeb.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: AmmopricesWeb.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: :ammoprices
|
|
end
|