Initial commit

This commit is contained in:
kdusek
2025-12-09 12:13:01 +01:00
commit 8e654ed209
13332 changed files with 2695056 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
"""Main package for humanize."""
from __future__ import annotations
from humanize.filesize import naturalsize
from humanize.i18n import activate, deactivate, decimal_separator, thousands_separator
from humanize.lists import natural_list
from humanize.number import (
apnumber,
clamp,
fractional,
intcomma,
intword,
metric,
ordinal,
scientific,
)
from humanize.time import (
naturaldate,
naturalday,
naturaldelta,
naturaltime,
precisedelta,
)
from ._version import __version__
__all__ = [
"__version__",
"activate",
"apnumber",
"clamp",
"deactivate",
"decimal_separator",
"fractional",
"intcomma",
"intword",
"metric",
"natural_list",
"naturaldate",
"naturalday",
"naturaldelta",
"naturalsize",
"naturaltime",
"ordinal",
"precisedelta",
"scientific",
"thousands_separator",
]

View File

@@ -0,0 +1,34 @@
# file generated by setuptools-scm
# don't change, don't track in version control
__all__ = [
"__version__",
"__version_tuple__",
"version",
"version_tuple",
"__commit_id__",
"commit_id",
]
TYPE_CHECKING = False
if TYPE_CHECKING:
from typing import Tuple
from typing import Union
VERSION_TUPLE = Tuple[Union[int, str], ...]
COMMIT_ID = Union[str, None]
else:
VERSION_TUPLE = object
COMMIT_ID = object
version: str
__version__: str
__version_tuple__: VERSION_TUPLE
version_tuple: VERSION_TUPLE
commit_id: COMMIT_ID
__commit_id__: COMMIT_ID
__version__ = version = '4.14.0'
__version_tuple__ = version_tuple = (4, 14, 0)
__commit_id__ = commit_id = None

View File

@@ -0,0 +1,99 @@
"""Bits and bytes related humanization."""
from __future__ import annotations
from math import log
suffixes = {
"decimal": (
" kB",
" MB",
" GB",
" TB",
" PB",
" EB",
" ZB",
" YB",
" RB",
" QB",
),
"binary": (
" KiB",
" MiB",
" GiB",
" TiB",
" PiB",
" EiB",
" ZiB",
" YiB",
" RiB",
" QiB",
),
"gnu": "KMGTPEZYRQ",
}
def naturalsize(
value: float | str,
binary: bool = False,
gnu: bool = False,
format: str = "%.1f",
) -> str:
"""Format a number of bytes like a human-readable filesize (e.g. 10 kB).
By default, decimal suffixes (kB, MB) are used.
Non-GNU modes are compatible with jinja2's `filesizeformat` filter.
Examples:
```pycon
>>> naturalsize(3000000)
'3.0 MB'
>>> naturalsize(300, False, True)
'300B'
>>> naturalsize(3000, False, True)
'2.9K'
>>> naturalsize(3000, False, True, "%.3f")
'2.930K'
>>> naturalsize(3000, True)
'2.9 KiB'
>>> naturalsize(10**28)
'10.0 RB'
>>> naturalsize(10**34 * 3)
'30000.0 QB'
>>> naturalsize(-4096, True)
'-4.0 KiB'
```
Args:
value (int, float, str): Integer to convert.
binary (bool): If `True`, uses binary suffixes (KiB, MiB) with base
2<sup>10</sup> instead of 10<sup>3</sup>.
gnu (bool): If `True`, the binary argument is ignored and GNU-style
(`ls -sh` style) prefixes are used (K, M) with the 2**10 definition.
format (str): Custom formatter.
Returns:
str: Human readable representation of a filesize.
"""
if gnu:
suffix = suffixes["gnu"]
elif binary:
suffix = suffixes["binary"]
else:
suffix = suffixes["decimal"]
base = 1024 if (gnu or binary) else 1000
bytes_ = float(value)
abs_bytes = abs(bytes_)
if abs_bytes == 1 and not gnu:
return f"{int(bytes_)} Byte"
if abs_bytes < base:
return f"{int(bytes_)}B" if gnu else f"{int(bytes_)} Bytes"
exp = int(min(log(abs_bytes, base), len(suffix)))
ret: str = format % (bytes_ / (base**exp)) + suffix[exp - 1]
return ret

View File

@@ -0,0 +1,206 @@
"""Activate, get and deactivate translations."""
from __future__ import annotations
import gettext as gettext_module
from threading import local
TYPE_CHECKING = False
if TYPE_CHECKING:
import os
import pathlib
__all__ = ["activate", "deactivate", "decimal_separator", "thousands_separator"]
_TRANSLATIONS: dict[str | None, gettext_module.NullTranslations] = {
None: gettext_module.NullTranslations()
}
_CURRENT = local()
# Mapping of locale to thousands separator
_THOUSANDS_SEPARATOR = {
"de_DE": ".",
"fr_FR": " ",
"it_IT": ".",
"pt_BR": ".",
"hu_HU": " ",
}
# Mapping of locale to decimal separator
_DECIMAL_SEPARATOR = {
"de_DE": ",",
"fr_FR": ".",
"it_IT": ",",
"pt_BR": ",",
"hu_HU": ",",
}
def _get_default_locale_path() -> pathlib.Path | None:
package = __spec__ and __spec__.parent
if not package:
return None
import importlib.resources
with importlib.resources.as_file(importlib.resources.files(package)) as pkg:
return pkg / "locale"
def get_translation() -> gettext_module.NullTranslations:
try:
return _TRANSLATIONS[_CURRENT.locale]
except (AttributeError, KeyError):
return _TRANSLATIONS[None]
def activate(
locale: str | None, path: str | os.PathLike[str] | None = None
) -> gettext_module.NullTranslations:
"""Activate internationalisation.
Set `locale` as current locale. Search for locale in directory `path`.
Args:
locale (str | None): Language name, e.g. `en_GB`. If `None`, defaults to no
transaltion. Similar to calling ``deactivate()``.
path (str | pathlib.Path): Path to search for locales.
Returns:
dict: Translations.
Raises:
Exception: If humanize cannot find the locale folder.
"""
if locale is None or locale.startswith("en"):
_CURRENT.locale = None
return _TRANSLATIONS[None]
if path is None:
path = _get_default_locale_path()
if path is None:
msg = (
"Humanize cannot determinate the default location of the 'locale' folder. "
"You need to pass the path explicitly."
)
raise Exception(msg)
if locale not in _TRANSLATIONS:
translation = gettext_module.translation("humanize", path, [locale])
_TRANSLATIONS[locale] = translation
_CURRENT.locale = locale
return _TRANSLATIONS[locale]
def deactivate() -> None:
"""Deactivate internationalisation."""
_CURRENT.locale = None
def _gettext(message: str) -> str:
"""Get translation.
Args:
message (str): Text to translate.
Returns:
str: Translated text.
"""
return get_translation().gettext(message)
def _pgettext(msgctxt: str, message: str) -> str:
"""Fetches a particular translation.
It works with `msgctxt` .po modifiers and allows duplicate keys with different
translations.
Args:
msgctxt (str): Context of the translation.
message (str): Text to translate.
Returns:
str: Translated text.
"""
return get_translation().pgettext(msgctxt, message)
def _ngettext(message: str, plural: str, num: int) -> str:
"""Plural version of _gettext.
Args:
message (str): Singular text to translate.
plural (str): Plural text to translate.
num (int): The number (e.g. item count) to determine translation for the
respective grammatical number.
Returns:
str: Translated text.
"""
return get_translation().ngettext(message, plural, num)
def _gettext_noop(message: str) -> str:
"""Mark a string as a translation string without translating it.
Example usage:
```python
CONSTANTS = [_gettext_noop('first'), _gettext_noop('second')]
def num_name(n):
return _gettext(CONSTANTS[n])
```
Args:
message (str): Text to translate in the future.
Returns:
str: Original text, unchanged.
"""
return message
def _ngettext_noop(singular: str, plural: str) -> tuple[str, str]:
"""Mark two strings as pluralized translations without translating them.
Example usage:
```python
CONSTANTS = [ngettext_noop('first', 'firsts'), ngettext_noop('second', 'seconds')]
def num_name(n):
return _ngettext(*CONSTANTS[n])
```
Args:
singular (str): Singular text to translate in the future.
plural (str): Plural text to translate in the future.
Returns:
tuple: Original text, unchanged.
"""
return singular, plural
def thousands_separator() -> str:
"""Return the thousands separator for a locale, default to comma.
Returns:
str: Thousands separator.
"""
try:
sep = _THOUSANDS_SEPARATOR[_CURRENT.locale]
except (AttributeError, KeyError):
sep = ","
return sep
def decimal_separator() -> str:
"""Return the decimal separator for a locale, default to dot.
Returns:
str: Decimal separator.
"""
try:
sep = _DECIMAL_SEPARATOR[_CURRENT.locale]
except (AttributeError, KeyError):
sep = "."
return sep

View File

@@ -0,0 +1,36 @@
"""Lists related humanization."""
from __future__ import annotations
TYPE_CHECKING = False
if TYPE_CHECKING:
from typing import Any
__all__ = ["natural_list"]
def natural_list(items: list[Any]) -> str:
"""Natural list.
Convert a list of items into a human-readable string with commas and 'and'.
Examples:
>>> natural_list(["one", "two", "three"])
'one, two and three'
>>> natural_list(["one", "two"])
'one and two'
>>> natural_list(["one"])
'one'
Args:
items (list): An iterable of items.
Returns:
str: A string with commas and 'and' in the right places.
"""
if len(items) == 1:
return str(items[0])
elif len(items) == 2:
return f"{str(items[0])} and {str(items[1])}"
else:
return ", ".join(str(item) for item in items[:-1]) + f" and {str(items[-1])}"

View File

@@ -0,0 +1,364 @@
# Arabic (عربي) translations for humanize package.
# Copyright (C) 2022.
# This file is distributed under the same license as the humanize package.
# AYMEN Mohammed <let.me.code.safe@gmail.com>, 2022.
# YazeedT, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2022-04-13 17:28+0300\n"
"Last-Translator: AYMEN Mohammed <let.me.code.safe@gmail.com>\n"
"Language-Team: Arabic <let.me.code.safe@gmail.com>\n"
"Language: Arabic (عربي)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "صفر"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "اول"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "ثاني"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "ثالث"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "رابع"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "خامس"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "سادس"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "سابع"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "ثامن"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "تاسع"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "صفر"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "اولى"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ثانية"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ثالثة"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "رابعة"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "خامسة"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "سادسة"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "سابعة"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ثامنة"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "تاسعة"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "الف"
msgstr[1] "الاف"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "مليون"
msgstr[1] "ملايين"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "مليار"
msgstr[1] "مليارات"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "تريليون"
msgstr[1] "تريليونات"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "كوادريليون"
msgstr[1] "كوادريليونات"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "كوينتيليون"
msgstr[1] "كوينتيليونات"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "سكستليون"
msgstr[1] "سكستليونات"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "سبتيليون"
msgstr[1] "سبتيليونات"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "اوكتيليون"
msgstr[1] "اوكتيليونات"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "نونليون"
msgstr[1] "نونليونات"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "ديليون"
msgstr[1] "ديليونات"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "جوجل"
msgstr[1] "جوجلات"
#: src/humanize/number.py:301
msgid "zero"
msgstr "صفر"
#: src/humanize/number.py:302
msgid "one"
msgstr "واحد"
#: src/humanize/number.py:303
msgid "two"
msgstr "اثنين"
#: src/humanize/number.py:304
msgid "three"
msgstr "ثلاثة"
#: src/humanize/number.py:305
msgid "four"
msgstr "اربعة"
#: src/humanize/number.py:306
msgid "five"
msgstr "خمسة"
#: src/humanize/number.py:307
msgid "six"
msgstr "ستة"
#: src/humanize/number.py:308
msgid "seven"
msgstr "سبعة"
#: src/humanize/number.py:309
msgid "eight"
msgstr "ثمانية"
#: src/humanize/number.py:310
msgid "nine"
msgstr "تسعة"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d ميكرو من الثانية"
msgstr[1] "%d ميكرو من الثانية"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d جزء من الثانية"
msgstr[1] "%d اجزاء من الثانية"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "لحظة"
#: src/humanize/time.py:167
msgid "a second"
msgstr "ثانية"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d ثانية"
msgstr[1] "%d ثواني"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "دقيقة"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d دقيقة"
msgstr[1] "%d دقائق"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "ساعة"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ساعة"
msgstr[1] "%d ساعات"
#: src/humanize/time.py:188
msgid "a day"
msgstr "يوم"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d يوم"
msgstr[1] "%d أيام"
#: src/humanize/time.py:197
msgid "a month"
msgstr "شهر"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d شهر"
msgstr[1] "%d أشهر"
#: src/humanize/time.py:203
msgid "a year"
msgstr "سنة"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 سنة ، %d يوم"
msgstr[1] "1 سنة ، %d ايام"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "سنة وشهر"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 سنة ، %d شهر"
msgstr[1] "1 سنة ، %d اشهر"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d سنة"
msgstr[1] "%d سنين"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s من الان"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "قبل %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "الان"
#: src/humanize/time.py:284
msgid "today"
msgstr "اليوم"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "غداً"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "أمس"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s و %s"

View File

@@ -0,0 +1,366 @@
# Bengali translations for humanize package.
# Copyright (C) 2021 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the humanize package.
# Wasi Master <arianmollik323@gmail.com>, 2021.
# Zarif Ahnaf <zarifahnaf@outlook.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-07-29 22:07+0600\n"
"Last-Translator: U-WASI-PC\\Wasi Master <arianmollik323@gmail.com>\n"
"Language-Team: Bengali\n"
"Language: bn_BD\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "তম"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "তম"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "তম"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "তম"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "তম"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "তম"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "তম"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "%d হাজার"
msgstr[1] "%d হাজার"
#: src/humanize/number.py:179
#, fuzzy
msgid "million"
msgid_plural "million"
msgstr[0] "%d মিলিয়ন"
msgstr[1] "%d মিলিয়ন"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "%d বিলিয়ন"
msgstr[1] "%d বিলিয়ন"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "%d ট্রিলিয়ন"
msgstr[1] "%d ট্রিলিয়ন"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "%d কোয়াড্রিলিয়ন"
msgstr[1] "%d কোয়াড্রিলিয়ন"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "%d কুইন্টিলিয়ন"
msgstr[1] "%d কুইন্টিলিয়ন"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "%d সেক্সটিলিয়ন"
msgstr[1] "%d সেক্সটিলিয়ন"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "%d সেপটিলিয়ন"
msgstr[1] "%d সেপটিলিয়ন"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "%d ওকটিলিয়ন"
msgstr[1] "%d ওকটিলিয়ন"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:188
#, fuzzy
msgid "decillion"
msgid_plural "decillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:301
msgid "zero"
msgstr "শুন্য"
#: src/humanize/number.py:302
msgid "one"
msgstr "এক"
#: src/humanize/number.py:303
msgid "two"
msgstr "দুই"
#: src/humanize/number.py:304
msgid "three"
msgstr "তিন"
#: src/humanize/number.py:305
msgid "four"
msgstr "চার"
#: src/humanize/number.py:306
msgid "five"
msgstr "পাঁচ"
#: src/humanize/number.py:307
msgid "six"
msgstr "ছয়"
#: src/humanize/number.py:308
msgid "seven"
msgstr "সাত"
#: src/humanize/number.py:309
msgid "eight"
msgstr "আট"
#: src/humanize/number.py:310
msgid "nine"
msgstr "নয়"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d মাইক্রোসেকেন্ড"
msgstr[1] "%d মাইক্রোসেকেন্ড"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d মিলিসেকেন্ড"
msgstr[1] "%d মিলিসেকেন্ড"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "এক মুহুর্ত"
#: src/humanize/time.py:167
msgid "a second"
msgstr "এক সেকেন্ড"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d সেকেন্ড"
msgstr[1] "%d সেকেন্ড"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "এক মিনিট"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d মিনিট"
msgstr[1] "%d মিনিট"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "এক ঘন্টা"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ঘন্টা"
msgstr[1] "%d ঘন্টা"
#: src/humanize/time.py:188
msgid "a day"
msgstr "এক দিন"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d দিন"
msgstr[1] "%d দিন"
#: src/humanize/time.py:197
msgid "a month"
msgstr "এক মাস"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d মাস"
msgstr[1] "%d মাস"
#: src/humanize/time.py:203
msgid "a year"
msgstr "এক বছর"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "%d বছর"
msgstr[1] "%d বছর"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "১ বছর, ১ মাস"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "১ বছর, %d মাস"
msgstr[1] "১ বছর, %d মাস"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d বছর"
msgstr[1] "%d বছর"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "আজ থেকে %s সময় পরে"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s সময় আগে"
#: src/humanize/time.py:260
msgid "now"
msgstr "এখন"
#: src/humanize/time.py:284
msgid "today"
msgstr "আজকে"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "আগামীকাল"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "গতকাল"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s আর %s"

View File

@@ -0,0 +1,363 @@
# Catalan translations for PACKAGE package
# This file is distributed under the same license as the PACKAGE package.
# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-04-09 19:57+0200\n"
"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Language-Team: Catalan\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n!=1;\n"
"X-Generator: Poedit 2.4.1\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milió"
msgstr[1] "milió"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "mil milions"
msgstr[1] "mil milions"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilions"
msgstr[1] "bilions"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "quadrilió"
msgstr[1] "quadrilió"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "quintillió"
msgstr[1] "quintillió"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sextilió"
msgstr[1] "sextilió"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septilió"
msgstr[1] "septilió"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "octilió"
msgstr[1] "octilió"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonilió"
msgstr[1] "nonilió"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "decilió"
msgstr[1] "decilió"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "un"
#: src/humanize/number.py:303
msgid "two"
msgstr "dos"
#: src/humanize/number.py:304
msgid "three"
msgstr "tres"
#: src/humanize/number.py:305
msgid "four"
msgstr "quatre"
#: src/humanize/number.py:306
msgid "five"
msgstr "cinc"
#: src/humanize/number.py:307
msgid "six"
msgstr "sis"
#: src/humanize/number.py:308
msgid "seven"
msgstr "set"
#: src/humanize/number.py:309
msgid "eight"
msgstr "vuit"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nou"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microsegon"
msgstr[1] "%d microsegons"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d mil·lisegons"
msgstr[1] "%d mil·lisegons"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "un moment"
#: src/humanize/time.py:167
msgid "a second"
msgstr "un segon"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d segon"
msgstr[1] "%d segons"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "un minut"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minut"
msgstr[1] "%d minuts"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "una hora"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d hora"
msgstr[1] "%d hores"
#: src/humanize/time.py:188
msgid "a day"
msgstr "un dia"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dia"
msgstr[1] "%d dies"
#: src/humanize/time.py:197
msgid "a month"
msgstr "un mes"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mes"
msgstr[1] "%d mesos"
#: src/humanize/time.py:203
msgid "a year"
msgstr "un any"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 any, %d dia"
msgstr[1] "1 any, %d dies"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 any, 1 mes"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 any, %d mes"
msgstr[1] "1 any, %d mesos"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d any"
msgstr[1] "%d anys"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "en %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "fa %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "ara"
#: src/humanize/time.py:284
msgid "today"
msgstr "avui"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "demà"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ahir"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s i %s"

View File

