Update upstream source from tag 'upstream/2.2.0'
Update to upstream version '2.2.0'
with Debian dir 5d6d4c5595bb83e289d5652bf138ad67b26ee210
Sylvestre Ledru
4 years ago
9 | 9 | python-version: [3.8] |
10 | 10 | |
11 | 11 | steps: |
12 | - uses: actions/checkout@v1 | |
12 | - uses: actions/checkout@v2 | |
13 | 13 | |
14 | 14 | - name: pip cache |
15 | 15 | uses: actions/cache@v1 |
7 | 7 | strategy: |
8 | 8 | fail-fast: false |
9 | 9 | matrix: |
10 | python-version: [3.5, 3.6, 3.7, 3.8] | |
10 | python-version: ["pypy3", "3.5", "3.6", "3.7", "3.8", "3.9"] | |
11 | 11 | os: [ubuntu-latest, macos-latest, windows-latest] |
12 | 12 | include: |
13 | 13 | # Include new variables for Codecov |
14 | - os: ubuntu-latest | |
15 | codecov-flag: GHA_Ubuntu | |
16 | - os: macOS-latest | |
17 | codecov-flag: GHA_macOS | |
18 | - os: windows-latest | |
19 | codecov-flag: GHA_Windows | |
14 | - { codecov-flag: GHA_Ubuntu, os: ubuntu-latest } | |
15 | - { codecov-flag: GHA_macOS, os: macos-latest } | |
16 | - { codecov-flag: GHA_Windows, os: windows-latest } | |
17 | exclude: | |
18 | - { python-version: 3.9, os: macos-latest } | |
19 | - { python-version: 3.9, os: windows-latest } | |
20 | - { python-version: pypy3, os: windows-latest } | |
20 | 21 | |
21 | 22 | steps: |
22 | - uses: actions/checkout@v1 | |
23 | - uses: actions/checkout@v2 | |
23 | 24 | |
24 | 25 | - name: Ubuntu cache |
25 | 26 | uses: actions/cache@v1 |
34 | 35 | |
35 | 36 | - name: macOS cache |
36 | 37 | uses: actions/cache@v1 |
37 | if: startsWith(matrix.os, 'macOS') | |
38 | if: startsWith(matrix.os, 'macos') | |
38 | 39 | with: |
39 | 40 | path: ~/Library/Caches/pip |
40 | 41 | key: |
54 | 55 | restore-keys: | |
55 | 56 | ${{ matrix.os }}-${{ matrix.python-version }}- |
56 | 57 | |
58 | - name: Install Python 3.9 | |
59 | if: matrix.python-version == '3.9' | |
60 | run: | | |
61 | sudo add-apt-repository ppa:deadsnakes/ppa | |
62 | sudo apt-get update | |
63 | sudo apt-get install -y --no-install-recommends python3.9-dev python3.9-distutils python3.9-venv | |
64 | python3.9 -m pip install --upgrade pip setuptools | |
65 | python3.9 -m venv $HOME/venv-python3.9 | |
66 | echo "::set-env name=VIRTUAL_ENV::$HOME/venv-python3.9" | |
67 | echo "::add-path::$HOME/venv-python3.9/bin" | |
68 | ||
57 | 69 | - name: Set up Python ${{ matrix.python-version }} |
70 | if: matrix.python-version != '3.9' | |
58 | 71 | uses: actions/setup-python@v1 |
59 | 72 | with: |
60 | 73 | python-version: ${{ matrix.python-version }} |
72 | 85 | - name: Upload coverage |
73 | 86 | if: success() |
74 | 87 | run: | |
75 | curl -s https://codecov.io/bash -o codecov.sh | |
88 | curl --retry 8 -s https://codecov.io/bash -o codecov.sh | |
76 | 89 | bash codecov.sh -F ${{ matrix.codecov-flag }} |
77 | 90 | env: |
78 | 91 | CODECOV_NAME: ${{ matrix.os }} Python ${{ matrix.python-version }} |
0 | 0 | repos: |
1 | 1 | - repo: https://github.com/asottile/pyupgrade |
2 | rev: v2.0.1 | |
2 | rev: v2.1.0 | |
3 | 3 | hooks: |
4 | 4 | - id: pyupgrade |
5 | 5 | args: ["--py3-plus"] |
17 | 17 | additional_dependencies: [flake8-2020, flake8-implicit-str-concat] |
18 | 18 | |
19 | 19 | - repo: https://github.com/asottile/seed-isort-config |
20 | rev: v1.9.4 | |
20 | rev: v2.1.0 | |
21 | 21 | hooks: |
22 | 22 | - id: seed-isort-config |
23 | 23 |
0 | 0 | Metadata-Version: 2.1 |
1 | 1 | Name: humanize |
2 | Version: 2.0.0 | |
2 | Version: 2.2.0 | |
3 | 3 | Summary: Python humanize utilities |
4 | 4 | Home-page: https://github.com/jmoiron/humanize |
5 | 5 | Author: Jason Moiron |
180 | 180 | How to add new phrases to existing locale files: |
181 | 181 | |
182 | 182 | ```console |
183 | $ xgettext -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
183 | $ xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
184 | 184 | $ msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files |
185 | 185 | $ msgfmt --check -o src/humanize/locale/ru_RU/LC_MESSAGES/humanize{.mo,.po} # compile to binary .mo |
186 | 186 | ``` |
171 | 171 | How to add new phrases to existing locale files: |
172 | 172 | |
173 | 173 | ```console |
174 | $ xgettext -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
174 | $ xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
175 | 175 | $ msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files |
176 | 176 | $ msgfmt --check -o src/humanize/locale/ru_RU/LC_MESSAGES/humanize{.mo,.po} # compile to binary .mo |
177 | 177 | ``` |
6 | 6 | [![Build Status](https://travis-ci.org/hugovk/humanize.svg?branch=master)](https://travis-ci.org/hugovk/humanize) |
7 | 7 | [![GitHub Actions status](https://github.com/jmoiron/humanize/workflows/Test/badge.svg)](https://github.com/jmoiron/humanize/actions) |
8 | 8 | |
9 | https://github.com/hugovk/pypistats/commit/801ed41823e96e2511444dac4dfceb3bdcb37201#diff-60cd2f42437b5cb3c2c09391a6f4c54a | |
10 | ||
11 | 9 | * [ ] Start from a freshly cloned repo: |
12 | 10 | |
13 | 11 | ```bash |
14 | 12 | cd /tmp |
13 | rm -rf humanize | |
15 | 14 | git clone https://github.com/jmoiron/humanize |
16 | 15 | cd humanize |
17 | 16 | ``` |
20 | 19 | |
21 | 20 | ```bash |
22 | 21 | pip install -U pip setuptools wheel twine keyring |
23 | rm -rf build | |
22 | rm -rf build dist | |
24 | 23 | python3 setup.py sdist --format=gztar bdist_wheel |
25 | 24 | twine check dist/* |
26 | twine upload --repository-url https://test.pypi.org/legacy/ dist/humanize-1.0.0* | |
25 | twine upload --repository-url https://test.pypi.org/legacy/ dist/* | |
27 | 26 | ``` |
28 | 27 | |
29 | 28 | - [ ] (Optional) Check **test** installation: |
30 | 29 | |
31 | 30 | ```bash |
32 | pip uninstall -y humanize | |
33 | pip install -U -i https://test.pypi.org/simple/ humanize | |
31 | pip3 uninstall -y humanize | |
32 | pip3 install -U -i https://test.pypi.org/simple/ humanize | |
33 | python3 -c "import humanize; print(humanize.__version__)" | |
34 | 34 | ``` |
35 | 35 | |
36 | 36 | * [ ] Tag with the version number: |
37 | 37 | |
38 | 38 | ```bash |
39 | git tag -a 1.0.0 -m "Release 1.0.0" | |
39 | git tag -a 2.1.0 -m "Release 2.1.0" | |
40 | 40 | ``` |
41 | 41 | |
42 | 42 | * [ ] Create a distribution and release on **live PyPI**: |
43 | 43 | |
44 | 44 | ```bash |
45 | 45 | pip install -U pip setuptools wheel twine keyring |
46 | rm -rf build | |
46 | rm -rf build dist | |
47 | 47 | python3 setup.py sdist --format=gztar bdist_wheel |
48 | 48 | twine check dist/* |
49 | twine upload -r pypi dist/humanize-1.0.0* | |
49 | twine upload -r pypi dist/* | |
50 | 50 | ``` |
51 | 51 | |
52 | 52 | * [ ] Check installation: |
54 | 54 | ```bash |
55 | 55 | pip uninstall -y humanize |
56 | 56 | pip install -U humanize |
57 | python3 -c "import humanize; print(humanize.__version__)" | |
57 | 58 | ``` |
58 | 59 | |
59 | 60 | * [ ] Push tag: |
60 | 61 | ```bash |
61 | 62 | git push --tags |
62 | 63 | ``` |
63 | * [ ] Edit GitHub release: https://github.com/jmoiron/humanize/releases | |
64 | ||
65 | * [ ] Edit release draft, adjust text if needed: https://github.com/jmoiron/humanize/releases | |
66 | ||
67 | * [ ] Check next tag is correct, amend if needed | |
68 | ||
69 | * [ ] Publish release |
0 | set -e | |
1 | ||
2 | # extract new phrases | |
3 | /usr/local/opt/gettext/bin/xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py | |
4 | ||
5 | for d in src/humanize/locale/*/; do | |
6 | locale="$(basename $d)" | |
7 | echo "$locale" | |
8 | # add them to locale files | |
9 | /usr/local/opt/gettext/bin/msgmerge -U src/humanize/locale/$locale/LC_MESSAGES/humanize.po humanize.pot | |
10 | # compile to binary .mo | |
11 | /usr/local/opt/gettext/bin/msgfmt --check -o src/humanize/locale/$locale/LC_MESSAGES/humanize{.mo,.po} | |
12 | done |
9 | 9 | |
10 | 10 | |
11 | 11 | def naturalsize(value, binary=False, gnu=False, format="%.1f"): |
12 | """Format a number of byteslike a human readable filesize (eg. 10 kB). By | |
13 | default, decimal suffixes (kB, MB) are used. Passing binary=true will use | |
14 | binary suffixes (KiB, MiB) are used and the base will be 2**10 instead of | |
15 | 10**3. If ``gnu`` is True, the binary argument is ignored and GNU-style | |
16 | (ls -sh style) prefixes are used (K, M) with the 2**10 definition. | |
17 | Non-gnu modes are compatible with jinja2's ``filesizeformat`` filter.""" | |
12 | """Format a number of bytes like a human readable filesize (eg. 10 kB). | |
13 | ||
14 | By default, decimal suffixes (kB, MB) are used. | |
15 | ||
16 | Non-gnu modes are compatible with jinja2's ``filesizeformat`` filter. | |
17 | ||
18 | Args: | |
19 | value (int, float, string): Integer to convert. | |
20 | binary (Boolean): If `True`, uses binary suffixes (KiB, MiB) with base 2**10 | |
21 | instead of 10**3. | |
22 | gnu (Boolean): If `True`, the binary argument is ignored and GNU-style | |
23 | (`ls -sh` style) prefixes are used (K, M) with the 2**10 definition. | |
24 | format (str): Custom formatter. | |
25 | """ | |
18 | 26 | if gnu: |
19 | 27 | suffix = suffixes["gnu"] |
20 | 28 | elif binary: |
24 | 32 | |
25 | 33 | base = 1024 if (gnu or binary) else 1000 |
26 | 34 | bytes = float(value) |
35 | abs_bytes = abs(bytes) | |
27 | 36 | |
28 | if bytes == 1 and not gnu: | |
29 | return "1 Byte" | |
30 | elif bytes < base and not gnu: | |
37 | if abs_bytes == 1 and not gnu: | |
38 | return "%d Byte" % bytes | |
39 | elif abs_bytes < base and not gnu: | |
31 | 40 | return "%d Bytes" % bytes |
32 | elif bytes < base and gnu: | |
41 | elif abs_bytes < base and gnu: | |
33 | 42 | return "%dB" % bytes |
34 | 43 | |
35 | 44 | for i, s in enumerate(suffix): |
36 | 45 | unit = base ** (i + 2) |
37 | if bytes < unit and not gnu: | |
46 | if abs_bytes < unit and not gnu: | |
38 | 47 | return (format + " %s") % ((base * bytes / unit), s) |
39 | elif bytes < unit and gnu: | |
48 | elif abs_bytes < unit and gnu: | |
40 | 49 | return (format + "%s") % ((base * bytes / unit), s) |
41 | 50 | if gnu: |
42 | 51 | return (format + "%s") % ((base * bytes / unit), s) |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: humanize\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2016-12-18 11:50+0100\n" |
11 | 11 | "Last-Translator: Christian Klein <chris@5711.org>\n" |
12 | 12 | "Language-Team: German\n" |
18 | 18 | "Generated-By: Christian Klein\n" |
19 | 19 | "X-Generator: Sublime Text 3\n" |
20 | 20 | |
21 | #: src/humanize/number.py:24 | |
21 | #: src/humanize/number.py:22 | |
22 | 22 | msgctxt "0" |
23 | 23 | msgid "th" |
24 | 24 | msgstr "." |
25 | 25 | |
26 | #: src/humanize/number.py:25 | |
26 | #: src/humanize/number.py:23 | |
27 | 27 | msgctxt "1" |
28 | 28 | msgid "st" |
29 | 29 | msgstr "." |
30 | 30 | |
31 | #: src/humanize/number.py:26 | |
31 | #: src/humanize/number.py:24 | |
32 | 32 | msgctxt "2" |
33 | 33 | msgid "nd" |
34 | 34 | msgstr "." |
35 | 35 | |
36 | #: src/humanize/number.py:27 | |
36 | #: src/humanize/number.py:25 | |
37 | 37 | msgctxt "3" |
38 | 38 | msgid "rd" |
39 | 39 | msgstr "." |
40 | 40 | |
41 | #: src/humanize/number.py:26 | |
42 | msgctxt "4" | |
43 | msgid "th" | |
44 | msgstr "." | |
45 | ||
46 | #: src/humanize/number.py:27 | |
47 | msgctxt "5" | |
48 | msgid "th" | |
49 | msgstr "." | |
50 | ||
41 | 51 | #: src/humanize/number.py:28 |
42 | msgctxt "4" | |
52 | msgctxt "6" | |
43 | 53 | msgid "th" |
44 | 54 | msgstr "." |
45 | 55 | |
46 | 56 | #: src/humanize/number.py:29 |
47 | msgctxt "5" | |
57 | msgctxt "7" | |
48 | 58 | msgid "th" |
49 | 59 | msgstr "." |
50 | 60 | |
51 | 61 | #: src/humanize/number.py:30 |
52 | msgctxt "6" | |
62 | msgctxt "8" | |
53 | 63 | msgid "th" |
54 | 64 | msgstr "." |
55 | 65 | |
56 | 66 | #: src/humanize/number.py:31 |
57 | msgctxt "7" | |
58 | msgid "th" | |
59 | msgstr "." | |
60 | ||
61 | #: src/humanize/number.py:32 | |
62 | msgctxt "8" | |
63 | msgid "th" | |
64 | msgstr "." | |
65 | ||
66 | #: src/humanize/number.py:33 | |
67 | 67 | msgctxt "9" |
68 | 68 | msgid "th" |
69 | 69 | msgstr "." |
70 | 70 | |
71 | #: src/humanize/number.py:62 | |
71 | #: src/humanize/number.py:73 | |
72 | 72 | msgid "million" |
73 | 73 | msgstr "Million" |
74 | 74 | |
75 | #: src/humanize/number.py:63 | |
75 | #: src/humanize/number.py:74 | |
76 | 76 | msgid "billion" |
77 | 77 | msgstr "Milliarde" |
78 | 78 | |
79 | #: src/humanize/number.py:64 | |
79 | #: src/humanize/number.py:75 | |
80 | 80 | msgid "trillion" |
81 | 81 | msgstr "Billion" |
82 | 82 | |
83 | #: src/humanize/number.py:65 | |
83 | #: src/humanize/number.py:76 | |
84 | 84 | msgid "quadrillion" |
85 | 85 | msgstr "Billiarde" |
86 | 86 | |
87 | #: src/humanize/number.py:66 | |
87 | #: src/humanize/number.py:77 | |
88 | 88 | msgid "quintillion" |
89 | 89 | msgstr "Trillion" |
90 | 90 | |
91 | #: src/humanize/number.py:67 | |
91 | #: src/humanize/number.py:78 | |
92 | 92 | msgid "sextillion" |
93 | 93 | msgstr "Trilliarde" |
94 | 94 | |
95 | #: src/humanize/number.py:68 | |
95 | #: src/humanize/number.py:79 | |
96 | 96 | msgid "septillion" |
97 | 97 | msgstr "Quadrillion" |
98 | 98 | |
99 | #: src/humanize/number.py:69 | |
99 | #: src/humanize/number.py:80 | |
100 | 100 | msgid "octillion" |
101 | 101 | msgstr "Quadrillarde" |
102 | 102 | |
103 | #: src/humanize/number.py:70 | |
103 | #: src/humanize/number.py:81 | |
104 | 104 | msgid "nonillion" |
105 | 105 | msgstr "Quintillion" |
106 | 106 | |
107 | #: src/humanize/number.py:71 | |
107 | #: src/humanize/number.py:82 | |
108 | 108 | msgid "decillion" |
109 | 109 | msgstr "Quintilliarde" |
110 | 110 | |
111 | #: src/humanize/number.py:72 | |
111 | #: src/humanize/number.py:83 | |
112 | 112 | msgid "googol" |
113 | 113 | msgstr "Googol" |
114 | 114 | |
115 | #: src/humanize/number.py:108 | |
115 | #: src/humanize/number.py:138 | |
116 | msgid "zero" | |
117 | msgstr "null" | |
118 | ||
119 | #: src/humanize/number.py:139 | |
116 | 120 | msgid "one" |
117 | 121 | msgstr "eins" |
118 | 122 | |
119 | #: src/humanize/number.py:109 | |
123 | #: src/humanize/number.py:140 | |
120 | 124 | msgid "two" |
121 | 125 | msgstr "zwei" |
122 | 126 | |
123 | #: src/humanize/number.py:110 | |
127 | #: src/humanize/number.py:141 | |
124 | 128 | msgid "three" |
125 | 129 | msgstr "drei" |
126 | 130 | |
127 | #: src/humanize/number.py:111 | |
131 | #: src/humanize/number.py:142 | |
128 | 132 | msgid "four" |
129 | 133 | msgstr "vier" |
130 | 134 | |
131 | #: src/humanize/number.py:112 | |
135 | #: src/humanize/number.py:143 | |
132 | 136 | msgid "five" |
133 | 137 | msgstr "fünf" |
134 | 138 | |
135 | #: src/humanize/number.py:113 | |
139 | #: src/humanize/number.py:144 | |
136 | 140 | msgid "six" |
137 | 141 | msgstr "sechs" |
138 | 142 | |
139 | #: src/humanize/number.py:114 | |
143 | #: src/humanize/number.py:145 | |
140 | 144 | msgid "seven" |
141 | 145 | msgstr "sieben" |
142 | 146 | |
143 | #: src/humanize/number.py:115 | |
147 | #: src/humanize/number.py:146 | |
144 | 148 | msgid "eight" |
145 | 149 | msgstr "acht" |
146 | 150 | |
147 | #: src/humanize/number.py:116 | |
151 | #: src/humanize/number.py:147 | |
148 | 152 | msgid "nine" |
149 | 153 | msgstr "neun" |
150 | 154 | |
151 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
155 | #: src/humanize/time.py:87 | |
156 | #, fuzzy, python-format | |
157 | msgid "%d microsecond" | |
158 | msgid_plural "%d microseconds" | |
159 | msgstr[0] "%d Mikrosekunde" | |
160 | msgstr[1] "%d Mikrosekunden" | |
161 | ||
162 | #: src/humanize/time.py:93 | |
163 | #, fuzzy, python-format | |
164 | msgid "%d millisecond" | |
165 | msgid_plural "%d milliseconds" | |
166 | msgstr[0] "%d Millisekunde" | |
167 | msgstr[1] "%d Millisekunden" | |
168 | ||
169 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
152 | 170 | msgid "a moment" |
153 | 171 | msgstr "ein Moment" |
154 | 172 | |
155 | #: src/humanize/time.py:70 | |
173 | #: src/humanize/time.py:98 | |
156 | 174 | msgid "a second" |
157 | 175 | msgstr "eine Sekunde" |
158 | 176 | |
159 | #: src/humanize/time.py:72 | |
177 | #: src/humanize/time.py:100 | |
160 | 178 | #, python-format |
161 | 179 | msgid "%d second" |
162 | 180 | msgid_plural "%d seconds" |
163 | 181 | msgstr[0] "%d Sekunde" |
164 | 182 | msgstr[1] "%d Sekunden" |
165 | 183 | |
166 | #: src/humanize/time.py:74 | |
184 | #: src/humanize/time.py:102 | |
167 | 185 | msgid "a minute" |
168 | 186 | msgstr "eine Minute" |
169 | 187 | |
170 | #: src/humanize/time.py:77 | |
188 | #: src/humanize/time.py:105 | |
171 | 189 | #, python-format |
172 | 190 | msgid "%d minute" |
173 | 191 | msgid_plural "%d minutes" |
174 | 192 | msgstr[0] "%d Minute" |
175 | 193 | msgstr[1] "%d Minuten" |
176 | 194 | |
177 | #: src/humanize/time.py:79 | |
195 | #: src/humanize/time.py:107 | |
178 | 196 | msgid "an hour" |
179 | 197 | msgstr "eine Stunde" |
180 | 198 | |
181 | #: src/humanize/time.py:82 | |
199 | #: src/humanize/time.py:110 | |
182 | 200 | #, python-format |
183 | 201 | msgid "%d hour" |
184 | 202 | msgid_plural "%d hours" |
185 | 203 | msgstr[0] "%d Stunde" |
186 | 204 | msgstr[1] "%d Stunden" |
187 | 205 | |
188 | #: src/humanize/time.py:85 | |
206 | #: src/humanize/time.py:113 | |
189 | 207 | msgid "a day" |
190 | 208 | msgstr "ein Tag" |
191 | 209 | |
192 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
210 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
193 | 211 | #, python-format |
194 | 212 | msgid "%d day" |
195 | 213 | msgid_plural "%d days" |
196 | 214 | msgstr[0] "%d Tag" |
197 | 215 | msgstr[1] "%d Tage" |
198 | 216 | |
199 | #: src/humanize/time.py:92 | |
217 | #: src/humanize/time.py:120 | |
200 | 218 | msgid "a month" |
201 | 219 | msgstr "ein Monat" |
202 | 220 | |
203 | #: src/humanize/time.py:94 | |
221 | #: src/humanize/time.py:122 | |
204 | 222 | #, python-format |
205 | 223 | msgid "%d month" |
206 | 224 | msgid_plural "%d months" |
207 | 225 | msgstr[0] "%d Monat" |
208 | 226 | msgstr[1] "%d Monate" |
209 | 227 | |
210 | #: src/humanize/time.py:97 | |
228 | #: src/humanize/time.py:125 | |
211 | 229 | msgid "a year" |
212 | 230 | msgstr "ein Jahr" |
213 | 231 | |
214 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
232 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
215 | 233 | #, python-format |
216 | 234 | msgid "1 year, %d day" |
217 | 235 | msgid_plural "1 year, %d days" |
218 | 236 | msgstr[0] "ein Jahr und %d Tag" |
219 | 237 | msgstr[1] "ein Jahr und %d Tage" |
220 | 238 | |
221 | #: src/humanize/time.py:102 | |
239 | #: src/humanize/time.py:130 | |
222 | 240 | msgid "1 year, 1 month" |
223 | 241 | msgstr "ein Monat" |
224 | 242 | |
225 | #: src/humanize/time.py:105 | |
243 | #: src/humanize/time.py:133 | |
226 | 244 | #, python-format |
227 | 245 | msgid "1 year, %d month" |
228 | 246 | msgid_plural "1 year, %d months" |
229 | 247 | msgstr[0] "ein Jahr und %d Monat" |
230 | 248 | msgstr[1] "ein Jahr und %d Monate" |
231 | 249 | |
232 | #: src/humanize/time.py:110 | |
250 | #: src/humanize/time.py:138 | |
233 | 251 | #, python-format |
234 | 252 | msgid "%d year" |
235 | 253 | msgid_plural "%d years" |
236 | 254 | msgstr[0] "%d Jahr" |
237 | 255 | msgstr[1] "%d Jahre" |
238 | 256 | |
239 | #: src/humanize/time.py:128 | |
257 | #: src/humanize/time.py:167 | |
240 | 258 | #, python-format |
241 | 259 | msgid "%s from now" |
242 | 260 | msgstr "%s ab jetzt" |
243 | 261 | |
244 | #: src/humanize/time.py:128 | |
262 | #: src/humanize/time.py:167 | |
245 | 263 | #, python-format |
246 | 264 | msgid "%s ago" |
247 | 265 | msgstr "vor %s" |
248 | 266 | |
249 | #: src/humanize/time.py:132 | |
267 | #: src/humanize/time.py:171 | |
250 | 268 | msgid "now" |
251 | 269 | msgstr "jetzt" |
252 | 270 | |
253 | #: src/humanize/time.py:151 | |
271 | #: src/humanize/time.py:190 | |
254 | 272 | msgid "today" |
255 | 273 | msgstr "heute" |
256 | 274 | |
257 | #: src/humanize/time.py:153 | |
275 | #: src/humanize/time.py:192 | |
258 | 276 | msgid "tomorrow" |
259 | 277 | msgstr "morgen" |
260 | 278 | |
261 | #: src/humanize/time.py:155 | |
279 | #: src/humanize/time.py:194 | |
262 | 280 | msgid "yesterday" |
263 | 281 | msgstr "gestern" |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: humanize\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2017-03-02 11:26+0200\n" |
11 | 11 | "Last-Translator: Ville Skyttä <ville.skytta@iki.fi>\n" |
12 | 12 | "Language-Team: Finnish\n" |
17 | 17 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" |
18 | 18 | "X-Generator: Poedit 1.8.12\n" |
19 | 19 | |
20 | #: src/humanize/number.py:24 | |
20 | #: src/humanize/number.py:22 | |
21 | 21 | msgctxt "0" |
22 | 22 | msgid "th" |
23 | 23 | msgstr "." |
24 | 24 | |
25 | #: src/humanize/number.py:25 | |
25 | #: src/humanize/number.py:23 | |
26 | 26 | msgctxt "1" |
27 | 27 | msgid "st" |
28 | 28 | msgstr "." |
29 | 29 | |
30 | #: src/humanize/number.py:26 | |
30 | #: src/humanize/number.py:24 | |
31 | 31 | msgctxt "2" |
32 | 32 | msgid "nd" |
33 | 33 | msgstr "." |
34 | 34 | |
35 | #: src/humanize/number.py:27 | |
35 | #: src/humanize/number.py:25 | |
36 | 36 | msgctxt "3" |
37 | 37 | msgid "rd" |
38 | 38 | msgstr "." |
39 | 39 | |
40 | #: src/humanize/number.py:26 | |
41 | msgctxt "4" | |
42 | msgid "th" | |
43 | msgstr "." | |
44 | ||
45 | #: src/humanize/number.py:27 | |
46 | msgctxt "5" | |
47 | msgid "th" | |
48 | msgstr "." | |
49 | ||
40 | 50 | #: src/humanize/number.py:28 |
41 | msgctxt "4" | |
51 | msgctxt "6" | |
42 | 52 | msgid "th" |
43 | 53 | msgstr "." |
44 | 54 | |
45 | 55 | #: src/humanize/number.py:29 |
46 | msgctxt "5" | |
56 | msgctxt "7" | |
47 | 57 | msgid "th" |
48 | 58 | msgstr "." |
49 | 59 | |
50 | 60 | #: src/humanize/number.py:30 |
51 | msgctxt "6" | |
61 | msgctxt "8" | |
52 | 62 | msgid "th" |
53 | 63 | msgstr "." |
54 | 64 | |
55 | 65 | #: src/humanize/number.py:31 |
56 | msgctxt "7" | |
57 | msgid "th" | |
58 | msgstr "." | |
59 | ||
60 | #: src/humanize/number.py:32 | |
61 | msgctxt "8" | |
62 | msgid "th" | |
63 | msgstr "." | |
64 | ||
65 | #: src/humanize/number.py:33 | |
66 | 66 | msgctxt "9" |
67 | 67 | msgid "th" |
68 | 68 | msgstr "." |
69 | 69 | |
70 | #: src/humanize/number.py:62 | |
70 | #: src/humanize/number.py:73 | |
71 | 71 | msgid "million" |
72 | 72 | msgstr "miljoonaa" |
73 | 73 | |
74 | #: src/humanize/number.py:63 | |
74 | #: src/humanize/number.py:74 | |
75 | 75 | msgid "billion" |
76 | 76 | msgstr "miljardia" |
77 | 77 | |
78 | #: src/humanize/number.py:64 | |
78 | #: src/humanize/number.py:75 | |
79 | 79 | msgid "trillion" |
80 | 80 | msgstr "biljoonaa" |
81 | 81 | |
82 | #: src/humanize/number.py:65 | |
82 | #: src/humanize/number.py:76 | |
83 | 83 | msgid "quadrillion" |
84 | 84 | msgstr "kvadriljoonaa" |
85 | 85 | |
86 | #: src/humanize/number.py:66 | |
86 | #: src/humanize/number.py:77 | |
87 | 87 | msgid "quintillion" |
88 | 88 | msgstr "kvintiljoonaa" |
89 | 89 | |
90 | #: src/humanize/number.py:67 | |
90 | #: src/humanize/number.py:78 | |
91 | 91 | msgid "sextillion" |
92 | 92 | msgstr "sekstiljoonaa" |
93 | 93 | |
94 | #: src/humanize/number.py:68 | |
94 | #: src/humanize/number.py:79 | |
95 | 95 | msgid "septillion" |
96 | 96 | msgstr "septiljoonaa" |
97 | 97 | |
98 | #: src/humanize/number.py:69 | |
98 | #: src/humanize/number.py:80 | |
99 | 99 | msgid "octillion" |
100 | 100 | msgstr "oktiljoonaa" |
101 | 101 | |
102 | #: src/humanize/number.py:70 | |
102 | #: src/humanize/number.py:81 | |
103 | 103 | msgid "nonillion" |
104 | 104 | msgstr "noniljoonaa" |
105 | 105 | |
106 | #: src/humanize/number.py:71 | |
106 | #: src/humanize/number.py:82 | |
107 | 107 | msgid "decillion" |
108 | 108 | msgstr "dekiljoonaa" |
109 | 109 | |
110 | #: src/humanize/number.py:72 | |
110 | #: src/humanize/number.py:83 | |
111 | 111 | msgid "googol" |
112 | 112 | msgstr "googol" |
113 | 113 | |
114 | #: src/humanize/number.py:108 | |
114 | #: src/humanize/number.py:138 | |
115 | msgid "zero" | |
116 | msgstr "nolla" | |
117 | ||
118 | #: src/humanize/number.py:139 | |
115 | 119 | msgid "one" |
116 | 120 | msgstr "yksi" |
117 | 121 | |
118 | #: src/humanize/number.py:109 | |
122 | #: src/humanize/number.py:140 | |
119 | 123 | msgid "two" |
120 | 124 | msgstr "kaksi" |
121 | 125 | |
122 | #: src/humanize/number.py:110 | |
126 | #: src/humanize/number.py:141 | |
123 | 127 | msgid "three" |
124 | 128 | msgstr "kolme" |
125 | 129 | |
126 | #: src/humanize/number.py:111 | |
130 | #: src/humanize/number.py:142 | |
127 | 131 | msgid "four" |
128 | 132 | msgstr "neljä" |
129 | 133 | |
130 | #: src/humanize/number.py:112 | |
134 | #: src/humanize/number.py:143 | |
131 | 135 | msgid "five" |
132 | 136 | msgstr "viisi" |
133 | 137 | |
134 | #: src/humanize/number.py:113 | |
138 | #: src/humanize/number.py:144 | |
135 | 139 | msgid "six" |
136 | 140 | msgstr "kuusi" |
137 | 141 | |
138 | #: src/humanize/number.py:114 | |
142 | #: src/humanize/number.py:145 | |
139 | 143 | msgid "seven" |
140 | 144 | msgstr "seitsemän" |
141 | 145 | |
142 | #: src/humanize/number.py:115 | |
146 | #: src/humanize/number.py:146 | |
143 | 147 | msgid "eight" |
144 | 148 | msgstr "kahdeksan" |
145 | 149 | |
146 | #: src/humanize/number.py:116 | |
150 | #: src/humanize/number.py:147 | |
147 | 151 | msgid "nine" |
148 | 152 | msgstr "yhdeksän" |
149 | 153 | |
150 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
154 | #: src/humanize/time.py:87 | |
155 | #, fuzzy, python-format | |
156 | msgid "%d microsecond" | |
157 | msgid_plural "%d microseconds" | |
158 | msgstr[0] "%d mikrosekunti" | |
159 | msgstr[1] "%d mikrosekuntia" | |
160 | ||
161 | #: src/humanize/time.py:93 | |
162 | #, fuzzy, python-format | |
163 | msgid "%d millisecond" | |
164 | msgid_plural "%d milliseconds" | |
165 | msgstr[0] "%d millisekunti" | |
166 | msgstr[1] "%d millisekuntia" | |
167 | ||
168 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
151 | 169 | msgid "a moment" |
152 | 170 | msgstr "hetki" |
153 | 171 | |
154 | #: src/humanize/time.py:70 | |
172 | #: src/humanize/time.py:98 | |
155 | 173 | msgid "a second" |
156 | 174 | msgstr "sekunti" |
157 | 175 | |
158 | #: src/humanize/time.py:72 | |
176 | #: src/humanize/time.py:100 | |
159 | 177 | #, python-format |
160 | 178 | msgid "%d second" |
161 | 179 | msgid_plural "%d seconds" |
162 | 180 | msgstr[0] "%d sekunti" |
163 | 181 | msgstr[1] "%d sekuntia" |
164 | 182 | |
165 | #: src/humanize/time.py:74 | |
183 | #: src/humanize/time.py:102 | |
166 | 184 | msgid "a minute" |
167 | 185 | msgstr "minuutti" |
168 | 186 | |
169 | #: src/humanize/time.py:77 | |
187 | #: src/humanize/time.py:105 | |
170 | 188 | #, python-format |
171 | 189 | msgid "%d minute" |
172 | 190 | msgid_plural "%d minutes" |
173 | 191 | msgstr[0] "%d minuutti" |
174 | 192 | msgstr[1] "%d minuuttia" |
175 | 193 | |
176 | #: src/humanize/time.py:79 | |
194 | #: src/humanize/time.py:107 | |
177 | 195 | msgid "an hour" |
178 | 196 | msgstr "tunti" |
179 | 197 | |
180 | #: src/humanize/time.py:82 | |
198 | #: src/humanize/time.py:110 | |
181 | 199 | #, python-format |
182 | 200 | msgid "%d hour" |
183 | 201 | msgid_plural "%d hours" |
184 | 202 | msgstr[0] "%d tunti" |
185 | 203 | msgstr[1] "%d tuntia" |
186 | 204 | |
187 | #: src/humanize/time.py:85 | |
205 | #: src/humanize/time.py:113 | |
188 | 206 | msgid "a day" |
189 | 207 | msgstr "päivä" |
190 | 208 | |
191 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
209 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
192 | 210 | #, python-format |
193 | 211 | msgid "%d day" |
194 | 212 | msgid_plural "%d days" |
195 | 213 | msgstr[0] "%d päivä" |
196 | 214 | msgstr[1] "%d päivää" |
197 | 215 | |
198 | #: src/humanize/time.py:92 | |
216 | #: src/humanize/time.py:120 | |
199 | 217 | msgid "a month" |
200 | 218 | msgstr "kuukausi" |
201 | 219 | |
202 | #: src/humanize/time.py:94 | |
220 | #: src/humanize/time.py:122 | |
203 | 221 | #, python-format |
204 | 222 | msgid "%d month" |
205 | 223 | msgid_plural "%d months" |
206 | 224 | msgstr[0] "%d kuukausi" |
207 | 225 | msgstr[1] "%d kuukautta" |
208 | 226 | |
209 | #: src/humanize/time.py:97 | |
227 | #: src/humanize/time.py:125 | |
210 | 228 | msgid "a year" |
211 | 229 | msgstr "vuosi" |
212 | 230 | |
213 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
231 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
214 | 232 | #, python-format |
215 | 233 | msgid "1 year, %d day" |
216 | 234 | msgid_plural "1 year, %d days" |
217 | 235 | msgstr[0] "1 vuosi, %d päivä" |
218 | 236 | msgstr[1] "1 vuosi, %d päivää" |
219 | 237 | |
220 | #: src/humanize/time.py:102 | |
238 | #: src/humanize/time.py:130 | |
221 | 239 | msgid "1 year, 1 month" |
222 | 240 | msgstr "1 vuosi, 1 kuukausi" |
223 | 241 | |
224 | #: src/humanize/time.py:105 | |
242 | #: src/humanize/time.py:133 | |
225 | 243 | #, python-format |
226 | 244 | msgid "1 year, %d month" |
227 | 245 | msgid_plural "1 year, %d months" |
228 | 246 | msgstr[0] "1 vuosi, %d kuukausi" |
229 | 247 | msgstr[1] "1 vuosi, %d kuukautta" |
230 | 248 | |
231 | #: src/humanize/time.py:110 | |
249 | #: src/humanize/time.py:138 | |
232 | 250 | #, python-format |
233 | 251 | msgid "%d year" |
234 | 252 | msgid_plural "%d years" |
235 | 253 | msgstr[0] "%d vuosi" |
236 | 254 | msgstr[1] "%d vuotta" |
237 | 255 | |
238 | #: src/humanize/time.py:128 | |
256 | #: src/humanize/time.py:167 | |
239 | 257 | #, python-format |
240 | 258 | msgid "%s from now" |
241 | 259 | msgstr "%s tästä" |
242 | 260 | |
243 | #: src/humanize/time.py:128 | |
261 | #: src/humanize/time.py:167 | |
244 | 262 | #, python-format |
245 | 263 | msgid "%s ago" |
246 | 264 | msgstr "%s sitten" |
247 | 265 | |
248 | #: src/humanize/time.py:132 | |
266 | #: src/humanize/time.py:171 | |
249 | 267 | msgid "now" |
250 | 268 | msgstr "nyt" |
251 | 269 | |
252 | #: src/humanize/time.py:151 | |
270 | #: src/humanize/time.py:190 | |
253 | 271 | msgid "today" |
254 | 272 | msgstr "tänään" |
255 | 273 | |
256 | #: src/humanize/time.py:153 | |
274 | #: src/humanize/time.py:192 | |
257 | 275 | msgid "tomorrow" |
258 | 276 | msgstr "huomenna" |
259 | 277 | |
260 | #: src/humanize/time.py:155 | |
278 | #: src/humanize/time.py:194 | |
261 | 279 | msgid "yesterday" |
262 | 280 | msgstr "eilen" |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: PROJECT VERSION\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2013-06-22 08:52+0100\n" |
11 | 11 | "Last-Translator: Olivier Cortès <oc@1flow.io>\n" |
12 | 12 | "Language-Team: fr_FR <LL@li.org>\n" |
18 | 18 | "Generated-By: Babel 0.9.6\n" |
19 | 19 | "X-Generator: Poedit 1.5.5\n" |
20 | 20 | |
21 | #: src/humanize/number.py:24 | |
21 | #: src/humanize/number.py:22 | |
22 | 22 | #, fuzzy |
23 | 23 | msgctxt "0" |
24 | 24 | msgid "th" |
25 | 25 | msgstr "e" |
26 | 26 | |
27 | #: src/humanize/number.py:25 | |
27 | #: src/humanize/number.py:23 | |
28 | 28 | #, fuzzy |
29 | 29 | msgctxt "1" |
30 | 30 | msgid "st" |
31 | 31 | msgstr "er" |
32 | 32 | |
33 | #: src/humanize/number.py:26 | |
33 | #: src/humanize/number.py:24 | |
34 | 34 | #, fuzzy |
35 | 35 | msgctxt "2" |
36 | 36 | msgid "nd" |
37 | 37 | msgstr "e" |
38 | 38 | |
39 | #: src/humanize/number.py:27 | |
39 | #: src/humanize/number.py:25 | |
40 | 40 | #, fuzzy |
41 | 41 | msgctxt "3" |
42 | 42 | msgid "rd" |
43 | 43 | msgstr "e" |
44 | 44 | |
45 | #: src/humanize/number.py:26 | |
46 | #, fuzzy | |
47 | msgctxt "4" | |
48 | msgid "th" | |
49 | msgstr "e" | |
50 | ||
51 | #: src/humanize/number.py:27 | |
52 | #, fuzzy | |
53 | msgctxt "5" | |
54 | msgid "th" | |
55 | msgstr "e" | |
56 | ||
45 | 57 | #: src/humanize/number.py:28 |
46 | 58 | #, fuzzy |
47 | msgctxt "4" | |
59 | msgctxt "6" | |
48 | 60 | msgid "th" |
49 | 61 | msgstr "e" |
50 | 62 | |
51 | 63 | #: src/humanize/number.py:29 |
52 | 64 | #, fuzzy |
53 | msgctxt "5" | |
65 | msgctxt "7" | |
54 | 66 | msgid "th" |
55 | 67 | msgstr "e" |
56 | 68 | |
57 | 69 | #: src/humanize/number.py:30 |
58 | 70 | #, fuzzy |
59 | msgctxt "6" | |
71 | msgctxt "8" | |
60 | 72 | msgid "th" |
61 | 73 | msgstr "e" |
62 | 74 | |
63 | 75 | #: src/humanize/number.py:31 |
64 | 76 | #, fuzzy |
65 | msgctxt "7" | |
66 | msgid "th" | |
67 | msgstr "e" | |
68 | ||
69 | #: src/humanize/number.py:32 | |
70 | #, fuzzy | |
71 | msgctxt "8" | |
72 | msgid "th" | |
73 | msgstr "e" | |
74 | ||
75 | #: src/humanize/number.py:33 | |
76 | #, fuzzy | |
77 | 77 | msgctxt "9" |
78 | 78 | msgid "th" |
79 | 79 | msgstr "e" |
80 | 80 | |
81 | #: src/humanize/number.py:62 | |
81 | #: src/humanize/number.py:73 | |
82 | 82 | #, fuzzy |
83 | 83 | msgid "million" |
84 | 84 | msgstr "%(value)s million" |
85 | 85 | |
86 | #: src/humanize/number.py:63 | |
86 | #: src/humanize/number.py:74 | |
87 | 87 | msgid "billion" |
88 | 88 | msgstr "milliard" |
89 | 89 | |
90 | #: src/humanize/number.py:64 | |
90 | #: src/humanize/number.py:75 | |
91 | 91 | #, fuzzy |
92 | 92 | msgid "trillion" |
93 | 93 | msgstr "%(value)s billion" |
94 | 94 | |
95 | #: src/humanize/number.py:65 | |
95 | #: src/humanize/number.py:76 | |
96 | 96 | #, fuzzy |
97 | 97 | msgid "quadrillion" |
98 | 98 | msgstr "%(value)s billiard" |
99 | 99 | |
100 | #: src/humanize/number.py:66 | |
100 | #: src/humanize/number.py:77 | |
101 | 101 | #, fuzzy |
102 | 102 | msgid "quintillion" |
103 | 103 | msgstr "%(value)s trillion" |
104 | 104 | |
105 | #: src/humanize/number.py:67 | |
105 | #: src/humanize/number.py:78 | |
106 | 106 | #, fuzzy |
107 | 107 | msgid "sextillion" |
108 | 108 | msgstr "%(value)s trilliard" |
109 | 109 | |
110 | #: src/humanize/number.py:68 | |
110 | #: src/humanize/number.py:79 | |
111 | 111 | #, fuzzy |
112 | 112 | msgid "septillion" |
113 | 113 | msgstr "%(value)s quatrillion" |
114 | 114 | |
115 | #: src/humanize/number.py:69 | |
115 | #: src/humanize/number.py:80 | |
116 | 116 | #, fuzzy |
117 | 117 | msgid "octillion" |
118 | 118 | msgstr "%(value)s quadrilliard" |
119 | 119 | |
120 | #: src/humanize/number.py:70 | |
120 | #: src/humanize/number.py:81 | |
121 | 121 | #, fuzzy |
122 | 122 | msgid "nonillion" |
123 | 123 | msgstr "%(value)s quintillion" |
124 | 124 | |
125 | #: src/humanize/number.py:71 | |
125 | #: src/humanize/number.py:82 | |
126 | 126 | #, fuzzy |
127 | 127 | msgid "decillion" |
128 | 128 | msgstr "%(value)s quintilliard" |
129 | 129 | |
130 | #: src/humanize/number.py:72 | |
130 | #: src/humanize/number.py:83 | |
131 | 131 | #, fuzzy |
132 | 132 | msgid "googol" |
133 | 133 | msgstr "%(value)s gogol" |
134 | 134 | |
135 | #: src/humanize/number.py:108 | |
135 | #: src/humanize/number.py:138 | |
136 | msgid "zero" | |
137 | msgstr "zéro" | |
138 | ||
139 | #: src/humanize/number.py:139 | |
136 | 140 | msgid "one" |
137 | 141 | msgstr "un" |
138 | 142 | |
139 | #: src/humanize/number.py:109 | |
143 | #: src/humanize/number.py:140 | |
140 | 144 | msgid "two" |
141 | 145 | msgstr "deux" |
142 | 146 | |
143 | #: src/humanize/number.py:110 | |
147 | #: src/humanize/number.py:141 | |
144 | 148 | msgid "three" |
145 | 149 | msgstr "trois" |
146 | 150 | |
147 | #: src/humanize/number.py:111 | |
151 | #: src/humanize/number.py:142 | |
148 | 152 | msgid "four" |
149 | 153 | msgstr "quatre" |
150 | 154 | |
151 | #: src/humanize/number.py:112 | |
155 | #: src/humanize/number.py:143 | |
152 | 156 | msgid "five" |
153 | 157 | msgstr "cinq" |
154 | 158 | |
155 | #: src/humanize/number.py:113 | |
159 | #: src/humanize/number.py:144 | |
156 | 160 | msgid "six" |
157 | 161 | msgstr "six" |
158 | 162 | |
159 | #: src/humanize/number.py:114 | |
163 | #: src/humanize/number.py:145 | |
160 | 164 | msgid "seven" |
161 | 165 | msgstr "sept" |
162 | 166 | |
163 | #: src/humanize/number.py:115 | |
167 | #: src/humanize/number.py:146 | |
164 | 168 | msgid "eight" |
165 | 169 | msgstr "huit" |
166 | 170 | |
167 | #: src/humanize/number.py:116 | |
171 | #: src/humanize/number.py:147 | |
168 | 172 | msgid "nine" |
169 | 173 | msgstr "neuf" |
170 | 174 | |
171 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
175 | #: src/humanize/time.py:87 | |
176 | #, fuzzy, python-format | |
177 | msgid "%d microsecond" | |
178 | msgid_plural "%d microseconds" | |
179 | msgstr[0] "%d microseconde" | |
180 | msgstr[1] "%d microsecondes" | |
181 | ||
182 | #: src/humanize/time.py:93 | |
183 | #, fuzzy, python-format | |
184 | msgid "%d millisecond" | |
185 | msgid_plural "%d milliseconds" | |
186 | msgstr[0] "%d milliseconde" | |
187 | msgstr[1] "%d millisecondes" | |
188 | ||
189 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
172 | 190 | msgid "a moment" |
173 | 191 | msgstr "un moment" |
174 | 192 | |
175 | #: src/humanize/time.py:70 | |
193 | #: src/humanize/time.py:98 | |
176 | 194 | msgid "a second" |
177 | 195 | msgstr "une seconde" |
178 | 196 | |
179 | #: src/humanize/time.py:72 | |
197 | #: src/humanize/time.py:100 | |
180 | 198 | #, python-format |
181 | 199 | msgid "%d second" |
182 | 200 | msgid_plural "%d seconds" |
183 | 201 | msgstr[0] "%d seconde" |
184 | 202 | msgstr[1] "%d secondes" |
185 | 203 | |
186 | #: src/humanize/time.py:74 | |
204 | #: src/humanize/time.py:102 | |
187 | 205 | msgid "a minute" |
188 | 206 | msgstr "une minute" |
189 | 207 | |
190 | #: src/humanize/time.py:77 | |
208 | #: src/humanize/time.py:105 | |
191 | 209 | #, python-format |
192 | 210 | msgid "%d minute" |
193 | 211 | msgid_plural "%d minutes" |
194 | 212 | msgstr[0] "%d minute" |
195 | 213 | msgstr[1] "%d minutes" |
196 | 214 | |
197 | #: src/humanize/time.py:79 | |
215 | #: src/humanize/time.py:107 | |
198 | 216 | msgid "an hour" |
199 | 217 | msgstr "une heure" |
200 | 218 | |
201 | #: src/humanize/time.py:82 | |
219 | #: src/humanize/time.py:110 | |
202 | 220 | #, python-format |
203 | 221 | msgid "%d hour" |
204 | 222 | msgid_plural "%d hours" |
205 | 223 | msgstr[0] "%d heure" |
206 | 224 | msgstr[1] "%d heures" |
207 | 225 | |
208 | #: src/humanize/time.py:85 | |
226 | #: src/humanize/time.py:113 | |
209 | 227 | msgid "a day" |
210 | 228 | msgstr "un jour" |
211 | 229 | |
212 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
230 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
213 | 231 | #, python-format |
214 | 232 | msgid "%d day" |
215 | 233 | msgid_plural "%d days" |
216 | 234 | msgstr[0] "%d jour" |
217 | 235 | msgstr[1] "%d jours" |
218 | 236 | |
219 | #: src/humanize/time.py:92 | |
237 | #: src/humanize/time.py:120 | |
220 | 238 | msgid "a month" |
221 | 239 | msgstr "un mois" |
222 | 240 | |
223 | #: src/humanize/time.py:94 | |
241 | #: src/humanize/time.py:122 | |
224 | 242 | #, python-format |
225 | 243 | msgid "%d month" |
226 | 244 | msgid_plural "%d months" |
227 | 245 | msgstr[0] "%d mois" |
228 | 246 | msgstr[1] "%d mois" |
229 | 247 | |
230 | #: src/humanize/time.py:97 | |
248 | #: src/humanize/time.py:125 | |
231 | 249 | msgid "a year" |
232 | 250 | msgstr "un an" |
233 | 251 | |
234 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
252 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
235 | 253 | #, python-format |
236 | 254 | msgid "1 year, %d day" |
237 | 255 | msgid_plural "1 year, %d days" |
238 | 256 | msgstr[0] "un an et %d jour" |
239 | 257 | msgstr[1] "un an et %d jours" |
240 | 258 | |
241 | #: src/humanize/time.py:102 | |
259 | #: src/humanize/time.py:130 | |
242 | 260 | msgid "1 year, 1 month" |
243 | 261 | msgstr "un an et un mois" |
244 | 262 | |
245 | #: src/humanize/time.py:105 | |
263 | #: src/humanize/time.py:133 | |
246 | 264 | #, python-format |
247 | 265 | msgid "1 year, %d month" |
248 | 266 | msgid_plural "1 year, %d months" |
249 | 267 | msgstr[0] "un an et %d mois" |
250 | 268 | msgstr[1] "un an et %d mois" |
251 | 269 | |
252 | #: src/humanize/time.py:110 | |
270 | #: src/humanize/time.py:138 | |
253 | 271 | #, python-format |
254 | 272 | msgid "%d year" |
255 | 273 | msgid_plural "%d years" |
256 | 274 | msgstr[0] "%d an" |
257 | 275 | msgstr[1] "%d ans" |
258 | 276 | |
259 | #: src/humanize/time.py:128 | |
277 | #: src/humanize/time.py:167 | |
260 | 278 | #, python-format |
261 | 279 | msgid "%s from now" |
262 | 280 | msgstr "dans %s" |
263 | 281 | |
264 | #: src/humanize/time.py:128 | |
282 | #: src/humanize/time.py:167 | |
265 | 283 | #, python-format |
266 | 284 | msgid "%s ago" |
267 | 285 | msgstr "il y a %s" |
268 | 286 | |
269 | #: src/humanize/time.py:132 | |
287 | #: src/humanize/time.py:171 | |
270 | 288 | msgid "now" |
271 | 289 | msgstr "maintenant" |
272 | 290 | |
273 | #: src/humanize/time.py:151 | |
291 | #: src/humanize/time.py:190 | |
274 | 292 | msgid "today" |
275 | 293 | msgstr "aujourd'hui" |
276 | 294 | |
277 | #: src/humanize/time.py:153 | |
295 | #: src/humanize/time.py:192 | |
278 | 296 | msgid "tomorrow" |
279 | 297 | msgstr "demain" |
280 | 298 | |
281 | #: src/humanize/time.py:155 | |
299 | #: src/humanize/time.py:194 | |
282 | 300 | msgid "yesterday" |
283 | 301 | msgstr "hier" |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: \n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2018-10-27 22:52+0200\n" |
11 | 11 | "Last-Translator: derfel <code@derfel.net>\n" |
12 | 12 | "Language-Team: Italian\n" |
17 | 17 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" |
18 | 18 | "X-Generator: Poedit 2.2\n" |
19 | 19 | |
20 | #: src/humanize/number.py:24 | |
20 | #: src/humanize/number.py:22 | |
21 | 21 | msgctxt "0" |
22 | 22 | msgid "th" |
23 | 23 | msgstr "º" |
24 | 24 | |
25 | #: src/humanize/number.py:25 | |
25 | #: src/humanize/number.py:23 | |
26 | 26 | msgctxt "1" |
27 | 27 | msgid "st" |
28 | 28 | msgstr "º" |
29 | 29 | |
30 | #: src/humanize/number.py:26 | |
30 | #: src/humanize/number.py:24 | |
31 | 31 | msgctxt "2" |
32 | 32 | msgid "nd" |
33 | 33 | msgstr "º" |
34 | 34 | |
35 | #: src/humanize/number.py:27 | |
35 | #: src/humanize/number.py:25 | |
36 | 36 | msgctxt "3" |
37 | 37 | msgid "rd" |
38 | 38 | msgstr "º" |
39 | 39 | |
40 | #: src/humanize/number.py:26 | |
41 | msgctxt "4" | |
42 | msgid "th" | |
43 | msgstr "º" | |
44 | ||
45 | #: src/humanize/number.py:27 | |
46 | msgctxt "5" | |
47 | msgid "th" | |
48 | msgstr "º" | |
49 | ||
40 | 50 | #: src/humanize/number.py:28 |
41 | msgctxt "4" | |
51 | msgctxt "6" | |
42 | 52 | msgid "th" |
43 | 53 | msgstr "º" |
44 | 54 | |
45 | 55 | #: src/humanize/number.py:29 |
46 | msgctxt "5" | |
56 | msgctxt "7" | |
47 | 57 | msgid "th" |
48 | 58 | msgstr "º" |
49 | 59 | |
50 | 60 | #: src/humanize/number.py:30 |
51 | msgctxt "6" | |
61 | msgctxt "8" | |
52 | 62 | msgid "th" |
53 | 63 | msgstr "º" |
54 | 64 | |
55 | 65 | #: src/humanize/number.py:31 |
56 | msgctxt "7" | |
57 | msgid "th" | |
58 | msgstr "º" | |
59 | ||
60 | #: src/humanize/number.py:32 | |
61 | msgctxt "8" | |
62 | msgid "th" | |
63 | msgstr "º" | |
64 | ||
65 | #: src/humanize/number.py:33 | |
66 | 66 | msgctxt "9" |
67 | 67 | msgid "th" |
68 | 68 | msgstr "º" |
69 | 69 | |
70 | #: src/humanize/number.py:62 | |
70 | #: src/humanize/number.py:73 | |
71 | 71 | msgid "million" |
72 | 72 | msgstr "milioni" |
73 | 73 | |
74 | #: src/humanize/number.py:63 | |
74 | #: src/humanize/number.py:74 | |
75 | 75 | msgid "billion" |
76 | 76 | msgstr "miliardi" |
77 | 77 | |
78 | #: src/humanize/number.py:64 | |
78 | #: src/humanize/number.py:75 | |
79 | 79 | msgid "trillion" |
80 | 80 | msgstr "bilioni" |
81 | 81 | |
82 | #: src/humanize/number.py:65 | |
82 | #: src/humanize/number.py:76 | |
83 | 83 | msgid "quadrillion" |
84 | 84 | msgstr "biliardi" |
85 | 85 | |
86 | #: src/humanize/number.py:66 | |
86 | #: src/humanize/number.py:77 | |
87 | 87 | msgid "quintillion" |
88 | 88 | msgstr "trilioni" |
89 | 89 | |
90 | #: src/humanize/number.py:67 | |
90 | #: src/humanize/number.py:78 | |
91 | 91 | msgid "sextillion" |
92 | 92 | msgstr "triliardi" |
93 | 93 | |
94 | #: src/humanize/number.py:68 | |
94 | #: src/humanize/number.py:79 | |
95 | 95 | msgid "septillion" |
96 | 96 | msgstr "quadrilioni" |
97 | 97 | |
98 | #: src/humanize/number.py:69 | |
98 | #: src/humanize/number.py:80 | |
99 | 99 | msgid "octillion" |
100 | 100 | msgstr "quadriliardi" |
101 | 101 | |
102 | #: src/humanize/number.py:70 | |
102 | #: src/humanize/number.py:81 | |
103 | 103 | msgid "nonillion" |
104 | 104 | msgstr "quintilioni" |
105 | 105 | |
106 | #: src/humanize/number.py:71 | |
106 | #: src/humanize/number.py:82 | |
107 | 107 | msgid "decillion" |
108 | 108 | msgstr "quintiliardi" |
109 | 109 | |
110 | #: src/humanize/number.py:72 | |
110 | #: src/humanize/number.py:83 | |
111 | 111 | msgid "googol" |
112 | 112 | msgstr "googol" |
113 | 113 | |
114 | #: src/humanize/number.py:108 | |
114 | #: src/humanize/number.py:138 | |
115 | msgid "zero" | |
116 | msgstr "zero" | |
117 | ||
118 | #: src/humanize/number.py:139 | |
115 | 119 | msgid "one" |
116 | 120 | msgstr "uno" |
117 | 121 | |
118 | #: src/humanize/number.py:109 | |
122 | #: src/humanize/number.py:140 | |
119 | 123 | msgid "two" |
120 | 124 | msgstr "due" |
121 | 125 | |
122 | #: src/humanize/number.py:110 | |
126 | #: src/humanize/number.py:141 | |
123 | 127 | msgid "three" |
124 | 128 | msgstr "tre" |
125 | 129 | |
126 | #: src/humanize/number.py:111 | |
130 | #: src/humanize/number.py:142 | |
127 | 131 | msgid "four" |
128 | 132 | msgstr "quattro" |
129 | 133 | |
130 | #: src/humanize/number.py:112 | |
134 | #: src/humanize/number.py:143 | |
131 | 135 | msgid "five" |
132 | 136 | msgstr "cinque" |
133 | 137 | |
134 | #: src/humanize/number.py:113 | |
138 | #: src/humanize/number.py:144 | |
135 | 139 | msgid "six" |
136 | 140 | msgstr "sei" |
137 | 141 | |
138 | #: src/humanize/number.py:114 | |
142 | #: src/humanize/number.py:145 | |
139 | 143 | msgid "seven" |
140 | 144 | msgstr "sette" |
141 | 145 | |
142 | #: src/humanize/number.py:115 | |
146 | #: src/humanize/number.py:146 | |
143 | 147 | msgid "eight" |
144 | 148 | msgstr "otto" |
145 | 149 | |
146 | #: src/humanize/number.py:116 | |
150 | #: src/humanize/number.py:147 | |
147 | 151 | msgid "nine" |
148 | 152 | msgstr "nove" |
149 | 153 | |
150 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
154 | #: src/humanize/time.py:87 | |
155 | #, fuzzy, python-format | |
156 | msgid "%d microsecond" | |
157 | msgid_plural "%d microseconds" | |
158 | msgstr[0] "%d microsecondo" | |
159 | msgstr[1] "%d microsecondi" | |
160 | ||
161 | #: src/humanize/time.py:93 | |
162 | #, fuzzy, python-format | |
163 | msgid "%d millisecond" | |
164 | msgid_plural "%d milliseconds" | |
165 | msgstr[0] "%d millisecondo" | |
166 | msgstr[1] "%d millisecondi" | |
167 | ||
168 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
151 | 169 | msgid "a moment" |
152 | 170 | msgstr "un momento" |
153 | 171 | |
154 | #: src/humanize/time.py:70 | |
172 | #: src/humanize/time.py:98 | |
155 | 173 | msgid "a second" |
156 | 174 | msgstr "un secondo" |
157 | 175 | |
158 | #: src/humanize/time.py:72 | |
176 | #: src/humanize/time.py:100 | |
159 | 177 | #, python-format |
160 | 178 | msgid "%d second" |
161 | 179 | msgid_plural "%d seconds" |
162 | 180 | msgstr[0] "%d secondo" |
163 | 181 | msgstr[1] "%d secondi" |
164 | 182 | |
165 | #: src/humanize/time.py:74 | |
183 | #: src/humanize/time.py:102 | |
166 | 184 | msgid "a minute" |
167 | 185 | msgstr "un minuto" |
168 | 186 | |
169 | #: src/humanize/time.py:77 | |
187 | #: src/humanize/time.py:105 | |
170 | 188 | #, python-format |
171 | 189 | msgid "%d minute" |
172 | 190 | msgid_plural "%d minutes" |
173 | 191 | msgstr[0] "%d minuto" |
174 | 192 | msgstr[1] "%d minuti" |
175 | 193 | |
176 | #: src/humanize/time.py:79 | |
194 | #: src/humanize/time.py:107 | |
177 | 195 | msgid "an hour" |
178 | 196 | msgstr "un'ora" |
179 | 197 | |
180 | #: src/humanize/time.py:82 | |
198 | #: src/humanize/time.py:110 | |
181 | 199 | #, python-format |
182 | 200 | msgid "%d hour" |
183 | 201 | msgid_plural "%d hours" |
184 | 202 | msgstr[0] "%d ora" |
185 | 203 | msgstr[1] "%d ore" |
186 | 204 | |
187 | #: src/humanize/time.py:85 | |
205 | #: src/humanize/time.py:113 | |
188 | 206 | msgid "a day" |
189 | 207 | msgstr "un giorno" |
190 | 208 | |
191 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
209 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
192 | 210 | #, python-format |
193 | 211 | msgid "%d day" |
194 | 212 | msgid_plural "%d days" |
195 | 213 | msgstr[0] "%d giorno" |
196 | 214 | msgstr[1] "%d giorni" |
197 | 215 | |
198 | #: src/humanize/time.py:92 | |
216 | #: src/humanize/time.py:120 | |
199 | 217 | msgid "a month" |
200 | 218 | msgstr "un mese" |
201 | 219 | |
202 | #: src/humanize/time.py:94 | |
220 | #: src/humanize/time.py:122 | |
203 | 221 | #, python-format |
204 | 222 | msgid "%d month" |
205 | 223 | msgid_plural "%d months" |
206 | 224 | msgstr[0] "%d mese" |
207 | 225 | msgstr[1] "%d mesi" |
208 | 226 | |
209 | #: src/humanize/time.py:97 | |
227 | #: src/humanize/time.py:125 | |
210 | 228 | msgid "a year" |
211 | 229 | msgstr "un anno" |
212 | 230 | |
213 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
231 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
214 | 232 | #, python-format |
215 | 233 | msgid "1 year, %d day" |
216 | 234 | msgid_plural "1 year, %d days" |
217 | 235 | msgstr[0] "un anno e %d giorno" |
218 | 236 | msgstr[1] "un anno e %d giorni" |
219 | 237 | |
220 | #: src/humanize/time.py:102 | |
238 | #: src/humanize/time.py:130 | |
221 | 239 | msgid "1 year, 1 month" |
222 | 240 | msgstr "un anno ed un mese" |
223 | 241 | |
224 | #: src/humanize/time.py:105 | |
242 | #: src/humanize/time.py:133 | |
225 | 243 | #, python-format |
226 | 244 | msgid "1 year, %d month" |
227 | 245 | msgid_plural "1 year, %d months" |
228 | 246 | msgstr[0] "un anno e %d mese" |
229 | 247 | msgstr[1] "un anno e %d mesi" |
230 | 248 | |
231 | #: src/humanize/time.py:110 | |
249 | #: src/humanize/time.py:138 | |
232 | 250 | #, python-format |
233 | 251 | msgid "%d year" |
234 | 252 | msgid_plural "%d years" |
235 | 253 | msgstr[0] "%d anno" |
236 | 254 | msgstr[1] "%d anni" |
237 | 255 | |
238 | #: src/humanize/time.py:128 | |
256 | #: src/humanize/time.py:167 | |
239 | 257 | #, python-format |
240 | 258 | msgid "%s from now" |
241 | 259 | msgstr "fra %s" |
242 | 260 | |
243 | #: src/humanize/time.py:128 | |
261 | #: src/humanize/time.py:167 | |
244 | 262 | #, python-format |
245 | 263 | msgid "%s ago" |
246 | 264 | msgstr "%s fa" |
247 | 265 | |
248 | #: src/humanize/time.py:132 | |
266 | #: src/humanize/time.py:171 | |
249 | 267 | msgid "now" |
250 | 268 | msgstr "adesso" |
251 | 269 | |
252 | #: src/humanize/time.py:151 | |
270 | #: src/humanize/time.py:190 | |
253 | 271 | msgid "today" |
254 | 272 | msgstr "oggi" |
255 | 273 | |
256 | #: src/humanize/time.py:153 | |
274 | #: src/humanize/time.py:192 | |
257 | 275 | msgid "tomorrow" |
258 | 276 | msgstr "domani" |
259 | 277 | |
260 | #: src/humanize/time.py:155 | |
278 | #: src/humanize/time.py:194 | |
261 | 279 | msgid "yesterday" |
262 | 280 | msgstr "ieri" |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: PROJECT VERSION\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-25 21:08+0100\n" |
11 | 11 | "Last-Translator: Martin van Wingerden\n" |
12 | 12 | "Language-Team: nl_NL\n" |
18 | 18 | "Generated-By: Babel 0.9.6\n" |
19 | 19 | "X-Generator: Poedit 1.7.5\n" |
20 | 20 | |
21 | #: src/humanize/number.py:24 | |
21 | #: src/humanize/number.py:22 | |
22 | 22 | msgctxt "0" |
23 | 23 | msgid "th" |
24 | 24 | msgstr "de" |
25 | 25 | |
26 | #: src/humanize/number.py:25 | |
26 | #: src/humanize/number.py:23 | |
27 | 27 | msgctxt "1" |
28 | 28 | msgid "st" |
29 | 29 | msgstr "ste" |
30 | 30 | |
31 | #: src/humanize/number.py:26 | |
31 | #: src/humanize/number.py:24 | |
32 | 32 | msgctxt "2" |
33 | 33 | msgid "nd" |
34 | 34 | msgstr "de" |
35 | 35 | |
36 | #: src/humanize/number.py:27 | |
36 | #: src/humanize/number.py:25 | |
37 | 37 | msgctxt "3" |
38 | 38 | msgid "rd" |
39 | 39 | msgstr "de" |
40 | 40 | |
41 | #: src/humanize/number.py:26 | |
42 | msgctxt "4" | |
43 | msgid "th" | |
44 | msgstr "de" | |
45 | ||
46 | #: src/humanize/number.py:27 | |
47 | msgctxt "5" | |
48 | msgid "th" | |
49 | msgstr "de" | |
50 | ||
41 | 51 | #: src/humanize/number.py:28 |
42 | msgctxt "4" | |
52 | msgctxt "6" | |
43 | 53 | msgid "th" |
44 | 54 | msgstr "de" |
45 | 55 | |
46 | 56 | #: src/humanize/number.py:29 |
47 | msgctxt "5" | |
57 | msgctxt "7" | |
48 | 58 | msgid "th" |
49 | 59 | msgstr "de" |
50 | 60 | |
51 | 61 | #: src/humanize/number.py:30 |
52 | msgctxt "6" | |
62 | msgctxt "8" | |
53 | 63 | msgid "th" |
54 | 64 | msgstr "de" |
55 | 65 | |
56 | 66 | #: src/humanize/number.py:31 |
57 | msgctxt "7" | |
58 | msgid "th" | |
59 | msgstr "de" | |
60 | ||
61 | #: src/humanize/number.py:32 | |
62 | msgctxt "8" | |
63 | msgid "th" | |
64 | msgstr "de" | |
65 | ||
66 | #: src/humanize/number.py:33 | |
67 | 67 | msgctxt "9" |
68 | 68 | msgid "th" |
69 | 69 | msgstr "de" |
70 | 70 | |
71 | #: src/humanize/number.py:62 | |
71 | #: src/humanize/number.py:73 | |
72 | 72 | msgid "million" |
73 | 73 | msgstr "miljoen" |
74 | 74 | |
75 | #: src/humanize/number.py:63 | |
75 | #: src/humanize/number.py:74 | |
76 | 76 | msgid "billion" |
77 | 77 | msgstr "miljard" |
78 | 78 | |
79 | #: src/humanize/number.py:64 | |
79 | #: src/humanize/number.py:75 | |
80 | 80 | msgid "trillion" |
81 | 81 | msgstr "biljoen" |
82 | 82 | |
83 | #: src/humanize/number.py:65 | |
83 | #: src/humanize/number.py:76 | |
84 | 84 | msgid "quadrillion" |
85 | 85 | msgstr "biljard" |
86 | 86 | |
87 | #: src/humanize/number.py:66 | |
87 | #: src/humanize/number.py:77 | |
88 | 88 | msgid "quintillion" |
89 | 89 | msgstr "triljoen" |
90 | 90 | |
91 | #: src/humanize/number.py:67 | |
91 | #: src/humanize/number.py:78 | |
92 | 92 | msgid "sextillion" |
93 | 93 | msgstr "triljard" |
94 | 94 | |
95 | #: src/humanize/number.py:68 | |
95 | #: src/humanize/number.py:79 | |
96 | 96 | msgid "septillion" |
97 | 97 | msgstr "quadriljoen" |
98 | 98 | |
99 | #: src/humanize/number.py:69 | |
99 | #: src/humanize/number.py:80 | |
100 | 100 | msgid "octillion" |
101 | 101 | msgstr "quadriljard" |
102 | 102 | |
103 | #: src/humanize/number.py:70 | |
103 | #: src/humanize/number.py:81 | |
104 | 104 | msgid "nonillion" |
105 | 105 | msgstr "quintiljoen" |
106 | 106 | |
107 | #: src/humanize/number.py:71 | |
107 | #: src/humanize/number.py:82 | |
108 | 108 | msgid "decillion" |
109 | 109 | msgstr "quintiljard" |
110 | 110 | |
111 | #: src/humanize/number.py:72 | |
111 | #: src/humanize/number.py:83 | |
112 | 112 | msgid "googol" |
113 | 113 | msgstr "googol" |
114 | 114 | |
115 | #: src/humanize/number.py:108 | |
115 | #: src/humanize/number.py:138 | |
116 | msgid "zero" | |
117 | msgstr "nul" | |
118 | ||
119 | #: src/humanize/number.py:139 | |
116 | 120 | msgid "one" |
117 | 121 | msgstr "één" |
118 | 122 | |
119 | #: src/humanize/number.py:109 | |
123 | #: src/humanize/number.py:140 | |
120 | 124 | msgid "two" |
121 | 125 | msgstr "twee" |
122 | 126 | |
123 | #: src/humanize/number.py:110 | |
127 | #: src/humanize/number.py:141 | |
124 | 128 | msgid "three" |
125 | 129 | msgstr "drie" |
126 | 130 | |
127 | #: src/humanize/number.py:111 | |
131 | #: src/humanize/number.py:142 | |
128 | 132 | msgid "four" |
129 | 133 | msgstr "vier" |
130 | 134 | |
131 | #: src/humanize/number.py:112 | |
135 | #: src/humanize/number.py:143 | |
132 | 136 | msgid "five" |
133 | 137 | msgstr "vijf" |
134 | 138 | |
135 | #: src/humanize/number.py:113 | |
139 | #: src/humanize/number.py:144 | |
136 | 140 | msgid "six" |
137 | 141 | msgstr "zes" |
138 | 142 | |
139 | #: src/humanize/number.py:114 | |
143 | #: src/humanize/number.py:145 | |
140 | 144 | msgid "seven" |
141 | 145 | msgstr "zeven" |
142 | 146 | |
143 | #: src/humanize/number.py:115 | |
147 | #: src/humanize/number.py:146 | |
144 | 148 | msgid "eight" |
145 | 149 | msgstr "acht" |
146 | 150 | |
147 | #: src/humanize/number.py:116 | |
151 | #: src/humanize/number.py:147 | |
148 | 152 | msgid "nine" |
149 | 153 | msgstr "negen" |
150 | 154 | |
151 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
155 | #: src/humanize/time.py:87 | |
156 | #, fuzzy, python-format | |
157 | msgid "%d microsecond" | |
158 | msgid_plural "%d microseconds" | |
159 | msgstr[0] "%d microseconde" | |
160 | msgstr[1] "%d microseconden" | |
161 | ||
162 | #: src/humanize/time.py:93 | |
163 | #, fuzzy, python-format | |
164 | msgid "%d millisecond" | |
165 | msgid_plural "%d milliseconds" | |
166 | msgstr[0] "%d milliseconde" | |
167 | msgstr[1] "%d milliseconden" | |
168 | ||
169 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
152 | 170 | msgid "a moment" |
153 | 171 | msgstr "een moment" |
154 | 172 | |
155 | #: src/humanize/time.py:70 | |
173 | #: src/humanize/time.py:98 | |
156 | 174 | msgid "a second" |
157 | 175 | msgstr "een seconde" |
158 | 176 | |
159 | #: src/humanize/time.py:72 | |
177 | #: src/humanize/time.py:100 | |
160 | 178 | #, python-format |
161 | 179 | msgid "%d second" |
162 | 180 | msgid_plural "%d seconds" |
163 | 181 | msgstr[0] "%d seconde" |
164 | 182 | msgstr[1] "%d seconden" |
165 | 183 | |
166 | #: src/humanize/time.py:74 | |
184 | #: src/humanize/time.py:102 | |
167 | 185 | msgid "a minute" |
168 | 186 | msgstr "een minuut" |
169 | 187 | |
170 | #: src/humanize/time.py:77 | |
188 | #: src/humanize/time.py:105 | |
171 | 189 | #, python-format |
172 | 190 | msgid "%d minute" |
173 | 191 | msgid_plural "%d minutes" |
174 | 192 | msgstr[0] "%d minuut" |
175 | 193 | msgstr[1] "%d minuten" |
176 | 194 | |
177 | #: src/humanize/time.py:79 | |
195 | #: src/humanize/time.py:107 | |
178 | 196 | msgid "an hour" |
179 | 197 | msgstr "een uur" |
180 | 198 | |
181 | #: src/humanize/time.py:82 | |
199 | #: src/humanize/time.py:110 | |
182 | 200 | #, python-format |
183 | 201 | msgid "%d hour" |
184 | 202 | msgid_plural "%d hours" |
185 | 203 | msgstr[0] "%d uur" |
186 | 204 | msgstr[1] "%d uren" |
187 | 205 | |
188 | #: src/humanize/time.py:85 | |
206 | #: src/humanize/time.py:113 | |
189 | 207 | msgid "a day" |
190 | 208 | msgstr "een dag" |
191 | 209 | |
192 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
210 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
193 | 211 | #, python-format |
194 | 212 | msgid "%d day" |
195 | 213 | msgid_plural "%d days" |
196 | 214 | msgstr[0] "%d dag" |
197 | 215 | msgstr[1] "%d dagen" |
198 | 216 | |
199 | #: src/humanize/time.py:92 | |
217 | #: src/humanize/time.py:120 | |
200 | 218 | msgid "a month" |
201 | 219 | msgstr "een maand" |
202 | 220 | |
203 | #: src/humanize/time.py:94 | |
221 | #: src/humanize/time.py:122 | |
204 | 222 | #, python-format |
205 | 223 | msgid "%d month" |
206 | 224 | msgid_plural "%d months" |
207 | 225 | msgstr[0] "%d maand" |
208 | 226 | msgstr[1] "%d maanden" |
209 | 227 | |
210 | #: src/humanize/time.py:97 | |
228 | #: src/humanize/time.py:125 | |
211 | 229 | msgid "a year" |
212 | 230 | msgstr "een jaar" |
213 | 231 | |
214 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
232 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
215 | 233 | #, python-format |
216 | 234 | msgid "1 year, %d day" |
217 | 235 | msgid_plural "1 year, %d days" |
218 | 236 | msgstr[0] "1 jaar, %d dag" |
219 | 237 | msgstr[1] "1 jaar, %d dagen" |
220 | 238 | |
221 | #: src/humanize/time.py:102 | |
239 | #: src/humanize/time.py:130 | |
222 | 240 | msgid "1 year, 1 month" |
223 | 241 | msgstr "1 jaar, 1 maand" |
224 | 242 | |
225 | #: src/humanize/time.py:105 | |
243 | #: src/humanize/time.py:133 | |
226 | 244 | #, python-format |
227 | 245 | msgid "1 year, %d month" |
228 | 246 | msgid_plural "1 year, %d months" |
229 | 247 | msgstr[0] "1 jaar, %d maand" |
230 | 248 | msgstr[1] "1 jaar, %d maanden" |
231 | 249 | |
232 | #: src/humanize/time.py:110 | |
250 | #: src/humanize/time.py:138 | |
233 | 251 | #, python-format |
234 | 252 | msgid "%d year" |
235 | 253 | msgid_plural "%d years" |
236 | 254 | msgstr[0] "%d jaar" |
237 | 255 | msgstr[1] "%d jaar" |
238 | 256 | |
239 | #: src/humanize/time.py:128 | |
257 | #: src/humanize/time.py:167 | |
240 | 258 | #, python-format |
241 | 259 | msgid "%s from now" |
242 | 260 | msgstr "over %s" |
243 | 261 | |
244 | #: src/humanize/time.py:128 | |
262 | #: src/humanize/time.py:167 | |
245 | 263 | #, python-format |
246 | 264 | msgid "%s ago" |
247 | 265 | msgstr "%s geleden" |
248 | 266 | |
249 | #: src/humanize/time.py:132 | |
267 | #: src/humanize/time.py:171 | |
250 | 268 | msgid "now" |
251 | 269 | msgstr "nu" |
252 | 270 | |
253 | #: src/humanize/time.py:151 | |
271 | #: src/humanize/time.py:190 | |
254 | 272 | msgid "today" |
255 | 273 | msgstr "vandaag" |
256 | 274 | |
257 | #: src/humanize/time.py:153 | |
275 | #: src/humanize/time.py:192 | |
258 | 276 | msgid "tomorrow" |
259 | 277 | msgstr "morgen" |
260 | 278 | |
261 | #: src/humanize/time.py:155 | |
279 | #: src/humanize/time.py:194 | |
262 | 280 | msgid "yesterday" |
263 | 281 | msgstr "gisteren" |
Binary diff not shown
6 | 6 | msgstr "" |
7 | 7 | "Project-Id-Version: \n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
9 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
10 | 10 | "PO-Revision-Date: 2016-06-15 15:58-0300\n" |
11 | 11 | "Last-Translator: \n" |
12 | 12 | "Language-Team: \n" |
17 | 17 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
18 | 18 | "X-Generator: Poedit 1.8.5\n" |
19 | 19 | |
20 | #: src/humanize/number.py:24 | |
20 | #: src/humanize/number.py:22 | |
21 | 21 | msgctxt "0" |
22 | 22 | msgid "th" |
23 | 23 | msgstr "º" |
24 | 24 | |
25 | #: src/humanize/number.py:25 | |
25 | #: src/humanize/number.py:23 | |
26 | 26 | msgctxt "1" |
27 | 27 | msgid "st" |
28 | 28 | msgstr "º" |
29 | 29 | |
30 | #: src/humanize/number.py:26 | |
30 | #: src/humanize/number.py:24 | |
31 | 31 | msgctxt "2" |
32 | 32 | msgid "nd" |
33 | 33 | msgstr "º" |
34 | 34 | |
35 | #: src/humanize/number.py:27 | |
35 | #: src/humanize/number.py:25 | |
36 | 36 | msgctxt "3" |
37 | 37 | msgid "rd" |
38 | 38 | msgstr "º" |
39 | 39 | |
40 | #: src/humanize/number.py:26 | |
41 | msgctxt "4" | |
42 | msgid "th" | |
43 | msgstr "º" | |
44 | ||
45 | #: src/humanize/number.py:27 | |
46 | msgctxt "5" | |
47 | msgid "th" | |
48 | msgstr "º" | |
49 | ||
40 | 50 | #: src/humanize/number.py:28 |
41 | msgctxt "4" | |
51 | msgctxt "6" | |
42 | 52 | msgid "th" |
43 | 53 | msgstr "º" |
44 | 54 | |
45 | 55 | #: src/humanize/number.py:29 |
46 | msgctxt "5" | |
56 | msgctxt "7" | |
47 | 57 | msgid "th" |
48 | 58 | msgstr "º" |
49 | 59 | |
50 | 60 | #: src/humanize/number.py:30 |
51 | msgctxt "6" | |
61 | msgctxt "8" | |
52 | 62 | msgid "th" |
53 | 63 | msgstr "º" |
54 | 64 | |
55 | 65 | #: src/humanize/number.py:31 |
56 | msgctxt "7" | |
57 | msgid "th" | |
58 | msgstr "º" | |
59 | ||
60 | #: src/humanize/number.py:32 | |
61 | msgctxt "8" | |
62 | msgid "th" | |
63 | msgstr "º" | |
64 | ||
65 | #: src/humanize/number.py:33 | |
66 | 66 | msgctxt "9" |
67 | 67 | msgid "th" |
68 | 68 | msgstr "º" |
69 | 69 | |
70 | #: src/humanize/number.py:62 | |
70 | #: src/humanize/number.py:73 | |
71 | 71 | msgid "million" |
72 | 72 | msgstr "milhão" |
73 | 73 | |
74 | #: src/humanize/number.py:63 | |
74 | #: src/humanize/number.py:74 | |
75 | 75 | msgid "billion" |
76 | 76 | msgstr "bilhão" |
77 | 77 | |
78 | #: src/humanize/number.py:64 | |
78 | #: src/humanize/number.py:75 | |
79 | 79 | msgid "trillion" |
80 | 80 | msgstr "trilhão" |
81 | 81 | |
82 | #: src/humanize/number.py:65 | |
82 | #: src/humanize/number.py:76 | |
83 | 83 | msgid "quadrillion" |
84 | 84 | msgstr "quatrilhão" |
85 | 85 | |
86 | #: src/humanize/number.py:66 | |
86 | #: src/humanize/number.py:77 | |
87 | 87 | msgid "quintillion" |
88 | 88 | msgstr "quintilhão" |
89 | 89 | |
90 | #: src/humanize/number.py:67 | |
90 | #: src/humanize/number.py:78 | |
91 | 91 | msgid "sextillion" |
92 | 92 | msgstr "sextilhão" |
93 | 93 | |
94 | #: src/humanize/number.py:68 | |
94 | #: src/humanize/number.py:79 | |
95 | 95 | msgid "septillion" |
96 | 96 | msgstr "septilhão" |
97 | 97 | |
98 | #: src/humanize/number.py:69 | |
98 | #: src/humanize/number.py:80 | |
99 | 99 | msgid "octillion" |
100 | 100 | msgstr "octilhão" |
101 | 101 | |
102 | #: src/humanize/number.py:70 | |
102 | #: src/humanize/number.py:81 | |
103 | 103 | msgid "nonillion" |
104 | 104 | msgstr "nonilhão" |
105 | 105 | |
106 | #: src/humanize/number.py:71 | |
106 | #: src/humanize/number.py:82 | |
107 | 107 | msgid "decillion" |
108 | 108 | msgstr "decilhão" |
109 | 109 | |
110 | #: src/humanize/number.py:72 | |
110 | #: src/humanize/number.py:83 | |
111 | 111 | msgid "googol" |
112 | 112 | msgstr "undecilhão" |
113 | 113 | |
114 | #: src/humanize/number.py:108 | |
114 | #: src/humanize/number.py:138 | |
115 | msgid "zero" | |
116 | msgstr "zero" | |
117 | ||
118 | #: src/humanize/number.py:139 | |
115 | 119 | msgid "one" |
116 | 120 | msgstr "um" |
117 | 121 | |
118 | #: src/humanize/number.py:109 | |
122 | #: src/humanize/number.py:140 | |
119 | 123 | msgid "two" |
120 | 124 | msgstr "dois" |
121 | 125 | |
122 | #: src/humanize/number.py:110 | |
126 | #: src/humanize/number.py:141 | |
123 | 127 | msgid "three" |
124 | 128 | msgstr "três" |
125 | 129 | |
126 | #: src/humanize/number.py:111 | |
130 | #: src/humanize/number.py:142 | |
127 | 131 | msgid "four" |
128 | 132 | msgstr "quatro" |
129 | 133 | |
130 | #: src/humanize/number.py:112 | |
134 | #: src/humanize/number.py:143 | |
131 | 135 | msgid "five" |
132 | 136 | msgstr "cinco" |
133 | 137 | |
134 | #: src/humanize/number.py:113 | |
138 | #: src/humanize/number.py:144 | |
135 | 139 | msgid "six" |
136 | 140 | msgstr "seis" |
137 | 141 | |
138 | #: src/humanize/number.py:114 | |
142 | #: src/humanize/number.py:145 | |
139 | 143 | msgid "seven" |
140 | 144 | msgstr "sete" |
141 | 145 | |
142 | #: src/humanize/number.py:115 | |
146 | #: src/humanize/number.py:146 | |
143 | 147 | msgid "eight" |
144 | 148 | msgstr "oito" |
145 | 149 | |
146 | #: src/humanize/number.py:116 | |
150 | #: src/humanize/number.py:147 | |
147 | 151 | msgid "nine" |
148 | 152 | msgstr "nove" |
149 | 153 | |
150 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
154 | #: src/humanize/time.py:87 | |
155 | #, fuzzy, python-format | |
156 | msgid "%d microsecond" | |
157 | msgid_plural "%d microseconds" | |
158 | msgstr[0] "%d microssegundo" | |
159 | msgstr[1] "%d microssegundos" | |
160 | ||
161 | #: src/humanize/time.py:93 | |
162 | #, fuzzy, python-format | |
163 | msgid "%d millisecond" | |
164 | msgid_plural "%d milliseconds" | |
165 | msgstr[0] "%d milissegundo" | |
166 | msgstr[1] "%d milissegundos" | |
167 | ||
168 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
151 | 169 | msgid "a moment" |
152 | 170 | msgstr "um momento" |
153 | 171 | |
154 | #: src/humanize/time.py:70 | |
172 | #: src/humanize/time.py:98 | |
155 | 173 | msgid "a second" |
156 | 174 | msgstr "um segundo" |
157 | 175 | |
158 | #: src/humanize/time.py:72 | |
176 | #: src/humanize/time.py:100 | |
159 | 177 | #, python-format |
160 | 178 | msgid "%d second" |
161 | 179 | msgid_plural "%d seconds" |
162 | 180 | msgstr[0] "%d segundo" |
163 | 181 | msgstr[1] "%d segundos" |
164 | 182 | |
165 | #: src/humanize/time.py:74 | |
183 | #: src/humanize/time.py:102 | |
166 | 184 | msgid "a minute" |
167 | 185 | msgstr "um minuto" |
168 | 186 | |
169 | #: src/humanize/time.py:77 | |
187 | #: src/humanize/time.py:105 | |
170 | 188 | #, python-format |
171 | 189 | msgid "%d minute" |
172 | 190 | msgid_plural "%d minutes" |
173 | 191 | msgstr[0] "%d minuto" |
174 | 192 | msgstr[1] "%d minutos" |
175 | 193 | |
176 | #: src/humanize/time.py:79 | |
194 | #: src/humanize/time.py:107 | |
177 | 195 | msgid "an hour" |
178 | 196 | msgstr "uma hora" |
179 | 197 | |
180 | #: src/humanize/time.py:82 | |
198 | #: src/humanize/time.py:110 | |
181 | 199 | #, python-format |
182 | 200 | msgid "%d hour" |
183 | 201 | msgid_plural "%d hours" |
184 | 202 | msgstr[0] "%d hora" |
185 | 203 | msgstr[1] "%d horas" |
186 | 204 | |
187 | #: src/humanize/time.py:85 | |
205 | #: src/humanize/time.py:113 | |
188 | 206 | msgid "a day" |
189 | 207 | msgstr "um dia" |
190 | 208 | |
191 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
209 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
192 | 210 | #, python-format |
193 | 211 | msgid "%d day" |
194 | 212 | msgid_plural "%d days" |
195 | 213 | msgstr[0] "%d dia" |
196 | 214 | msgstr[1] "%d dias" |
197 | 215 | |
198 | #: src/humanize/time.py:92 | |
216 | #: src/humanize/time.py:120 | |
199 | 217 | msgid "a month" |
200 | 218 | msgstr "um mês" |
201 | 219 | |
202 | #: src/humanize/time.py:94 | |
220 | #: src/humanize/time.py:122 | |
203 | 221 | #, python-format |
204 | 222 | msgid "%d month" |
205 | 223 | msgid_plural "%d months" |
206 | 224 | msgstr[0] "%d mês" |
207 | 225 | msgstr[1] "%d meses" |
208 | 226 | |
209 | #: src/humanize/time.py:97 | |
227 | #: src/humanize/time.py:125 | |
210 | 228 | msgid "a year" |
211 | 229 | msgstr "um ano" |
212 | 230 | |
213 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
231 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
214 | 232 | #, python-format |
215 | 233 | msgid "1 year, %d day" |
216 | 234 | msgid_plural "1 year, %d days" |
217 | 235 | msgstr[0] "1 ano e %d dia" |
218 | 236 | msgstr[1] "1 ano e %d dias" |
219 | 237 | |
220 | #: src/humanize/time.py:102 | |
238 | #: src/humanize/time.py:130 | |
221 | 239 | msgid "1 year, 1 month" |
222 | 240 | msgstr "1 ano e 1 mês" |
223 | 241 | |
224 | #: src/humanize/time.py:105 | |
242 | #: src/humanize/time.py:133 | |
225 | 243 | #, python-format |
226 | 244 | msgid "1 year, %d month" |
227 | 245 | msgid_plural "1 year, %d months" |
228 | 246 | msgstr[0] "1 ano e %d mês" |
229 | 247 | msgstr[1] "1 ano e %d meses" |
230 | 248 | |
231 | #: src/humanize/time.py:110 | |
249 | #: src/humanize/time.py:138 | |
232 | 250 | #, python-format |
233 | 251 | msgid "%d year" |
234 | 252 | msgid_plural "%d years" |
235 | 253 | msgstr[0] "%d ano" |
236 | 254 | msgstr[1] "%d anos" |
237 | 255 | |
238 | #: src/humanize/time.py:128 | |
256 | #: src/humanize/time.py:167 | |
239 | 257 | #, python-format |
240 | 258 | msgid "%s from now" |
241 | 259 | msgstr "em %s" |
242 | 260 | |
243 | #: src/humanize/time.py:128 | |
261 | #: src/humanize/time.py:167 | |
244 | 262 | #, python-format |
245 | 263 | msgid "%s ago" |
246 | 264 | msgstr "a %s" |
247 | 265 | |
248 | #: src/humanize/time.py:132 | |
266 | #: src/humanize/time.py:171 | |
249 | 267 | msgid "now" |
250 | 268 | msgstr "agora" |
251 | 269 | |
252 | #: src/humanize/time.py:151 | |
270 | #: src/humanize/time.py:190 | |
253 | 271 | msgid "today" |
254 | 272 | msgstr "hoje" |
255 | 273 | |
256 | #: src/humanize/time.py:153 | |
274 | #: src/humanize/time.py:192 | |
257 | 275 | msgid "tomorrow" |
258 | 276 | msgstr "amanhã" |
259 | 277 | |
260 | #: src/humanize/time.py:155 | |
278 | #: src/humanize/time.py:194 | |
261 | 279 | msgid "yesterday" |
262 | 280 | msgstr "ontem" |
Binary diff not shown
7 | 7 | msgstr "" |
8 | 8 | "Project-Id-Version: PACKAGE VERSION\n" |
9 | 9 | "Report-Msgid-Bugs-To: \n" |
10 | "POT-Creation-Date: 2020-02-08 20:05+0200\n" | |
10 | "POT-Creation-Date: 2020-03-22 16:30+0200\n" | |
11 | 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
12 | 12 | "Last-Translator: Jose Riha <jose1711 gmail com>\n" |
13 | 13 | "Language-Team: sk <LL@li.org>\n" |
17 | 17 | "Content-Transfer-Encoding: 8bit\n" |
18 | 18 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" |
19 | 19 | |
20 | #: src/humanize/number.py:24 | |
20 | #: src/humanize/number.py:22 | |
21 | 21 | msgctxt "0" |
22 | 22 | msgid "th" |
23 | 23 | msgstr "." |
24 | 24 | |
25 | #: src/humanize/number.py:25 | |
25 | #: src/humanize/number.py:23 | |
26 | 26 | msgctxt "1" |
27 | 27 | msgid "st" |
28 | 28 | msgstr "." |
29 | 29 | |
30 | #: src/humanize/number.py:26 | |
30 | #: src/humanize/number.py:24 | |
31 | 31 | msgctxt "2" |
32 | 32 | msgid "nd" |
33 | 33 | msgstr "." |
34 | 34 | |
35 | #: src/humanize/number.py:27 | |
35 | #: src/humanize/number.py:25 | |
36 | 36 | msgctxt "3" |
37 | 37 | msgid "rd" |
38 | 38 | msgstr "." |
39 | 39 | |
40 | #: src/humanize/number.py:26 | |
41 | msgctxt "4" | |
42 | msgid "th" | |
43 | msgstr "." | |
44 | ||
45 | #: src/humanize/number.py:27 | |
46 | msgctxt "5" | |
47 | msgid "th" | |
48 | msgstr "." | |
49 | ||
40 | 50 | #: src/humanize/number.py:28 |
41 | msgctxt "4" | |
51 | msgctxt "6" | |
42 | 52 | msgid "th" |
43 | 53 | msgstr "." |
44 | 54 | |
45 | 55 | #: src/humanize/number.py:29 |
46 | msgctxt "5" | |
56 | msgctxt "7" | |
47 | 57 | msgid "th" |
48 | 58 | msgstr "." |
49 | 59 | |
50 | 60 | #: src/humanize/number.py:30 |
51 | msgctxt "6" | |
61 | msgctxt "8" | |
52 | 62 | msgid "th" |
53 | 63 | msgstr "." |
54 | 64 | |
55 | 65 | #: src/humanize/number.py:31 |
56 | msgctxt "7" | |
57 | msgid "th" | |
58 | msgstr "." | |
59 | ||
60 | #: src/humanize/number.py:32 | |
61 | msgctxt "8" | |
62 | msgid "th" | |
63 | msgstr "." | |
64 | ||
65 | #: src/humanize/number.py:33 | |
66 | 66 | msgctxt "9" |
67 | 67 | msgid "th" |
68 | 68 | msgstr "." |
69 | 69 | |
70 | #: src/humanize/number.py:62 | |
70 | #: src/humanize/number.py:73 | |
71 | 71 | msgid "million" |
72 | 72 | msgstr "milióna/ov" |
73 | 73 | |
74 | #: src/humanize/number.py:63 | |
74 | #: src/humanize/number.py:74 | |
75 | 75 | msgid "billion" |
76 | 76 | msgstr "miliardy/árd" |
77 | 77 | |
78 | #: src/humanize/number.py:64 | |
78 | #: src/humanize/number.py:75 | |
79 | 79 | msgid "trillion" |
80 | 80 | msgstr "bilióna/ov" |
81 | 81 | |
82 | #: src/humanize/number.py:65 | |
82 | #: src/humanize/number.py:76 | |
83 | 83 | msgid "quadrillion" |
84 | 84 | msgstr "biliardy/árd" |
85 | 85 | |
86 | #: src/humanize/number.py:66 | |
86 | #: src/humanize/number.py:77 | |
87 | 87 | msgid "quintillion" |
88 | 88 | msgstr "trilióna/árd" |
89 | 89 | |
90 | #: src/humanize/number.py:67 | |
90 | #: src/humanize/number.py:78 | |
91 | 91 | msgid "sextillion" |
92 | 92 | msgstr "triliardy/árd" |
93 | 93 | |
94 | #: src/humanize/number.py:68 | |
94 | #: src/humanize/number.py:79 | |
95 | 95 | msgid "septillion" |
96 | 96 | msgstr "kvadrilióna/ov" |
97 | 97 | |
98 | #: src/humanize/number.py:69 | |
98 | #: src/humanize/number.py:80 | |
99 | 99 | msgid "octillion" |
100 | 100 | msgstr "kvadriliardy/árd" |
101 | 101 | |
102 | #: src/humanize/number.py:70 | |
102 | #: src/humanize/number.py:81 | |
103 | 103 | msgid "nonillion" |
104 | 104 | msgstr "kvintilióna/ov" |
105 | 105 | |
106 | #: src/humanize/number.py:71 | |
106 | #: src/humanize/number.py:82 | |
107 | 107 | msgid "decillion" |
108 | 108 | msgstr "kvintiliardy/árd" |
109 | 109 | |
110 | #: src/humanize/number.py:72 | |
110 | #: src/humanize/number.py:83 | |
111 | 111 | msgid "googol" |
112 | 112 | msgstr "googola/ov" |
113 | 113 | |
114 | #: src/humanize/number.py:108 | |
114 | #: src/humanize/number.py:138 | |
115 | msgid "zero" | |
116 | msgstr "nula" | |
117 | ||
118 | #: src/humanize/number.py:139 | |
115 | 119 | msgid "one" |
116 | 120 | msgstr "jedna" |
117 | 121 | |
118 | #: src/humanize/number.py:109 | |
122 | #: src/humanize/number.py:140 | |
119 | 123 | msgid "two" |
120 | 124 | msgstr "dve" |
121 | 125 | |
122 | #: src/humanize/number.py:110 | |
126 | #: src/humanize/number.py:141 | |
123 | 127 | msgid "three" |
124 | 128 | msgstr "tri" |
125 | 129 | |
126 | #: src/humanize/number.py:111 | |
130 | #: src/humanize/number.py:142 | |
127 | 131 | msgid "four" |
128 | 132 | msgstr "štyri" |
129 | 133 | |
130 | #: src/humanize/number.py:112 | |
134 | #: src/humanize/number.py:143 | |
131 | 135 | msgid "five" |
132 | 136 | msgstr "päť" |
133 | 137 | |
134 | #: src/humanize/number.py:113 | |
138 | #: src/humanize/number.py:144 | |
135 | 139 | msgid "six" |
136 | 140 | msgstr "šesť" |
137 | 141 | |
138 | #: src/humanize/number.py:114 | |
142 | #: src/humanize/number.py:145 | |
139 | 143 | msgid "seven" |
140 | 144 | msgstr "sedem" |
141 | 145 | |
142 | #: src/humanize/number.py:115 | |
146 | #: src/humanize/number.py:146 | |
143 | 147 | msgid "eight" |
144 | 148 | msgstr "osem" |
145 | 149 | |
146 | #: src/humanize/number.py:116 | |
150 | #: src/humanize/number.py:147 | |
147 | 151 | msgid "nine" |
148 | 152 | msgstr "deväť" |
149 | 153 | |
150 | #: src/humanize/time.py:68 src/humanize/time.py:131 | |
154 | #: src/humanize/time.py:87 | |
155 | #, fuzzy, python-format | |
156 | msgid "%d microsecond" | |
157 | msgid_plural "%d microseconds" | |
158 | msgstr[0] "%d mikrosekundu" | |
159 | msgstr[1] "%d mikrosekundy" | |
160 | msgstr[2] "%d mikrosekúnd" | |
161 | ||
162 | #: src/humanize/time.py:93 | |
163 | #, fuzzy, python-format | |
164 | msgid "%d millisecond" | |
165 | msgid_plural "%d milliseconds" | |
166 | msgstr[0] "%d milisekundu" | |
167 | msgstr[1] "%d milisekundy" | |
168 | msgstr[2] "%d milisekúnd" | |
169 | ||
170 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
151 | 171 | msgid "a moment" |
152 | 172 | msgstr "chvíľku" |
153 | 173 | |
154 | #: src/humanize/time.py:70 | |
174 | #: src/humanize/time.py:98 | |
155 | 175 | msgid "a second" |
156 | 176 | msgstr "sekundu" |
157 | 177 | |
158 | #: src/humanize/time.py:72 | |
178 | #: src/humanize/time.py:100 | |
159 | 179 | #, python-format |
160 | 180 | msgid "%d second" |
161 | 181 | msgid_plural "%d seconds" |
163 | 183 | msgstr[1] "%d sekundy" |
164 | 184 | msgstr[2] "%d sekúnd" |
165 | 185 | |
166 | #: src/humanize/time.py:74 | |
186 | #: src/humanize/time.py:102 | |
167 | 187 | msgid "a minute" |
168 | 188 | msgstr "minútu" |
169 | 189 | |
170 | #: src/humanize/time.py:77 | |
190 | #: src/humanize/time.py:105 | |
171 | 191 | #, python-format |
172 | 192 | msgid "%d minute" |
173 | 193 | msgid_plural "%d minutes" |
175 | 195 | msgstr[1] "%d minúty" |
176 | 196 | msgstr[2] "%d minút" |
177 | 197 | |
178 | #: src/humanize/time.py:79 | |
198 | #: src/humanize/time.py:107 | |
179 | 199 | msgid "an hour" |
180 | 200 | msgstr "hodinu" |
181 | 201 | |
182 | #: src/humanize/time.py:82 | |
202 | #: src/humanize/time.py:110 | |
183 | 203 | #, python-format |
184 | 204 | msgid "%d hour" |
185 | 205 | msgid_plural "%d hours" |
187 | 207 | msgstr[1] "%d hodiny" |
188 | 208 | msgstr[2] "%d hodín" |
189 | 209 | |
190 | #: src/humanize/time.py:85 | |
210 | #: src/humanize/time.py:113 | |
191 | 211 | msgid "a day" |
192 | 212 | msgstr "deň" |
193 | 213 | |
194 | #: src/humanize/time.py:87 src/humanize/time.py:90 | |
214 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
195 | 215 | #, python-format |
196 | 216 | msgid "%d day" |
197 | 217 | msgid_plural "%d days" |
199 | 219 | msgstr[1] "%d dni" |
200 | 220 | msgstr[2] "%d dní" |
201 | 221 | |
202 | #: src/humanize/time.py:92 | |
222 | #: src/humanize/time.py:120 | |
203 | 223 | msgid "a month" |
204 | 224 | msgstr "mesiac" |
205 | 225 | |
206 | #: src/humanize/time.py:94 | |
226 | #: src/humanize/time.py:122 | |
207 | 227 | #, python-format |
208 | 228 | msgid "%d month" |
209 | 229 | msgid_plural "%d months" |
211 | 231 | msgstr[1] "%d mesiace" |
212 | 232 | msgstr[2] "%d mesiacov" |
213 | 233 | |
214 | #: src/humanize/time.py:97 | |
234 | #: src/humanize/time.py:125 | |
215 | 235 | msgid "a year" |
216 | 236 | msgstr "rok" |
217 | 237 | |
218 | #: src/humanize/time.py:99 src/humanize/time.py:108 | |
238 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
219 | 239 | #, python-format |
220 | 240 | msgid "1 year, %d day" |
221 | 241 | msgid_plural "1 year, %d days" |
223 | 243 | msgstr[1] "1 rok, %d dni" |
224 | 244 | msgstr[2] "1 rok, %d dní" |
225 | 245 | |
226 | #: src/humanize/time.py:102 | |
246 | #: src/humanize/time.py:130 | |
227 | 247 | msgid "1 year, 1 month" |
228 | 248 | msgstr "1 rok, 1 mesiac" |
229 | 249 | |
230 | #: src/humanize/time.py:105 | |
250 | #: src/humanize/time.py:133 | |
231 | 251 | #, python-format |
232 | 252 | msgid "1 year, %d month" |
233 | 253 | msgid_plural "1 year, %d months" |
235 | 255 | msgstr[1] "1 rok, %d mesiace" |
236 | 256 | msgstr[2] "1 rok, %d mesiacov" |
237 | 257 | |
238 | #: src/humanize/time.py:110 | |
258 | #: src/humanize/time.py:138 | |
239 | 259 | #, python-format |
240 | 260 | msgid "%d year" |
241 | 261 | msgid_plural "%d years" |
243 | 263 | msgstr[1] "%d roky" |
244 | 264 | msgstr[2] "%d rokov" |
245 | 265 | |
246 | #: src/humanize/time.py:128 | |
266 | #: src/humanize/time.py:167 | |
247 | 267 | #, python-format |
248 | 268 | msgid "%s from now" |
249 | 269 | msgstr "o %s" |
250 | 270 | |
251 | #: src/humanize/time.py:128 | |
271 | #: src/humanize/time.py:167 | |
252 | 272 | #, python-format |
253 | 273 | msgid "%s ago" |
254 | 274 | msgstr "%s naspäť" |
255 | 275 | |
256 | #: src/humanize/time.py:132 | |
276 | #: src/humanize/time.py:171 | |
257 | 277 | msgid "now" |
258 | 278 | msgstr "teraz" |
259 | 279 | |
260 | #: src/humanize/time.py:151 | |
280 | #: src/humanize/time.py:190 | |
261 | 281 | msgid "today" |
262 | 282 | msgstr "dnes" |
263 | 283 | |
264 | #: src/humanize/time.py:153 | |
284 | #: src/humanize/time.py:192 | |
265 | 285 | msgid "tomorrow" |
266 | 286 | msgstr "zajtra" |
267 | 287 | |
268 | #: src/humanize/time.py:155 | |
288 | #: src/humanize/time.py:194 | |
269 | 289 | msgid "yesterday" |
270 | 290 | msgstr "včera" |
Binary diff not shown
0 | msgid "" | |
1 | msgstr "" | |
2 | "Project-Id-Version: PROJECT VERSION\n" | |
3 | "Report-Msgid-Bugs-To: \n" | |
4 | "POT-Creation-Date: 2020-03-22 16:59+0200\n" | |
5 | "PO-Revision-Date: \n" | |
6 | "Last-Translator: TL\n" | |
7 | "Language-Team: uk_UA\n" | |
8 | "Language: uk\n" | |
9 | "MIME-Version: 1.0\n" | |
10 | "Content-Type: text/plain; charset=utf-8\n" | |
11 | "Content-Transfer-Encoding: 8bit\n" | |
12 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | |
13 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" | |
14 | "Generated-By:\n" | |
15 | "X-Generator: \n" | |
16 | ||
17 | #: src/humanize/number.py:22 | |
18 | msgctxt "0" | |
19 | msgid "th" | |
20 | msgstr "ий" | |
21 | ||
22 | #: src/humanize/number.py:23 | |
23 | msgctxt "1" | |
24 | msgid "st" | |
25 | msgstr "ий" | |
26 | ||
27 | #: src/humanize/number.py:24 | |
28 | msgctxt "2" | |
29 | msgid "nd" | |
30 | msgstr "ий" | |
31 | ||
32 | #: src/humanize/number.py:25 | |
33 | msgctxt "3" | |
34 | msgid "rd" | |
35 | msgstr "ій" | |
36 | ||
37 | #: src/humanize/number.py:26 | |
38 | msgctxt "4" | |
39 | msgid "th" | |
40 | msgstr "ий" | |
41 | ||
42 | #: src/humanize/number.py:27 | |
43 | msgctxt "5" | |
44 | msgid "th" | |
45 | msgstr "ий" | |
46 | ||
47 | #: src/humanize/number.py:28 | |
48 | msgctxt "6" | |
49 | msgid "th" | |
50 | msgstr "ий" | |
51 | ||
52 | #: src/humanize/number.py:29 | |
53 | msgctxt "7" | |
54 | msgid "th" | |
55 | msgstr "ий" | |
56 | ||
57 | #: src/humanize/number.py:30 | |
58 | msgctxt "8" | |
59 | msgid "th" | |
60 | msgstr "ий" | |
61 | ||
62 | #: src/humanize/number.py:31 | |
63 | msgctxt "9" | |
64 | msgid "th" | |
65 | msgstr "ий" | |
66 | ||
67 | #: src/humanize/number.py:73 | |
68 | msgid "million" | |
69 | msgstr "мільйонів" | |
70 | ||
71 | #: src/humanize/number.py:74 | |
72 | msgid "billion" | |
73 | msgstr "мільярдів" | |
74 | ||
75 | #: src/humanize/number.py:75 | |
76 | msgid "trillion" | |
77 | msgstr "трильйонів" | |
78 | ||
79 | #: src/humanize/number.py:76 | |
80 | msgid "quadrillion" | |
81 | msgstr "квадрильйонів" | |
82 | ||
83 | #: src/humanize/number.py:77 | |
84 | msgid "quintillion" | |
85 | msgstr "квинтиліонів" | |
86 | ||
87 | #: src/humanize/number.py:78 | |
88 | msgid "sextillion" | |
89 | msgstr "сикстильйонів" | |
90 | ||
91 | #: src/humanize/number.py:79 | |
92 | msgid "septillion" | |
93 | msgstr "септильйонів" | |
94 | ||
95 | #: src/humanize/number.py:80 | |
96 | msgid "octillion" | |
97 | msgstr "октильйонів" | |
98 | ||
99 | #: src/humanize/number.py:81 | |
100 | msgid "nonillion" | |
101 | msgstr "нонильйонів" | |
102 | ||
103 | #: src/humanize/number.py:82 | |
104 | msgid "decillion" | |
105 | msgstr "децильйонів" | |
106 | ||
107 | #: src/humanize/number.py:83 | |
108 | msgid "googol" | |
109 | msgstr "гугола" | |
110 | ||
111 | #: src/humanize/number.py:138 | |
112 | msgid "zero" | |
113 | msgstr "нуль" | |
114 | ||
115 | #: src/humanize/number.py:139 | |
116 | msgid "one" | |
117 | msgstr "один" | |
118 | ||
119 | #: src/humanize/number.py:140 | |
120 | msgid "two" | |
121 | msgstr "два" | |
122 | ||
123 | #: src/humanize/number.py:141 | |
124 | msgid "three" | |
125 | msgstr "три" | |
126 | ||
127 | #: src/humanize/number.py:142 | |
128 | msgid "four" | |
129 | msgstr "чотири" | |
130 | ||
131 | #: src/humanize/number.py:143 | |
132 | msgid "five" | |
133 | msgstr "п'ять" | |
134 | ||
135 | #: src/humanize/number.py:144 | |
136 | msgid "six" | |
137 | msgstr "шість" | |
138 | ||
139 | #: src/humanize/number.py:145 | |
140 | msgid "seven" | |
141 | msgstr "сім" | |
142 | ||
143 | #: src/humanize/number.py:146 | |
144 | msgid "eight" | |
145 | msgstr "вісім" | |
146 | ||
147 | #: src/humanize/number.py:147 | |
148 | msgid "nine" | |
149 | msgstr "дев'ять" | |
150 | ||
151 | #: src/humanize/time.py:87 | |
152 | #, fuzzy, python-format | |
153 | msgid "%d microsecond" | |
154 | msgid_plural "%d microseconds" | |
155 | msgstr[0] "%d мікросекунда" | |
156 | msgstr[1] "%d мікросекунд" | |
157 | msgstr[2] "%d мікросекунди" | |
158 | ||
159 | #: src/humanize/time.py:93 | |
160 | #, fuzzy, python-format | |
161 | msgid "%d millisecond" | |
162 | msgid_plural "%d milliseconds" | |
163 | msgstr[0] "%d мілісекунда" | |
164 | msgstr[1] "%d мілісекунди" | |
165 | msgstr[2] "%d мілісекунди" | |
166 | ||
167 | #: src/humanize/time.py:96 src/humanize/time.py:170 | |
168 | msgid "a moment" | |
169 | msgstr "у цей момент" | |
170 | ||
171 | #: src/humanize/time.py:98 | |
172 | msgid "a second" | |
173 | msgstr "секунду" | |
174 | ||
175 | #: src/humanize/time.py:100 | |
176 | #, python-format | |
177 | msgid "%d second" | |
178 | msgid_plural "%d seconds" | |
179 | msgstr[0] "%d секунда" | |
180 | msgstr[1] "%d секунд" | |
181 | msgstr[2] "%d секунд" | |
182 | ||
183 | #: src/humanize/time.py:102 | |
184 | msgid "a minute" | |
185 | msgstr "хвилина" | |
186 | ||
187 | #: src/humanize/time.py:105 | |
188 | #, python-format | |
189 | msgid "%d minute" | |
190 | msgid_plural "%d minutes" | |
191 | msgstr[0] "%d хвилина" | |
192 | msgstr[1] "%d хвилини" | |
193 | msgstr[2] "%d хвилин" | |
194 | ||
195 | #: src/humanize/time.py:107 | |
196 | msgid "an hour" | |
197 | msgstr "година" | |
198 | ||
199 | #: src/humanize/time.py:110 | |
200 | #, python-format | |
201 | msgid "%d hour" | |
202 | msgid_plural "%d hours" | |
203 | msgstr[0] "%d година" | |
204 | msgstr[1] "%d годин" | |
205 | msgstr[2] "%d годин" | |
206 | ||
207 | #: src/humanize/time.py:113 | |
208 | msgid "a day" | |
209 | msgstr "день" | |
210 | ||
211 | #: src/humanize/time.py:115 src/humanize/time.py:118 | |
212 | #, python-format | |
213 | msgid "%d day" | |
214 | msgid_plural "%d days" | |
215 | msgstr[0] "%d день" | |
216 | msgstr[1] "%d дня" | |
217 | msgstr[2] "%d дні" | |
218 | ||
219 | #: src/humanize/time.py:120 | |
220 | msgid "a month" | |
221 | msgstr "місяць" | |
222 | ||
223 | #: src/humanize/time.py:122 | |
224 | #, python-format | |
225 | msgid "%d month" | |
226 | msgid_plural "%d months" | |
227 | msgstr[0] "%d місяць" | |
228 | msgstr[1] "%d місяця" | |
229 | msgstr[2] "%d місяців" | |
230 | ||
231 | #: src/humanize/time.py:125 | |
232 | msgid "a year" | |
233 | msgstr "рік" | |
234 | ||
235 | #: src/humanize/time.py:127 src/humanize/time.py:136 | |
236 | #, python-format | |
237 | msgid "1 year, %d day" | |
238 | msgid_plural "1 year, %d days" | |
239 | msgstr[0] "1 рік, %d день" | |
240 | msgstr[1] "1 рік, %d дня" | |
241 | msgstr[2] "1 рік, %d днів" | |
242 | ||
243 | #: src/humanize/time.py:130 | |
244 | msgid "1 year, 1 month" | |
245 | msgstr "1 рік, 1 місяць" | |
246 | ||
247 | #: src/humanize/time.py:133 | |
248 | #, python-format | |
249 | msgid "1 year, %d month" | |
250 | msgid_plural "1 year, %d months" | |
251 | msgstr[0] "1 рік, %d місяць" | |
252 | msgstr[1] "1 рік, %d місяця" | |
253 | msgstr[2] "1 рік, %d місяців" | |
254 | ||
255 | #: src/humanize/time.py:138 | |
256 | #, python-format | |
257 | msgid "%d year" | |
258 | msgid_plural "%d years" | |
259 | msgstr[0] "%d рік" | |
260 | msgstr[1] "%d роки" | |
261 | msgstr[2] "%d років" | |
262 | ||
263 | #: src/humanize/time.py:167 | |
264 | #, python-format | |
265 | msgid "%s from now" | |
266 | msgstr "через %s" | |
267 | ||
268 | #: src/humanize/time.py:167 | |
269 | #, python-format | |
270 | msgid "%s ago" | |
271 | msgstr "%s назад" | |
272 | ||
273 | #: src/humanize/time.py:171 | |
274 | msgid "now" | |
275 | msgstr "зараз" | |
276 | ||
277 | #: src/humanize/time.py:190 | |
278 | msgid "today" | |
279 | msgstr "сьогодні" | |
280 | ||
281 | #: src/humanize/time.py:192 | |
282 | msgid "tomorrow" | |
283 | msgstr "завтра" | |
284 | ||
285 | #: src/humanize/time.py:194 | |
286 | msgid "yesterday" | |
287 | msgstr "вчора" |
34 | 34 | return "%d%s" % (value, t[value % 10]) |
35 | 35 | |
36 | 36 | |
37 | def intcomma(value): | |
37 | def intcomma(value, ndigits=None): | |
38 | 38 | """Converts an integer to a string containing commas every three digits. |
39 | For example, 3000 becomes '3,000' and 45000 becomes '45,000'. To maintain | |
40 | some compatibility with Django's intcomma, this function also accepts | |
41 | floats.""" | |
39 | ||
40 | For example, 3000 becomes "3,000" and 45000 becomes "45,000". To maintain some | |
41 | compatibility with Django's intcomma, this function also accepts floats. | |
42 | ||
43 | Args: | |
44 | value (int, float, string): Integer or float to convert. | |
45 | ndigits (int, None): digits of precision for rounding after the decimal point. | |
46 | ||
47 | Returns: | |
48 | str: string containing commas every three digits. | |
49 | """ | |
42 | 50 | try: |
43 | 51 | if isinstance(value, str): |
44 | 52 | float(value.replace(",", "")) |
46 | 54 | float(value) |
47 | 55 | except (TypeError, ValueError): |
48 | 56 | return value |
49 | orig = str(value) | |
57 | ||
58 | if ndigits: | |
59 | orig = "{0:.{1}f}".format(value, ndigits) | |
60 | else: | |
61 | orig = str(value) | |
62 | ||
50 | 63 | new = re.sub(r"^(-?\d+)(\d{3})", r"\g<1>,\g<2>", orig) |
51 | 64 | if orig == new: |
52 | 65 | return new |
105 | 118 | |
106 | 119 | |
107 | 120 | def apnumber(value): |
108 | """For numbers 1-9, returns the number spelled out. Otherwise, returns the | |
109 | number. This follows Associated Press style. This always returns a string | |
110 | unless the value was not int-able, unlike the Django filter.""" | |
121 | """Converts an integer to Associated Press style. | |
122 | ||
123 | Args: | |
124 | value (int, float, string): Integer to convert. | |
125 | ||
126 | Returns: | |
127 | str: For numbers 0-9, the number spelled out. Otherwise, the number. This always | |
128 | returns a string unless the value was not int-able, unlike the Django filter. | |
129 | """ | |
111 | 130 | try: |
112 | 131 | value = int(value) |
113 | 132 | except (TypeError, ValueError): |
114 | 133 | return value |
115 | if not 0 < value < 10: | |
134 | if not 0 <= value < 10: | |
116 | 135 | return str(value) |
117 | 136 | return ( |
137 | _("zero"), | |
118 | 138 | _("one"), |
119 | 139 | _("two"), |
120 | 140 | _("three"), |
124 | 144 | _("seven"), |
125 | 145 | _("eight"), |
126 | 146 | _("nine"), |
127 | )[value - 1] | |
147 | )[value] | |
128 | 148 | |
129 | 149 | |
130 | 150 | def fractional(value): |
0 | 0 | Metadata-Version: 2.1 |
1 | 1 | Name: humanize |
2 | Version: 2.0.0 | |
2 | Version: 2.2.0 | |
3 | 3 | Summary: Python humanize utilities |
4 | 4 | Home-page: https://github.com/jmoiron/humanize |
5 | 5 | Author: Jason Moiron |
180 | 180 | How to add new phrases to existing locale files: |
181 | 181 | |
182 | 182 | ```console |
183 | $ xgettext -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
183 | $ xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py # extract new phrases | |
184 | 184 | $ msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files |
185 | 185 | $ msgfmt --check -o src/humanize/locale/ru_RU/LC_MESSAGES/humanize{.mo,.po} # compile to binary .mo |
186 | 186 | ``` |
15 | 15 | .github/workflows/lint.yml |
16 | 16 | .github/workflows/release-drafter.yml |
17 | 17 | .github/workflows/test.yml |
18 | scripts/update-translations.sh | |
18 | 19 | src/humanize/__init__.py |
19 | 20 | src/humanize/filesize.py |
20 | 21 | src/humanize/i18n.py |
52 | 53 | src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po |
53 | 54 | src/humanize/locale/tr_TR/LC_MESSAGES/humanize.mo |
54 | 55 | src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po |
56 | src/humanize/locale/uk_UA/LC_MESSAGES/humanize.mo | |
57 | src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po | |
55 | 58 | src/humanize/locale/vi_VI/LC_MESSAGES/humanize.mo |
56 | 59 | src/humanize/locale/vi_VI/LC_MESSAGES/humanize.po |
57 | 60 | src/humanize/locale/zh_CN/LC_MESSAGES/humanize.mo |
30 | 30 | ([10 ** 26 * 30, True, False, "%.3f"], "2481.542 YiB"), |
31 | 31 | ], |
32 | 32 | ) |
33 | def test_naturaltime_minimum_unit_default(test_args, expected): | |
33 | def test_naturalsize(test_args, expected): | |
34 | 34 | assert humanize.naturalsize(*test_args) == expected |
35 | ||
36 | args_with_negative = test_args | |
37 | args_with_negative[0] *= -1 | |
38 | assert humanize.naturalsize(*args_with_negative) == "-" + expected |
29 | 29 | |
30 | 30 | |
31 | 31 | @pytest.mark.parametrize( |
32 | "test_input, expected", | |
32 | "test_args, expected", | |
33 | 33 | [ |
34 | (100, "100"), | |
35 | (1000, "1,000"), | |
36 | (10123, "10,123"), | |
37 | (10311, "10,311"), | |
38 | (1000000, "1,000,000"), | |
39 | (1234567.25, "1,234,567.25"), | |
40 | ("100", "100"), | |
41 | ("1000", "1,000"), | |
42 | ("10123", "10,123"), | |
43 | ("10311", "10,311"), | |
44 | ("1000000", "1,000,000"), | |
45 | ("1234567.1234567", "1,234,567.1234567"), | |
46 | (None, None), | |
34 | ([100], "100"), | |
35 | ([1000], "1,000"), | |
36 | ([10123], "10,123"), | |
37 | ([10311], "10,311"), | |
38 | ([1000000], "1,000,000"), | |
39 | ([1234567.25], "1,234,567.25"), | |
40 | (["100"], "100"), | |
41 | (["1000"], "1,000"), | |
42 | (["10123"], "10,123"), | |
43 | (["10311"], "10,311"), | |
44 | (["1000000"], "1,000,000"), | |
45 | (["1234567.1234567"], "1,234,567.1234567"), | |
46 | ([None], None), | |
47 | ([14308.40], "14,308.4"), | |
48 | ([14308.40, None], "14,308.4"), | |
49 | ([14308.40, 1], "14,308.4"), | |
50 | ([14308.40, 2], "14,308.40"), | |
51 | ([14308.40, 3], "14,308.400"), | |
52 | ([1234.5454545], "1,234.5454545"), | |
53 | ([1234.5454545, None], "1,234.5454545"), | |
54 | ([1234.5454545, 1], "1,234.5"), | |
55 | ([1234.5454545, 2], "1,234.55"), | |
56 | ([1234.5454545, 3], "1,234.545"), | |
57 | ([1234.5454545, 10], "1,234.5454545000"), | |
47 | 58 | ], |
48 | 59 | ) |
49 | def test_intcomma(test_input, expected): | |
50 | assert humanize.intcomma(test_input) == expected | |
60 | def test_intcomma(test_args, expected): | |
61 | assert humanize.intcomma(*test_args) == expected | |
51 | 62 | |
52 | 63 | |
53 | 64 | def test_intword_powers(): |
85 | 96 | @pytest.mark.parametrize( |
86 | 97 | "test_input, expected", |
87 | 98 | [ |
99 | (0, "zero"), | |
88 | 100 | (1, "one"), |
89 | 101 | (2, "two"), |
90 | 102 | (4, "four"), |