# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/kreuzberg-dev/alef
defmodule Kreuzberg.PaddleLanguage do
  @moduledoc """
  Supported languages in PaddleOCR.

  Maps user-friendly language codes to paddle-ocr-rs language identifiers.
  """

  @typedoc "Supported languages in PaddleOCR."
  @type t ::
          :english
          | :chinese
          | :japanese
          | :korean
          | :german
          | :french
          | :latin
          | :cyrillic
          | :traditional_chinese
          | :thai
          | :greek
          | :east_slavic
          | :arabic
          | :devanagari
          | :tamil
          | :telugu

  @english :english
  @chinese :chinese
  @japanese :japanese
  @korean :korean
  @german :german
  @french :french
  @latin :latin
  @cyrillic :cyrillic
  @traditional_chinese :traditional_chinese
  @thai :thai
  @greek :greek
  @east_slavic :east_slavic
  @arabic :arabic
  @devanagari :devanagari
  @tamil :tamil
  @telugu :telugu

  @doc "English"
  @spec english() :: t()
  def english, do: @english
  @doc "Simplified Chinese"
  @spec chinese() :: t()
  def chinese, do: @chinese
  @doc "Japanese"
  @spec japanese() :: t()
  def japanese, do: @japanese
  @doc "Korean"
  @spec korean() :: t()
  def korean, do: @korean
  @doc "German"
  @spec german() :: t()
  def german, do: @german
  @doc "French"
  @spec french() :: t()
  def french, do: @french
  @doc "Latin script (covers most European languages)"
  @spec latin() :: t()
  def latin, do: @latin
  @doc "Cyrillic (Russian and related)"
  @spec cyrillic() :: t()
  def cyrillic, do: @cyrillic
  @doc "Traditional Chinese"
  @spec traditional_chinese() :: t()
  def traditional_chinese, do: @traditional_chinese
  @doc "Thai"
  @spec thai() :: t()
  def thai, do: @thai
  @doc "Greek"
  @spec greek() :: t()
  def greek, do: @greek
  @doc "East Slavic (Russian, Ukrainian, Belarusian)"
  @spec east_slavic() :: t()
  def east_slavic, do: @east_slavic
  @doc "Arabic (Arabic, Persian, Urdu)"
  @spec arabic() :: t()
  def arabic, do: @arabic
  @doc "Devanagari (Hindi, Marathi, Sanskrit, Nepali)"
  @spec devanagari() :: t()
  def devanagari, do: @devanagari
  @doc "Tamil"
  @spec tamil() :: t()
  def tamil, do: @tamil
  @doc "Telugu"
  @spec telugu() :: t()
  def telugu, do: @telugu
end