@@ -0,0 +1,364 @@
# Danish translations for humanize package.
# Copyright (C) 2021
# This file is distributed under the same license as the humanize project.
# YURII DEREVYCH <gkhelloworld@gmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-11-24 22:25+0200\n"
"Last-Translator: YURII DEREVYCH <gkhelloworld@gmail.com>\n"
"Language-Team: Da\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr ":e"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr ":t"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr ":e"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr ":e"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr ":t"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr ":e"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tusind"
msgstr[1] "thousand"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "million"
msgstr[1] "millioner"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "billion"
msgstr[1] "billioner"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "billion"
msgstr[1] "billioner"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "quadrillion"
msgstr[1] "quadrillioner"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "quintillion"
msgstr[1] "quintillioner"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sextillion"
msgstr[1] "sextillioner"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septillion"
msgstr[1] "septillioner"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "octillion"
msgstr[1] "octillioner"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonillion"
msgstr[1] "nonillioner"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "decillion"
msgstr[1] "decillioner"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nul"
#: src/humanize/number.py:302
msgid "one"
msgstr "en"
#: src/humanize/number.py:303
msgid "two"
msgstr "to"
#: src/humanize/number.py:304
msgid "three"
msgstr "tre"
#: src/humanize/number.py:305
msgid "four"
msgstr "fire"
#: src/humanize/number.py:306
msgid "five"
msgstr "fem"
#: src/humanize/number.py:307
msgid "six"
msgstr "seks"
#: src/humanize/number.py:308
msgid "seven"
msgstr "syv"
#: src/humanize/number.py:309
msgid "eight"
msgstr "otte"
#: src/humanize/number.py:310
msgid "nine"
msgstr "ni"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekund"
msgstr[1] "%d mikrosekunder"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millsekund"
msgstr[1] "%d millsekunder"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "et øjeblik"
#: src/humanize/time.py:167
msgid "a second"
msgstr "en anden"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekund"
msgstr[1] "%d sekunder"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "en minut"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minut"
msgstr[1] "%d minutter"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "en time"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d time"
msgstr[1] "%d timer"
#: src/humanize/time.py:188
msgid "a day"
msgstr "en dag"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
msgstr[1] "%d dage"
#: src/humanize/time.py:197
msgid "a month"
msgstr "en måned"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d måned"
msgstr[1] "%d måneder"
#: src/humanize/time.py:203
msgid "a year"
msgstr "et år"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 år, %d dag"
msgstr[1] "1 år, %d dage"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 år, 1 måned"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 år, %d måned"
msgstr[1] "1 år, %d måneder"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d år"
msgstr[1] "%d år"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s fra nu"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s siden"
#: src/humanize/time.py:260
msgid "now"
msgstr "nu"
#: src/humanize/time.py:284
msgid "today"
msgstr "i dag"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "i morgen"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "i går"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s og %s"

View File

@@ -0,0 +1,365 @@
# German translation for humanize.
# Copyright (C) 2016 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the humanize package.
# Christian Klein <chris@5711.org>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2016-12-18 11:50+0100\n"
"Last-Translator: Christian Klein <chris@5711.org>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Christian Klein\n"
"X-Generator: Sublime Text 3\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "Tausend"
msgstr[1] "Tausend"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "Million"
msgstr[1] "Millionen"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "Milliarde"
msgstr[1] "Milliarden"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "Billion"
msgstr[1] "Billionen"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "Billiarde"
msgstr[1] "Billiarden"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "Trillion"
msgstr[1] "Trillionen"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "Trilliarde"
msgstr[1] "Trilliarden"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "Quadrillion"
msgstr[1] "Quadrillionen"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "Quadrillarde"
msgstr[1] "Quadrillarden"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "Quintillion"
msgstr[1] "Quintillionen"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "Quintilliarde"
msgstr[1] "Quintilliarden"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "Googol"
msgstr[1] "Googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "null"
#: src/humanize/number.py:302
msgid "one"
msgstr "eins"
#: src/humanize/number.py:303
msgid "two"
msgstr "zwei"
#: src/humanize/number.py:304
msgid "three"
msgstr "drei"
#: src/humanize/number.py:305
msgid "four"
msgstr "vier"
#: src/humanize/number.py:306
msgid "five"
msgstr "fünf"
#: src/humanize/number.py:307
msgid "six"
msgstr "sechs"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sieben"
#: src/humanize/number.py:309
msgid "eight"
msgstr "acht"
#: src/humanize/number.py:310
msgid "nine"
msgstr "neun"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d Mikrosekunde"
msgstr[1] "%d Mikrosekunden"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d Millisekunde"
msgstr[1] "%d Millisekunden"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "ein Moment"
#: src/humanize/time.py:167
msgid "a second"
msgstr "eine Sekunde"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d Sekunde"
msgstr[1] "%d Sekunden"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "eine Minute"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d Minute"
msgstr[1] "%d Minuten"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "eine Stunde"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d Stunde"
msgstr[1] "%d Stunden"
#: src/humanize/time.py:188
msgid "a day"
msgstr "ein Tag"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d Tag"
msgstr[1] "%d Tage"
#: src/humanize/time.py:197
msgid "a month"
msgstr "ein Monat"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d Monat"
msgstr[1] "%d Monate"
#: src/humanize/time.py:203
msgid "a year"
msgstr "ein Jahr"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "ein Jahr und %d Tag"
msgstr[1] "ein Jahr und %d Tage"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "ein Monat"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "ein Jahr und %d Monat"
msgstr[1] "ein Jahr und %d Monate"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d Jahr"
msgstr[1] "%d Jahre"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s ab jetzt"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "vor %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "jetzt"
#: src/humanize/time.py:284
msgid "today"
msgstr "heute"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "morgen"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "gestern"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s und %s"

View File

@@ -0,0 +1,445 @@
# Greek translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Isaak Tsalicoglou <isaak@waseigo.com>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2022-08-05 01:09+0300\n"
"Last-Translator: Isaak Tsalicoglou <isaak@waseigo.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Isaak Tsalicoglou\n"
"X-Generator: Mousepad 0.5.9\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr ""
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr ""
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr ""
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr ""
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr ""
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr ""
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr ""
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr ""
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "χιλιάδα"
msgstr[1] "χιλιάδες"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "εκατομμύριο"
msgstr[1] "εκατομμύρια"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "δισεκατομμύριο"
msgstr[1] "δισεκατομμύρια"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "τρισεκατομμύριο"
msgstr[1] "τρισεκατομμύρια"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "τετράκις εκατομμύριο"
msgstr[1] "τετράκις εκατομμύρια"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "πεντάκις εκατομμύριο"
msgstr[1] "πεντάκις εκατομμύρια"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "εξάκις εκατομμύριο"
msgstr[1] "εξάκις εκατομμύρια"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "επτάκις εκατομμύριο"
msgstr[1] "επτάκις εκατομμύρια"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "οκτάκις εκατομμύριο"
msgstr[1] "οκτάκις εκατομμύρια"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "εννεάκις εκατομμύριο"
msgstr[1] "εννεάκις εκατομμύρια"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "δεκάκις εκατομμύριο"
msgstr[1] "δεκάκις εκατομμύρια"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "δέκα τριακονταδυάκις εκατομμύριο"
msgstr[1] "δέκα τριακονταδυάκις εκατομμύρια"
#: src/humanize/number.py:301
msgid "zero"
msgstr "μηδέν"
#: src/humanize/number.py:302
msgid "one"
msgstr "ένα"
#: src/humanize/number.py:303
msgid "two"
msgstr "δύο"
#: src/humanize/number.py:304
msgid "three"
msgstr "τρία"
#: src/humanize/number.py:305
msgid "four"
msgstr "τέσσερα"
#: src/humanize/number.py:306
msgid "five"
msgstr "πέντε"
#: src/humanize/number.py:307
msgid "six"
msgstr "έξι"
#: src/humanize/number.py:308
msgid "seven"
msgstr "επτά"
#: src/humanize/number.py:309
msgid "eight"
msgstr "οκτώ"
#: src/humanize/number.py:310
msgid "nine"
msgstr "εννέα"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d εκατομμυριοστό του δευτερολέπτου"
msgstr[1] "%d εκατομμυριοστά του δευτερολέπτου"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d χιλιοστό του δευτερολέπτου"
msgstr[1] "%d χιλιοστά του δευτερολέπτου"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "μια στιγμή"
#: src/humanize/time.py:167
msgid "a second"
msgstr "ένα δευτερόλεπτο"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d δευτερόλεπτο"
msgstr[1] "%d δευτερόλεπτα"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "ένα λεπτό"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d λεπτό"
msgstr[1] "%d λεπτά"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "μία ώρα"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ώρα"
msgstr[1] "%d ώρες"
#: src/humanize/time.py:188
msgid "a day"
msgstr "μία ημέρα"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d ημέρα"
msgstr[1] "%d ημέρες"
#: src/humanize/time.py:197
msgid "a month"
msgstr "ένα μήνα"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d μήνα"
msgstr[1] "%d μήνες"
#: src/humanize/time.py:203
msgid "a year"
msgstr "ένα έτος"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "ένα έτος και %d ημέρα"
msgstr[1] "ένα έτος και %d ημέρες"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "ένα έτος και ένα μήνα"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "ένα έτος και %d μήνα"
msgstr[1] "ένα έτος και %d μήνες"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d έτος"
msgstr[1] "%d έτη"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "σε %s από τώρα"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "πριν από %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "τώρα"
#: src/humanize/time.py:284
msgid "today"
msgstr "σήμερα"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "αύριο"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "χθες"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s και %s"
#~ msgctxt "0 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "1 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "2 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "3 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "4 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "5 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "6 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "7 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "8 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "9 (male)"
#~ msgid "ος"
#~ msgstr "."
#~ msgctxt "0 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "1 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "2 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "3 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "4 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "5 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "6 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "7 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "8 (female)"
#~ msgid "η"
#~ msgstr "."
#~ msgctxt "9 (female)"
#~ msgid "η"
#~ msgstr "."

View File

@@ -0,0 +1,363 @@
# Esperanto translations for PACKAGE package.
# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Adam Milner <carmiac@gmail.com>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-02 10:46-0700\n"
"PO-Revision-Date: 2023-05-02 10:50-0700\n"
"Last-Translator: Adam Milner <carmiac@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "-a"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "-a"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "-a"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "-a"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "-a"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "-a"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "-a"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "mil"
msgstr[1] "mil"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "miliono"
msgstr[1] "miliono"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliardo"
msgstr[1] "miliardo"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "duiliono"
msgstr[1] "duiliono"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "duiliardo"
msgstr[1] "duiliardo"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "triiliono"
msgstr[1] "triiliono"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "triiliardo"
msgstr[1] "triiliardo"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvariliono"
msgstr[1] "kvariliono"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvariliardo"
msgstr[1] "kvariliardo"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "sesiliono"
msgstr[1] "sesiliono"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "sesiliardo"
msgstr[1] "sesiliardo"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "guglo"
msgstr[1] "guglo"
#: src/humanize/number.py:302
msgid "zero"
msgstr "nul"
#: src/humanize/number.py:303
msgid "one"
msgstr "unu"
#: src/humanize/number.py:304
msgid "two"
msgstr "du"
#: src/humanize/number.py:305
msgid "three"
msgstr "tri"
#: src/humanize/number.py:306
msgid "four"
msgstr "kvar"
#: src/humanize/number.py:307
msgid "five"
msgstr "kvin"
#: src/humanize/number.py:308
msgid "six"
msgstr "ses"
#: src/humanize/number.py:309
msgid "seven"
msgstr "sep"
#: src/humanize/number.py:310
msgid "eight"
msgstr "ok"
#: src/humanize/number.py:311
msgid "nine"
msgstr "naŭ"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisekundo"
msgstr[1] "%d milisekundoj"
#: src/humanize/time.py:164 src/humanize/time.py:263
msgid "a moment"
msgstr "momento"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sekundo"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekundo"
msgstr[1] "%d sekundoj"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minuto"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuto"
msgstr[1] "%d minutoj"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "horo"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d horo"
msgstr[1] "%d horoj"
#: src/humanize/time.py:188
msgid "a day"
msgstr "tago"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d tago"
msgstr[1] "%d tagoj"
#: src/humanize/time.py:197
msgid "a month"
msgstr "monato"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d monato"
msgstr[1] "%d monotoj"
#: src/humanize/time.py:203
msgid "a year"
msgstr "jaro"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 jaro, %d tago"
msgstr[1] "1 jaro, %d tagoj"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 jaro, 1 monato"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 jaro, %d monato"
msgstr[1] "1 jaro, %d monatoj"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d jaro"
msgstr[1] "%d jaroj"
#: src/humanize/time.py:260
#, python-format
msgid "%s from now"
msgstr "post %s"
#: src/humanize/time.py:260
#, python-format
msgid "%s ago"
msgstr "antaŭ %s"
#: src/humanize/time.py:264
msgid "now"
msgstr "nun"
#: src/humanize/time.py:288
msgid "today"
msgstr "hodiaŭ"
#: src/humanize/time.py:291
msgid "tomorrow"
msgstr "morgaŭ"
#: src/humanize/time.py:294
msgid "yesterday"
msgstr "hieraŭ"
#: src/humanize/time.py:604
#, python-format
msgid "%s and %s"
msgstr "%s kaj %s"

View File

@@ -0,0 +1,364 @@
# Spanish (Spain) translations for PROJECT.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Álvaro Mondéjar <mondejar1994@gmail.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2020-03-31 21:08+0200\n"
"Last-Translator: Álvaro Mondéjar <mondejar1994@gmail.com>\n"
"Language-Team: \n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ª"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ª"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ª"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "mil"
msgstr[1] "mil"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "millón"
msgstr[1] "millones"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "billón"
msgstr[1] "billones"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "trillón"
msgstr[1] "trillones"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "quatrillón"
msgstr[1] "quatrillones"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "quintillón"
msgstr[1] "quintillones"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sextillón"
msgstr[1] "sextillones"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septillón"
msgstr[1] "septillones"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "octillón"
msgstr[1] "octillones"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonillón"
msgstr[1] "nonillones"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "decillón"
msgstr[1] "decillones"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "gúgol"
msgstr[1] "gúgol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "cero"
#: src/humanize/number.py:302
msgid "one"
msgstr "uno"
#: src/humanize/number.py:303
msgid "two"
msgstr "dos"
#: src/humanize/number.py:304
msgid "three"
msgstr "tres"
#: src/humanize/number.py:305
msgid "four"
msgstr "cuatro"
#: src/humanize/number.py:306
msgid "five"
msgstr "cinco"
#: src/humanize/number.py:307
msgid "six"
msgstr "seis"
#: src/humanize/number.py:308
msgid "seven"
msgstr "siete"
#: src/humanize/number.py:309
msgid "eight"
msgstr "ocho"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nueve"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microsegundo"
msgstr[1] "%d microsegundos"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisegundo"
msgstr[1] "%d milisegundos"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "un momento"
#: src/humanize/time.py:167
msgid "a second"
msgstr "un segundo"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d segundo"
msgstr[1] "%d segundos"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "un minuto"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuto"
msgstr[1] "%d minutos"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "una hora"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d hora"
msgstr[1] "%d horas"
#: src/humanize/time.py:188
msgid "a day"
msgstr "un día"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d día"
msgstr[1] "%d días"
#: src/humanize/time.py:197
msgid "a month"
msgstr "un mes"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mes"
msgstr[1] "%d meses"
#: src/humanize/time.py:203
msgid "a year"
msgstr "un año"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 año y %d día"
msgstr[1] "1 año y %d días"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 año y 1 mes"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 año y %d mes"
msgstr[1] "1 año y %d meses"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d año"
msgstr[1] "%d años"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "en %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "hace %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "ahora"
#: src/humanize/time.py:284
msgid "today"
msgstr "hoy"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "mañana"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ayer"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s y %s"

View File

@@ -0,0 +1,364 @@
# Basque translations for PACKAGE package.
# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Mikel Olasagasti <mikel@olasagasti.info>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2023-01-02 20:35+0100\n"
"Last-Translator: Mikel Olasagasti <mikel@olasagasti.info>\n"
"Language-Team: Basque <translation-team-eu@googlegroups.com>\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.1.1\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "mila"
msgstr[1] "mila"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milioi"
msgstr[1] "milioi"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliar"
msgstr[1] "miliar"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "trilioi"
msgstr[1] "trilioi"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "kuatrilioi"
msgstr[1] "kuatrilioi"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "bat"
#: src/humanize/number.py:303
msgid "two"
msgstr "bi"
#: src/humanize/number.py:304
msgid "three"
msgstr "hiru"
#: src/humanize/number.py:305
msgid "four"
msgstr "lau"
#: src/humanize/number.py:306
msgid "five"
msgstr "bost"
#: src/humanize/number.py:307
msgid "six"
msgstr "sei"
#: src/humanize/number.py:308
msgid "seven"
msgstr "zazpi"
#: src/humanize/number.py:309
msgid "eight"
msgstr "zortzi"
#: src/humanize/number.py:310
msgid "nine"
msgstr "bederatzi"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "mikrosegundo %d"
msgstr[1] "%d mikrosegundo"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "milisegundo %d"
msgstr[1] "%d milisegundo"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "une bat"
#: src/humanize/time.py:167
msgid "a second"
msgstr "segundo bat"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "segundo %d"
msgstr[1] "%d segundo"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minutu bat"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "minutu %d"
msgstr[1] "%d minutu"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "ordu bat"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "ordu %d"
msgstr[1] "%d ordu"
#: src/humanize/time.py:188
msgid "a day"
msgstr "egun bat"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "egun %d"
msgstr[1] "%d egun"
#: src/humanize/time.py:197
msgid "a month"
msgstr "hilabete bat"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "hilabete %d"
msgstr[1] "%d hilabete"
#: src/humanize/time.py:203
msgid "a year"
msgstr "urte bat"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "urte 1, egun %d"
msgstr[1] "urte 1, %d egun"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "urte 1, hilabete 1"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "urte 1, hilabete %d"
msgstr[1] "urte 1, %d hilabete"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "urte %d"
msgstr[1] "%d urte"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "hemendik %s-(e)ra"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "orain dela %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "orain"
#: src/humanize/time.py:284
msgid "today"
msgstr "gaur"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "bihar"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "atzo"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s eta %s"

View File

@@ -0,0 +1,365 @@
# German translation for humanize.
# Copyright (C) 2016 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the humanize package.
# Christian Klein <chris@5711.org>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2017-01-10 02:44+0330\n"
"Last-Translator: Christian Klein <chris@5711.org>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Christian Klein\n"
"X-Generator: Poedit 1.5.4\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "صفرمین"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "اولین"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "دومین"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "سومین"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "چهارمین"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "پنجمین"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "ششمین"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "هفتمین"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "هشتمین"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "نهمین"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "صفرمین"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "اولین"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "دومین"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "سومین"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "چهارمین"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "پنجمین"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ششمین"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "هفتمین"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "هشتمین"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "نهمین"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "هزار"
msgstr[1] "هزار"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "میلیون"
msgstr[1] "میلیون"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "میلیارد"
msgstr[1] "میلیارد"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "ترلیون"
msgstr[1] "ترلیون"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "کوادریلیون"
msgstr[1] "کوادریلیون"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "کوانتیلیون"
msgstr[1] "کوانتیلیون"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "سکستیلیون"
msgstr[1] "سکستیلیون"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "سپتیلیون"
msgstr[1] "سپتیلیون"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "اوکتیلیون"
msgstr[1] "اوکتیلیون"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "نونیلیون"
msgstr[1] "نونیلیون"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "دسیلیون"
msgstr[1] "دسیلیون"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "گوگول"
msgstr[1] "گوگول"
#: src/humanize/number.py:301
msgid "zero"
msgstr "صفر"
#: src/humanize/number.py:302
msgid "one"
msgstr "یک"
#: src/humanize/number.py:303
msgid "two"
msgstr "دو"
#: src/humanize/number.py:304
msgid "three"
msgstr "سه"
#: src/humanize/number.py:305
msgid "four"
msgstr "چهار"
#: src/humanize/number.py:306
msgid "five"
msgstr "پنج"
#: src/humanize/number.py:307
msgid "six"
msgstr "شش"
#: src/humanize/number.py:308
msgid "seven"
msgstr "هفت"
#: src/humanize/number.py:309
msgid "eight"
msgstr "هشت"
#: src/humanize/number.py:310
msgid "nine"
msgstr "نه"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d میکرو‌ثانیه"
msgstr[1] "%d میکرو‌ثانیه"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d میلی‌ثانیه"
msgstr[1] "%d میلی‌ثانیه"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "یک لحظه"
#: src/humanize/time.py:167
msgid "a second"
msgstr "یک ثانیه"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d ثانیه"
msgstr[1] "%d ثانیه"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "یک دقیقه"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d دقیقه"
msgstr[1] "%d دقیقه"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "یک ساعت"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ساعت"
msgstr[1] "%d ساعت"
#: src/humanize/time.py:188
msgid "a day"
msgstr "یک روز"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d روز"
msgstr[1] "%d روز"
#: src/humanize/time.py:197
msgid "a month"
msgstr "یک ماه"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d ماه"
msgstr[1] "%d ماه"
#: src/humanize/time.py:203
msgid "a year"
msgstr "یک سال"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "۱ سال و %d روز"
msgstr[1] "۱ سال و %d روز"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "۱ سال و ۱ ماه"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "۱ سال و %d ماه"
msgstr[1] "۱ سال و %d ماه"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d سال"
msgstr[1] "%d سال"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s تا به اکنون"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s پیش"
#: src/humanize/time.py:260
msgid "now"
msgstr "اکنون"
#: src/humanize/time.py:284
msgid "today"
msgstr "امروز"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "فردا"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "دیروز"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s و %s"

