diff --git a/kosmorro/__main__.py b/kosmorro/__main__.py index d0f54f8..5155cd5 100644 --- a/kosmorro/__main__.py +++ b/kosmorro/__main__.py @@ -355,7 +355,7 @@ def get_args(output_formats: [str]): dest="show_graph", action="store_false", help=_( - "Do not generate a graph to represent the rise and set times in the PDF format." + "Do not generate a graph to represent the rise and set times in the LaTeX or PDF file." ), ) parser.add_argument( diff --git a/kosmorro/assets/latex/template.tex b/kosmorro/assets/latex/template.tex index 5daec4c..d1acc47 100644 --- a/kosmorro/assets/latex/template.tex +++ b/kosmorro/assets/latex/template.tex @@ -1,13 +1,5 @@ \documentclass[a4paper,12pt]{article} -% This file has been generated with Kosmorro version +++KOSMORRO-VERSION+++ (https://kosmorro.space) on +++CURRENT-DATE+++. -% Feel free to modify it at your needs. -% -% To compile this file, you will need to install LaTeX distribution like: -% -% - TeXLive (https://tug.org/texlive/) on Windows and Linux -% - MacTeX (https://www.tug.org/mactex/) on macOS - \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[margin=25mm]{geometry} diff --git a/kosmorro/dumper.py b/kosmorro/dumper.py index 78f6c98..0496a05 100644 --- a/kosmorro/dumper.py +++ b/kosmorro/dumper.py @@ -43,9 +43,9 @@ from .utils import KOSMORRO_VERSION class Dumper(ABC): - ephemerides: [AsterEphemerides] + ephemerides: list[AsterEphemerides] moon_phase: MoonPhase - events: [Event] + events: list[Event] date: datetime.date timezone: int with_colors: bool @@ -53,9 +53,9 @@ class Dumper(ABC): def __init__( self, - ephemerides: [AsterEphemerides], + ephemerides: list[AsterEphemerides], moon_phase: MoonPhase, - events: [Event], + events: list[Event], date: datetime.date, timezone: int, with_colors: bool, @@ -281,7 +281,7 @@ class LatexDumper(Dumper): document = template - if self.ephemerides is None: + if len(self.ephemerides) == 0: document = self._remove_section(document, "ephemerides") if len(self.events) == 0: diff --git a/kosmorro/locales/messages.pot b/kosmorro/locales/messages.pot index 4e568c4..77a28d6 100644 --- a/kosmorro/locales/messages.pot +++ b/kosmorro/locales/messages.pot @@ -1,118 +1,145 @@ # Translations template for PROJECT. -# Copyright (C) 2023 ORGANIZATION +# Copyright (C) 2025 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2023. +# FIRST AUTHOR , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-05-24 13:41+0200\n" +"POT-Creation-Date: 2025-10-19 16:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.17.0\n" -#: kosmorro/__main__.py:82 +#: kosmorro/__main__.py:89 msgid "" "Save the planet and paper!\n" "Consider printing your PDF document only if really necessary, and use the" " other side of the sheet." msgstr "" -#: kosmorro/__main__.py:90 +#: kosmorro/__main__.py:97 msgid "" "PDF output will not contain the ephemerides, because you didn't provide " "the observation coordinates." msgstr "" -#: kosmorro/__main__.py:142 +#: kosmorro/__main__.py:115 +msgid "" +"Environment variable KOSMORRO_TIMEZONE is deprecated. Use TZ instead, " +"which is more standard." +msgstr "" + +#: kosmorro/__main__.py:124 +#, python-brace-format +msgid "Unknown timezone: {timezone}" +msgstr "" + +#: kosmorro/__main__.py:167 +#, python-brace-format msgid "The file could not be saved in \"{path}\": {error}" msgstr "" -#: kosmorro/__main__.py:156 +#: kosmorro/__main__.py:181 msgid "Please provide a file path to export in this format (--output)." msgstr "" -#: kosmorro/__main__.py:187 +#: kosmorro/__main__.py:213 +#, python-brace-format msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "" -#: kosmorro/__main__.py:238 +#: kosmorro/__main__.py:264 +#, python-brace-format msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "" -#: kosmorro/__main__.py:251 +#: kosmorro/__main__.py:277 msgid "" "Compute the ephemerides and the events for a given date and a given " "position on Earth." msgstr "" -#: kosmorro/__main__.py:254 +#: kosmorro/__main__.py:280 msgid "" "By default, only the events will be computed for today.\n" "To compute also the ephemerides, latitude and longitude arguments are " "needed." msgstr "" -#: kosmorro/__main__.py:267 +#: kosmorro/__main__.py:292 msgid "Show the program version" msgstr "" -#: kosmorro/__main__.py:275 +#: kosmorro/__main__.py:301 msgid "" "The format to output the information to. If not provided, the output " "format will be inferred from the file extension of the output file." msgstr "" -#: kosmorro/__main__.py:285 +#: kosmorro/__main__.py:311 +#, python-brace-format msgid "" "The observer's position on Earth, in the \"{latitude},{longitude}\" " "format. Can also be set in the KOSMORRO_POSITION environment variable." msgstr "" -#: kosmorro/__main__.py:295 +#: kosmorro/__main__.py:321 msgid "" "The date for which the ephemerides must be calculated. Can be in the " "YYYY-MM-DD format or an interval in the \"[+-]YyMmDd\" format (with Y, M," " and D numbers). Defaults to current date." msgstr "" -#: kosmorro/__main__.py:306 +#: kosmorro/__main__.py:332 msgid "" -"The timezone to display the hours in (e.g. 2 for UTC+2 or -3 for UTC-3). " -"Can also be set in the KOSMORRO_TIMEZONE environment variable." +"The timezone to use to display the hours. It can be either a number (e.g." +" 1 for UTC+1) or a timezone name (e.g. Europe/Paris). See " +"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones to find your" +" timezone. Can also be set in the TZ environment variable." msgstr "" -#: kosmorro/__main__.py:315 +#: kosmorro/__main__.py:341 msgid "Disable the colors in the console." msgstr "" -#: kosmorro/__main__.py:322 +#: kosmorro/__main__.py:349 msgid "" "A file to export the output to. If not given, the standard output is " "used. This argument is needed for PDF format." msgstr "" -#: kosmorro/__main__.py:331 +#: kosmorro/__main__.py:358 msgid "" -"Do not generate a graph to represent the rise and set times in the PDF " -"format." +"Do not generate a graph to represent the rise and set times in the LaTeX " +"or PDF file." msgstr "" -#: kosmorro/__main__.py:339 +#: kosmorro/__main__.py:365 msgid "Show debugging messages" msgstr "" +#: kosmorro/__main__.py:373 +msgid "Print a script allowing completion for your shell" +msgstr "" + +#: kosmorro/__main__.py:383 +msgid "No completion script available for this shell." +msgstr "" + #: kosmorro/date.py:17 +#, python-brace-format msgid "The date {date} is not valid: {error}" msgstr "" -#: kosmorro/date.py:39 +#: kosmorro/date.py:40 +#, python-brace-format msgid "" "The date {date} does not match the required YYYY-MM-DD format or the " "offset format." @@ -126,23 +153,24 @@ msgstr "" msgid "Note: All the hours are given in UTC." msgstr "" -#: kosmorro/dumper.py:151 +#: kosmorro/dumper.py:152 +#, python-brace-format msgid "Note: All the hours are given in the UTC{offset} timezone." msgstr "" -#: kosmorro/dumper.py:205 kosmorro/dumper.py:339 +#: kosmorro/dumper.py:205 kosmorro/dumper.py:336 msgid "Object" msgstr "" -#: kosmorro/dumper.py:206 kosmorro/dumper.py:340 +#: kosmorro/dumper.py:206 kosmorro/dumper.py:337 msgid "Rise time" msgstr "" -#: kosmorro/dumper.py:207 kosmorro/dumper.py:342 +#: kosmorro/dumper.py:207 kosmorro/dumper.py:339 msgid "Culmination time" msgstr "" -#: kosmorro/dumper.py:208 kosmorro/dumper.py:344 +#: kosmorro/dumper.py:208 kosmorro/dumper.py:341 msgid "Set time" msgstr "" @@ -150,44 +178,46 @@ msgstr "" msgid "Moon phase is unavailable for this date." msgstr "" -#: kosmorro/dumper.py:238 kosmorro/dumper.py:348 -msgid "Moon phase:" -msgstr "" - -#: kosmorro/dumper.py:242 +#: kosmorro/dumper.py:240 +#, python-brace-format msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgstr "" -#: kosmorro/dumper.py:312 +#: kosmorro/dumper.py:309 msgid "Overview of your sky" msgstr "" -#: kosmorro/dumper.py:320 +#: kosmorro/dumper.py:318 +#, python-brace-format msgid "" "This document summarizes the ephemerides and the events of {date}. It " "aims to help you to prepare your observation session. All the hours are " "given in {timezone}." msgstr "" -#: kosmorro/dumper.py:330 +#: kosmorro/dumper.py:328 msgid "" "Don't forget to check the weather forecast before you go out with your " "equipment." msgstr "" -#: kosmorro/dumper.py:337 +#: kosmorro/dumper.py:334 msgid "Ephemerides of the day" msgstr "" -#: kosmorro/dumper.py:346 +#: kosmorro/dumper.py:343 msgid "hours" msgstr "" -#: kosmorro/dumper.py:353 +#: kosmorro/dumper.py:345 +msgid "Moon phase:" +msgstr "" + +#: kosmorro/dumper.py:350 msgid "Expected events" msgstr "" -#: kosmorro/dumper.py:493 +#: kosmorro/dumper.py:491 msgid "" "Building PDF was not possible, because some dependencies are not " "installed.\n" @@ -195,7 +225,7 @@ msgid "" "pdf/ for more information." msgstr "" -#: kosmorro/dumper.py:542 +#: kosmorro/dumper.py:540 #, python-format msgid "" "An error occurred during the compilation of the PDF.\n" @@ -203,11 +233,13 @@ msgid "" "share the content of the log file at /tmp/kosmorro-%s.log" msgstr "" -#: kosmorro/exceptions.py:35 +#: kosmorro/exceptions.py:36 +#, python-brace-format msgid "The date must be between {minimum_date} and {maximum_date}" msgstr "" -#: kosmorro/exceptions.py:48 +#: kosmorro/exceptions.py:49 +#, python-brace-format msgid "" "Invalid output format: {output_format}. Output file must end with: " "{accepted_extensions}" @@ -218,129 +250,164 @@ msgstr "" msgid "The given position (%s) is not valid." msgstr "" -#: kosmorro/geolocation.py:29 +#: kosmorro/geolocation.py:30 msgid "The given Plus Code seems to be a short code, please provide a full code." msgstr "" -#: kosmorro/i18n/strings.py:11 +#: kosmorro/i18n/strings.py:21 #, python-format msgid "%s is in opposition" msgstr "" -#: kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:26 #, python-format msgid "%s and %s are in conjunction" msgstr "" -#: kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:35 #, python-format msgid "%s occults %s" msgstr "" -#: kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:44 #, python-format msgid "Elongation of %s is maximal" msgstr "" -#: kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:50 #, python-format msgid "%s is at its periapsis" msgstr "" -#: kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:55 #, python-format msgid "%s is at its apoapsis" msgstr "" -#: kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:61 +msgid "March equinox" +msgstr "" + +#: kosmorro/i18n/strings.py:63 +msgid "June solstice" +msgstr "" + +#: kosmorro/i18n/strings.py:65 +msgid "September equinox" +msgstr "" + +#: kosmorro/i18n/strings.py:67 +msgid "December solstice" +msgstr "" + +#: kosmorro/i18n/strings.py:73 +#, python-format +msgid "Total lunar eclipse until %(hour)s" +msgstr "" + +#: kosmorro/i18n/strings.py:78 +#, python-format +msgid "Penumbral lunar eclipse until %(hour)s" +msgstr "" + +#: kosmorro/i18n/strings.py:83 +#, python-format +msgid "Partial lunar eclipse until %(hour)s" +msgstr "" + +#: kosmorro/i18n/strings.py:99 msgid "New Moon" msgstr "" -#: kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:100 msgid "Waxing Crescent" msgstr "" -#: kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:101 msgid "First Quarter" msgstr "" -#: kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:102 msgid "Waxing Gibbous" msgstr "" -#: kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:103 msgid "Full Moon" msgstr "" -#: kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:104 msgid "Waning Gibbous" msgstr "" -#: kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:105 msgid "Last Quarter" msgstr "" -#: kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:106 msgid "Waning Crescent" msgstr "" -#: kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:117 msgid "Sun" msgstr "" -#: kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:118 msgid "Moon" msgstr "" -#: kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:119 msgid "Mercury" msgstr "" -#: kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:120 msgid "Venus" msgstr "" -#: kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:121 msgid "Earth" msgstr "" -#: kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:122 msgid "Mars" msgstr "" -#: kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:123 msgid "Jupiter" msgstr "" -#: kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:124 msgid "Saturn" msgstr "" -#: kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:125 msgid "Uranus" msgstr "" -#: kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:126 msgid "Neptune" msgstr "" -#: kosmorro/i18n/strings.py:63 +#: kosmorro/i18n/strings.py:127 msgid "Pluto" msgstr "" #: kosmorro/i18n/utils.py:27 +#, python-brace-format msgid "{day_of_week} {month} {day_number}, {year}" msgstr "" #: kosmorro/i18n/utils.py:30 +#, python-brace-format msgid "{month} {day_number}, {hours}:{minutes}" msgstr "" #: kosmorro/i18n/utils.py:33 +#, python-brace-format msgid "{month} {day_number}, {year}" msgstr "" #: kosmorro/i18n/utils.py:36 +#, python-brace-format msgid "{hours}:{minutes}" msgstr "" diff --git a/tests/general.py b/tests/general.py index 10d270d..3ef6f34 100644 --- a/tests/general.py +++ b/tests/general.py @@ -74,7 +74,7 @@ options: standard output is used. This argument is needed for PDF format. --no-graph Do not generate a graph to represent the rise and set - times in the PDF format. + times in the LaTeX or PDF file. --debug Show debugging messages --completion COMPLETION Print a script allowing completion for your shell @@ -86,7 +86,7 @@ ephemerides, latitude and longitude arguments are needed. else: assert ( result.stdout - == """usage: kosmorro [-h] [--version] [--format {txt,json,tex}] + == """usage: kosmorro [-h] [--version] [--format {txt,json,pdf,tex}] [--position POSITION] [--date DATE] [--timezone TIMEZONE] [--no-colors] [--output OUTPUT] [--no-graph] [--debug] [--completion COMPLETION] @@ -97,7 +97,7 @@ on Earth. options: -h, --help show this help message and exit --version, -v Show the program version - --format, -f {txt,json,tex} + --format, -f {txt,json,pdf,tex} The format to output the information to. If not provided, the output format will be inferred from the file extension of the output file. @@ -117,9 +117,10 @@ options: Can also be set in the TZ environment variable. --no-colors Disable the colors in the console. --output, -o OUTPUT A file to export the output to. If not given, the - standard output is used. + standard output is used. This argument is needed for + PDF format. --no-graph Do not generate a graph to represent the rise and set - times in the LaTeX file. + times in the LaTeX or PDF file. --debug Show debugging messages --completion COMPLETION Print a script allowing completion for your shell