Files
typeshed/stdlib/gettext.pyi
2024-01-05 08:15:19 -08:00

170 lines
6.0 KiB
Python

import io
import sys
from _typeshed import StrPath
from collections.abc import Callable, Container, Iterable, Sequence
from typing import Any, Final, Literal, Protocol, TypeVar, overload
__all__ = [
"NullTranslations",
"GNUTranslations",
"Catalog",
"find",
"translation",
"install",
"textdomain",
"bindtextdomain",
"dgettext",
"dngettext",
"gettext",
"ngettext",
"dnpgettext",
"dpgettext",
"npgettext",
"pgettext",
]
if sys.version_info < (3, 11):
__all__ += ["bind_textdomain_codeset", "ldgettext", "ldngettext", "lgettext", "lngettext"]
class _TranslationsReader(Protocol):
def read(self) -> bytes: ...
# optional:
# name: str
class NullTranslations:
def __init__(self, fp: _TranslationsReader | None = None) -> None: ...
def _parse(self, fp: _TranslationsReader) -> None: ...
def add_fallback(self, fallback: NullTranslations) -> None: ...
def gettext(self, message: str) -> str: ...
def ngettext(self, msgid1: str, msgid2: str, n: int) -> str: ...
def pgettext(self, context: str, message: str) -> str: ...
def npgettext(self, context: str, msgid1: str, msgid2: str, n: int) -> str: ...
def info(self) -> dict[str, str]: ...
def charset(self) -> str | None: ...
if sys.version_info < (3, 11):
def output_charset(self) -> str | None: ...
def set_output_charset(self, charset: str) -> None: ...
def lgettext(self, message: str) -> str: ...
def lngettext(self, msgid1: str, msgid2: str, n: int) -> str: ...
def install(self, names: Container[str] | None = None) -> None: ...
class GNUTranslations(NullTranslations):
LE_MAGIC: Final[int]
BE_MAGIC: Final[int]
CONTEXT: str
VERSIONS: Sequence[int]
@overload
def find(
domain: str, localedir: StrPath | None = None, languages: Iterable[str] | None = None, all: Literal[False] = False
) -> str | None: ...
@overload
def find(
domain: str, localedir: StrPath | None = None, languages: Iterable[str] | None = None, *, all: Literal[True]
) -> list[str]: ...
@overload
def find(domain: str, localedir: StrPath | None, languages: Iterable[str] | None, all: Literal[True]) -> list[str]: ...
@overload
def find(domain: str, localedir: StrPath | None = None, languages: Iterable[str] | None = None, all: bool = False) -> Any: ...
_NullTranslationsT = TypeVar("_NullTranslationsT", bound=NullTranslations)
if sys.version_info >= (3, 11):
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
class_: None = None,
fallback: Literal[False] = False,
) -> GNUTranslations: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
*,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = False,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None,
languages: Iterable[str] | None,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = False,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
class_: Callable[[io.BufferedReader], NullTranslations] | None = None,
fallback: bool = False,
) -> NullTranslations: ...
def install(domain: str, localedir: StrPath | None = None, *, names: Container[str] | None = None) -> None: ...
else:
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
class_: None = None,
fallback: Literal[False] = False,
codeset: str | None = None,
) -> GNUTranslations: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
*,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = False,
codeset: str | None = None,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None,
languages: Iterable[str] | None,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = False,
codeset: str | None = None,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = None,
languages: Iterable[str] | None = None,
class_: Callable[[io.BufferedReader], NullTranslations] | None = None,
fallback: bool = False,
codeset: str | None = None,
) -> NullTranslations: ...
def install(
domain: str, localedir: StrPath | None = None, codeset: str | None = None, names: Container[str] | None = None
) -> None: ...
def textdomain(domain: str | None = None) -> str: ...
def bindtextdomain(domain: str, localedir: StrPath | None = None) -> str: ...
def dgettext(domain: str, message: str) -> str: ...
def dngettext(domain: str, msgid1: str, msgid2: str, n: int) -> str: ...
def gettext(message: str) -> str: ...
def ngettext(msgid1: str, msgid2: str, n: int) -> str: ...
def pgettext(context: str, message: str) -> str: ...
def dpgettext(domain: str, context: str, message: str) -> str: ...
def npgettext(context: str, msgid1: str, msgid2: str, n: int) -> str: ...
def dnpgettext(domain: str, context: str, msgid1: str, msgid2: str, n: int) -> str: ...
if sys.version_info < (3, 11):
def lgettext(message: str) -> str: ...
def ldgettext(domain: str, message: str) -> str: ...
def lngettext(msgid1: str, msgid2: str, n: int) -> str: ...
def ldngettext(domain: str, msgid1: str, msgid2: str, n: int) -> str: ...
def bind_textdomain_codeset(domain: str, codeset: str | None = None) -> str: ...
Catalog = translation