View File

@@ -0,0 +1,364 @@
# Finnish translations for humanize package
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the humanize package.
# Ville Skyttä <ville.skytta@iki.fi>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2017-03-02 11:26+0200\n"
"Last-Translator: Ville Skyttä <ville.skytta@iki.fi>\n"
"Language-Team: Finnish\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.12\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tuhatta"
msgstr[1] "tuhatta"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "miljoonaa"
msgstr[1] "miljoonaa"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miljardia"
msgstr[1] "miljardia"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "biljoonaa"
msgstr[1] "biljoonaa"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "kvadriljoonaa"
msgstr[1] "kvadriljoonaa"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "kvintiljoonaa"
msgstr[1] "kvintiljoonaa"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sekstiljoonaa"
msgstr[1] "sekstiljoonaa"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septiljoonaa"
msgstr[1] "septiljoonaa"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "oktiljoonaa"
msgstr[1] "oktiljoonaa"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "noniljoonaa"
msgstr[1] "noniljoonaa"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "dekiljoonaa"
msgstr[1] "dekiljoonaa"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nolla"
#: src/humanize/number.py:302
msgid "one"
msgstr "yksi"
#: src/humanize/number.py:303
msgid "two"
msgstr "kaksi"
#: src/humanize/number.py:304
msgid "three"
msgstr "kolme"
#: src/humanize/number.py:305
msgid "four"
msgstr "neljä"
#: src/humanize/number.py:306
msgid "five"
msgstr "viisi"
#: src/humanize/number.py:307
msgid "six"
msgstr "kuusi"
#: src/humanize/number.py:308
msgid "seven"
msgstr "seitsemän"
#: src/humanize/number.py:309
msgid "eight"
msgstr "kahdeksan"
#: src/humanize/number.py:310
msgid "nine"
msgstr "yhdeksän"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekunti"
msgstr[1] "%d mikrosekuntia"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millisekunti"
msgstr[1] "%d millisekuntia"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "hetki"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sekunti"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekunti"
msgstr[1] "%d sekuntia"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minuutti"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuutti"
msgstr[1] "%d minuuttia"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "tunti"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d tunti"
msgstr[1] "%d tuntia"
#: src/humanize/time.py:188
msgid "a day"
msgstr "päivä"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d päivä"
msgstr[1] "%d päivää"
#: src/humanize/time.py:197
msgid "a month"
msgstr "kuukausi"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d kuukausi"
msgstr[1] "%d kuukautta"
#: src/humanize/time.py:203
msgid "a year"
msgstr "vuosi"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 vuosi, %d päivä"
msgstr[1] "1 vuosi, %d päivää"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 vuosi, 1 kuukausi"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 vuosi, %d kuukausi"
msgstr[1] "1 vuosi, %d kuukautta"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d vuosi"
msgstr[1] "%d vuotta"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s tästä"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s sitten"
#: src/humanize/time.py:260
msgid "now"
msgstr "nyt"
#: src/humanize/time.py:284
msgid "today"
msgstr "tänään"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "huomenna"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "eilen"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s ja %s"

View File

@@ -0,0 +1,365 @@
# French (France) translations for PROJECT.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-01 12:17-0400\n"
"PO-Revision-Date: 2013-06-22 08:52+0100\n"
"Last-Translator: Olivier Cortès <oc@1flow.io>\n"
"Language-Team: fr_FR <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 1.5.5\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "er"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "e"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "e"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ère"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "e"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "e"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "e"
#: src/humanize/number.py:183
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "mille"
msgstr[1] "milles"
#: src/humanize/number.py:184
msgid "million"
msgid_plural "million"
msgstr[0] "million"
msgstr[1] "millions"
#: src/humanize/number.py:185
msgid "billion"
msgid_plural "billion"
msgstr[0] "milliard"
msgstr[1] "milliards"
#: src/humanize/number.py:186
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "billions"
msgstr[1] "billions"
#: src/humanize/number.py:187
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "billiard"
msgstr[1] "billiards"
#: src/humanize/number.py:188
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trillion"
msgstr[1] "trillions"
#: src/humanize/number.py:189
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "trilliard"
msgstr[1] "trilliards"
#: src/humanize/number.py:190
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "quatrillion"
msgstr[1] "quatrillions"
#: src/humanize/number.py:191
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "quadrilliard"
msgstr[1] "quadrilliards"
#: src/humanize/number.py:192
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "quintillion"
msgstr[1] "quintillions"
#: src/humanize/number.py:193
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "quintilliard"
msgstr[1] "quintilliards"
#: src/humanize/number.py:194
msgid "googol"
msgid_plural "googol"
msgstr[0] "gogol"
msgstr[1] "gogols"
#: src/humanize/number.py:313
msgid "zero"
msgstr "zéro"
#: src/humanize/number.py:314
msgid "one"
msgstr "un"
#: src/humanize/number.py:315
msgid "two"
msgstr "deux"
#: src/humanize/number.py:316
msgid "three"
msgstr "trois"
#: src/humanize/number.py:317
msgid "four"
msgstr "quatre"
#: src/humanize/number.py:318
msgid "five"
msgstr "cinq"
#: src/humanize/number.py:319
msgid "six"
msgstr "six"
#: src/humanize/number.py:320
msgid "seven"
msgstr "sept"
#: src/humanize/number.py:321
msgid "eight"
msgstr "huit"
#: src/humanize/number.py:322
msgid "nine"
msgstr "neuf"
#: src/humanize/time.py:162
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microseconde"
msgstr[1] "%d microsecondes"
#: src/humanize/time.py:171
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milliseconde"
msgstr[1] "%d millisecondes"
#: src/humanize/time.py:174 src/humanize/time.py:275
msgid "a moment"
msgstr "un instant"
#: src/humanize/time.py:177
msgid "a second"
msgstr "une seconde"
#: src/humanize/time.py:180
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d seconde"
msgstr[1] "%d secondes"
#: src/humanize/time.py:183
msgid "a minute"
msgstr "une minute"
#: src/humanize/time.py:187
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minute"
msgstr[1] "%d minutes"
#: src/humanize/time.py:190
msgid "an hour"
msgstr "une heure"
#: src/humanize/time.py:194
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d heure"
msgstr[1] "%d heures"
#: src/humanize/time.py:198
msgid "a day"
msgstr "un jour"
#: src/humanize/time.py:201 src/humanize/time.py:204
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d jour"
msgstr[1] "%d jours"
#: src/humanize/time.py:207
msgid "a month"
msgstr "un mois"
#: src/humanize/time.py:209
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mois"
msgstr[1] "%d mois"
#: src/humanize/time.py:213
msgid "a year"
msgstr "un an"
#: src/humanize/time.py:216 src/humanize/time.py:227
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "un an et %d jour"
msgstr[1] "un an et %d jours"
#: src/humanize/time.py:220
msgid "1 year, 1 month"
msgstr "un an et un mois"
#: src/humanize/time.py:223
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "un an et %d mois"
msgstr[1] "un an et %d mois"
#: src/humanize/time.py:229
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d an"
msgstr[1] "%d ans"
#: src/humanize/time.py:272
#, python-format
msgid "%s from now"
msgstr "dans %s"
#: src/humanize/time.py:272
#, python-format
msgid "%s ago"
msgstr "il y a %s"
#: src/humanize/time.py:276
msgid "now"
msgstr "maintenant"
#: src/humanize/time.py:313
msgid "today"
msgstr "aujourd'hui"
#: src/humanize/time.py:316
msgid "tomorrow"
msgstr "demain"
#: src/humanize/time.py:319
msgid "yesterday"
msgstr "hier"
#: src/humanize/time.py:634
#, python-format
msgid "%s and %s"
msgstr "%s et %s"

View File

@@ -0,0 +1,363 @@
# Hebrew translations for humanize package.
# Copyright (C) 2023
# This file is distributed under the same license as the humanizepackage.
# Mark E. Shoulson <mark@shoulson.com>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-05 14:07-0400\n"
"PO-Revision-Date: 2023-10-05 15:45-0400\n"
"Last-Translator: Mark E. Shoulson <mark@shoulson.com>\n"
"Language-Team: Hebrew <heb-bugzap@hamakor.org.il>\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:83
msgctxt "0 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:84
msgctxt "1 (male)"
msgid "st"
msgstr "ון"
#: src/humanize/number.py:85
msgctxt "2 (male)"
msgid "nd"
msgstr "י"
#: src/humanize/number.py:86
msgctxt "3 (male)"
msgid "rd"
msgstr "י"
#: src/humanize/number.py:87
msgctxt "4 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:88
msgctxt "5 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:89
msgctxt "6 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:90
msgctxt "7 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:91
msgctxt "8 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:92
msgctxt "9 (male)"
msgid "th"
msgstr "י"
#: src/humanize/number.py:96
msgctxt "0 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:97
msgctxt "1 (female)"
msgid "st"
msgstr "ונה"
#: src/humanize/number.py:98
msgctxt "2 (female)"
msgid "nd"
msgstr "יה"
#: src/humanize/number.py:99
msgctxt "3 (female)"
msgid "rd"
msgstr "ית"
#: src/humanize/number.py:100
msgctxt "4 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:101
msgctxt "5 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:102
msgctxt "6 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:103
msgctxt "7 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:104
msgctxt "8 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:105
msgctxt "9 (female)"
msgid "th"
msgstr "ית"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "אלף"
msgstr[1] "אלפים"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "מיליון"
msgstr[1] "מיליון"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "מיליארד"
msgstr[1] "מיליארד"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "טריליון"
msgstr[1] "טריליון"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "קוודריליון"
msgstr[1] "קוודריליון"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "קווינטיליון"
msgstr[1] "קווינטיליון"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "סקסטיליון"
msgstr[1] "סקסטיליון"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "ספטיליון"
msgstr[1] "ספטיליון"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "אוקטיליון"
msgstr[1] "אוקטיליון"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "נוניליון"
msgstr[1] "נוניליון"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "דציליון"
msgstr[1] "דציליון"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "גוגול"
msgstr[1] "גוגול"
#: src/humanize/number.py:304
msgid "zero"
msgstr "אפס"
#: src/humanize/number.py:305
msgid "one"
msgstr "אחת"
#: src/humanize/number.py:306
msgid "two"
msgstr "שתיים"
#: src/humanize/number.py:307
msgid "three"
msgstr "שלוש"
#: src/humanize/number.py:308
msgid "four"
msgstr "ארבע"
#: src/humanize/number.py:309
msgid "five"
msgstr "חמש"
#: src/humanize/number.py:310
msgid "six"
msgstr "שש"
#: src/humanize/number.py:311
msgid "seven"
msgstr "שבע"
#: src/humanize/number.py:312
msgid "eight"
msgstr "שמונה"
#: src/humanize/number.py:313
msgid "nine"
msgstr "תשע"
#: src/humanize/time.py:151
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "מיקרו־שנייה %d"
msgstr[1] "%d מיקרו־שניות"
#: src/humanize/time.py:160
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "מילי־שנייה %d"
msgstr[1] "%d מילי־שניות"
#: src/humanize/time.py:163 src/humanize/time.py:262
msgid "a moment"
msgstr "רגע"
#: src/humanize/time.py:166
msgid "a second"
msgstr "שנייה"
#: src/humanize/time.py:169
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "שנייה %d"
msgstr[1] "%d שניות"
#: src/humanize/time.py:172
msgid "a minute"
msgstr "דקה"
#: src/humanize/time.py:176
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "דקה %d"
msgstr[1] "%d דקות"
#: src/humanize/time.py:179
msgid "an hour"
msgstr "שעה"
#: src/humanize/time.py:183
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "שעה %d"
msgstr[1] "%d שעות"
#: src/humanize/time.py:187
msgid "a day"
msgstr "יום"
#: src/humanize/time.py:190 src/humanize/time.py:193
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "יום %d"
msgstr[1] "%d ימים"
#: src/humanize/time.py:196
msgid "a month"
msgstr "חודש"
#: src/humanize/time.py:198
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "חודש %d"
msgstr[1] "%d חודשים"
#: src/humanize/time.py:202
msgid "a year"
msgstr "שנה"
#: src/humanize/time.py:205 src/humanize/time.py:216
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "שנה אחת, יום %d"
msgstr[1] "שנה אחת, %d ימים"
#: src/humanize/time.py:209
msgid "1 year, 1 month"
msgstr "שנה אחת, חודש אחד"
#: src/humanize/time.py:212
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "שנה אחת, חודש %d"
msgstr[1] "שנה אחת, %d חודשים"
#: src/humanize/time.py:218
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "שנה %d"
msgstr[1] "%d שנים"
#: src/humanize/time.py:259
#, python-format
msgid "%s from now"
msgstr "אחרי %s"
#: src/humanize/time.py:259
#, python-format
msgid "%s ago"
msgstr "לפני %s"
#: src/humanize/time.py:263
msgid "now"
msgstr "עכשיו"
#: src/humanize/time.py:296
msgid "today"
msgstr "היום"
#: src/humanize/time.py:299
msgid "tomorrow"
msgstr "מחר"
#: src/humanize/time.py:302
msgid "yesterday"
msgstr "אתמול"
#: src/humanize/time.py:612
#, python-format
msgid "%s and %s"
msgstr "%s ו%s"

View File

@@ -0,0 +1,363 @@
# Hungarian translations for humanize package.
# Copyright (C) 2023
# This file is distributed under the same license as the humanize project.
# Bálint Gyarmathy <balint.gyarmathy@coincash.eu>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-07-05 10:30+0200\n"
"Last-Translator: Bálint Gyarmathy <balint.gyarmathy@coincash.eu>\n"
"Language-Team: Hungarian\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "ezer"
msgstr[1] "ezer"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "millió"
msgstr[1] "millió"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milliárd"
msgstr[1] "milliárd"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "billió"
msgstr[1] "billió"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "kvadrillió"
msgstr[1] "kvadrillió"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "kvadrilliárd"
msgstr[1] "kvadrilliárd"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "trilliárd"
msgstr[1] "trilliárd"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvadrillió"
msgstr[1] "kvadrillió"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvadrilliárd"
msgstr[1] "kvadrilliárd"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kvintillió"
msgstr[1] "kvintillió"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kvintilliárd"
msgstr[1] "kvintilliárd"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "tízszexdecilliárd"
msgstr[1] "tízszexdecilliárd"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nulla"
#: src/humanize/number.py:302
msgid "one"
msgstr "egy"
#: src/humanize/number.py:303
msgid "two"
msgstr "kettő"
#: src/humanize/number.py:304
msgid "three"
msgstr "három"
#: src/humanize/number.py:305
msgid "four"
msgstr "négy"
#: src/humanize/number.py:306
msgid "five"
msgstr "öt"
#: src/humanize/number.py:307
msgid "six"
msgstr "hat"
#: src/humanize/number.py:308
msgid "seven"
msgstr "hét"
#: src/humanize/number.py:309
msgid "eight"
msgstr "nyolc"
#: src/humanize/number.py:310
msgid "nine"
msgstr "kilenc"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikroszekundum"
msgstr[1] "%d mikroszekundum"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d miliszekundum"
msgstr[1] "%d miliszekundum"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "egy pillanat"
#: src/humanize/time.py:167
msgid "a second"
msgstr "egy másodperc"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d másodperc"
msgstr[1] "%d másodperc"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "egy perc"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d perc"
msgstr[1] "%d perc"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "egy óra"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d óra"
msgstr[1] "%d óra"
#: src/humanize/time.py:188
msgid "a day"
msgstr "egy nap"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d nap"
msgstr[1] "%d nap"
#: src/humanize/time.py:197
msgid "a month"
msgstr "egy hónap"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d hónap"
msgstr[1] "%d hónap"
#: src/humanize/time.py:203
msgid "a year"
msgstr "egy év"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "egy év és %d nap"
msgstr[1] "egy év és %d nap"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "egy év és egy hónap"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "egy év és %d hónap"
msgstr[1] "egy év és %d hónap"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d év"
msgstr[1] "%d év"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s múlva"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "azóta eltelt %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "most"
#: src/humanize/time.py:284
msgid "today"
msgstr "ma"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "holnap"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "tegnap"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s és %s"

View File

@@ -0,0 +1,342 @@
# Indonesian translations for PACKAGE package.
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# <adie.rebel@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2017-03-18 15:41+0700\n"
"Last-Translator: adie.rebel@gmail.com\n"
"Language-Team: Indonesian\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.8.11\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "juta"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliar"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "triliun"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "kuadriliun"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "quintillion"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sextillion"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septillion"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "octillion"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonillion"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "decillion"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nol"
#: src/humanize/number.py:302
msgid "one"
msgstr "satu"
#: src/humanize/number.py:303
msgid "two"
msgstr "dua"
#: src/humanize/number.py:304
msgid "three"
msgstr "tiga"
#: src/humanize/number.py:305
msgid "four"
msgstr "empat"
#: src/humanize/number.py:306
msgid "five"
msgstr "lima"
#: src/humanize/number.py:307
msgid "six"
msgstr "enam"
#: src/humanize/number.py:308
msgid "seven"
msgstr "tujuh"
#: src/humanize/number.py:309
msgid "eight"
msgstr "delapan"
#: src/humanize/number.py:310
msgid "nine"
msgstr "sembilan"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikro detik"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d mili detik"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "beberapa saat"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sedetik"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d detik"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "semenit"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d menit"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "sejam"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d jam"
#: src/humanize/time.py:188
msgid "a day"
msgstr "sehari"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d hari"
#: src/humanize/time.py:197
msgid "a month"
msgstr "sebulan"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d bulan"
#: src/humanize/time.py:203
msgid "a year"
msgstr "setahun"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 tahun, %d hari"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 tahun, 1 bulan"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 tahun, %d bulan"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d tahun"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s dari sekarang"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s yang lalu"
#: src/humanize/time.py:260
msgid "now"
msgstr "sekarang"
#: src/humanize/time.py:284
msgid "today"
msgstr "hari ini"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "besok"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "kemarin"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s dan %s"

View File

@@ -0,0 +1,364 @@
# Italian translations for PACKAGE package.
# Copyright (C) 2018 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# derfel <code@derfel.net>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2018-10-27 22:52+0200\n"
"Last-Translator: derfel <code@derfel.net>\n"
"Language-Team: Italian\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ª"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ª"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ª"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "migliaio"
msgstr[1] "migliaia"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milione"
msgstr[1] "milioni"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliardo"
msgstr[1] "miliardi"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilione"
msgstr[1] "bilioni"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "biliardo"
msgstr[1] "biliardi"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trilione"
msgstr[1] "trilioni"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "triliardo"
msgstr[1] "triliardi"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "quadrilione"
msgstr[1] "quadrilioni"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "quadriliardo"
msgstr[1] "quadriliardi"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "quintilione"
msgstr[1] "quintilioni"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "quintiliardo"
msgstr[1] "quintiliardi"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "uno"
#: src/humanize/number.py:303
msgid "two"
msgstr "due"
#: src/humanize/number.py:304
msgid "three"
msgstr "tre"
#: src/humanize/number.py:305
msgid "four"
msgstr "quattro"
#: src/humanize/number.py:306
msgid "five"
msgstr "cinque"
#: src/humanize/number.py:307
msgid "six"
msgstr "sei"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sette"
#: src/humanize/number.py:309
msgid "eight"
msgstr "otto"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nove"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microsecondo"
msgstr[1] "%d microsecondi"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millisecondo"
msgstr[1] "%d millisecondi"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "un momento"
#: src/humanize/time.py:167
msgid "a second"
msgstr "un secondo"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d secondo"
msgstr[1] "%d secondi"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "un minuto"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuto"
msgstr[1] "%d minuti"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "un'ora"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ora"
msgstr[1] "%d ore"
#: src/humanize/time.py:188
msgid "a day"
msgstr "un giorno"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d giorno"
msgstr[1] "%d giorni"
#: src/humanize/time.py:197
msgid "a month"
msgstr "un mese"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mese"
msgstr[1] "%d mesi"
#: src/humanize/time.py:203
msgid "a year"
msgstr "un anno"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "un anno e %d giorno"
msgstr[1] "un anno e %d giorni"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "un anno ed un mese"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "un anno e %d mese"
msgstr[1] "un anno e %d mesi"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d anno"
msgstr[1] "%d anni"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "fra %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s fa"
#: src/humanize/time.py:260
msgid "now"
msgstr "adesso"
#: src/humanize/time.py:284
msgid "today"
msgstr "oggi"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "domani"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ieri"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s e %s"

