LanguageList
An Elixir implementation of the language_list ruby gem.
This package provides simple access to iso language names and codes.
Installation
This package can be installed
by adding language_list to your list of dependencies in mix.exs:
Hex: https://hex.pm/packages/language_list
def deps do
[
{:language_list, "~> 1.0.3"}
]
endDocumentation can be found at https://hexdocs.pm/language_list.
Usage:
Standard requests return a 2-tuple with the standard :ok or :error status.
Calls made to functions with ! return only the result or nil.
all_data
Returns all language data.
iex> LanguageList.all_data
{
:ok,
[
%{common: false, iso_639_1: "az", iso_639_3: "aze", name: "Azerbaijani"},
%{common: false, iso_639_1: "ba", iso_639_3: "bak", name: "Bashkir"},
...
]
}
iex> LanguageList.all_data!
[
%{common: false, iso_639_1: "az", iso_639_3: "aze", name: "Azerbaijani"},
%{common: false, iso_639_1: "ba", iso_639_3: "bak", name: "Bashkir"},
...
]LanguageList.all_data! can be called to return w/out tuple.
all_common_data
Returns all common data.
iex> LanguageList.all_common_data
{
:ok,
[
%{common: true, iso_639_1: "af", iso_639_3: "afr", name: "Afrikaans"},
%{common: true, iso_639_1: "ar", iso_639_3: "ara", name: "Arabic"},
...
]
}
iex> LanguageList.all_common_data!
[
%{common: true, iso_639_1: "af", iso_639_3: "afr", name: "Afrikaans"},
%{common: true, iso_639_1: "ar", iso_639_3: "ara", name: "Arabic"},
...
]LanguageList.all_common_data! can be called to return w/out tuple.
languages
Returns list of all language names.
iex> LanguageList.languages
{:ok, ["Afar", "Abkhazian", "Afrikaans", "Akan", "Amharic", "Arabic", ...]}
iex> LanguageList.languages!
["Afar", "Abkhazian", "Afrikaans", "Akan", "Amharic", "Arabic", ...]LanguageList.languages! can be called to return w/out tuple.
common_languages
Returns list of all common languages.
iex> LanguageList.common_languages
{:ok, ["Afrikaans", "Arabic", "Bengali", "Tibetan", "Bulgarian", ...]}
iex> LanguageList.common_languages!
["Afrikaans", "Arabic", "Bengali", "Tibetan", "Bulgarian", ...]LanguageList.common_languages! can be called to return w/out tuple.
find(query, key)
Allows for query of language data by attribute.
Permitted keys: :name , :iso_639_3 , :iso_639_1
LanguageList.find!(query, key) can be called to return w/out tuple.
iex> LanguageList.find("Icelandic", :name)
{:ok, %{common: true, iso_639_1: "is", iso_639_3: "isl", name: "Icelandic"}}
iex> LanguageList.find!("Icelandic", :name)
%{common: true, iso_639_1: "is", iso_639_3: "isl", name: "Icelandic"}
iex> LanguageList.find("pt", :iso_639_1)
{:ok, %{common: true, iso_639_1: "pt", iso_639_3: "por", name: "Portuguese"}}
iex> LanguageList.find("por", :iso_639_3)
{:ok, %{common: true, iso_639_1: "pt", iso_639_3: "por", name: "Portuguese"}}
iex> LanguageList.find("non-existent-language", :name)
{:error, "No matches found"}
iex> LanguageList.find!("non-existent-language", :name)
nil
TODO:
[] add native language names to json file.