# TigrisRegions
A simple Elixir library providing a list of all Tigris regions with their names, geography, and continent data.
## Installation
Add `tigris_regions` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:tigris_regions, "~> 0.1.0"}
]
end
```
## Functions
| Function | Description |
|---|---|
| `list/1` | Returns all regions. Supports `lang:` option. |
| `codes/0` | Returns a list of all region codes. |
| `names/0` | Returns a list of all region names. |
| `get/2` | Looks up a region by its code. Supports `lang:` option. |
| `count/0` | Returns the total number of regions. |
| `continents/0` | Returns a sorted list of unique continents. |
| `by_continent/2` | Returns all regions for a given continent. Supports `lang:` option. |
| `group_by_continent/1` | Groups all regions by continent. Supports `lang:` option. |
| `supported_languages/0` | Returns a sorted list of all supported language codes. |
## Region Data Structure
Each region is represented as a map:
```elixir
%{
code: "fra",
name: "Frankfurt",
geography: "Germany",
continent: "Europe"
}
```
## Usage Examples
```elixir
# List all regions
TigrisRegions.list()
# Get region codes
TigrisRegions.codes()
#=> ["sjc", "ord", "iad", "ams", "fra", "lhr", "sin", "nrt", "syd", "gru", "jnb"]
# Look up a region
TigrisRegions.get("fra")
#=> %{code: "fra", name: "Frankfurt", geography: "Germany", continent: "Europe"}
# Count regions
TigrisRegions.count()
#=> 11
# Get continents
TigrisRegions.continents()
#=> ["Africa", "Asia Pacific", "Europe", "North America", "South America"]
# Filter by continent
TigrisRegions.by_continent("Europe")
# Group by continent
TigrisRegions.group_by_continent()
```
## Translation Support
Regions can be translated into the following languages:
| Code | Language |
|---|---|
| `ar` | Arabic |
| `de` | German |
| `en` | English (default) |
| `es` | Spanish |
| `et` | Estonian |
| `fr` | French |
| `hi` | Hindi |
| `ja` | Japanese |
| `pt` | Portuguese |
| `ru` | Russian |
| `zh` | Chinese |
### Translation Examples
```elixir
# List regions in Japanese
TigrisRegions.list(lang: "ja")
# Get a region in German
TigrisRegions.get("fra", lang: "de")
#=> %{code: "fra", name: "Frankfurt", geography: "Deutschland", continent: "Europe"}
# Group by continent in Chinese
TigrisRegions.group_by_continent(lang: "zh")
# Get supported languages
TigrisRegions.supported_languages()
#=> ["ar", "de", "en", "es", "et", "fr", "hi", "ja", "pt", "ru", "zh"]
```
## Documentation
Documentation can be found at [https://hexdocs.pm/tigris_regions](https://hexdocs.pm/tigris_regions).