View File

@@ -0,0 +1,354 @@
# Japanese (Japan) translations for humanize.
# Copyright (C) 2018
# This file is distributed under the same license as the humanize project.
# @qoolloop, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2018-01-22 10:48+0900\n"
"Last-Translator: Kan Torii <oss@qoolloop.com>\n"
"Language-Team: Japanese\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 2.0.6\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "番目"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "番目"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "番目"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "番目"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "番目"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "番目"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "番目"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "百万"
#: src/humanize/number.py:180
#, fuzzy
msgid "billion"
msgid_plural "billion"
msgstr[0] "十億"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "兆"
#: src/humanize/number.py:182
#, fuzzy
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "千兆"
#: src/humanize/number.py:183
#, fuzzy
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "百京"
#: src/humanize/number.py:184
#, fuzzy
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "十垓"
#: src/humanize/number.py:185
#, fuzzy
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "じょ"
#: src/humanize/number.py:186
#, fuzzy
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "千じょ"
#: src/humanize/number.py:187
#, fuzzy
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "百穣"
#: src/humanize/number.py:188
#, fuzzy
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "十溝"
#: src/humanize/number.py:189
#, fuzzy
msgid "googol"
msgid_plural "googol"
msgstr[0] "溝無量大数"
#: src/humanize/number.py:301
msgid "zero"
msgstr ""
#: src/humanize/number.py:302
msgid "one"
msgstr "一"
#: src/humanize/number.py:303
msgid "two"
msgstr "二"
#: src/humanize/number.py:304
msgid "three"
msgstr "三"
#: src/humanize/number.py:305
msgid "four"
msgstr "四"
#: src/humanize/number.py:306
msgid "five"
msgstr "五"
#: src/humanize/number.py:307
msgid "six"
msgstr "六"
#: src/humanize/number.py:308
msgid "seven"
msgstr "七"
#: src/humanize/number.py:309
msgid "eight"
msgstr "八"
#: src/humanize/number.py:310
msgid "nine"
msgstr "九"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] ""
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] ""
#: src/humanize/time.py:164 src/humanize/time.py:259
#, fuzzy
msgid "a moment"
msgstr "短時間"
#: src/humanize/time.py:167
msgid "a second"
msgstr "1秒"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d秒"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "1分"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d分"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "1時間"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d時間"
#: src/humanize/time.py:188
msgid "a day"
msgstr "1日"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d日"
#: src/humanize/time.py:197
msgid "a month"
msgstr "1ヶ月"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%dヶ月"
#: src/humanize/time.py:203
msgid "a year"
msgstr "1年"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1年 %d日"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1年 1ヶ月"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1年 %dヶ月"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d年"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s後"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s前"
#: src/humanize/time.py:260
#, fuzzy
msgid "now"
msgstr "今"
#: src/humanize/time.py:284
msgid "today"
msgstr "本日"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "明日"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "昨日"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr ""

View File

@@ -0,0 +1,394 @@
# Korean (Korea) translations for humanize.
# Copyright (C) 2013
# This file is distributed under the same license as the humanize project.
# @youngrok, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2013-07-10 11:38+0900\n"
"Last-Translator: @youngrok\n"
"Language-Team: ko_KR <LL@li.org>\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 1.5.7\n"
#: src/humanize/number.py:84
#, fuzzy
msgctxt "0 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:85
#, fuzzy
msgctxt "1 (male)"
msgid "st"
msgstr "번째"
#: src/humanize/number.py:86
#, fuzzy
msgctxt "2 (male)"
msgid "nd"
msgstr "번째"
#: src/humanize/number.py:87
#, fuzzy
msgctxt "3 (male)"
msgid "rd"
msgstr "번째"
#: src/humanize/number.py:88
#, fuzzy
msgctxt "4 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:89
#, fuzzy
msgctxt "5 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:90
#, fuzzy
msgctxt "6 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:91
#, fuzzy
msgctxt "7 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:92
#, fuzzy
msgctxt "8 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:93
#, fuzzy
msgctxt "9 (male)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:97
#, fuzzy
msgctxt "0 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:98
#, fuzzy
msgctxt "1 (female)"
msgid "st"
msgstr "번째"
#: src/humanize/number.py:99
#, fuzzy
msgctxt "2 (female)"
msgid "nd"
msgstr "번째"
#: src/humanize/number.py:100
#, fuzzy
msgctxt "3 (female)"
msgid "rd"
msgstr "번째"
#: src/humanize/number.py:101
#, fuzzy
msgctxt "4 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:102
#, fuzzy
msgctxt "5 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:103
#, fuzzy
msgctxt "6 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:104
#, fuzzy
msgctxt "7 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:105
#, fuzzy
msgctxt "8 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:106
#, fuzzy
msgctxt "9 (female)"
msgid "th"
msgstr "번째"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "%(value)s million"
msgstr[1] "%(value)s million"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milliard"
msgstr[1] "milliard"
#: src/humanize/number.py:181
#, fuzzy
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "%(value)s billion"
msgstr[1] "%(value)s billion"
#: src/humanize/number.py:182
#, fuzzy
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "%(value)s quadrillion"
msgstr[1] "%(value)s quadrillion"
#: src/humanize/number.py:183
#, fuzzy
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "%(value)s quintillion"
msgstr[1] "%(value)s quintillion"
#: src/humanize/number.py:184
#, fuzzy
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "%(value)s sextillion"
msgstr[1] "%(value)s sextillion"
#: src/humanize/number.py:185
#, fuzzy
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "%(value)s septillion"
msgstr[1] "%(value)s septillion"
#: src/humanize/number.py:186
#, fuzzy
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "%(value)s octillion"
msgstr[1] "%(value)s octillion"
#: src/humanize/number.py:187
#, fuzzy
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "%(value)s nonillion"
msgstr[1] "%(value)s nonillion"
#: src/humanize/number.py:188
#, fuzzy
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "%(value)s décillion"
msgstr[1] "%(value)s décillion"
#: src/humanize/number.py:189
#, fuzzy
msgid "googol"
msgid_plural "googol"
msgstr[0] "%(value)s gogol"
msgstr[1] "%(value)s gogol"
#: src/humanize/number.py:301
msgid "zero"
msgstr ""
#: src/humanize/number.py:302
msgid "one"
msgstr "하나"
#: src/humanize/number.py:303
msgid "two"
msgstr "둘"
#: src/humanize/number.py:304
msgid "three"
msgstr "셋"
#: src/humanize/number.py:305
msgid "four"
msgstr "넷"
#: src/humanize/number.py:306
msgid "five"
msgstr "다섯"
#: src/humanize/number.py:307
msgid "six"
msgstr "여섯"
#: src/humanize/number.py:308
msgid "seven"
msgstr "일곱"
#: src/humanize/number.py:309
msgid "eight"
msgstr "여덟"
#: src/humanize/number.py:310
msgid "nine"
msgstr "아홉"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d마이크로초"
msgstr[1] "%d마이크로초"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d밀리초"
msgstr[1] "%d밀리초"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "잠깐"
#: src/humanize/time.py:167
msgid "a second"
msgstr "1초"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d초"
msgstr[1] "%d초"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "1분"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d분"
msgstr[1] "%d분"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "1시간"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d시간"
msgstr[1] "%d시간"
#: src/humanize/time.py:188
msgid "a day"
msgstr "하루"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d일"
msgstr[1] "%d일"
#: src/humanize/time.py:197
msgid "a month"
msgstr "1개월"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d개월"
msgstr[1] "%d개월"
#: src/humanize/time.py:203
msgid "a year"
msgstr "1년"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1년, %d일"
msgstr[1] "1년, %d일"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1년, 1개월"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1년, %d개월"
msgstr[1] "1년, %d개월"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d년"
msgstr[1] "%d년"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s 후"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s 전"
#: src/humanize/time.py:260
msgid "now"
msgstr "방금"
#: src/humanize/time.py:284
msgid "today"
msgstr "오늘"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "내일"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "어제"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr ""

View File

@@ -0,0 +1,364 @@
# Norwegian Bokmal translations for PACKAGE package.
# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Frode Danielsen <frode@e5r.no>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-21 12:09+0100\n"
"PO-Revision-Date: 2023-11-21 12:57+0100\n"
"Last-Translator: Frode Danielsen <frode@e5r.no>\n"
"Language-Team: Norwegian Bokmal <l10n-no@lister.huftis.org>\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.4.1\n"
#: src/humanize/number.py:83
msgctxt "0 (male)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:84
msgctxt "1 (male)"
msgid "st"
msgstr "ste"
#: src/humanize/number.py:85
msgctxt "2 (male)"
msgid "nd"
msgstr "dre"
#: src/humanize/number.py:86
msgctxt "3 (male)"
msgid "rd"
msgstr "dje"
#: src/humanize/number.py:87
msgctxt "4 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:88
msgctxt "5 (male)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:89
msgctxt "6 (male)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:90
msgctxt "7 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:91
msgctxt "8 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:92
msgctxt "9 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:96
msgctxt "0 (female)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:97
msgctxt "1 (female)"
msgid "st"
msgstr "ste"
#: src/humanize/number.py:98
msgctxt "2 (female)"
msgid "nd"
msgstr "dre"
#: src/humanize/number.py:99
msgctxt "3 (female)"
msgid "rd"
msgstr "dje"
#: src/humanize/number.py:100
msgctxt "4 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:101
msgctxt "5 (female)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:102
msgctxt "6 (female)"
msgid "th"
msgstr "te"
#: src/humanize/number.py:103
msgctxt "7 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:104
msgctxt "8 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:105
msgctxt "9 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tusen"
msgstr[1] "tusen"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "million"
msgstr[1] "millioner"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milliard"
msgstr[1] "milliarder"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "billion"
msgstr[1] "billioner"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "billiard"
msgstr[1] "billiarder"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trillion"
msgstr[1] "trillioner"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "trilliard"
msgstr[1] "trilliarder"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvadrillion"
msgstr[1] "kvadrillioner"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvadrilliard"
msgstr[1] "kvadrilliarder"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kvintillion"
msgstr[1] "kvintillioner"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kvintilliard"
msgstr[1] "kvintilliarder"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:304
msgid "zero"
msgstr "null"
#: src/humanize/number.py:305
msgid "one"
msgstr "en"
#: src/humanize/number.py:306
msgid "two"
msgstr "to"
#: src/humanize/number.py:307
msgid "three"
msgstr "tre"
#: src/humanize/number.py:308
msgid "four"
msgstr "fire"
#: src/humanize/number.py:309
msgid "five"
msgstr "fem"
#: src/humanize/number.py:310
msgid "six"
msgstr "seks"
#: src/humanize/number.py:311
msgid "seven"
msgstr "syv"
#: src/humanize/number.py:312
msgid "eight"
msgstr "åtte"
#: src/humanize/number.py:313
msgid "nine"
msgstr "ni"
#: src/humanize/time.py:151
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekund"
msgstr[1] "%d mikrosekunder"
#: src/humanize/time.py:160
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millisekund"
msgstr[1] "%d millisekunder"
#: src/humanize/time.py:163 src/humanize/time.py:262
msgid "a moment"
msgstr "et øyeblikk"
#: src/humanize/time.py:166
msgid "a second"
msgstr "et sekund"
#: src/humanize/time.py:169
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekund"
msgstr[1] "%d sekunder"
#: src/humanize/time.py:172
msgid "a minute"
msgstr "et minutt"
#: src/humanize/time.py:176
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minutt"
msgstr[1] "%d minutter"
#: src/humanize/time.py:179
msgid "an hour"
msgstr "en time"
#: src/humanize/time.py:183
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d time"
msgstr[1] "%d timer"
#: src/humanize/time.py:187
msgid "a day"
msgstr "en dag"
#: src/humanize/time.py:190 src/humanize/time.py:193
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
msgstr[1] "%d dager"
#: src/humanize/time.py:196
msgid "a month"
msgstr "en måned"
#: src/humanize/time.py:198
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d måned"
msgstr[1] "%d måneder"
#: src/humanize/time.py:202
msgid "a year"
msgstr "et år"
#: src/humanize/time.py:205 src/humanize/time.py:216
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 år, %d dag"
msgstr[1] "1 år, %d dager"
#: src/humanize/time.py:209
msgid "1 year, 1 month"
msgstr "1 år, 1 måned"
#: src/humanize/time.py:212
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 år, %d måned"
msgstr[1] "1 år, %d måneder"
#: src/humanize/time.py:218
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d år"
msgstr[1] "%d år"
#: src/humanize/time.py:259
#, python-format
msgid "%s from now"
msgstr "%s fra nå"
#: src/humanize/time.py:259
#, python-format
msgid "%s ago"
msgstr "%s siden"
#: src/humanize/time.py:263
msgid "now"
msgstr "nå"
#: src/humanize/time.py:296
msgid "today"
msgstr "i dag"
#: src/humanize/time.py:299
msgid "tomorrow"
msgstr "i morgen"
#: src/humanize/time.py:302
msgid "yesterday"
msgstr "i går"
#: src/humanize/time.py:613
#, python-format
msgid "%s and %s"
msgstr "%s og %s"

View File

@@ -0,0 +1,365 @@
# Dutch (Netherlands) translations for PROJECT.
# Copyright (C) 2020 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2015-03-25 21:08+0100\n"
"Last-Translator: Martin van Wingerden\n"
"Language-Team: nl_NL\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 1.7.5\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "ste"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "de"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "de"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ste"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "de"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "de"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "de"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "miljoen"
msgstr[1] "miljoen"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miljard"
msgstr[1] "miljard"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "biljoen"
msgstr[1] "biljoen"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "biljard"
msgstr[1] "biljard"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "triljoen"
msgstr[1] "triljoen"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "triljard"
msgstr[1] "triljard"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "quadriljoen"
msgstr[1] "quadriljoen"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "quadriljard"
msgstr[1] "quadriljard"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "quintiljoen"
msgstr[1] "quintiljoen"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "quintiljard"
msgstr[1] "quintiljard"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nul"
#: src/humanize/number.py:302
msgid "one"
msgstr "één"
#: src/humanize/number.py:303
msgid "two"
msgstr "twee"
#: src/humanize/number.py:304
msgid "three"
msgstr "drie"
#: src/humanize/number.py:305
msgid "four"
msgstr "vier"
#: src/humanize/number.py:306
msgid "five"
msgstr "vijf"
#: src/humanize/number.py:307
msgid "six"
msgstr "zes"
#: src/humanize/number.py:308
msgid "seven"
msgstr "zeven"
#: src/humanize/number.py:309
msgid "eight"
msgstr "acht"
#: src/humanize/number.py:310
msgid "nine"
msgstr "negen"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microseconde"
msgstr[1] "%d microseconden"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milliseconde"
msgstr[1] "%d milliseconden"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "een moment"
#: src/humanize/time.py:167
msgid "a second"
msgstr "een seconde"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d seconde"
msgstr[1] "%d seconden"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "een minuut"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuut"
msgstr[1] "%d minuten"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "een uur"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d uur"
msgstr[1] "%d uur"
#: src/humanize/time.py:188
msgid "a day"
msgstr "een dag"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
msgstr[1] "%d dagen"
#: src/humanize/time.py:197
msgid "a month"
msgstr "een maand"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d maand"
msgstr[1] "%d maanden"
#: src/humanize/time.py:203
msgid "a year"
msgstr "een jaar"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 jaar, %d dag"
msgstr[1] "1 jaar, %d dagen"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 jaar, 1 maand"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 jaar, %d maand"
msgstr[1] "1 jaar, %d maanden"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d jaar"
msgstr[1] "%d jaar"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "over %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s geleden"
#: src/humanize/time.py:260
msgid "now"
msgstr "nu"
#: src/humanize/time.py:284
msgid "today"
msgstr "vandaag"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "morgen"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "gisteren"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s en %s"

View File

@@ -0,0 +1,388 @@
# Polish translations for PACKAGE package.
# Copyright (C) 2020 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Bartosz Bubak <bartosz.bubak@gmail.com>, 2020.
# Added missing strings by Krystian Postek <krystian postek eu>, 2020.
# Replace short scale with long scale by Maciej J. Mikulski (mjmikulski), 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2020-04-22 10:02+0200\n"
"Last-Translator: Bartosz Bubak <bartosz.bubak gmail com>\n"
"Language-Team: Polish\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tysiąc"
msgstr[1] "tysiąc"
msgstr[2] "tysięcy"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milion"
msgstr[1] "miliony"
msgstr[2] "milionów"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliard"
msgstr[1] "miliardy"
msgstr[2] "miliardów"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilion"
msgstr[1] "biliony"
msgstr[2] "bilionów"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "biliard"
msgstr[1] "biliardy"
msgstr[2] "biliardów"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trylion"
msgstr[1] "tryliony"
msgstr[2] "trylionów"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "tryliard"
msgstr[1] "tryliard"
msgstr[2] "tryliard"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kwadrylion"
msgstr[1] "kwadryliony"
msgstr[2] "kwadrylionów"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kwadryliard"
msgstr[1] "kwadryliardy"
msgstr[2] "kwadryliardów"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kwintylion"
msgstr[1] "kwintyliony"
msgstr[2] "kwintylionów"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kwintyliard"
msgstr[1] "kwintyliardy"
msgstr[2] "kwintyliardów"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googole"
msgstr[2] "googoli"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "jeden"
#: src/humanize/number.py:303
msgid "two"
msgstr "dwa"
#: src/humanize/number.py:304
msgid "three"
msgstr "trzy"
#: src/humanize/number.py:305
msgid "four"
msgstr "cztery"
#: src/humanize/number.py:306
msgid "five"
msgstr "pięć"
#: src/humanize/number.py:307
msgid "six"
msgstr "sześć"
#: src/humanize/number.py:308
msgid "seven"
msgstr "siedem"
#: src/humanize/number.py:309
msgid "eight"
msgstr "osiem"
#: src/humanize/number.py:310
msgid "nine"
msgstr "dziewięć"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekunda"
msgstr[1] "%d mikrosekundy"
msgstr[2] "%d mikrosekund"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisekunda"
msgstr[1] "%d milisekundy"
msgstr[2] "%d milisekund"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "chwila"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sekunda"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekunda"
msgstr[1] "%d sekundy"
msgstr[2] "%d sekund"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minuta"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuta"
msgstr[1] "%d minuty"
msgstr[2] "%d minut"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "godzina"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d godzina"
msgstr[1] "%d godziny"
msgstr[2] "%d godzin"
#: src/humanize/time.py:188
msgid "a day"
msgstr "dzień"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dzień"
msgstr[1] "%d dni"
msgstr[2] "%d dni"
#: src/humanize/time.py:197
msgid "a month"
msgstr "miesiąc"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d miesiąc"
msgstr[1] "%d miesiące"
msgstr[2] "%d miesięcy"
#: src/humanize/time.py:203
msgid "a year"
msgstr "rok"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 rok, %d dzień"
msgstr[1] "1 rok, %d dni"
msgstr[2] "1 rok, %d dni"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 rok, 1 miesiąc"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 rok, %d miesiąc"
msgstr[1] "1 rok, %d miesiące"
msgstr[2] "1 rok, %d miesięcy"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d rok"
msgstr[1] "%d lata"
msgstr[2] "%d lat"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s od teraz"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s temu"
#: src/humanize/time.py:260
msgid "now"
msgstr "teraz"
#: src/humanize/time.py:284
msgid "today"
msgstr "dziś"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "jutro"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "wczoraj"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s i %s"

View File

@@ -0,0 +1,364 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2024-11-02 13:33-0400\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.5\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ª"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ª"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ª"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "mil"
msgstr[1] "mil"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milhão"
msgstr[1] "milhão"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "bilhão"
msgstr[1] "bilhões"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "trilhão"
msgstr[1] "trilhões"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "quadrilhão"
msgstr[1] "quadrilhões"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "quintilhão"
msgstr[1] "quintilhões"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sextilhão"
msgstr[1] "sextilhões"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septilhão"
msgstr[1] "septilhões"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "octilhão"
msgstr[1] "octilhões"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonilhão"
msgstr[1] "nonilhões"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "decilhão"
msgstr[1] "decilhões"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "dez duotrigintilhões"
msgstr[1] "dez duotrigintilhões"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "um"
#: src/humanize/number.py:303
msgid "two"
msgstr "dois"
#: src/humanize/number.py:304
msgid "three"
msgstr "três"
#: src/humanize/number.py:305
msgid "four"
msgstr "quatro"
#: src/humanize/number.py:306
msgid "five"
msgstr "cinco"
#: src/humanize/number.py:307
msgid "six"
msgstr "seis"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sete"
#: src/humanize/number.py:309
msgid "eight"
msgstr "oito"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nove"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microssegundo"
msgstr[1] "%d microssegundos"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milissegundo"
msgstr[1] "%d milissegundos"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "um momento"
#: src/humanize/time.py:167
msgid "a second"
msgstr "um segundo"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d segundo"
msgstr[1] "%d segundos"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "um minuto"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuto"
msgstr[1] "%d minutos"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "uma hora"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d hora"
msgstr[1] "%d horas"
#: src/humanize/time.py:188
msgid "a day"
msgstr "um dia"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dia"
msgstr[1] "%d dias"
#: src/humanize/time.py:197
msgid "a month"
msgstr "um mês"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mês"
msgstr[1] "%d meses"
#: src/humanize/time.py:203
msgid "a year"
msgstr "um ano"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 ano e %d dia"
msgstr[1] "1 ano e %d dias"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 ano e 1 mês"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 ano e %d mês"
msgstr[1] "1 ano e %d meses"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d ano"
msgstr[1] "%d anos"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "daqui a %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "há %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "agora"
#: src/humanize/time.py:284
msgid "today"
msgstr "hoje"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "amanhã"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ontem"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s e %s"

View File

@@ -0,0 +1,364 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2020-07-05 18:17+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.3.1\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "º"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "º"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "º"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "º"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ª"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ª"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ª"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ª"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milhão"
msgstr[1] "milhão"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milhar de milhão"
msgstr[1] "milhar de milhão"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilião"
msgstr[1] "bilião"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "mil biliões"
msgstr[1] "mil biliões"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trilião"
msgstr[1] "trilião"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "mil triliões"
msgstr[1] "mil triliões"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "quatrilião"
msgstr[1] "quatrilião"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "mil quatriliões"
msgstr[1] "mil quatriliões"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "quintilhão"
msgstr[1] "quintilhão"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "mil quintilhões"
msgstr[1] "mil quintilhões"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "sextilhão"
msgstr[1] "sextilhão"
#: src/humanize/number.py:301
msgid "zero"
msgstr "zero"
#: src/humanize/number.py:302
msgid "one"
msgstr "um"
#: src/humanize/number.py:303
msgid "two"
msgstr "dois"
#: src/humanize/number.py:304
msgid "three"
msgstr "três"
#: src/humanize/number.py:305
msgid "four"
msgstr "quatro"
#: src/humanize/number.py:306
msgid "five"
msgstr "cinco"
#: src/humanize/number.py:307
msgid "six"
msgstr "seis"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sete"
#: src/humanize/number.py:309
msgid "eight"
msgstr "oito"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nove"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d microssegundo"
msgstr[1] "%d microssegundos"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milissegundo"
msgstr[1] "%d milissegundos"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "um momento"
#: src/humanize/time.py:167
msgid "a second"
msgstr "um segundo"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d segundo"
msgstr[1] "%d segundos"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "um minuto"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuto"
msgstr[1] "%d minutos"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "uma hora"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d hora"
msgstr[1] "%d horas"
#: src/humanize/time.py:188
msgid "a day"
msgstr "um dia"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dia"
msgstr[1] "%d dias"
#: src/humanize/time.py:197
msgid "a month"
msgstr "um mês"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mês"
msgstr[1] "%d meses"
#: src/humanize/time.py:203
msgid "a year"
msgstr "um ano"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 ano e %d dia"
msgstr[1] "1 ano e %d dias"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 ano e 1 mês"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 ano e %d mês"
msgstr[1] "1 ano e %d meses"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d ano"
msgstr[1] "%d anos"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "daqui a %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "há %s"
#: src/humanize/time.py:260
msgid "now"
msgstr "agora"
#: src/humanize/time.py:284
msgid "today"
msgstr "hoje"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "amanhã"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ontem"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s e %s"

View File

@@ -0,0 +1,388 @@
# Russian (Russia) translations for PROJECT.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2014-03-24 20:32+0300\n"
"Last-Translator: Sergey Prokhorov <me@seriyps.ru>\n"
"Language-Team: ru_RU <LL@li.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 1.5.4\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "ый"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "ой"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "ий"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ый"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ой"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ий"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ой"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ый"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "тысяча"
msgstr[1] "тысячи"
msgstr[2] "тысяч"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "миллион"
msgstr[1] "миллиона"
msgstr[2] "миллионов"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "миллиард"
msgstr[1] "миллиарда"
msgstr[2] "миллиардов"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "триллион"
msgstr[1] "триллиона"
msgstr[2] "триллионов"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "квадриллион"
msgstr[1] "квадриллиона"
msgstr[2] "квадриллионов"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "квинтиллион"
msgstr[1] "квинтиллиона"
msgstr[2] "квинтиллионов"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "сикстиллион"
msgstr[1] "сикстиллиона"
msgstr[2] "сикстиллионов"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "септиллион"
msgstr[1] "септиллиона"
msgstr[2] "септиллионов"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "октиллион"
msgstr[1] "октиллиона"
msgstr[2] "октиллионов"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "нониллион"
msgstr[1] "нониллиона"
msgstr[2] "нониллионов"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "децилион"
msgstr[1] "децилиона"
msgstr[2] "децилионов"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "гогол"
msgstr[1] "гогола"
msgstr[2] "гоголов"
#: src/humanize/number.py:301
msgid "zero"
msgstr "ноль"
#: src/humanize/number.py:302
msgid "one"
msgstr "один"
#: src/humanize/number.py:303
msgid "two"
msgstr "два"
#: src/humanize/number.py:304
msgid "three"
msgstr "три"
#: src/humanize/number.py:305
msgid "four"
msgstr "четыре"
#: src/humanize/number.py:306
msgid "five"
msgstr "пять"
#: src/humanize/number.py:307
msgid "six"
msgstr "шесть"
#: src/humanize/number.py:308
msgid "seven"
msgstr "семь"
#: src/humanize/number.py:309
msgid "eight"
msgstr "восемь"
#: src/humanize/number.py:310
msgid "nine"
msgstr "девять"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d микросекунда"
msgstr[1] "%d микросекунды"
msgstr[2] "%d микросекунд"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d миллисекунда"
msgstr[1] "%d миллисекунды"
msgstr[2] "%d миллисекунд"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "только что"
#: src/humanize/time.py:167
msgid "a second"
msgstr "секунду"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d секунда"
msgstr[1] "%d секунды"
msgstr[2] "%d секунд"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "минуту"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d минута"
msgstr[1] "%d минуты"
msgstr[2] "%d минут"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "час"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d час"
msgstr[1] "%d часа"
msgstr[2] "%d часов"
#: src/humanize/time.py:188
msgid "a day"
msgstr "день"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d день"
msgstr[1] "%d дня"
msgstr[2] "%d дней"
#: src/humanize/time.py:197
msgid "a month"
msgstr "месяц"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d месяц"
msgstr[1] "%d месяца"
msgstr[2] "%d месяцев"
#: src/humanize/time.py:203
msgid "a year"
msgstr "год"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 год, %d день"
msgstr[1] "1 год, %d дня"
msgstr[2] "1 год, %d дней"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 год, 1 месяц"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 год, %d месяц"
msgstr[1] "1 год, %d месяца"
msgstr[2] "1 год, %d месяцев"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d год"
msgstr[1] "%d года"
msgstr[2] "%d лет"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "через %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s назад"
#: src/humanize/time.py:260
msgid "now"
msgstr "сейчас"
#: src/humanize/time.py:284
msgid "today"
msgstr "сегодня"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "завтра"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "вчера"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s и %s"

View File

@@ -0,0 +1,386 @@
# Slovak translation of humanize
# Copyright (C) 2016
# This file is distributed under the same license as the PACKAGE package.
# Jose Riha <jose1711 gmail com>, 2016.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2020-09-29 22:43+0300\n"
"Last-Translator: Jose Riha <jose1711 gmail com>\n"
"Language-Team: sk <LL@li.org>\n"
"Language: Slovak\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milióna/ov"
msgstr[1] "milióna/ov"
msgstr[2] "milióna/ov"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miliardy/árd"
msgstr[1] "miliardy/árd"
msgstr[2] "miliardy/árd"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilióna/ov"
msgstr[1] "bilióna/ov"
msgstr[2] "bilióna/ov"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "biliardy/árd"
msgstr[1] "biliardy/árd"
msgstr[2] "biliardy/árd"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trilióna/árd"
msgstr[1] "trilióna/árd"
msgstr[2] "trilióna/árd"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "triliardy/árd"
msgstr[1] "triliardy/árd"
msgstr[2] "triliardy/árd"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvadrilióna/ov"
msgstr[1] "kvadrilióna/ov"
msgstr[2] "kvadrilióna/ov"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvadriliardy/árd"
msgstr[1] "kvadriliardy/árd"
msgstr[2] "kvadriliardy/árd"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kvintilióna/ov"
msgstr[1] "kvintilióna/ov"
msgstr[2] "kvintilióna/ov"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kvintiliardy/árd"
msgstr[1] "kvintiliardy/árd"
msgstr[2] "kvintiliardy/árd"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googola/ov"
msgstr[1] "googola/ov"
msgstr[2] "googola/ov"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nula"
#: src/humanize/number.py:302
msgid "one"
msgstr "jedna"
#: src/humanize/number.py:303
msgid "two"
msgstr "dve"
#: src/humanize/number.py:304
msgid "three"
msgstr "tri"
#: src/humanize/number.py:305
msgid "four"
msgstr "štyri"
#: src/humanize/number.py:306
msgid "five"
msgstr "päť"
#: src/humanize/number.py:307
msgid "six"
msgstr "šesť"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sedem"
#: src/humanize/number.py:309
msgid "eight"
msgstr "osem"
#: src/humanize/number.py:310
msgid "nine"
msgstr "deväť"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekundu"
msgstr[1] "%d mikrosekundy"
msgstr[2] "%d mikrosekúnd"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisekundu"
msgstr[1] "%d milisekundy"
msgstr[2] "%d milisekúnd"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "chvíľku"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sekundu"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekundu"
msgstr[1] "%d sekundy"
msgstr[2] "%d sekúnd"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minútu"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minútu"
msgstr[1] "%d minúty"
msgstr[2] "%d minút"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "hodinu"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d hodina"
msgstr[1] "%d hodiny"
msgstr[2] "%d hodín"
#: src/humanize/time.py:188
msgid "a day"
msgstr "deň"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d deň"
msgstr[1] "%d dni"
msgstr[2] "%d dní"
#: src/humanize/time.py:197
msgid "a month"
msgstr "mesiac"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mesiac"
msgstr[1] "%d mesiace"
msgstr[2] "%d mesiacov"
#: src/humanize/time.py:203
msgid "a year"
msgstr "rok"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 rok, %d deň"
msgstr[1] "1 rok, %d dni"
msgstr[2] "1 rok, %d dní"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 rok, 1 mesiac"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 rok, %d mesiac"
msgstr[1] "1 rok, %d mesiace"
msgstr[2] "1 rok, %d mesiacov"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d rok"
msgstr[1] "%d roky"
msgstr[2] "%d rokov"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "o %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s naspäť"
#: src/humanize/time.py:260
msgid "now"
msgstr "teraz"
#: src/humanize/time.py:284
msgid "today"
msgstr "dnes"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "zajtra"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "včera"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr ""

View File

@@ -0,0 +1,409 @@
# Slovenian translations for PACKAGE package.
# Copyright (C) 2021 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# vlin <vlin@vlin-vb1>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-06-11 23:39+0200\n"
"Last-Translator: dkrat7 <dkrat7 @github.com>\n"
"Language-Team: Slovenian\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3);\n"
"X-Generator: Poedit 2.3\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tisoč"
msgstr[1] "tisoč"
msgstr[2] "tisoč"
msgstr[3] "tisoč"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milijon"
msgstr[1] "milijona"
msgstr[2] "milijoni"
msgstr[3] "milijonov"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milijarda"
msgstr[1] "milijardi"
msgstr[2] "milijarde"
msgstr[3] "milijard"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "bilijon"
msgstr[1] "bilijona"
msgstr[2] "bilijoni"
msgstr[3] "bilijonov"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "bilijarda"
msgstr[1] "bilijardi"
msgstr[2] "bilijarde"
msgstr[3] "bilijard"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "trilijon"
msgstr[1] "trilijona"
msgstr[2] "trilijoni"
msgstr[3] "trilijonov"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "trilijarda"
msgstr[1] "trilijardi"
msgstr[2] "trilijarde"
msgstr[3] "trilijard"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvadrilijon"
msgstr[1] "kvadrilijona"
msgstr[2] "kvadrilijoni"
msgstr[3] "kvadrilijonov"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvadrilijarda"
msgstr[1] "kvadrilijardi"
msgstr[2] "kvadrilijarde"
msgstr[3] "kvadrilijard"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kvintilijon"
msgstr[1] "kvintilijona"
msgstr[2] "kvintilijoni"
msgstr[3] "kvintilijonov"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kvintilijarda"
msgstr[1] "kvintilijardi"
msgstr[2] "kvintilijarde"
msgstr[3] "kvintilijard"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "gugol"
msgstr[1] "gugola"
msgstr[2] "gugoli"
msgstr[3] "gugolov"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nič"
#: src/humanize/number.py:302
msgid "one"
msgstr "ena"
#: src/humanize/number.py:303
msgid "two"
msgstr "dve"
#: src/humanize/number.py:304
msgid "three"
msgstr "tri"
#: src/humanize/number.py:305
msgid "four"
msgstr "štiri"
#: src/humanize/number.py:306
msgid "five"
msgstr "pet"
#: src/humanize/number.py:307
msgid "six"
msgstr "šest"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sedem"
#: src/humanize/number.py:309
msgid "eight"
msgstr "osem"
#: src/humanize/number.py:310
msgid "nine"
msgstr "devet"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekunda"
msgstr[1] "%d mikrosekundi"
msgstr[2] "%d mikrosekunde"
msgstr[3] "%d mikrosekund"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisekunda"
msgstr[1] "%d milisekundi"
msgstr[2] "%d milisekunde"
msgstr[3] "%d milisekund"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "trenutek"
#: src/humanize/time.py:167
msgid "a second"
msgstr "sekunda"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekunda"
msgstr[1] "%d sekundi"
msgstr[2] "%d sekunde"
msgstr[3] "%d sekund"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "minuta"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuta"
msgstr[1] "%d minuti"
msgstr[2] "%d minute"
msgstr[3] "%d minut"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "ura"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d ura"
msgstr[1] "%d uri"
msgstr[2] "%d ure"
msgstr[3] "%d ur"
#: src/humanize/time.py:188
msgid "a day"
msgstr "dan"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dan"
msgstr[1] "%d dneva"
msgstr[2] "%d dnevi"
msgstr[3] "%d dni"
#: src/humanize/time.py:197
msgid "a month"
msgstr "mesec"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d mesec"
msgstr[1] "%d meseca"
msgstr[2] "%d meseci"
msgstr[3] "%d mesecev"
#: src/humanize/time.py:203
msgid "a year"
msgstr "leto"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 leto, %d dan"
msgstr[1] "1 leto, %d dneva"
msgstr[2] "1 leto, %d dnevi"
msgstr[3] "1 leto, %d dni"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 leto, 1 mesec"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 leto, %d mesec"
msgstr[1] "1 leto, %d meseca"
msgstr[2] "1 leto, %d meseci"
msgstr[3] "1 leto, %d mesecev"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d leto"
msgstr[1] "%d leti"
msgstr[2] "%d leta"
msgstr[3] "%d let"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s od zdaj"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s nazaj"
#: src/humanize/time.py:260
msgid "now"
msgstr "zdaj"
#: src/humanize/time.py:284
msgid "today"
msgstr "danes"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "jutri"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "včeraj"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s in %s"

View File

@@ -0,0 +1,363 @@
# Swedish (Sweden) translations for humanize package.
# Copyright (C) 2021
# This file is distributed under the same license as the humanize project.
# Kess Vargavind <vargavind@gmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2021-07-05 10:30+0200\n"
"Last-Translator: Kess Vargavind <vargavind@gmail.com>\n"
"Language-Team: Swedish\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr ":a"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr ":a"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr ":e"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr ":a"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr ":a"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr ":e"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr ":e"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "tusen"
msgstr[1] "tusen"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "miljon"
msgstr[1] "miljoner"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "miljard"
msgstr[1] "miljarder"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "biljon"
msgstr[1] "biljoner"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "biljard"
msgstr[1] "biljarder"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "triljon"
msgstr[1] "triljoner"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "triljard"
msgstr[1] "triljarder"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "kvadriljon"
msgstr[1] "kvadriljoner"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "kvadriljard"
msgstr[1] "kvadriljarder"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "kvintiljon"
msgstr[1] "kvintiljoner"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "kvintiljard"
msgstr[1] "kvintiljarder"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "noll"
#: src/humanize/number.py:302
msgid "one"
msgstr "ett"
#: src/humanize/number.py:303
msgid "two"
msgstr "två"
#: src/humanize/number.py:304
msgid "three"
msgstr "tre"
#: src/humanize/number.py:305
msgid "four"
msgstr "fyra"
#: src/humanize/number.py:306
msgid "five"
msgstr "fem"
#: src/humanize/number.py:307
msgid "six"
msgstr "sex"
#: src/humanize/number.py:308
msgid "seven"
msgstr "sju"
#: src/humanize/number.py:309
msgid "eight"
msgstr "åtta"
#: src/humanize/number.py:310
msgid "nine"
msgstr "nio"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosekund"
msgstr[1] "%d mikrosekunder"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millsekund"
msgstr[1] "%d millsekunder"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "en liten stund"
#: src/humanize/time.py:167
msgid "a second"
msgstr "en sekund"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekund"
msgstr[1] "%d sekunder"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "en minut"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minut"
msgstr[1] "%d minuter"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "en timme"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d timme"
msgstr[1] "%d timmar"
#: src/humanize/time.py:188
msgid "a day"
msgstr "en dag"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
msgstr[1] "%d dagar"
#: src/humanize/time.py:197
msgid "a month"
msgstr "en månad"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d månad"
msgstr[1] "%d månader"
#: src/humanize/time.py:203
msgid "a year"
msgstr "ett år"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 år, %d dag"
msgstr[1] "1 år, %d dagar"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 år, 1 månad"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 år, %d månad"
msgstr[1] "1 år, %d månader"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d år"
msgstr[1] "%d år"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s från nu"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s sedan"
#: src/humanize/time.py:260
msgid "now"
msgstr "nu"
#: src/humanize/time.py:284
msgid "today"
msgstr "idag"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "imorgon"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "igår"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s och %s"

View File

@@ -0,0 +1,363 @@
# Language tlh translations for humanize package.
# Copyright (C) 2023
# This file is distributed under the same license as the humanize package.
# Mark E. Shoulson <mark@kli.org>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-05 14:07-0400\n"
"PO-Revision-Date: 2023-10-05 14:11-0400\n"
"Last-Translator: Mark E. Shoulson <mark@kli.org>\n"
"Language-Team: Language tlh\n"
"Language: tlh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/humanize/number.py:83
msgctxt "0 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:84
msgctxt "1 (male)"
msgid "st"
msgstr "-DIch"
#: src/humanize/number.py:85
msgctxt "2 (male)"
msgid "nd"
msgstr "-DIch"
#: src/humanize/number.py:86
msgctxt "3 (male)"
msgid "rd"
msgstr "-DIch"
#: src/humanize/number.py:87
msgctxt "4 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:88
msgctxt "5 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:89
msgctxt "6 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:90
msgctxt "7 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:91
msgctxt "8 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:92
msgctxt "9 (male)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:96
msgctxt "0 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:97
msgctxt "1 (female)"
msgid "st"
msgstr "-DIch"
#: src/humanize/number.py:98
msgctxt "2 (female)"
msgid "nd"
msgstr "-DIch"
#: src/humanize/number.py:99
msgctxt "3 (female)"
msgid "rd"
msgstr "-DIch"
#: src/humanize/number.py:100
msgctxt "4 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:101
msgctxt "5 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:102
msgctxt "6 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:103
msgctxt "7 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:104
msgctxt "8 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:105
msgctxt "9 (female)"
msgid "th"
msgstr "-DIch"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "SaD"
msgstr[1] "SaD"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "ʼuyʼ"
msgstr[1] "ʼuyʼ"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "Saghan"
msgstr[1] "Saghan"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "SaDSaghan"
msgstr[1] "SaDSaghan"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/number.py:304
msgid "zero"
msgstr "pagh"
#: src/humanize/number.py:305
msgid "one"
msgstr "waʼ"
#: src/humanize/number.py:306
msgid "two"
msgstr "chaʼ"
#: src/humanize/number.py:307
msgid "three"
msgstr "wej"
#: src/humanize/number.py:308
msgid "four"
msgstr "loS"
#: src/humanize/number.py:309
msgid "five"
msgstr "vagh"
#: src/humanize/number.py:310
msgid "six"
msgstr "jav"
#: src/humanize/number.py:311
msgid "seven"
msgstr "Soch"
#: src/humanize/number.py:312
msgid "eight"
msgstr "chorgh"
#: src/humanize/number.py:313
msgid "nine"
msgstr "Hut"
#: src/humanize/time.py:151
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "waʼ ʼuyʼ loch %d lup"
msgstr[1] "waʼ ʼuyʼ loch %d lup"
#: src/humanize/time.py:160
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "waʼ SaD loch %d lup"
msgstr[1] "waʼ SaD loch %d lup"
#: src/humanize/time.py:163 src/humanize/time.py:262
msgid "a moment"
msgstr ""
#: src/humanize/time.py:166
msgid "a second"
msgstr "waʼ lup"
#: src/humanize/time.py:169
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d lup"
msgstr[1] "%d lup"
#: src/humanize/time.py:172
msgid "a minute"
msgstr "waʼ tup"
#: src/humanize/time.py:176
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d tup"
msgstr[1] "%d tup"
#: src/humanize/time.py:179
msgid "an hour"
msgstr "waʼ rep"
#: src/humanize/time.py:183
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d rep"
msgstr[1] "%d rep"
#: src/humanize/time.py:187
msgid "a day"
msgstr "waʼ jaj"
#: src/humanize/time.py:190 src/humanize/time.py:193
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d jaj"
msgstr[1] "%d jaj"
#: src/humanize/time.py:196
msgid "a month"
msgstr "waʼ jar"
#: src/humanize/time.py:198
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d jar"
msgstr[1] "%d jar"
#: src/humanize/time.py:202
msgid "a year"
msgstr "waʼ DIS"
#: src/humanize/time.py:205 src/humanize/time.py:216
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "waʼ DIS, %d jaj"
msgstr[1] "waʼ DIS, %d jaj"
#: src/humanize/time.py:209
msgid "1 year, 1 month"
msgstr "waʼ DIS, wa jar"
#: src/humanize/time.py:212
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "waʼ DIS, %d jar"
msgstr[1] "waʼ DIS, %d jar"
#: src/humanize/time.py:218
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d DIS"
msgstr[1] "%d DIS"
#: src/humanize/time.py:259
#, python-format
msgid "%s from now"
msgstr "%s pIq"
#: src/humanize/time.py:259
#, python-format
msgid "%s ago"
msgstr "%s ret"
#: src/humanize/time.py:263
msgid "now"
msgstr "DaH"
#: src/humanize/time.py:296
msgid "today"
msgstr "DaHjaj"
#: src/humanize/time.py:299
msgid "tomorrow"
msgstr "waʼleS"
#: src/humanize/time.py:302
msgid "yesterday"
msgstr "waʼHuʼ"
#: src/humanize/time.py:612
#, python-format
msgid "%s and %s"
msgstr "%s %s je"

View File

@@ -0,0 +1,367 @@
# Turkish translation for humanize.
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the humanize package.
# Emre Çintay <emre@cintay.com>, 2017.
# Furkan Kalkan <furkankalkan@mantis.com.tr>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: humanize\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2023-08-09 13:12+0300\n"
"Last-Translator: Furkan Kalkan <furkankalkan@mantis.com.tr>\n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
"Generated-By: Furkan Kalkan\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "bin"
msgstr[1] "bin"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "milyon"
msgstr[1] "milyon"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milyar"
msgstr[1] "milyar"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "trilyon"
msgstr[1] "trilyon"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "katrilyon"
msgstr[1] "katrilyon"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "kentilyon"
msgstr[1] "kentilyon"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sekstilyon"
msgstr[1] "sekstilyon"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septilyon"
msgstr[1] "septilyon"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "oktilyon"
msgstr[1] "oktilyon"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonilyon"
msgstr[1] "nonilyon"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "desilyon"
msgstr[1] "desilyon"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "googol"
msgstr[1] "googol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "sıfır"
#: src/humanize/number.py:302
msgid "one"
msgstr "bir"
#: src/humanize/number.py:303
msgid "two"
msgstr "iki"
#: src/humanize/number.py:304
msgid "three"
msgstr "üç"
#: src/humanize/number.py:305
msgid "four"
msgstr "dört"
#: src/humanize/number.py:306
msgid "five"
msgstr "beş"
#: src/humanize/number.py:307
msgid "six"
msgstr "altı"
#: src/humanize/number.py:308
msgid "seven"
msgstr "yedi"
#: src/humanize/number.py:309
msgid "eight"
msgstr "sekiz"
#: src/humanize/number.py:310
msgid "nine"
msgstr "dokuz"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosaniye"
msgstr[1] "%d mikrosaniye"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d milisaniye"
msgstr[1] "%d milisaniye"
# The phrase "biraz" doesn't make sense as time expression in Turkish without suffix "önce" (ago) in this case. I think one second [ago] (bir saniye [önce]) is more appropriate here.
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "bir saniye"
#: src/humanize/time.py:167
msgid "a second"
msgstr "bir saniye"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d saniye"
msgstr[1] "%d saniye"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "bir dakika"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d dakika"
msgstr[1] "%d dakika"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "bir saat"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d saat"
msgstr[1] "%d saat"
#: src/humanize/time.py:188
msgid "a day"
msgstr "bir gün"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d gün"
msgstr[1] "%d gün"
#: src/humanize/time.py:197
msgid "a month"
msgstr "bir ay"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d ay"
msgstr[1] "%d ay"
#: src/humanize/time.py:203
msgid "a year"
msgstr "bir yıl"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 yıl, %d gün"
msgstr[1] "1 yıl, %d gün"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 yıl, 1 ay"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 yıl, %d ay"
msgstr[1] "1 yıl, %d ay"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d yıl"
msgstr[1] "%d yıl"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "şu andan itibaren %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s önce"
#: src/humanize/time.py:260
msgid "now"
msgstr "şimdi"
#: src/humanize/time.py:284
msgid "today"
msgstr "bugün"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "yarın"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "dün"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s ve %s"

View File

@@ -0,0 +1,383 @@
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: TL\n"
"Language-Team: uk_UA\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Generated-By:\n"
"X-Generator: \n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "ий"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "ий"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "ій"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "ий"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "ий"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "ій"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "ий"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "тисяча"
msgstr[1] "тисячі"
msgstr[2] "тисяч"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "мільйон"
msgstr[1] "мільйона"
msgstr[2] "мільйонів"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "мільярд"
msgstr[1] "мільярда"
msgstr[2] "мільярдів"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "трильйон"
msgstr[1] "трильйона"
msgstr[2] "трильйонів"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "квадрильйон"
msgstr[1] "квадрильйона"
msgstr[2] "квадрильйонів"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "квинтиліон"
msgstr[1] "квинтиліона"
msgstr[2] "квинтиліонів"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "сикстильйон"
msgstr[1] "сикстильйона"
msgstr[2] "сикстильйонів"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "септильйон"
msgstr[1] "септильйона"
msgstr[2] "септильйонів"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "октильйон"
msgstr[1] "октильйона"
msgstr[2] "октильйонів"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "нонильйон"
msgstr[1] "нонильйона"
msgstr[2] "нонильйонів"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "децильйон"
msgstr[1] "децильйона"
msgstr[2] "децильйонів"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "гугол"
msgstr[1] "гугла"
msgstr[2] "гуглів"
#: src/humanize/number.py:301
msgid "zero"
msgstr "нуль"
#: src/humanize/number.py:302
msgid "one"
msgstr "один"
#: src/humanize/number.py:303
msgid "two"
msgstr "два"
#: src/humanize/number.py:304
msgid "three"
msgstr "три"
#: src/humanize/number.py:305
msgid "four"
msgstr "чотири"
#: src/humanize/number.py:306
msgid "five"
msgstr "п'ять"
#: src/humanize/number.py:307
msgid "six"
msgstr "шість"
#: src/humanize/number.py:308
msgid "seven"
msgstr "сім"
#: src/humanize/number.py:309
msgid "eight"
msgstr "вісім"
#: src/humanize/number.py:310
msgid "nine"
msgstr "дев'ять"
#: src/humanize/time.py:152
#, fuzzy, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d мікросекунда"
msgstr[1] "%d мікросекунди"
msgstr[2] "%d мікросекунд"
#: src/humanize/time.py:161
#, fuzzy, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d мілісекунда"
msgstr[1] "%d мілісекунди"
msgstr[2] "%d мілісекунд"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "у цей момент"
#: src/humanize/time.py:167
msgid "a second"
msgstr "секунда"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d секунда"
msgstr[1] "%d секунди"
msgstr[2] "%d секунд"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "хвилина"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d хвилина"
msgstr[1] "%d хвилини"
msgstr[2] "%d хвилин"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "година"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d година"
msgstr[1] "%d години"
msgstr[2] "%d годин"
#: src/humanize/time.py:188
msgid "a day"
msgstr "день"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d день"
msgstr[1] "%d дня"
msgstr[2] "%d днів"
#: src/humanize/time.py:197
msgid "a month"
msgstr "місяць"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d місяць"
msgstr[1] "%d місяця"
msgstr[2] "%d місяців"
#: src/humanize/time.py:203
msgid "a year"
msgstr "рік"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 рік, %d день"
msgstr[1] "1 рік, %d дня"
msgstr[2] "1 рік, %d днів"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 рік, 1 місяць"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 рік, %d місяць"
msgstr[1] "1 рік, %d місяця"
msgstr[2] "1 рік, %d місяців"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d рік"
msgstr[1] "%d роки"
msgstr[2] "%d років"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "через %s"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s назад"
#: src/humanize/time.py:260
msgid "now"
msgstr "зараз"
#: src/humanize/time.py:284
msgid "today"
msgstr "сьогодні"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "завтра"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "вчора"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s й %s"

View File

@@ -0,0 +1,365 @@
# Uzbek (Uzbekistan) translations for humanize.
# Copyright (C) 2025 ORGANIZATION
# This file is distributed under the same license as the humanize project.
# Sirojiddin Mustafayev <sirojiddinmustafayev@gmail.com>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-19 19:00+0200\n"
"PO-Revision-Date: 2025-09-19 19:09+0500\n"
"Last-Translator: Sirojiddin Mustafayev <sirojiddinmustafayev@gmail.com>\n"
"Language-Team: ru_RU <LL@li.org>\n"
"Language: uz\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 3.7\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "chi"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "chi"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "chi"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "chi"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "chi"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "chi"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "chi"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "ming"
msgstr[1] "ming"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "million"
msgstr[1] "million"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "milliard"
msgstr[1] "milliard"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "trillion"
msgstr[1] "trillion"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "kvadrillion"
msgstr[1] "kvadrillion"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "kvintillion"
msgstr[1] "kvintillion"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "sekstillion"
msgstr[1] "sekstillion"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "septillion"
msgstr[1] "septillion"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "oktillion"
msgstr[1] "oktillion"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "nonillion"
msgstr[1] "nonillion"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "dekillion"
msgstr[1] "dekillion"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "gugol"
msgstr[1] "gugol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "nol"
#: src/humanize/number.py:302
msgid "one"
msgstr "bir"
#: src/humanize/number.py:303
msgid "two"
msgstr "ikki"
#: src/humanize/number.py:304
msgid "three"
msgstr "uch"
#: src/humanize/number.py:305
msgid "four"
msgstr "to'rt"
#: src/humanize/number.py:306
msgid "five"
msgstr "besh"
#: src/humanize/number.py:307
msgid "six"
msgstr "olti"
#: src/humanize/number.py:308
msgid "seven"
msgstr "yetti"
#: src/humanize/number.py:309
msgid "eight"
msgstr "sakkiz"
#: src/humanize/number.py:310
msgid "nine"
msgstr "to'qqiz"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d mikrosoniya"
msgstr[1] "%d mikrosoniya"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d millisoniya"
msgstr[1] "%d millisoniya"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "bir lahza"
#: src/humanize/time.py:167
msgid "a second"
msgstr "bir soniya"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d soniya"
msgstr[1] "%d soniya"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "bir daqiqa"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d daqiqa"
msgstr[1] "%d daqiqa"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "bir soat"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d soat"
msgstr[1] "%d soat"
#: src/humanize/time.py:188
msgid "a day"
msgstr "bir kun"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d kun"
msgstr[1] "%d kun"
#: src/humanize/time.py:197
msgid "a month"
msgstr "bir oy"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d oy"
msgstr[1] "%d oy"
#: src/humanize/time.py:203
msgid "a year"
msgstr "bir yil"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 yil, %d kun"
msgstr[1] "1 yil, %d kun"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 yil, 1 oy"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 yil, %d oy"
msgstr[1] "1 yil, %d oy"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d yil"
msgstr[1] "%d yil"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%sdan keyin"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s oldin"
#: src/humanize/time.py:260
msgid "now"
msgstr "hozir"
#: src/humanize/time.py:284
msgid "today"
msgstr "bugun"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "ertaga"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "kecha"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s va %s"

View File

@@ -0,0 +1,372 @@
# Vietnamese (Vietnam) translations for PROJECT.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2017-05-30 11:51+0700\n"
"Last-Translator: Olivier Cortès <oc@1flow.io>\n"
"Language-Team: vi_VI <sapd@vccloud.vn>\n"
"Language: vi_VN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 0.9.6\n"
"X-Generator: Poedit 1.8.7.1\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "."
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "."
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "."
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "."
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "."
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "."
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "nghìn"
msgstr[1] "nghìn"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "%(value)s triệu"
msgstr[1] "%(value)s triệu"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "tỷ"
msgstr[1] "tỷ"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "%(value)s nghìn tỷ"
msgstr[1] "%(value)s nghìn tỷ"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "%(value)s triệu tỷ"
msgstr[1] "%(value)s triệu tỷ"
#: src/humanize/number.py:183
#, fuzzy
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "%(value)s tỷ tỷ"
msgstr[1] "%(value)s tỷ tỷ"
#: src/humanize/number.py:184
#, fuzzy
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "%(value)s sextillion"
msgstr[1] "%(value)s sextillion"
#: src/humanize/number.py:185
#, fuzzy
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "%(value)s septillion"
msgstr[1] "%(value)s septillion"
#: src/humanize/number.py:186
#, fuzzy
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "%(value)s octillion"
msgstr[1] "%(value)s octillion"
#: src/humanize/number.py:187
#, fuzzy
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "%(value)s nonillion"
msgstr[1] "%(value)s nonillion"
#: src/humanize/number.py:188
#, fuzzy
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "%(value)s décillion"
msgstr[1] "%(value)s décillion"
#: src/humanize/number.py:189
#, fuzzy
msgid "googol"
msgid_plural "googol"
msgstr[0] "%(value)s gogol"
msgstr[1] "%(value)s gogol"
#: src/humanize/number.py:301
msgid "zero"
msgstr "không"
#: src/humanize/number.py:302
msgid "one"
msgstr "một"
#: src/humanize/number.py:303
msgid "two"
msgstr "hai"
#: src/humanize/number.py:304
msgid "three"
msgstr "ba"
#: src/humanize/number.py:305
msgid "four"
msgstr "bốn"
#: src/humanize/number.py:306
msgid "five"
msgstr "năm"
#: src/humanize/number.py:307
msgid "six"
msgstr "sáu"
#: src/humanize/number.py:308
msgid "seven"
msgstr "bảy"
#: src/humanize/number.py:309
msgid "eight"
msgstr "tám"
#: src/humanize/number.py:310
msgid "nine"
msgstr "chín"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d micro giây"
msgstr[1] "%d micro giây"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d mili giây"
msgstr[1] "%d mili giây"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "ngay lúc này"
#: src/humanize/time.py:167
msgid "a second"
msgstr "một giây"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d giây"
msgstr[1] "%d giây"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "một phút"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d phút"
msgstr[1] "%d phút"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "một giờ"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d giờ"
msgstr[1] "%d giờ"
#: src/humanize/time.py:188
msgid "a day"
msgstr "một ngày"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d ngày"
msgstr[1] "%d ngày"
#: src/humanize/time.py:197
msgid "a month"
msgstr "một tháng"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d tháng"
msgstr[1] "%d tháng"
#: src/humanize/time.py:203
msgid "a year"
msgstr "một năm"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 năm %d ngày"
msgstr[1] "1 năm %d ngày"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 năm 1 tháng"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 năm %d tháng"
msgstr[1] "un an et %d mois"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d năm"
msgstr[1] "%d năm"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s ngày tới"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s trước"
#: src/humanize/time.py:260
msgid "now"
msgstr "ngay bây giờ"
#: src/humanize/time.py:284
msgid "today"
msgstr "hôm nay"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "ngày mai"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "ngày hôm qua"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s và %s"

View File

@@ -0,0 +1,364 @@
# Simplified Chinese (China) translation for the project
# Copyright (C) 2016
# This file is distributed under the same license as the PACKAGE package.
# AZLisme <helloazl@icloud.com>, 2016.
# Liwen SUN <sunliwen@gmail.com>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2016-11-14 23:02+0000\n"
"Last-Translator: Liwen SUN <sunliwen@gmail.com>\n"
"Language-Team: Chinese (simplified)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "第"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "第"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "第"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "第"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "第"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "第"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "千"
msgstr[1] "千"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "百万"
msgstr[1] "百万"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "十亿"
msgstr[1] "十亿"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "兆"
msgstr[1] "兆"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "万亿"
msgstr[1] "万亿"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "百京"
msgstr[1] "百京"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "十垓"
msgstr[1] "十垓"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "秭"
msgstr[1] "秭"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "千秭"
msgstr[1] "千秭"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "百穰"
msgstr[1] "百穰"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "十沟"
msgstr[1] "十沟"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "古高尔"
msgstr[1] "古高尔"
#: src/humanize/number.py:301
msgid "zero"
msgstr ""
#: src/humanize/number.py:302
msgid "one"
msgstr "一"
#: src/humanize/number.py:303
msgid "two"
msgstr "二"
#: src/humanize/number.py:304
msgid "three"
msgstr "三"
#: src/humanize/number.py:305
msgid "four"
msgstr "四"
#: src/humanize/number.py:306
msgid "five"
msgstr "五"
#: src/humanize/number.py:307
msgid "six"
msgstr "六"
#: src/humanize/number.py:308
msgid "seven"
msgstr "七"
#: src/humanize/number.py:309
msgid "eight"
msgstr "八"
#: src/humanize/number.py:310
msgid "nine"
msgstr "九"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] ""
msgstr[1] ""
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "一会儿"
#: src/humanize/time.py:167
msgid "a second"
msgstr "1秒"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d秒"
msgstr[1] "%d秒"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "1分"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d分"
msgstr[1] "%d分"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "1小时"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d小时"
msgstr[1] "%d小时"
#: src/humanize/time.py:188
msgid "a day"
msgstr "1天"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d天"
msgstr[1] "%d天"
#: src/humanize/time.py:197
msgid "a month"
msgstr "1月"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d月"
msgstr[1] "%d月"
#: src/humanize/time.py:203
msgid "a year"
msgstr "1年"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1年又%d天"
msgstr[1] "1年又%d天"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1年又1月"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1年又%d月"
msgstr[1] "1年又%d月"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d年"
msgstr[1] "%d年"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s之后"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s之前"
#: src/humanize/time.py:260
msgid "now"
msgstr "现在"
#: src/humanize/time.py:284
msgid "today"
msgstr "今天"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "明天"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "昨天"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr ""

View File

@@ -0,0 +1,365 @@
# Traditional Chinese (China) translation for the project
# Copyright (C) 2021
# This file is distributed under the same license as the PACKAGE package.
# AZLisme <helloazl@icloud.com>, 2016.
# Liwen SUN <sunliwen@gmail.com>, 2019.
# Edward Ho <edward@edward.is>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-08 19:22+0200\n"
"PO-Revision-Date: 2016-11-14 23:02+0000\n"
"Last-Translator: Edward Ho <edward@edward.is>\n"
"Language-Team: Chinese (traditional)\n"
"Language: zh_HK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/humanize/number.py:84
msgctxt "0 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:85
msgctxt "1 (male)"
msgid "st"
msgstr "第"
#: src/humanize/number.py:86
msgctxt "2 (male)"
msgid "nd"
msgstr "第"
#: src/humanize/number.py:87
msgctxt "3 (male)"
msgid "rd"
msgstr "第"
#: src/humanize/number.py:88
msgctxt "4 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:89
msgctxt "5 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:90
msgctxt "6 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:91
msgctxt "7 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:92
msgctxt "8 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:93
msgctxt "9 (male)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:97
msgctxt "0 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:98
msgctxt "1 (female)"
msgid "st"
msgstr "第"
#: src/humanize/number.py:99
msgctxt "2 (female)"
msgid "nd"
msgstr "第"
#: src/humanize/number.py:100
msgctxt "3 (female)"
msgid "rd"
msgstr "第"
#: src/humanize/number.py:101
msgctxt "4 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:102
msgctxt "5 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:103
msgctxt "6 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:104
msgctxt "7 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:105
msgctxt "8 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:106
msgctxt "9 (female)"
msgid "th"
msgstr "第"
#: src/humanize/number.py:178
msgid "thousand"
msgid_plural "thousand"
msgstr[0] "千"
msgstr[1] "千"
#: src/humanize/number.py:179
msgid "million"
msgid_plural "million"
msgstr[0] "百萬"
msgstr[1] "百萬"
#: src/humanize/number.py:180
msgid "billion"
msgid_plural "billion"
msgstr[0] "十億"
msgstr[1] "十億"
#: src/humanize/number.py:181
msgid "trillion"
msgid_plural "trillion"
msgstr[0] "兆"
msgstr[1] "兆"
#: src/humanize/number.py:182
msgid "quadrillion"
msgid_plural "quadrillion"
msgstr[0] "萬億"
msgstr[1] "萬億"
#: src/humanize/number.py:183
msgid "quintillion"
msgid_plural "quintillion"
msgstr[0] "百京"
msgstr[1] "百京"
#: src/humanize/number.py:184
msgid "sextillion"
msgid_plural "sextillion"
msgstr[0] "十垓"
msgstr[1] "十垓"
#: src/humanize/number.py:185
msgid "septillion"
msgid_plural "septillion"
msgstr[0] "秭"
msgstr[1] "秭"
#: src/humanize/number.py:186
msgid "octillion"
msgid_plural "octillion"
msgstr[0] "千秭"
msgstr[1] "千秭"
#: src/humanize/number.py:187
msgid "nonillion"
msgid_plural "nonillion"
msgstr[0] "百穰"
msgstr[1] "百穰"
#: src/humanize/number.py:188
msgid "decillion"
msgid_plural "decillion"
msgstr[0] "十溝"
msgstr[1] "十溝"
#: src/humanize/number.py:189
msgid "googol"
msgid_plural "googol"
msgstr[0] "古高爾"
msgstr[1] "古高爾"
#: src/humanize/number.py:301
msgid "zero"
msgstr "零"
#: src/humanize/number.py:302
msgid "one"
msgstr "一"
#: src/humanize/number.py:303
msgid "two"
msgstr "二"
#: src/humanize/number.py:304
msgid "three"
msgstr "三"
#: src/humanize/number.py:305
msgid "four"
msgstr "四"
#: src/humanize/number.py:306
msgid "five"
msgstr "五"
#: src/humanize/number.py:307
msgid "six"
msgstr "六"
#: src/humanize/number.py:308
msgid "seven"
msgstr "七"
#: src/humanize/number.py:309
msgid "eight"
msgstr "八"
#: src/humanize/number.py:310
msgid "nine"
msgstr "九"
#: src/humanize/time.py:152
#, python-format
msgid "%d microsecond"
msgid_plural "%d microseconds"
msgstr[0] "%d 微秒"
msgstr[1] "%d 微秒"
#: src/humanize/time.py:161
#, python-format
msgid "%d millisecond"
msgid_plural "%d milliseconds"
msgstr[0] "%d 毫秒"
msgstr[1] "%d 毫秒"
#: src/humanize/time.py:164 src/humanize/time.py:259
msgid "a moment"
msgstr "一會"
#: src/humanize/time.py:167
msgid "a second"
msgstr "1 秒"
#: src/humanize/time.py:170
#, python-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d 秒"
msgstr[1] "%d 秒"
#: src/humanize/time.py:173
msgid "a minute"
msgstr "1 分鐘"
#: src/humanize/time.py:177
#, python-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d 分鐘"
msgstr[1] "%d 分鐘"
#: src/humanize/time.py:180
msgid "an hour"
msgstr "1 小時"
#: src/humanize/time.py:184
#, python-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d 小時"
msgstr[1] "%d 小時"
#: src/humanize/time.py:188
msgid "a day"
msgstr "1 天"
#: src/humanize/time.py:191 src/humanize/time.py:194
#, python-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d 天"
msgstr[1] "%d 天"
#: src/humanize/time.py:197
msgid "a month"
msgstr "1 月"
#: src/humanize/time.py:199
#, python-format
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d 月"
msgstr[1] "%d 月"
#: src/humanize/time.py:203
msgid "a year"
msgstr "1 年"
#: src/humanize/time.py:206 src/humanize/time.py:217
#, python-format
msgid "1 year, %d day"
msgid_plural "1 year, %d days"
msgstr[0] "1 年又 %d 天"
msgstr[1] "1 年又 %d 天"
#: src/humanize/time.py:210
msgid "1 year, 1 month"
msgstr "1 年又 1 個月"
#: src/humanize/time.py:213
#, python-format
msgid "1 year, %d month"
msgid_plural "1 year, %d months"
msgstr[0] "1 年又 %d 個月"
msgstr[1] "1 年又 %d 個月"
#: src/humanize/time.py:219
#, python-format
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d年"
msgstr[1] "%d年"
#: src/humanize/time.py:256
#, python-format
msgid "%s from now"
msgstr "%s 之後"
#: src/humanize/time.py:256
#, python-format
msgid "%s ago"
msgstr "%s 之前"
#: src/humanize/time.py:260
msgid "now"
msgstr "現在"
#: src/humanize/time.py:284
msgid "today"
msgstr "今天"
#: src/humanize/time.py:287
msgid "tomorrow"
msgstr "明天"
#: src/humanize/time.py:290
msgid "yesterday"
msgstr "昨天"
#: src/humanize/time.py:600
#, python-format
msgid "%s and %s"
msgstr "%s 與 %s"

View File

@@ -0,0 +1,588 @@
"""Humanizing functions for numbers."""
from __future__ import annotations
from .i18n import _gettext as _
from .i18n import _ngettext, decimal_separator, thousands_separator
from .i18n import _ngettext_noop as NS_
from .i18n import _pgettext as P_
TYPE_CHECKING = False
if TYPE_CHECKING:
from typing import TypeAlias
# This type can be better defined by typing.SupportsFloat
# but that's a Python 3.8 only typing option.
NumberOrString: TypeAlias = float | str
def _format_not_finite(value: float) -> str:
"""Utility function to handle infinite and nan cases."""
import math
if math.isnan(value):
return "NaN"
if math.isinf(value) and value < 0:
return "-Inf"
if math.isinf(value) and value > 0:
return "+Inf"
return ""
def ordinal(value: NumberOrString, gender: str = "male") -> str:
"""Converts an integer to its ordinal as a string.
For example, 1 is "1st", 2 is "2nd", 3 is "3rd", etc. Works for any integer or
anything `int()` will turn into an integer. Anything else will return the output
of str(value).
Examples:
```pycon
>>> ordinal(1)
'1st'
>>> ordinal(1002)
'1002nd'
>>> ordinal(103)
'103rd'
>>> ordinal(4)
'4th'
>>> ordinal(12)
'12th'
>>> ordinal(101)
'101st'
>>> ordinal(111)
'111th'
>>> ordinal("something else")
'something else'
>>> ordinal([1, 2, 3]) == "[1, 2, 3]"
True
```
Args:
value (int, str, float): Integer to convert.
gender (str): Gender for translations. Accepts either "male" or "female".
Returns:
str: Ordinal string.
"""
import math
try:
if not math.isfinite(float(value)):
return _format_not_finite(float(value))
value = int(value)
except (TypeError, ValueError):
return str(value)
if gender == "male":
t = (
P_("0 (male)", "th"),
P_("1 (male)", "st"),
P_("2 (male)", "nd"),
P_("3 (male)", "rd"),
P_("4 (male)", "th"),
P_("5 (male)", "th"),
P_("6 (male)", "th"),
P_("7 (male)", "th"),
P_("8 (male)", "th"),
P_("9 (male)", "th"),
)
else:
t = (
P_("0 (female)", "th"),
P_("1 (female)", "st"),
P_("2 (female)", "nd"),
P_("3 (female)", "rd"),
P_("4 (female)", "th"),
P_("5 (female)", "th"),
P_("6 (female)", "th"),
P_("7 (female)", "th"),
P_("8 (female)", "th"),
P_("9 (female)", "th"),
)
if value % 100 in (11, 12, 13): # special case
return f"{value}{t[0]}"
return f"{value}{t[value % 10]}"
def intcomma(value: NumberOrString, ndigits: int | None = None) -> str:
"""Converts an integer to a string containing commas every three digits.
For example, 3000 becomes "3,000" and 45000 becomes "45,000". To maintain some
compatibility with Django's `intcomma`, this function also accepts floats.
Examples:
```pycon
>>> intcomma(100)
'100'
>>> intcomma("1000")
'1,000'
>>> intcomma(1_000_000)
'1,000,000'
>>> intcomma(1_234_567.25)
'1,234,567.25'
>>> intcomma(1234.5454545, 2)
'1,234.55'
>>> intcomma(14308.40, 1)
'14,308.4'
>>> intcomma("14308.40", 1)
'14,308.4'
>>> intcomma(None)
'None'
```
Args:
value (int, float, str): Integer or float to convert.
ndigits (int, None): Digits of precision for rounding after the decimal point.
Returns:
str: String containing commas every three digits.
"""
import math
thousands_sep = thousands_separator()
decimal_sep = decimal_separator()
try:
if isinstance(value, str):
value = value.replace(thousands_sep, "").replace(decimal_sep, ".")
if not math.isfinite(float(value)):
return _format_not_finite(float(value))
if "." in value:
value = float(value)
else:
value = int(value)
else:
if not math.isfinite(float(value)):
return _format_not_finite(float(value))
float(value)
except (TypeError, ValueError):
return str(value)
if ndigits is not None:
orig = "{0:.{1}f}".format(value, ndigits)
else:
orig = str(value)
orig = orig.replace(".", decimal_sep)
import re
while True:
new = re.sub(r"^(-?\d+)(\d{3})", rf"\g<1>{thousands_sep}\g<2>", orig)
if orig == new:
return new
orig = new
powers = [10**x for x in (3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 100)]
human_powers = (
NS_("thousand", "thousand"),
NS_("million", "million"),
NS_("billion", "billion"),
NS_("trillion", "trillion"),
NS_("quadrillion", "quadrillion"),
NS_("quintillion", "quintillion"),
NS_("sextillion", "sextillion"),
NS_("septillion", "septillion"),
NS_("octillion", "octillion"),
NS_("nonillion", "nonillion"),
NS_("decillion", "decillion"),
NS_("googol", "googol"),
)
def intword(value: NumberOrString, format: str = "%.1f") -> str:
"""Converts a large integer to a friendly text representation.
Works best for numbers over 1 million. For example, 1_000_000 becomes "1.0 million",
1200000 becomes "1.2 million" and "1_200_000_000" becomes "1.2 billion". Supports up
to decillion (33 digits) and googol (100 digits).
Examples:
```pycon
>>> intword("100")
'100'
>>> intword("12400")
'12.4 thousand'
>>> intword("1000000")
'1.0 million'
>>> intword(1_200_000_000)
'1.2 billion'
>>> intword(8100000000000000000000000000000000)
'8.1 decillion'
>>> intword(None)
'None'
>>> intword("1234000", "%0.3f")
'1.234 million'
```
Args:
value (int, float, str): Integer to convert.
format (str): To change the number of decimal or general format of the number
portion.
Returns:
str: Friendly text representation as a string, unless the value passed could not
be coaxed into an `int`.
"""
import math
try:
if not math.isfinite(float(value)):
return _format_not_finite(float(value))
value = int(value)
except (TypeError, ValueError):
return str(value)
if value < 0:
value *= -1
negative_prefix = "-"
else:
negative_prefix = ""
if value < powers[0]:
return negative_prefix + str(value)
for ordinal_, power in enumerate(powers[1:], 1):
if value < power:
chopped = value / float(powers[ordinal_ - 1])
powers_difference = powers[ordinal_] / powers[ordinal_ - 1]
if float(format % chopped) == powers_difference:
chopped = value / float(powers[ordinal_])
singular, plural = human_powers[ordinal_]
return (
negative_prefix
+ " ".join(
[format, _ngettext(singular, plural, math.ceil(chopped))]
)
) % chopped
singular, plural = human_powers[ordinal_ - 1]
return (
negative_prefix
+ " ".join([format, _ngettext(singular, plural, math.ceil(chopped))])
) % chopped
return negative_prefix + str(value)
def apnumber(value: NumberOrString) -> str:
"""Converts an integer to Associated Press style.
Examples:
```pycon
>>> apnumber(0)
'zero'
>>> apnumber(5)
'five'
>>> apnumber(10)
'10'
>>> apnumber("7")
'seven'
>>> apnumber("foo")
'foo'
>>> apnumber(None)
'None'
```
Args:
value (int, float, str): Integer to convert.
Returns:
str: For numbers 0-9, the number spelled out. Otherwise, the number. This always
returns a string unless the value was not `int`-able, then `str(value)`
is returned.
"""
import math
try:
if not math.isfinite(float(value)):
return _format_not_finite(float(value))
value = int(value)
except (TypeError, ValueError):
return str(value)
if not 0 <= value < 10:
return str(value)
return (
_("zero"),
_("one"),
_("two"),
_("three"),
_("four"),
_("five"),
_("six"),
_("seven"),
_("eight"),
_("nine"),
)[value]
def fractional(value: NumberOrString) -> str:
"""Convert to fractional number.
There will be some cases where one might not want to show ugly decimal places for
floats and decimals.
This function returns a human-readable fractional number in form of fractions and
mixed fractions.
Pass in a string, or a number or a float, and this function returns:
* a string representation of a fraction
* or a whole number
* or a mixed fraction
* or the str output of the value, if it could not be converted
Examples:
```pycon
>>> fractional(0.3)
'3/10'
>>> fractional(1.3)
'1 3/10'
>>> fractional(float(1/3))
'1/3'
>>> fractional(1)
'1'
>>> fractional("ten")
'ten'
>>> fractional(None)
'None'
```
Args:
value (int, float, str): Integer to convert.
Returns:
str: Fractional number as a string.
"""
import math
try:
number = float(value)
if not math.isfinite(number):
return _format_not_finite(number)
except (TypeError, ValueError):
return str(value)
from fractions import Fraction
whole_number = int(number)
frac = Fraction(number - whole_number).limit_denominator(1000)
numerator = frac.numerator
denominator = frac.denominator
if whole_number and not numerator and denominator == 1:
# this means that an integer was passed in
# (or variants of that integer like 1.0000)
return f"{whole_number:.0f}"
if not whole_number:
return f"{numerator:.0f}/{denominator:.0f}"
return f"{whole_number:.0f} {numerator:.0f}/{denominator:.0f}"
def scientific(value: NumberOrString, precision: int = 2) -> str:
"""Return number in string scientific notation z.wq x 10ⁿ.
Examples:
```pycon
>>> scientific(float(0.3))
'3.00 x 10⁻¹'
>>> scientific(int(500))
'5.00 x 10²'
>>> scientific(-1000)
'-1.00 x 10³'
>>> scientific(1000, 1)
'1.0 x 10³'
>>> scientific(1000, 3)
'1.000 x 10³'
>>> scientific("99")
'9.90 x 10¹'
>>> scientific("foo")
'foo'
>>> scientific(None)
'None'
```
Args:
value (int, float, str): Input number.
precision (int): Number of decimal for first part of the number.
Returns:
str: Number in scientific notation z.wq x 10ⁿ.
"""
import math
exponents = {
"0": "",
"1": "¹",
"2": "²",
"3": "³",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"-": "",
}
try:
value = float(value)
if not math.isfinite(value):
return _format_not_finite(value)
except (ValueError, TypeError):
return str(value)
fmt = f"{{:.{str(int(precision))}e}}"
n = fmt.format(value)
part1, part2 = n.split("e")
# Remove redundant leading '+' or '0's (preserving the last '0' for 10⁰).
import re
part2 = re.sub(r"^\+?(\-?)0*(.+)$", r"\1\2", part2)
new_part2 = []
for char in part2:
new_part2.append(exponents[char])
final_str = part1 + " x 10" + "".join(new_part2)
return final_str
def clamp(
value: float,
format: str = "{:}",
floor: float | None = None,
ceil: float | None = None,
floor_token: str = "<",
ceil_token: str = ">",
) -> str:
"""Returns number with the specified format, clamped between floor and ceil.
If the number is larger than ceil or smaller than floor, then the respective limit
will be returned, formatted and prepended with a token specifying as such.
Examples:
```pycon
>>> clamp(123.456)
'123.456'
>>> clamp(0.0001, floor=0.01)
'<0.01'
>>> clamp(0.99, format="{:.0%}", ceil=0.99)
'99%'
>>> clamp(0.999, format="{:.0%}", ceil=0.99)
'>99%'
>>> clamp(1, format=intword, floor=1e6, floor_token="under ")
'under 1.0 million'
>>> clamp(None) is None
True
```
Args:
value (int, float): Input number.
format (str OR callable): Can either be a formatting string, or a callable
function that receives value and returns a string.
floor (int, float): Smallest value before clamping.
ceil (int, float): Largest value before clamping.
floor_token (str): If value is smaller than floor, token will be prepended
to output.
ceil_token (str): If value is larger than ceil, token will be prepended
to output.
Returns:
str: Formatted number. The output is clamped between the indicated floor and
ceil. If the number is larger than ceil or smaller than floor, the output
will be prepended with a token indicating as such.
"""
import math
if value is None:
return None
if not math.isfinite(value):
return _format_not_finite(value)
if floor is not None and value < floor:
value = floor
token = floor_token
elif ceil is not None and value > ceil:
value = ceil
token = ceil_token
else:
token = ""
if isinstance(format, str):
return token + format.format(value)
if callable(format):
return token + format(value)
msg = (
"Invalid format. Must be either a valid formatting string, or a function "
"that accepts value and returns a string."
)
raise ValueError(msg)
def metric(value: float, unit: str = "", precision: int = 3) -> str:
"""Return a value with a metric SI unit-prefix appended.
Examples:
```pycon
>>> metric(1500, "V")
'1.50 kV'
>>> metric(2e8, "W")
'200 MW'
>>> metric(220e-6, "F")
'220 μF'
>>> metric(1e-14, precision=4)
'10.00 f'
```
The unit prefix is always chosen so that non-significant zero digits are required.
i.e. `123,000` will become `123k` instead of `0.123M` and `1,230,000` will become
`1.23M` instead of `1230K`. For numbers that are either too huge or too tiny to
represent without resorting to either leading or trailing zeroes, it falls back to
`scientific()`.
```pycon
>>> metric(1e40)
'1.00 x 10⁴⁰'
```
Args:
value (int, float): Input number.
unit (str): Optional base unit.
precision (int): The number of digits the output should contain.
Returns:
str:
"""
import math
if not math.isfinite(value):
return _format_not_finite(value)
exponent = int(math.floor(math.log10(abs(value)))) if value != 0 else 0
if exponent >= 33 or exponent < -30:
return scientific(value, precision - 1) + unit
value /= 10 ** (exponent // 3 * 3)
if exponent >= 3:
ordinal_ = "kMGTPEZYRQ"[exponent // 3 - 1]
elif exponent < 0:
ordinal_ = "mμnpfazyrq"[(-exponent - 1) // 3]
else:
ordinal_ = ""
value_ = format(value, f".{int(max(0, precision - exponent % 3 - 1))}f")
if not (unit or ordinal_) or unit in ("°", "", ""):
space = ""
else:
space = " "
return f"{value_}{space}{ordinal_}{unit}"

View File

@@ -0,0 +1,655 @@
"""Time humanizing functions.
These are largely borrowed from Django's `contrib.humanize`.
"""
from __future__ import annotations
from enum import Enum
from functools import total_ordering
from .i18n import _gettext as _
from .i18n import _ngettext
from .number import intcomma
TYPE_CHECKING = False
if TYPE_CHECKING:
import datetime as dt
from collections.abc import Iterable
from typing import Any
__all__ = [
"naturaldate",
"naturalday",
"naturaldelta",
"naturaltime",
"precisedelta",
]
@total_ordering
class Unit(Enum):
MICROSECONDS = 0
MILLISECONDS = 1
SECONDS = 2
MINUTES = 3
HOURS = 4
DAYS = 5
MONTHS = 6
YEARS = 7
def __lt__(self, other: Any) -> Any:
if self.__class__ is other.__class__:
return self.value < other.value
return NotImplemented
def _now() -> dt.datetime:
import datetime as dt
return dt.datetime.now()
def _abs_timedelta(delta: dt.timedelta) -> dt.timedelta:
"""Return an "absolute" value for a timedelta, always representing a time distance.
Args:
delta (datetime.timedelta): Input timedelta.
Returns:
datetime.timedelta: Absolute timedelta.
"""
if delta.days < 0:
now = _now()
return now - (now + delta)
return delta
def _date_and_delta(
value: Any, *, now: dt.datetime | None = None, precise: bool = False
) -> tuple[Any, Any]:
"""Turn a value into a date and a timedelta which represents how long ago it was.
If that's not possible, return `(None, value)`.
"""
import datetime as dt
if not now:
now = _now()
if isinstance(value, dt.datetime):
date = value
delta = now - value
elif isinstance(value, dt.timedelta):
date = now - value
delta = value
else:
try:
value = value if precise else int(value)
delta = dt.timedelta(seconds=value)
date = now - delta
except (ValueError, TypeError):
return None, value
return date, _abs_timedelta(delta)
def naturaldelta(
value: dt.timedelta | float,
months: bool = True,
minimum_unit: str = "seconds",
) -> str:
"""Return a natural representation of a timedelta or number of seconds.
This is similar to `naturaltime`, but does not add tense to the result.
Args:
value (datetime.timedelta, int or float): A timedelta or a number of seconds.
months (bool): If `True`, then a number of months (based on 30.5 days) will be
used for fuzziness between years.
minimum_unit (str): The lowest unit that can be used.
Returns:
str (str or `value`): A natural representation of the amount of time
elapsed unless `value` is not datetime.timedelta or cannot be
converted to int (cannot be float due to 'inf' or 'nan').
In that case, a `value` is returned unchanged.
Raises:
OverflowError: If `value` is too large to convert to datetime.timedelta.
Examples:
Compare two timestamps in a custom local timezone::
```pycon
>>> import datetime as dt
>>> from dateutil.tz import gettz
>>> berlin = gettz("Europe/Berlin")
>>> now = dt.datetime.now(tz=berlin)
>>> later = now + dt.timedelta(minutes=30)
>>> assert naturaldelta(later - now) == "30 minutes"
True
```
"""
import datetime as dt
tmp = Unit[minimum_unit.upper()]
if tmp not in (Unit.SECONDS, Unit.MILLISECONDS, Unit.MICROSECONDS):
msg = f"Minimum unit '{minimum_unit}' not supported"
raise ValueError(msg)
min_unit = tmp
if isinstance(value, dt.timedelta):
delta = value
else:
try:
int(value) # Explicitly don't support string such as "NaN" or "inf"
value = float(value)
delta = dt.timedelta(seconds=value)
except (ValueError, TypeError):
return str(value)
use_months = months
delta = abs(delta)
years = delta.days // 365
days = delta.days % 365
num_months = int(days // 30.5)
if not years and days < 1:
if delta.seconds == 0:
if min_unit == Unit.MICROSECONDS and delta.microseconds < 1000:
return (
_ngettext("%d microsecond", "%d microseconds", delta.microseconds)
% delta.microseconds
)
if min_unit == Unit.MILLISECONDS or (
min_unit == Unit.MICROSECONDS and 1000 <= delta.microseconds < 1_000_000
):
milliseconds = delta.microseconds / 1000
return (
_ngettext("%d millisecond", "%d milliseconds", int(milliseconds))
% milliseconds
)
return _("a moment")
if delta.seconds == 1:
return _("a second")
if delta.seconds < 60:
return _ngettext("%d second", "%d seconds", delta.seconds) % delta.seconds
if 60 <= delta.seconds < 120:
return _("a minute")
if 120 <= delta.seconds < 3600:
minutes = delta.seconds // 60
return _ngettext("%d minute", "%d minutes", minutes) % minutes
if 3600 <= delta.seconds < 3600 * 2:
return _("an hour")
if 3600 < delta.seconds:
hours = delta.seconds // 3600
return _ngettext("%d hour", "%d hours", hours) % hours
elif years == 0:
if days == 1:
return _("a day")
if not use_months:
return _ngettext("%d day", "%d days", days) % days
if not num_months:
return _ngettext("%d day", "%d days", days) % days
if num_months == 1:
return _("a month")
return _ngettext("%d month", "%d months", num_months) % num_months
elif years == 1:
if not num_months and not days:
return _("a year")
if not num_months:
return _ngettext("1 year, %d day", "1 year, %d days", days) % days
if use_months:
if num_months == 1:
return _("1 year, 1 month")
return (
_ngettext("1 year, %d month", "1 year, %d months", num_months)
% num_months
)
return _ngettext("1 year, %d day", "1 year, %d days", days) % days
return _ngettext("%d year", "%d years", years).replace("%d", "%s") % intcomma(years)
def naturaltime(
value: dt.datetime | dt.timedelta | float,
future: bool = False,
months: bool = True,
minimum_unit: str = "seconds",
when: dt.datetime | None = None,
) -> str:
"""Return a natural representation of a time in a resolution that makes sense.
This is more or less compatible with Django's `naturaltime` filter.
Args:
value (datetime.datetime, datetime.timedelta, int or float): A `datetime`, a
`timedelta`, or a number of seconds.
future (bool): Ignored for `datetime`s and `timedelta`s, where the tense is
always figured out based on the current time. For integers and floats, the
return value will be past tense by default, unless future is `True`.
months (bool): If `True`, then a number of months (based on 30.5 days) will be
used for fuzziness between years.
minimum_unit (str): The lowest unit that can be used.
when (datetime.datetime): Point in time relative to which _value_ is
interpreted. Defaults to the current time in the local timezone.
Returns:
str: A natural representation of the input in a resolution that makes sense.
"""
import datetime as dt
value = _convert_aware_datetime(value)
when = _convert_aware_datetime(when)
now = when or _now()
date, delta = _date_and_delta(value, now=now)
if date is None:
return str(value)
# determine tense by value only if datetime/timedelta were passed
if isinstance(value, (dt.datetime, dt.timedelta)):
future = date > now
ago = _("%s from now") if future else _("%s ago")
delta = naturaldelta(delta, months, minimum_unit)
if delta == _("a moment"):
return _("now")
return str(ago % delta)
def _convert_aware_datetime(
value: dt.datetime | dt.timedelta | float | None,
) -> Any:
"""Convert aware datetime to naive datetime and pass through any other type."""
import datetime as dt
if isinstance(value, dt.datetime) and value.tzinfo is not None:
value = dt.datetime.fromtimestamp(value.timestamp())
return value
def naturalday(value: dt.date | dt.datetime, format: str = "%b %d") -> str:
"""Return a natural day.
For date values that are tomorrow, today or yesterday compared to
present day return representing string. Otherwise, return a string
formatted according to `format`.
"""
import datetime as dt
try:
value = dt.date(value.year, value.month, value.day)
except AttributeError:
# Passed value wasn't date-ish
return str(value)
except (OverflowError, ValueError):
# Date arguments out of range
return str(value)
delta = value - dt.date.today()
if delta.days == 0:
return _("today")
if delta.days == 1:
return _("tomorrow")
if delta.days == -1:
return _("yesterday")
return value.strftime(format)
def naturaldate(value: dt.date | dt.datetime) -> str:
"""Like `naturalday`, but append a year for dates more than ~five months away."""
import datetime as dt
try:
value = dt.date(value.year, value.month, value.day)
except AttributeError:
# Passed value wasn't date-ish
return str(value)
except (OverflowError, ValueError):
# Date arguments out of range
return str(value)
delta = _abs_timedelta(value - dt.date.today())
if delta.days >= 5 * 365 / 12:
return naturalday(value, "%b %d %Y")
return naturalday(value)
def _quotient_and_remainder(
value: float,
divisor: float,
unit: Unit,
minimum_unit: Unit,
suppress: Iterable[Unit],
format: str,
) -> tuple[float, float]:
"""Divide `value` by `divisor`, returning the quotient and remainder.
If `unit` is `minimum_unit`, the quotient will be the rounding of `value / divisor`
according to the `format` string and the remainder will be zero. The rationale is
that if `unit` is the unit of the quotient, we cannot represent the remainder
because it would require a unit smaller than the `minimum_unit`.
>>> from humanize.time import _quotient_and_remainder, Unit
>>> _quotient_and_remainder(36, 24, Unit.DAYS, Unit.DAYS, [], "%0.2f")
(1.5, 0)
If `unit` is in `suppress`, the quotient will be zero and the remainder will be the
initial value. The idea is that if we cannot use `unit`, we are forced to use a
lower unit, so we cannot do the division.
>>> _quotient_and_remainder(36, 24, Unit.DAYS, Unit.HOURS, [Unit.DAYS], "%0.2f")
(0, 36)
In other cases, return the quotient and remainder as `divmod` would do it.
>>> _quotient_and_remainder(36, 24, Unit.DAYS, Unit.HOURS, [], "%0.2f")
(1, 12)
"""
if unit == minimum_unit:
return _rounding_by_fmt(format, value / divisor), 0
if unit in suppress:
return 0, value
# Convert the remainder back to integer is necessary for months. 1 month is 30.5
# days on average, but if we have 31 days, we want to count is as a whole month,
# and not as 1 month plus a remainder of 0.5 days.
q, r = divmod(value, divisor)
return q, int(r)
def _suitable_minimum_unit(min_unit: Unit, suppress: Iterable[Unit]) -> Unit:
"""Return a minimum unit suitable that is not suppressed.
If not suppressed, return the same unit:
>>> from humanize.time import _suitable_minimum_unit, Unit
>>> _suitable_minimum_unit(Unit.HOURS, []).name
'HOURS'
But if suppressed, find a unit greater than the original one that is not
suppressed:
>>> _suitable_minimum_unit(Unit.HOURS, [Unit.HOURS]).name
'DAYS'
>>> _suitable_minimum_unit(Unit.HOURS, [Unit.HOURS, Unit.DAYS]).name
'MONTHS'
"""
if min_unit in suppress:
for unit in Unit:
if unit > min_unit and unit not in suppress:
return unit
msg = "Minimum unit is suppressed and no suitable replacement was found"
raise ValueError(msg)
return min_unit
def _suppress_lower_units(min_unit: Unit, suppress: Iterable[Unit]) -> set[Unit]:
"""Extend suppressed units (if any) with all units lower than the minimum unit.
>>> from humanize.time import _suppress_lower_units, Unit
>>> [x.name for x in sorted(_suppress_lower_units(Unit.SECONDS, [Unit.DAYS]))]
['MICROSECONDS', 'MILLISECONDS', 'DAYS']
"""
suppress = set(suppress)
for unit in Unit:
if unit == min_unit:
break
suppress.add(unit)
return suppress
def precisedelta(
value: dt.timedelta | float | None,
minimum_unit: str = "seconds",
suppress: Iterable[str] = (),
format: str = "%0.2f",
) -> str:
"""Return a precise representation of a timedelta or number of seconds.
```pycon
>>> import datetime as dt
>>> from humanize.time import precisedelta
>>> delta = dt.timedelta(seconds=3633, days=2, microseconds=123000)
>>> precisedelta(delta)
'2 days, 1 hour and 33.12 seconds'
```
A custom `format` can be specified to control how the fractional part
is represented:
```pycon
>>> precisedelta(delta, format="%0.4f")
'2 days, 1 hour and 33.1230 seconds'
```
Instead, the `minimum_unit` can be changed to have a better resolution;
the function will still readjust the unit to use the greatest of the
units that does not lose precision.
For example setting microseconds but still representing the date with milliseconds:
```pycon
>>> precisedelta(delta, minimum_unit="microseconds")
'2 days, 1 hour, 33 seconds and 123 milliseconds'
```
If desired, some units can be suppressed: you will not see them represented and the
time of the other units will be adjusted to keep representing the same timedelta:
```pycon
>>> precisedelta(delta, suppress=['days'])
'49 hours and 33.12 seconds'
```
Note that microseconds precision is lost if the seconds and all
the units below are suppressed:
```pycon
>>> delta = dt.timedelta(seconds=90, microseconds=100)
>>> precisedelta(delta, suppress=['seconds', 'milliseconds', 'microseconds'])
'1.50 minutes'
```
If the delta is too small to be represented with the minimum unit,
a value of zero will be returned:
```pycon
>>> delta = dt.timedelta(seconds=1)
>>> precisedelta(delta, minimum_unit="minutes")
'0.02 minutes'
>>> delta = dt.timedelta(seconds=0.1)
>>> precisedelta(delta, minimum_unit="minutes")
'0 minutes'
```
"""
date, delta = _date_and_delta(value, precise=True)
if date is None:
return str(value)
suppress_set = {Unit[s.upper()] for s in suppress}
# Find a suitable minimum unit (it can be greater than the one that the
# user gave us, if that one is suppressed).
min_unit = Unit[minimum_unit.upper()]
min_unit = _suitable_minimum_unit(min_unit, suppress_set)
del minimum_unit
# Expand the suppressed units list/set to include all the units
# that are below the minimum unit
suppress_set = _suppress_lower_units(min_unit, suppress_set)
# handy aliases
days = delta.days
secs = delta.seconds
usecs = delta.microseconds
MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, MONTHS, YEARS = list(
Unit
)
# Given DAYS compute YEARS and the remainder of DAYS as follows:
# if YEARS is the minimum unit, we cannot use DAYS so
# we will use a float for YEARS and 0 for DAYS:
# years, days = years/days, 0
#
# if YEARS is suppressed, use DAYS:
# years, days = 0, days
#
# otherwise:
# years, days = divmod(years, days)
#
# The same applies for months, hours, minutes and milliseconds below
years, days = _quotient_and_remainder(
days, 365, YEARS, min_unit, suppress_set, format
)
months, days = _quotient_and_remainder(
days, 30.5, MONTHS, min_unit, suppress_set, format
)
secs = days * 24 * 3600 + secs
days, secs = _quotient_and_remainder(
secs, 24 * 3600, DAYS, min_unit, suppress_set, format
)
hours, secs = _quotient_and_remainder(
secs, 3600, HOURS, min_unit, suppress_set, format
)
minutes, secs = _quotient_and_remainder(
secs, 60, MINUTES, min_unit, suppress_set, format
)
usecs = secs * 1e6 + usecs
secs, usecs = _quotient_and_remainder(
usecs, 1e6, SECONDS, min_unit, suppress_set, format
)
msecs, usecs = _quotient_and_remainder(
usecs, 1000, MILLISECONDS, min_unit, suppress_set, format
)
# Due to rounding, it could be that a unit is high enough to be promoted to a higher
# unit. Example: 59.9 minutes was rounded to 60 minutes, and thus it should become 0
# minutes and one hour more.
if msecs >= 1_000 and SECONDS not in suppress_set:
msecs -= 1_000
secs += 1
if secs >= 60 and MINUTES not in suppress_set:
secs -= 60
minutes += 1
if minutes >= 60 and HOURS not in suppress_set:
minutes -= 60
hours += 1
if hours >= 24 and DAYS not in suppress_set:
hours -= 24
days += 1
# When adjusting we should not deal anymore with fractional days as all rounding has
# been already made. We promote 31 days to an extra month.
if days >= 31 and MONTHS not in suppress_set:
days -= 31
months += 1
if months >= 12 and YEARS not in suppress_set:
months -= 12
years += 1
fmts = [
("%d year", "%d years", years),
("%d month", "%d months", months),
("%d day", "%d days", days),
("%d hour", "%d hours", hours),
("%d minute", "%d minutes", minutes),
("%d second", "%d seconds", secs),
("%d millisecond", "%d milliseconds", msecs),
("%d microsecond", "%d microseconds", usecs),
]
texts: list[str] = []
for unit, fmt in zip(reversed(Unit), fmts):
singular_txt, plural_txt, fmt_value = fmt
if fmt_value > 0 or (not texts and unit == min_unit):
_fmt_value = 2 if 1 < fmt_value < 2 else int(fmt_value)
fmt_txt = _ngettext(singular_txt, plural_txt, _fmt_value)
import math
if unit == min_unit and math.modf(fmt_value)[0] > 0:
fmt_txt = fmt_txt.replace("%d", format)
elif unit == YEARS:
if math.modf(fmt_value)[0] == 0:
fmt_value = int(fmt_value)
fmt_txt = fmt_txt.replace("%d", "%s")
texts.append(fmt_txt % intcomma(fmt_value))
continue
texts.append(fmt_txt % fmt_value)
if unit == min_unit:
break
if len(texts) == 1:
return texts[0]
head = ", ".join(texts[:-1])
tail = texts[-1]
return _("%s and %s") % (head, tail)
def _rounding_by_fmt(format: str, value: float) -> float | int:
"""Round a number according to the string format provided.
The string format is the old printf-style string formatting.
If we are using a format which truncates the value, such as "%d" or "%i", the
returned value will be of type `int`.
If we are using a format which rounds the value, such as "%.2f" or even "%.0f",
we will return a float.
"""
result = format % value
try:
value = int(result)
except ValueError:
value = float(result)
return value