e1e0c1a37cd712bd6a346820d67ba2e2d24400a3
Marco Ricci Update copyright notices to...

Marco Ricci authored 2 months ago

1) # SPDX-FileCopyrightText: 2025 Marco Ricci <software@the13thletter.info>
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

2) #
3) # SPDX-Licence-Identifier: MIT
4) 
5) """Internal module.  Do not use.  Contains error strings and functions."""
6) 
7) from __future__ import annotations
8) 
Marco Ricci Provide a function to reloa...

Marco Ricci authored 2 months ago

9) import contextlib
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

10) import datetime
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

11) import enum
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

12) import functools
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

13) import gettext
14) import inspect
Marco Ricci Provide a function to reloa...

Marco Ricci authored 2 months ago

15) import os
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

16) import string
Marco Ricci Provide a function to reloa...

Marco Ricci authored 2 months ago

17) import sys
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

18) import textwrap
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

19) import types
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

20) from typing import TYPE_CHECKING, NamedTuple, Protocol, TextIO, Union, cast
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

21) 
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

22) from typing_extensions import TypeAlias, override
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

23) 
24) import derivepassphrase as dpp
25) 
26) if TYPE_CHECKING:
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

27)     from collections.abc import Iterable, Iterator, Mapping, Sequence
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

28) 
29)     from typing_extensions import Any, Self
30) 
31) __author__ = dpp.__author__
32) __version__ = dpp.__version__
33) 
34) __all__ = ('PROG_NAME',)
35) 
36) PROG_NAME = 'derivepassphrase'
Marco Ricci Provide a function to reloa...

Marco Ricci authored 2 months ago

37) 
38) 
39) def load_translations(
40)     localedirs: list[str] | None = None,
41)     languages: Sequence[str] | None = None,
42)     class_: type[gettext.NullTranslations] | None = None,
Marco Ricci Fix coverage

Marco Ricci authored 2 months ago

43) ) -> gettext.NullTranslations:  # pragma: no cover
Marco Ricci Provide a function to reloa...

Marco Ricci authored 2 months ago

44)     """Load a translation catalog for derivepassphrase.
45) 
46)     Runs [`gettext.translation`][] under the hood for multiple locale
47)     directories.  `fallback=True` is implied.
48) 
49)     Args:
50)         localedirs:
51)             A list of directories to run [`gettext.translation`][]
52)             against.  Defaults to `$XDG_DATA_HOME/locale` (usually
53)             `~/.local/share/locale`), `{sys.prefix}/share/locale` and
54)             `{sys.base_prefix}/share/locale` if not given.
55)         languages:
56)             Passed directly to [`gettext.translation`][].
57)         class_:
58)             Passed directly to [`gettext.translation`][].
59) 
60)     Returns:
61)         A (potentially dummy) translation catalog.
62) 
63)     """
64)     if localedirs is None:
65)         if sys.platform.startswith('win'):
66)             xdg_data_home = os.environ.get(
67)                 'APPDATA',
68)                 os.path.expanduser('~'),
69)             )
70)         elif os.environ.get('XDG_DATA_HOME'):
71)             xdg_data_home = os.environ['XDG_DATA_HOME']
72)         else:
73)             xdg_data_home = os.path.join(
74)                 os.path.expanduser('~'), '.local', 'share'
75)             )
76)         localedirs = [
77)             os.path.join(xdg_data_home, 'locale'),
78)             os.path.join(sys.prefix, 'share', 'locale'),
79)             os.path.join(sys.base_prefix, 'share', 'locale'),
80)         ]
81)     for localedir in localedirs:
82)         with contextlib.suppress(OSError):
83)             return gettext.translation(
84)                 PROG_NAME,
85)                 localedir=localedir,
86)                 languages=languages,
87)                 class_=class_,
88)             )
89)     return gettext.NullTranslations()
90) 
91) 
92) translation = load_translations()
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

93) _debug_translation_message_cache: dict[
94)     tuple[str, str],
95)     tuple[MsgTemplate, frozenset],
96) ] = {}
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

97) 
98) 
99) class DebugTranslations(gettext.NullTranslations):
100)     """A debug object indicating which known message is being requested.
101) 
102)     Each call to the `*gettext` methods will return the enum name if the
103)     message is a known translatable message for the `derivepassphrase`
104)     command-line interface, or the message itself otherwise.
105) 
106)     """
107) 
108)     @staticmethod
109)     def _load_cache() -> None:
110)         cache = _debug_translation_message_cache
111)         for enum_class in MSG_TEMPLATE_CLASSES:
112)             for member in enum_class.__members__.values():
113)                 value = cast('TranslatableString', member.value)
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

114)                 queue: list[tuple[TranslatableString, frozenset[str]]] = [
115)                     (value, frozenset())
116)                 ]
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

117)                 value2 = value.maybe_without_filename()
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

118)                 if value != value2:
119)                     queue.append((value2, frozenset({'filename'})))
120)                 for v, trimmed in queue:
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

121)                     singular = v.singular
122)                     plural = v.plural
123)                     context = v.l10n_context
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

124)                     cache.setdefault((context, singular), (member, trimmed))
Marco Ricci Fix obvious coverage failur...

Marco Ricci authored 2 months ago

125)                     # Currently no translatable messages use plural forms
126)                     if plural:  # pragma: no cover
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

127)                         cache.setdefault((context, plural), (member, trimmed))
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

128) 
129)     @classmethod
130)     def _locate_message(
131)         cls,
132)         message: str,
133)         /,
134)         *,
135)         context: str = '',
136)         message_plural: str = '',
137)         n: int = 1,
138)     ) -> str:
139)         try:
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

140)             enum_value, trimmed = _debug_translation_message_cache[
141)                 context, message
142)             ]
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

143)         except KeyError:
144)             return message if not message_plural or n == 1 else message_plural
145)         return cls._format_enum_name_maybe_with_fields(
146)             enum_name=str(enum_value),
147)             ts=cast('TranslatableString', enum_value.value),
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

148)             trimmed=trimmed,
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

149)         )
150) 
151)     @staticmethod
152)     def _format_enum_name_maybe_with_fields(
153)         enum_name: str,
154)         ts: TranslatableString,
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

155)         trimmed: frozenset[str] = frozenset(),
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

156)     ) -> str:
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

157)         formatted_fields = [
158)             f'{f}=None' if f in trimmed else f'{f}={{{f}!r}}'
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

159)             for f in ts.fields()
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

160)         ]
161)         return (
Marco Ricci Fix debug output of message...

Marco Ricci authored 2 months ago

162)             '{!s}({})'.format(enum_name, ', '.join(formatted_fields))
163)             if formatted_fields
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

164)             else str(enum_name)
165)         )
166) 
167)     @override
168)     def gettext(
169)         self,
170)         message: str,
171)         /,
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

172)     ) -> str:
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

173)         return self._locate_message(message)
174) 
175)     @override
176)     def ngettext(
177)         self,
178)         msgid1: str,
179)         msgid2: str,
180)         n: int,
181)         /,
182)     ) -> str:  # pragma: no cover
183)         return self._locate_message(msgid1, message_plural=msgid2, n=n)
184) 
185)     @override
186)     def pgettext(
187)         self,
188)         context: str,
189)         message: str,
190)         /,
191)     ) -> str:
192)         return self._locate_message(message, context=context)
193) 
194)     @override
195)     def npgettext(
196)         self,
197)         context: str,
198)         msgid1: str,
199)         msgid2: str,
200)         n: int,
201)         /,
202)     ) -> str:  # pragma: no cover
203)         return self._locate_message(
204)             msgid1,
205)             context=context,
206)             message_plural=msgid2,
207)             n=n,
208)         )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

209) 
210) 
211) class TranslatableString(NamedTuple):
212)     l10n_context: str
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

213)     singular: str
214)     plural: str = ''
215)     flags: frozenset[str] = frozenset()
216)     translator_comments: str = ''
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

217) 
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

218)     def fields(self) -> list[str]:
219)         """Return the replacement fields this template requires.
220) 
221)         Raises:
222)             NotImplementedError:
223)                 Replacement field discovery for %-formatting is not
224)                 implemented.
225) 
226)         """
227)         if 'python-format' in self.flags:  # pragma: no cover
228)             err_msg = (
229)                 'Replacement field discovery for %-formatting '
230)                 'is not implemented'
231)             )
232)             raise NotImplementedError(err_msg)
233)         if (
234)             'no-python-brace-format' in self.flags
235)             or 'python-brace-format' not in self.flags
236)         ):
237)             return []
238)         formatter = string.Formatter()
239)         fields: dict[str, int] = {}
240)         for _lit, field, _spec, _conv in formatter.parse(self.singular):
241)             if field is not None and field not in fields:
242)                 fields[field] = len(fields)
243)         return sorted(fields, key=fields.__getitem__)
244) 
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

245)     @staticmethod
246)     def _maybe_rewrap(
247)         string: str,
248)         /,
249)         *,
250)         fix_sentence_endings: bool = True,
251)     ) -> str:
252)         string = inspect.cleandoc(string)
253)         if not any(s.strip() == '\b' for s in string.splitlines()):
254)             string = '\n'.join(
255)                 textwrap.wrap(
256)                     string,
257)                     width=float('inf'),  # type: ignore[arg-type]
258)                     fix_sentence_endings=fix_sentence_endings,
259)                 )
260)             )
261)         else:
262)             string = ''.join(
263)                 s
264)                 for s in string.splitlines(True)  # noqa: FBT003
265)                 if s.strip() != '\b'
266)             )
267)         return string
268) 
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

269)     def maybe_without_filename(self) -> Self:
270)         """Return a new translatable string without the "filename" field.
271) 
272)         Only acts upon translatable strings containing the exact
273)         contents `": {filename!r}"`.  The specified part will be
274)         removed.  This is correct usage in English for messages like
275)         `"Cannot open file: {error!s}: {filename!r}."`, but not
276)         necessarily in other languages.
277) 
278)         """
279)         filename_str = ': {filename!r}'
280)         ret = self
281)         a, sep1, b = self.singular.partition(filename_str)
282)         c, sep2, d = self.plural.partition(filename_str)
283)         if sep1:
284)             ret = ret._replace(singular=(a + b))
Marco Ricci Fix obvious coverage failur...

Marco Ricci authored 2 months ago

285)         # Currently no translatable messages use plural forms
286)         if sep2:  # pragma: no cover
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

287)             ret = ret._replace(plural=(c + d))
288)         return ret
289) 
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

290)     def rewrapped(self) -> Self:
291)         """Return a rewrapped version of self.
292) 
293)         Normalizes all parts assumed to contain English prose.
294) 
295)         """
296)         msg = self._maybe_rewrap(self.singular, fix_sentence_endings=True)
297)         plural = self._maybe_rewrap(self.plural, fix_sentence_endings=True)
298)         context = self.l10n_context.strip()
299)         comments = self._maybe_rewrap(
300)             self.translator_comments, fix_sentence_endings=False
301)         )
302)         return self._replace(
303)             singular=msg,
304)             plural=plural,
305)             l10n_context=context,
306)             translator_comments=comments,
307)         )
308) 
309)     def with_comments(self, comments: str, /) -> Self:
310)         """Add or replace the string's translator comments.
311) 
312)         The comments are assumed to contain English prose, and will be
313)         normalized.
314) 
315)         Returns:
316)             A new [`TranslatableString`][] with the specified comments.
317) 
318)         """
319)         if not comments.lstrip().startswith(  # pragma: no cover
320)             'TRANSLATORS:'
321)         ):
322)             comments = 'TRANSLATORS: ' + comments.lstrip()
323)         comments = self._maybe_rewrap(comments, fix_sentence_endings=False)
324)         return self._replace(translator_comments=comments)
325) 
326)     def validate_flags(self, *extra_flags: str) -> Self:
327)         """Add all flags, then validate them against the string.
328) 
329)         Returns:
330)             A new [`TranslatableString`][] with the extra flags added,
331)             and all flags validated.
332) 
333)         Raises:
334)             ValueError:
335)                 The flags failed to validate.  See the exact error
336)                 message for details.
337) 
Marco Ricci Fix obvious coverage failur...

Marco Ricci authored 2 months ago

338)         Examples:
339)             >>> TranslatableString('', 'all OK').validate_flags()
340)             ... # doctest: +NORMALIZE_WHITESPACE
341)             TranslatableString(l10n_context='', singular='all OK', plural='',
342)                                flags=frozenset(), translator_comments='')
343)             >>> TranslatableString('', '20% OK').validate_flags(
344)             ...     'no-python-format'
345)             ... )
346)             ... # doctest: +NORMALIZE_WHITESPACE
347)             TranslatableString(l10n_context='', singular='20% OK', plural='',
348)                                flags=frozenset({'no-python-format'}),
349)                                translator_comments='')
350)             >>> TranslatableString('', '%d items').validate_flags()
351)             ... # doctest: +ELLIPSIS
352)             Traceback (most recent call last):
353)                 ...
354)             ValueError: Missing flag for how to deal with percent character ...
355)             >>> TranslatableString('', '{braces}').validate_flags()
356)             ... # doctest: +ELLIPSIS
357)             Traceback (most recent call last):
358)                 ...
359)             ValueError: Missing flag for how to deal with brace character ...
360)             >>> TranslatableString('', 'no braces').validate_flags(
361)             ...     'python-brace-format'
362)             ... )
363)             ... # doctest: +ELLIPSIS
364)             Traceback (most recent call last):
365)                 ...
366)             ValueError: Missing format string parameters ...
367) 
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

368)         """
369)         all_flags = frozenset(
370)             f.strip() for f in self.flags.union(extra_flags)
371)         )
372)         if '{' in self.singular and not bool(
373)             all_flags & {'python-brace-format', 'no-python-brace-format'}
374)         ):
375)             msg = (
376)                 f'Missing flag for how to deal with brace character '
377)                 f'in {self.singular!r}'
378)             )
379)             raise ValueError(msg)
380)         if '%' in self.singular and not bool(
381)             all_flags & {'python-format', 'no-python-format'}
382)         ):
383)             msg = (
384)                 f'Missing flag for how to deal with percent character '
385)                 f'in {self.singular!r}'
386)             )
387)             raise ValueError(msg)
388)         if (
389)             all_flags & {'python-format', 'python-brace-format'}
390)             and '%' not in self.singular
391)             and '{' not in self.singular
392)         ):
393)             msg = f'Missing format string parameters in {self.singular!r}'
394)             raise ValueError(msg)
395)         return self._replace(flags=all_flags)
396) 
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

397) 
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

398) def translatable(
399)     context: str,
400)     single: str,
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

401)     /,
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

402)     flags: Iterable[str] = (),
403)     plural: str = '',
404)     comments: str = '',
405) ) -> TranslatableString:
406)     """Return a [`TranslatableString`][] with validated parts.
407) 
408)     This factory function is really only there to make the enum
409)     definitions more readable.
410) 
411)     """
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

412)     flags = (
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

413)         frozenset(flags)
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

414)         if not isinstance(flags, str)
415)         else frozenset({flags})
416)     )
Marco Ricci Move translation string pre...

Marco Ricci authored 2 months ago

417)     return (
418)         TranslatableString(context, single, plural=plural, flags=flags)
419)         .rewrapped()
420)         .with_comments(comments)
421)         .validate_flags()
422)     )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

423) 
424) 
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

425) class TranslatedString:
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

426)     def __init__(
427)         self,
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

428)         template: (
429)             str
430)             | TranslatableString
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

431)             | MsgTemplate
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

432)         ),
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

433)         args_dict: Mapping[str, Any] = types.MappingProxyType({}),
434)         /,
435)         **kwargs: Any,  # noqa: ANN401
436)     ) -> None:
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

437)         if isinstance(template, MSG_TEMPLATE_CLASSES):
Marco Ricci Add remaining re-linting ch...

Marco Ricci authored 2 months ago

438)             template = cast('TranslatableString', template.value)
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

439)         self.template = template
440)         self.kwargs = {**args_dict, **kwargs}
441)         self._rendered: str | None = None
442) 
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

443)     def __bool__(self) -> bool:
444)         return bool(str(self))
445) 
446)     def __eq__(self, other: object) -> bool:  # pragma: no cover
447)         return str(self) == other
448) 
449)     def __hash__(self) -> int:  # pragma: no cover
450)         return hash(str(self))
451) 
452)     def __repr__(self) -> str:  # pragma: no cover
453)         return (
454)             f'{self.__class__.__name__}({self.template!r}, '
455)             f'{dict(self.kwargs)!r})'
456)         )
457) 
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

458)     def __str__(self) -> str:
459)         if self._rendered is None:
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

460)             do_escape = False
461)             if isinstance(self.template, str):
462)                 context = ''
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

463)                 template = self.template
464)             else:
465)                 context = self.template.l10n_context
466)                 template = self.template.singular
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

467)                 do_escape = 'no-python-brace-format' in self.template.flags
468)             template = (
469)                 translation.pgettext(context, template)
470)                 if context
471)                 else translation.gettext(template)
472)             )
473)             template = self._escape(template) if do_escape else template
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

474)             kwargs = {
475)                 k: str(v) if isinstance(v, TranslatedString) else v
476)                 for k, v in self.kwargs.items()
477)             }
478)             self._rendered = template.format(**kwargs)
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

479)         return self._rendered
480) 
Marco Ricci Add hypothesis-based tests...

Marco Ricci authored 2 months ago

481)     @staticmethod
482)     def _escape(template: str) -> str:
483)         return template.translate({
484)             ord('{'): '{{',
485)             ord('}'): '}}',
486)         })
487) 
488)     @classmethod
489)     def constant(cls, template: str) -> Self:
490)         return cls(cls._escape(template))
491) 
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

492)     def maybe_without_filename(self) -> Self:
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

493)         """Return a new string without the "filename" field.
494) 
495)         Only acts upon translated strings containing the exact contents
496)         `": {filename!r}"`.  The specified part will be removed.  This
497)         acts upon the string *before* translation, i.e., the string
498)         without the filename will be used as a translation base.
499) 
500)         """
501)         new_template = (
502)             self.template.maybe_without_filename()
503)             if not isinstance(self.template, str)
504)             else self.template
505)         )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

506)         if (
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

507)             not isinstance(new_template, str)
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

508)             and self.kwargs.get('filename') is None
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

509)             and new_template != self.template
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

510)         ):
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

511)             return self.__class__(new_template, self.kwargs)
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

512)         return self
513) 
514) 
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

515) class _TranslatedStringConstructor(Protocol):
516)     def __call__(
517)         self,
518)         context: str,
519)         single: str,
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

520)         /,
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

521)         flags: Iterable[str] = (),
522)         plural: str = '',
523)         comments: str = '',
524)     ) -> TranslatableString: ...
525) 
526) 
527) def _Commented(  # noqa: N802
528)     comments: str = '',
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

529)     /
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

530) ) -> _TranslatedStringConstructor:
531)     """A "decorator" for readably constructing commented enum values.
532) 
533)     This is geared towards the quirks of the API documentation extractor
534)     `mkdocstrings-python`/`griffe`, which reformat and trim enum value
535)     declarations in somewhat weird ways.  Chains of function calls are
536)     preserved, though, so use this to our advantage to suggest
537)     a specific formatting.
538) 
539)     This is not necessarily good code style, and it is
540)     (quasi-)unnecessarily heavyweight.
541) 
542)     """  # noqa: DOC201
543)     return functools.partial(translatable, comments=comments)
544) 
545) 
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

546) class Label(enum.Enum):
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

547)     DEPRECATION_WARNING_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

548)         'This is a short label that will be prepended to '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

549)         'a warning message, e.g., "Deprecation warning: A subcommand '
550)         'will be required in v1.0."',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

551)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

552)         'Label :: Diagnostics :: Marker',
553)         'Deprecation warning',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

554)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

555)     WARNING_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

556)         'This is a short label that will be prepended to '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

557)         'a warning message, e.g., "Warning: An empty service name '
558)         'is not supported by vault(1)."',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

559)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

560)         'Label :: Diagnostics :: Marker',
561)         'Warning',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

562)     )
Marco Ricci Fix phrasing of "Cannot upd...

Marco Ricci authored 2 months ago

563)     CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL = (
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

564)         _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

565)             'This is one of two values of the settings_type metavar '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

566)             'used in the CANNOT_UPDATE_SETTINGS_NO_SETTINGS entry.  '
567)             'It is only used there.  '
568)             'The full sentence then reads: '
569)             '"Cannot update the global settings without any given settings."',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

570)         )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

571)             'Label :: Error message :: Metavar',
572)             'global settings',
Marco Ricci Fix phrasing of "Cannot upd...

Marco Ricci authored 2 months ago

573)         )
574)     )
575)     CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE = (
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

576)         _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

577)             'This is one of two values of the settings_type metavar '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

578)             'used in the CANNOT_UPDATE_SETTINGS_NO_SETTINGS entry.  '
579)             'It is only used there.  '
580)             'The full sentence then reads: '
581)             '"Cannot update the service-specific settings without any '
582)             'given settings."',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

583)         )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

584)             'Label :: Error message :: Metavar',
585)             'service-specific settings',
Marco Ricci Fix phrasing of "Cannot upd...

Marco Ricci authored 2 months ago

586)         )
587)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

588)     DERIVEPASSPHRASE_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

589)         'This is the first paragraph of the command help text, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

590)         'but it also appears (in truncated form, if necessary) '
591)         'as one-line help text for this command.  '
592)         'The translation should thus be as meaningful as possible '
593)         'even if truncated.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

594)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

595)         'Label :: Help text :: Explanation',
596)         'Derive a strong passphrase, deterministically, from a master secret.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

597)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

598)     DERIVEPASSPHRASE_02 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

599)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

600)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

601)         'Label :: Help text :: Explanation',
602)         'The currently implemented subcommands are "vault" '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

603)         '(for the scheme used by vault) and "export" '
604)         '(for exporting foreign configuration data).  '
605)         'See the respective `--help` output for instructions.  '
606)         'If no subcommand is given, we default to "vault".',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

607)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

608)     DERIVEPASSPHRASE_03 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

609)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

610)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

611)         'Label :: Help text :: Explanation',
612)         'Deprecation notice: Defaulting to "vault" is deprecated.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

613)         'Starting in v1.0, the subcommand must be specified explicitly.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

614)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

615)     DERIVEPASSPHRASE_EPILOG_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

616)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

617)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

618)         'Label :: Help text :: Explanation',
619)         'Configuration is stored in a directory according to the '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

620)         '`DERIVEPASSPHRASE_PATH` variable, which defaults to '
621)         '`~/.derivepassphrase` on UNIX-like systems and '
622)         r'`C:\Users\<user>\AppData\Roaming\Derivepassphrase` on Windows.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

623)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

624)     DERIVEPASSPHRASE_EXPORT_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

625)         'This is the first paragraph of the command help text, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

626)         'but it also appears (in truncated form, if necessary) '
627)         'as one-line help text for this command.  '
628)         'The translation should thus be as meaningful as possible '
629)         'even if truncated.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

630)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

631)         'Label :: Help text :: Explanation',
632)         'Export a foreign configuration to standard output.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

633)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

634)     DERIVEPASSPHRASE_EXPORT_02 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

635)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

636)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

637)         'Label :: Help text :: Explanation',
638)         'The only available subcommand is "vault", '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

639)         'which implements the vault-native configuration scheme.  '
640)         'If no subcommand is given, we default to "vault".',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

641)     )
642)     DERIVEPASSPHRASE_EXPORT_03 = DERIVEPASSPHRASE_03
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

643)     DERIVEPASSPHRASE_EXPORT_VAULT_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

644)         'This is the first paragraph of the command help text, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

645)         'but it also appears (in truncated form, if necessary) '
646)         'as one-line help text for this command.  '
647)         'The translation should thus be as meaningful as possible '
648)         'even if truncated.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

649)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

650)         'Label :: Help text :: Explanation',
651)         'Export a vault-native configuration to standard output.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

652)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

653)     DERIVEPASSPHRASE_EXPORT_VAULT_02 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

654)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

655)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

656)         'Label :: Help text :: Explanation',
657)         'Depending on the configuration format, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

658)         '{path_metavar!s} may either be a file or a directory.  '
659)         'We support the vault "v0.2", "v0.3" and "storeroom" formats.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

660)         flags='python-brace-format',
661)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

662)     DERIVEPASSPHRASE_EXPORT_VAULT_03 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

663)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

664)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

665)         'Label :: Help text :: Explanation',
666)         'If {path_metavar!s} is explicitly given as `VAULT_PATH`, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

667)         'then use the `VAULT_PATH` environment variable to '
668)         'determine the correct path.  '
669)         '(Use `./VAULT_PATH` or similar to indicate a file/directory '
670)         'actually named `VAULT_PATH`.)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

671)         flags='python-brace-format',
672)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

673)     DERIVEPASSPHRASE_VAULT_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

674)         'This is the first paragraph of the command help text, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

675)         'but it also appears (in truncated form, if necessary) '
676)         'as one-line help text for this command.  '
677)         'The translation should thus be as meaningful as possible '
678)         'even if truncated.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

679)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

680)         'Label :: Help text :: Explanation',
681)         'Derive a passphrase using the vault derivation scheme.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

682)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

683)     DERIVEPASSPHRASE_VAULT_02 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

684)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

685)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

686)         'Label :: Help text :: Explanation',
687)         'If operating on global settings, or importing/exporting settings, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

688)         'then {service_metavar!s} must be omitted.  '
689)         'Otherwise it is required.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

690)         flags='python-brace-format',
691)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

692)     DERIVEPASSPHRASE_VAULT_EPILOG_01 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

693)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

694)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

695)         'Label :: Help text :: Explanation',
696)         'WARNING: There is NO WAY to retrieve the generated passphrases '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

697)         'if the master passphrase, the SSH key, or the exact '
698)         'passphrase settings are lost, '
699)         'short of trying out all possible combinations.  '
700)         'You are STRONGLY advised to keep independent backups of '
701)         'the settings and the SSH key, if any.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

702)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

703)     DERIVEPASSPHRASE_VAULT_EPILOG_02 = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

704)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

705)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

706)         'Label :: Help text :: Explanation',
707)         'The configuration is NOT encrypted, and you are '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

708)         'STRONGLY discouraged from using a stored passphrase.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

709)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

710)     DEPRECATED_COMMAND_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

711)         'We use this format string to indicate, at the beginning '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

712)         "of a command's help text, that this command is deprecated.",
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

713)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

714)         'Label :: Help text :: Marker',
715)         '(Deprecated) {text}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

716)         flags='python-brace-format',
717)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

718)     DEBUG_OPTION_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

719)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

720)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

721)         'Label :: Help text :: One-line description',
722)         'also emit debug information (implies --verbose)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

723)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

724)     EXPORT_VAULT_FORMAT_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

725)         'The defaults_hint is Label.EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

726)         'the metavar is Label.EXPORT_VAULT_FORMAT_METAVAR_FMT.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

727)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

728)         'Label :: Help text :: One-line description',
729)         'try the following storage format {metavar!s}; '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

730)         'may be specified multiple times, '
731)         'formats will be tried in order {defaults_hint!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

732)         flags='python-brace-format',
733)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

734)     EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

735)         'See EXPORT_VAULT_FORMAT_HELP_TEXT.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

736)         'The format names/labels "v0.3", "v0.2" and "storeroom" '
737)         'should not be translated.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

738)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

739)         'Label :: Help text :: One-line description',
740)         '(default: v0.3, v0.2, storeroom)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

741)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

742)     EXPORT_VAULT_KEY_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

743)         'The defaults_hint is Label.EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

744)         'the metavar is Label.EXPORT_VAULT_KEY_METAVAR_K.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

745)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

746)         'Label :: Help text :: One-line description',
747)         'use {metavar!s} as the storage master key {defaults_hint!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

748)         flags='python-brace-format',
749)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

750)     EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

751)         'See EXPORT_VAULT_KEY_HELP_TEXT.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

752)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

753)         'Label :: Help text :: One-line description',
754)         '(default: check the `VAULT_KEY`, `LOGNAME`, `USER`, or '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

755)         '`USERNAME` environment variables)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

756)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

757)     HELP_OPTION_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

758)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

759)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

760)         'Label :: Help text :: One-line description',
761)         'show this help text, then exit',
Marco Ricci Reimplement `--help` and `-...

Marco Ricci authored 2 months ago

762)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

763)     QUIET_OPTION_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

764)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

765)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

766)         'Label :: Help text :: One-line description',
767)         'suppress even warnings, emit only errors',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

768)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

769)     VERBOSE_OPTION_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

770)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

771)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

772)         'Label :: Help text :: One-line description',
773)         'emit extra/progress information to standard error',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

774)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

775)     VERSION_OPTION_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

776)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

777)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

778)         'Label :: Help text :: One-line description',
779)         'show applicable version information, then exit',
Marco Ricci Reimplement `--help` and `-...

Marco Ricci authored 2 months ago

780)     )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

781) 
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

782)     DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

783)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

784)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

785)         'Label :: Help text :: One-line description',
786)         'prompt for a master passphrase',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

787)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

788)     DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

789)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

790)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

791)         'Label :: Help text :: One-line description',
792)         'select a suitable SSH key from the SSH agent',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

793)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

794)     DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

795)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

796)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

797)         'Label :: Help text :: One-line description',
798)         'ensure a passphrase length of {metavar!s} characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

799)         flags='python-brace-format',
800)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

801)     DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

802)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

803)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

804)         'Label :: Help text :: One-line description',
805)         'forbid any run of {metavar!s} identical characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

806)         flags='python-brace-format',
807)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

808)     DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

809)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

810)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

811)         'Label :: Help text :: One-line description',
812)         'ensure at least {metavar!s} lowercase characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

813)         flags='python-brace-format',
814)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

815)     DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

816)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

817)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

818)         'Label :: Help text :: One-line description',
819)         'ensure at least {metavar!s} uppercase characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

820)         flags='python-brace-format',
821)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

822)     DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

823)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

824)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

825)         'Label :: Help text :: One-line description',
826)         'ensure at least {metavar!s} digits',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

827)         flags='python-brace-format',
828)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

829)     DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

830)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

831)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

832)         'Label :: Help text :: One-line description',
833)         'ensure at least {metavar!s} spaces',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

834)         flags='python-brace-format',
835)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

836)     DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

837)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

838)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

839)         'Label :: Help text :: One-line description',
840)         'ensure at least {metavar!s} "-" or "_" characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

841)         flags='python-brace-format',
842)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

843)     DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

844)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

845)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

846)         'Label :: Help text :: One-line description',
847)         'ensure at least {metavar!s} symbol characters',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

848)         flags='python-brace-format',
849)     )
850) 
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

851)     DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

852)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

853)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

854)         'Label :: Help text :: One-line description',
855)         'spawn an editor to edit notes for {service_metavar!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

856)         flags='python-brace-format',
857)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

858)     DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

859)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

860)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

861)         'Label :: Help text :: One-line description',
862)         'save the given settings for {service_metavar!s}, or global',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

863)         flags='python-brace-format',
864)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

865)     DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

866)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

867)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

868)         'Label :: Help text :: One-line description',
869)         'delete the settings for {service_metavar!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

870)         flags='python-brace-format',
871)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

872)     DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

873)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

874)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

875)         'Label :: Help text :: One-line description',
876)         'delete the global settings',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

877)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

878)     DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

879)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

880)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

881)         'Label :: Help text :: One-line description',
882)         'delete all settings',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

883)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

884)     DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

885)         'The metavar is Label.STORAGE_MANAGEMENT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

886)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

887)         'Label :: Help text :: One-line description',
888)         'export all saved settings to {metavar!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

889)         flags='python-brace-format',
890)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

891)     DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

892)         'The metavar is Label.STORAGE_MANAGEMENT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

893)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

894)         'Label :: Help text :: One-line description',
895)         'import saved settings from {metavar!s}',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

896)         flags='python-brace-format',
897)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

898)     DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

899)         'The corresponding option is displayed as '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

900)         '"--overwrite-existing / --merge-existing", so you may want to '
901)         'hint that the default (merge) is the second of those options.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

902)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

903)         'Label :: Help text :: One-line description',
904)         'overwrite or merge (default) the existing configuration',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

905)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

906)     DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

907)         'The corresponding option is displayed as '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

908)         '"--unset=phrase|key|...|symbol", so the "given setting" is '
909)         'referring to "phrase", "key", "lower", ..., or "symbol", '
910)         'respectively.  '
911)         '"with --config" here means that the user must also specify '
912)         '"--config" for this option to have any effect.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

913)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

914)         'Label :: Help text :: One-line description',
915)         'with --config, also unsets the given setting; '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

916)         'may be specified multiple times',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

917)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

918)     DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

919)         'The corresponding option is displayed as '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

920)         '"--export-as=json|sh", so json refers to the JSON format (default) '
921)         'and sh refers to the POSIX sh format.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

922)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

923)         'Label :: Help text :: One-line description',
924)         'when exporting, export as JSON (default) or POSIX sh',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

925)     )
926) 
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

927)     EXPORT_VAULT_FORMAT_METAVAR_FMT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

928)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

929)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

930)         'Label :: Help text :: Metavar :: export vault',
931)         'FMT',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

932)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

933)     EXPORT_VAULT_KEY_METAVAR_K = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

934)         'See Label.EXPORT_VAULT_KEY_HELP_TEXT.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

935)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

936)         'Label :: Help text :: Metavar :: export vault',
937)         'K',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

938)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

939)     EXPORT_VAULT_METAVAR_PATH = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

940)         'Used as "path_metavar" in '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

941)         'Label.DERIVEPASSPHRASE_EXPORT_VAULT_02 and others.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

942)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

943)         'Label :: Help text :: Metavar :: export vault',
944)         'PATH',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

945)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

946)     PASSPHRASE_GENERATION_METAVAR_NUMBER = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

947)         'This metavar is also used in a matching epilog.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

948)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

949)         'Label :: Help text :: Metavar :: vault',
950)         'NUMBER',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

951)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

952)     STORAGE_MANAGEMENT_METAVAR_PATH = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

953)         'This metavar is also used in multiple one-line help texts.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

954)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

955)         'Label :: Help text :: Metavar :: vault',
956)         'PATH',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

957)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

958)     VAULT_METAVAR_SERVICE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

959)         'This metavar is also used in multiple one-line help texts.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

960)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

961)         'Label :: Help text :: Metavar :: vault',
962)         'SERVICE',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

963)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

964)     CONFIGURATION_EPILOG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

965)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

966)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

967)         'Label :: Help text :: Explanation',
968)         'Use $VISUAL or $EDITOR to configure the spawned editor.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

969)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

970)     PASSPHRASE_GENERATION_EPILOG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

971)         'The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

972)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

973)         'Label :: Help text :: Explanation',
974)         'Use {metavar!s}=0 to exclude a character type from the output.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

975)         flags='python-brace-format',
976)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

977)     STORAGE_MANAGEMENT_EPILOG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

978)         'The metavar is Label.STORAGE_MANAGEMENT_METAVAR_PATH.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

979)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

980)         'Label :: Help text :: Explanation',
981)         'Using "-" as {metavar!s} for standard input/standard output '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

982)         'is supported.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

983)         flags='python-brace-format',
984)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

985)     COMMANDS_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

986)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

987)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

988)         'Label :: Help text :: Option group name',
989)         'Commands',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

990)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

991)     COMPATIBILITY_OPTION_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

992)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

993)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

994)         'Label :: Help text :: Option group name',
995)         'Compatibility and extension options',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

996)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

997)     CONFIGURATION_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

998)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

999)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1000)         'Label :: Help text :: Option group name',
1001)         'Configuration',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1002)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1003)     LOGGING_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1004)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1005)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1006)         'Label :: Help text :: Option group name',
1007)         'Logging',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1008)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1009)     OPTIONS_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1010)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1011)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1012)         'Label :: Help text :: Option group name',
1013)         'Options',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1014)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1015)     OTHER_OPTIONS_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1016)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1017)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1018)         'Label :: Help text :: Option group name',
1019)         'Other options',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1020)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1021)     PASSPHRASE_GENERATION_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1022)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1023)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1024)         'Label :: Help text :: Option group name',
1025)         'Passphrase generation',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1026)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1027)     STORAGE_MANAGEMENT_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1028)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1029)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1030)         'Label :: Help text :: Option group name',
1031)         'Storage management',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1032)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1033)     VERSION_INFO_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1034)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1035)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1036)         'Label :: Info Message',
1037)         '{PROG_NAME!s} {__version__}',  # noqa: RUF027
Marco Ricci Reimplement `--help` and `-...

Marco Ricci authored 2 months ago

1038)         flags='python-brace-format',
1039)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1040)     CONFIRM_THIS_CHOICE_PROMPT_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1041)         'There is no support for "yes" or "no" in other languages '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1042)         'than English, so it is advised that your translation makes it '
1043)         'clear that only the strings "y", "yes", "n" or "no" are supported, '
1044)         'even if the prompt becomes a bit longer.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1045)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1046)         'Label :: Interactive prompt',
1047)         'Confirm this choice? (y/N)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1048)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1049)     SUITABLE_SSH_KEYS_LABEL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1050)         'This label is the heading of the list of suitable SSH keys.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1051)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1052)         'Label :: Interactive prompt',
1053)         'Suitable SSH keys:',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1054)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1055)     YOUR_SELECTION_PROMPT_TEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1056)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1057)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1058)         'Label :: Interactive prompt',
1059)         'Your selection? (1-{n}, leave empty to abort)',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1060)         flags='python-brace-format',
1061)     )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1062) 
1063) 
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1064) class DebugMsgTemplate(enum.Enum):
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1065)     BUCKET_ITEM_FOUND = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1066)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1067)         'for "storeroom"-type configuration directories.  '
1068)         'The system stores entries in different "buckets" of a hash table.  '
1069)         'Here, we report on a single item (path and value) we discovered '
1070)         'after decrypting the whole bucket.  '
1071)         '(We ensure the path and value are printable as-is.)',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1072)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1073)         'Debug message',
1074)         'Found bucket item: {path} -> {value}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1075)         flags='python-brace-format',
1076)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1077)     DECRYPT_BUCKET_ITEM_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1078)         '"AES256-CBC" and "PKCS#7" are, in essence, names of formats, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1079)         'and should not be translated.  '
1080)         '"IV" means "initialization vector", and is specifically '
1081)         'a cryptographic term, as are "plaintext" and "ciphertext".',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1082)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1083)         'Debug message',
1084)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1085) Decrypt bucket item contents:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1086) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1087)   \b
1088)   Encryption key (master key): {enc_key}
1089)   Encryption cipher: AES256-CBC with PKCS#7 padding
1090)   Encryption IV: {iv}
1091)   Encrypted ciphertext: {ciphertext}
1092)   Plaintext: {plaintext}
1093) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1094)         flags='python-brace-format',
1095)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1096)     DECRYPT_BUCKET_ITEM_KEY_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1097)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1098)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1099)         'Debug message',
1100)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1101) Decrypt bucket item:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1102) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1103)   \b
1104)   Plaintext: {plaintext}
1105)   Encryption key (master key): {enc_key}
1106)   Signing key (master key): {sign_key}
1107) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1108)         flags='python-brace-format',
1109)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1110)     DECRYPT_BUCKET_ITEM_MAC_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1111)         'The MAC stands for "message authentication code", '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1112)         'which guarantees the authenticity of the message to anyone '
1113)         'who holds the corresponding key, similar to a digital signature.  '
1114)         'The acronym "MAC" is assumed to be well-known to the '
1115)         'English target audience, or at least discoverable by them; '
1116)         'they *are* asking for debug output, after all.  '
1117)         'Please use your judgement as to whether to translate this term '
1118)         'or not, expanded or not.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1119)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1120)         'Debug message',
1121)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1122) Decrypt bucket item contents:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1123) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1124)   \b
1125)   MAC key: {sign_key}
1126)   Authenticated content: {ciphertext}
1127)   Claimed MAC value: {claimed_mac}
1128)   Computed MAC value: {actual_mac}
1129) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1130)         flags='python-brace-format',
1131)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1132)     DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1133)         '"AES256-CBC" and "PKCS#7" are, in essence, names of formats, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1134)         'and should not be translated.  '
1135)         '"IV" means "initialization vector", and is specifically '
1136)         'a cryptographic term, as are "plaintext" and "ciphertext".',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1137)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1138)         'Debug message',
1139)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1140) Decrypt bucket item session keys:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1141) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1142)   \b
1143)   Encryption key (master key): {enc_key}
1144)   Encryption cipher: AES256-CBC with PKCS#7 padding
1145)   Encryption IV: {iv}
1146)   Encrypted ciphertext: {ciphertext}
1147)   Plaintext: {plaintext}
1148)   Parsed plaintext: {code}
1149) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1150)         flags='python-brace-format',
1151)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1152)     DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1153)         'The MAC stands for "message authentication code", '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1154)         'which guarantees the authenticity of the message to anyone '
1155)         'who holds the corresponding key, similar to a digital signature.  '
1156)         'The acronym "MAC" is assumed to be well-known to the '
1157)         'English target audience, or at least discoverable by them; '
1158)         'they *are* asking for debug output, after all.  '
1159)         'Please use your judgement as to whether to translate this term '
1160)         'or not, expanded or not.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1161)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1162)         'Debug message',
1163)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1164) Decrypt bucket item session keys:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1165) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1166)   \b
1167)   MAC key (master key): {sign_key}
1168)   Authenticated content: {ciphertext}
1169)   Claimed MAC value: {claimed_mac}
1170)   Computed MAC value: {actual_mac}
1171) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1172)         flags='python-brace-format',
1173)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1174)     DERIVED_MASTER_KEYS_KEYS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1175)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1176)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1177)         'Debug message',
1178)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1179) Derived master keys' keys:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1180) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1181)   \b
1182)   Encryption key: {enc_key}
1183)   Signing key: {sign_key}
1184)   Password: {pw_bytes}
1185)   Function call: pbkdf2(algorithm={algorithm!r}, length={length!r}, salt={salt!r}, iterations={iterations!r})
1186) """,  # noqa: E501
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1187)         flags='python-brace-format',
1188)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1189)     DIRECTORY_CONTENTS_CHECK_OK = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1190)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1191)         'for "storeroom"-type configuration directories, '
1192)         'while "assembling" the items stored in the configuration '
1193)         """according to the item's "path".  """
1194)         'Each "directory" in the path contains a list of children '
1195)         'it claims to contain, and this list must be matched '
1196)         'against the actual discovered items.  '
1197)         'Now, at the end, we actually confirm the claim.  '
1198)         '(We would have already thrown an error here otherwise.)',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1199)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1200)         'Debug message',
1201)         'Directory contents check OK: {path} -> {contents}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1202)         flags='python-brace-format',
1203)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1204)     MASTER_KEYS_DATA_MAC_INFO = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1205)         'The MAC stands for "message authentication code", '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1206)         'which guarantees the authenticity of the message to anyone '
1207)         'who holds the corresponding key, similar to a digital signature.  '
1208)         'The acronym "MAC" is assumed to be well-known to the '
1209)         'English target audience, or at least discoverable by them; '
1210)         'they *are* asking for debug output, after all.  '
1211)         'Please use your judgement as to whether to translate this term '
1212)         'or not, expanded or not.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1213)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1214)         'Debug message',
1215)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1216) Master keys data:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1217) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1218)   \b
1219)   MAC key: {sign_key}
1220)   Authenticated content: {ciphertext}
1221)   Claimed MAC value: {claimed_mac}
1222)   Computed MAC value: {actual_mac}
1223) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1224)         flags='python-brace-format',
1225)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1226)     POSTPONING_DIRECTORY_CONTENTS_CHECK = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1227)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1228)         'for "storeroom"-type configuration directories, '
1229)         'while "assembling" the items stored in the configuration '
1230)         """according to the item's "path".  """
1231)         'Each "directory" in the path contains a list of children '
1232)         'it claims to contain, and this list must be matched '
1233)         'against the actual discovered items.  '
1234)         'When emitting this message, we merely indicate that we saved '
1235)         'the "claimed" list for this directory for later.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1236)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1237)         'Debug message',
1238)         'Postponing directory contents check: {path} -> {contents}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1239)         flags='python-brace-format',
1240)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1241)     SETTING_CONFIG_STRUCTURE_CONTENTS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1242)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1243)         'for "storeroom"-type configuration directories, '
1244)         'while "assembling" the items stored in the configuration '
1245)         """according to the item's "path".  """
1246)         'We confirm that we set the entry at the given path '
1247)         'to the given value.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1248)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1249)         'Debug message',
1250)         'Setting contents: {path} -> {value}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1251)         flags='python-brace-format',
1252)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1253)     SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1254)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1255)         'for "storeroom"-type configuration directories, '
1256)         'while "assembling" the items stored in the configuration '
1257)         """according to the item's "path".  """
1258)         'We confirm that we set up a currently empty directory '
1259)         'at the given path.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1260)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1261)         'Debug message',
1262)         'Setting contents (empty directory): {path}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1263)         flags='python-brace-format',
1264)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1265)     VAULT_NATIVE_EVP_BYTESTOKEY_INIT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1266)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1267)         'for "native"-type configuration directories: '
1268)         'in v0.2, the non-standard and deprecated "EVP_bytestokey" function '
1269)         'from OpenSSL must be reimplemented from scratch.  '
1270)         'The terms "salt" and "IV" (initialization vector) '
1271)         'are cryptographic terms.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1272)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1273)         'Debug message',
1274)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1275) evp_bytestokey_md5 (initialization):
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1276) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1277)   \b
1278)   Input: {data}
1279)   Salt: {salt}
1280)   Key size: {key_size}
1281)   IV size: {iv_size}
1282)   Buffer length: {buffer_length}
1283)   Buffer: {buffer}
1284) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1285)         flags='python-brace-format',
1286)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1287)     VAULT_NATIVE_EVP_BYTESTOKEY_RESULT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1288)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1289)         'for "native"-type configuration directories: '
1290)         'in v0.2, the non-standard and deprecated "EVP_bytestokey" function '
1291)         'from OpenSSL must be reimplemented from scratch.  '
1292)         'The terms "salt" and "IV" (initialization vector) '
1293)         'are cryptographic terms.'
1294)         'This function reports on the final results.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1295)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1296)         'Debug message',
1297)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1298) evp_bytestokey_md5 (result):
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1299) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1300)   \b
1301)   Encryption key: {enc_key}
1302)   IV: {iv}
1303) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1304)         flags='python-brace-format',
1305)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1306)     VAULT_NATIVE_EVP_BYTESTOKEY_ROUND = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1307)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1308)         'for "native"-type configuration directories: '
1309)         'in v0.2, the non-standard and deprecated "EVP_bytestokey" function '
1310)         'from OpenSSL must be reimplemented from scratch.  '
1311)         'The terms "salt" and "IV" (initialization vector) '
1312)         'are cryptographic terms.'
1313)         'This function reports on the updated buffer length and contents '
1314)         'after executing one round of hashing.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1315)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1316)         'Debug message',
1317)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1318) evp_bytestokey_md5 (round update):
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1319) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1320)   \b
1321)   Buffer length: {buffer_length}
1322)   Buffer: {buffer}
1323) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1324)         flags='python-brace-format',
1325)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1326)     VAULT_NATIVE_CHECKING_MAC_DETAILS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1327)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1328)         'for "native"-type configuration directories.  '
1329)         'It is preceded by the info message '
1330)         'VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC; see the commentary there '
1331)         'concerning the terms and thoughts on translating them.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1332)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1333)         'Debug message',
1334)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1335) MAC details:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1336) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1337)   \b
1338)   MAC input: {mac_input}
1339)   Expected MAC: {mac}
1340) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1341)         flags='python-brace-format',
1342)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1343)     VAULT_NATIVE_PADDED_PLAINTEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1344)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1345)         'for "native"-type configuration directories.  '
1346)         '"padding" and "plaintext" are cryptographic terms.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1347)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1348)         'Debug message',
1349)         'Padded plaintext: {contents}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1350)         flags='python-brace-format',
1351)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1352)     VAULT_NATIVE_PARSE_BUFFER = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1353)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1354)         'for "native"-type configuration directories.  '
1355)         'It is preceded by the info message '
1356)         'VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC; see the commentary there '
1357)         'concerning the terms and thoughts on translating them.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1358)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1359)         'Debug message',
1360)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1361) Buffer: {contents}
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1362) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1363)   \b
1364)   IV: {iv}
1365)   Payload: {payload}
1366)   MAC: {mac}
1367) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1368)         flags='python-brace-format',
1369)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1370)     VAULT_NATIVE_PLAINTEXT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1371)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1372)         'for "native"-type configuration directories.  '
1373)         '"plaintext" is a cryptographic term.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1374)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1375)         'Debug message',
1376)         'Plaintext: {contents}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1377)         flags='python-brace-format',
1378)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1379)     VAULT_NATIVE_PBKDF2_CALL = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1380)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1381)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1382)         'Debug message',
1383)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1384) Master key derivation:
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1385) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1386)   \b
1387)   PBKDF2 call: PBKDF2-HMAC(password={password!r}, salt={salt!r}, iterations={iterations!r}, key_size={key_size!r}, algorithm={algorithm!r})
1388)   Result (binary): {raw_result}
1389)   Result (hex key): {result_key!r}
1390) """,  # noqa: E501
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1391)         flags='python-brace-format',
1392)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1393)     VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1394)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1395)         'for "native"-type configuration directories.  '
1396)         'It is preceded by the info message '
1397)         'VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC and the debug message '
1398)         'PARSING_NATIVE_PARSE_BUFFER; see the commentary there concerning '
1399)         'the terms and thoughts on translating them.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1400)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1401)         'Debug message',
1402)         """\
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1403) Postprocessing buffer (v0.2):
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1404) 
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1405)   \b
1406)   Payload: {payload} (decoded from base64)
1407)   MAC: {mac} (decoded from hex)
1408) """,
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1409)         flags='python-brace-format',
1410)     )
1411) 
1412) 
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1413) class InfoMsgTemplate(enum.Enum):
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1414)     ASSEMBLING_CONFIG_STRUCTURE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1415)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1416)         'for "storeroom"-type configuration directories.  '
1417)         'The system stores entries in different "buckets" of a hash table.  '
1418)         'After the respective items in the buckets have been decrypted, '
1419)         'we then have a list of item paths plus contents to populate.  '
1420)         "This must be done in a certain order (we don't yet have an "
1421)         'existing directory tree to rely on, but rather must '
1422)         'build it on-the-fly), hence the term "assembling".',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1423)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1424)         'Info message',
1425)         'Assembling config structure',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1426)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1427)     CANNOT_LOAD_AS_VAULT_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1428)         '"fmt" is a string such as "v0.2" or "storeroom", '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1429)         'indicating the format which we tried to load the '
1430)         'vault configuration as.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1431)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1432)         'Info message',
1433)         'Cannot load {path!r} as a {fmt!s} vault configuration.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1434)         flags='python-brace-format',
1435)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1436)     CHECKING_CONFIG_STRUCTURE_CONSISTENCY = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1437)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1438)         'for "storeroom"-type configuration directories.  '
1439)         'Having "assembled" the configuration items according to '
1440)         'their claimed paths and contents, we then check if the '
1441)         'assembled structure is internally consistent.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1442)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1443)         'Info message',
1444)         'Checking config structure consistency',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1445)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1446)     DECRYPTING_BUCKET = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1447)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1448)         'for "storeroom"-type configuration directories.  '
1449)         'The system stores entries in different "buckets" of a hash table.  '
1450)         'We parse the directory bucket by bucket.  '
1451)         'All buckets are numbered in hexadecimal, and typically there are '
1452)         '32 buckets, so 2-digit hex numbers.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1453)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1454)         'Info message',
1455)         'Decrypting bucket {bucket_number}',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1456)         flags='python-brace-format',
1457)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1458)     PARSING_MASTER_KEYS_DATA = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1459)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1460)         'for "storeroom"-type configuration directories.  '
1461)         '`.keys` is a filename, from which data about the master keys '
1462)         'for this configuration are loaded.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1463)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1464)         'Info message',
1465)         'Parsing master keys data from .keys',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1466)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1467)     PIP_INSTALL_EXTRA = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1468)         'This message immediately follows an error message about '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1469)         'a missing library that needs to be installed.  '
1470)         'The Python Package Index (PyPI) supports declaring sets of '
1471)         'optional dependencies as "extras", so users installing from PyPI '
1472)         'can request reinstallation with a named "extra" being enabled.  '
1473)         'This would then let the installer take care of the '
1474)         'missing libraries automatically, '
1475)         'hence this suggestion to PyPI users.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1476)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1477)         'Info message',
1478)         'For users installing from PyPI, see the {extra_name!r} extra.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1479)         flags='python-brace-format',
1480)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1481)     SUCCESSFULLY_MIGRATED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1482)         'This info message immediately follows the '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1483)         '"Using deprecated v0.1-style ..." deprecation warning.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1484)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1485)         'Info message',
1486)         'Successfully migrated to {path!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1487)         flags='python-brace-format',
1488)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1489)     VAULT_NATIVE_CHECKING_MAC = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1490)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1491)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1492)         'Info message',
1493)         'Checking MAC',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1494)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1495)     VAULT_NATIVE_DECRYPTING_CONTENTS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1496)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1497)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1498)         'Info message',
1499)         'Decrypting contents',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1500)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1501)     VAULT_NATIVE_DERIVING_KEYS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1502)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1503)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1504)         'Info message',
1505)         'Deriving an encryption and signing key',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1506)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1507)     VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1508)         'This message is emitted by the vault configuration exporter '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1509)         'for "native"-type configuration directories.  '
1510)         '"IV" means "initialization vector", and "MAC" means '
1511)         '"message authentication code".  '
1512)         'They are specifically cryptographic terms, as is "payload".  '
1513)         'The acronyms "IV" and "MAC" are assumed to be well-known to the '
1514)         'English target audience, or at least discoverable by them; '
1515)         'they *are* asking for debug output, after all.  '
1516)         'Please use your judgement as to whether to translate these terms '
1517)         'or not, expanded or not.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1518)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1519)         'Info message',
1520)         'Parsing IV, payload and MAC from the file contents',
Marco Ricci Make debug and info message...

Marco Ricci authored 2 months ago

1521)     )
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1522) 
1523) 
1524) class WarnMsgTemplate(enum.Enum):
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1525)     EMPTY_SERVICE_NOT_SUPPORTED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1526)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1527)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1528)         'Warning message',
1529)         'An empty {service_metavar!s} is not supported by vault(1).  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1530)         'For compatibility, this will be treated as if SERVICE was not '
1531)         'supplied, i.e., it will error out, or operate on global settings.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1532)         flags='python-brace-format',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1533)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1534)     EMPTY_SERVICE_SETTINGS_INACCESSIBLE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1535)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1536)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1537)         'Warning message',
1538)         'An empty {service_metavar!s} is not supported by vault(1).  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1539)         'The empty-string service settings will be inaccessible '
1540)         'and ineffective.  '
1541)         'To ensure that vault(1) and {PROG_NAME!s} see the settings, '  # noqa: RUF027
1542)         'move them into the "global" section.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1543)         flags='python-brace-format',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1544)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1545)     FAILED_TO_MIGRATE_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1546)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1547)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1548)         'Warning message',
1549)         'Failed to migrate to {path!r}: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1550)         flags='python-brace-format',
1551)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1552)     GLOBAL_PASSPHRASE_INEFFECTIVE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1553)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1554)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1555)         'Warning message',
1556)         'Setting a global passphrase is ineffective '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1557)         'because a key is also set.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1558)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1559)     PASSPHRASE_NOT_NORMALIZED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1560)         'The key is a (vault) configuration key, in JSONPath syntax, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1561)         'typically "$.global" for the global passphrase or '
1562)         '"$.services.service_name" or "$.services["service with spaces"]" '
1563)         'for the services "service_name" and "service with spaces", '
1564)         'respectively.  '
1565)         'The form is one of the four Unicode normalization forms: '
1566)         'NFC, NFD, NFKC, NFKD.  '
1567)         'The asterisks are not special.  '
1568)         'Please feel free to substitute any other appropriate way to '
1569)         'mark up emphasis of the word "displays".',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1570)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1571)         'Warning message',
1572)         'The {key!s} passphrase is not {form!s}-normalized.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1573)         'Its serialization as a byte string may not be what you '
1574)         'expect it to be, even if it *displays* correctly.  '
1575)         'Please make sure to double-check any derived passphrases '
1576)         'for unexpected results.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1577)         flags='python-brace-format',
1578)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1579)     SERVICE_NAME_INCOMPLETABLE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1580)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1581)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1582)         'Warning message',
1583)         'The service name {service!r} contains an ASCII control character, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1584)         'which is not supported by our shell completion code.  '
1585)         'This service name will therefore not be available for completion '
1586)         'on the command-line.  '
1587)         'You may of course still type it in manually in whatever format '
1588)         'your shell accepts, but we highly recommend choosing a different '
1589)         'service name instead.',
Marco Ricci Consolidate shell completio...

Marco Ricci authored 2 months ago

1590)         flags='python-brace-format',
1591)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1592)     SERVICE_PASSPHRASE_INEFFECTIVE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1593)         'The key that is set need not necessarily be set at the '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1594)         'service level; it may be a global key as well.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1595)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1596)         'Warning message',
1597)         'Setting a service passphrase is ineffective '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1598)         'because a key is also set: {service!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1599)         flags='python-brace-format',
1600)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1601)     STEP_REMOVE_INEFFECTIVE_VALUE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1602)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1603)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1604)         'Warning message',
1605)         'Removing ineffective setting {path!s} = {old!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1606)         flags='python-brace-format',
1607)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1608)     STEP_REPLACE_INVALID_VALUE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1609)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1610)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1611)         'Warning message',
1612)         'Replacing invalid value {old!s} for key {path!s} with {new!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1613)         flags='python-brace-format',
1614)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1615)     V01_STYLE_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1616)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1617)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1618)         'Warning message :: Deprecation',
1619)         'Using deprecated v0.1-style config file {old!r}, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1620)         'instead of v0.2-style {new!r}.  '
1621)         'Support for v0.1-style config filenames will be removed in v1.0.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1622)         flags='python-brace-format',
1623)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1624)     V10_SUBCOMMAND_REQUIRED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1625)         'This deprecation warning may be issued at any level, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1626)         'i.e. we may actually be talking about subcommands, '
1627)         'or sub-subcommands, or sub-sub-subcommands, etc., '
1628)         'which is what the "here" is supposed to indicate.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1629)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1630)         'Warning message :: Deprecation',
1631)         'A subcommand will be required here in v1.0.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1632)         'See --help for available subcommands.  '
1633)         'Defaulting to subcommand "vault".',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1634)     )
1635) 
1636) 
1637) class ErrMsgTemplate(enum.Enum):
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1638)     AGENT_REFUSED_LIST_KEYS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1639)         '"loaded keys" being keys loaded into the agent.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1640)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1641)         'Error message',
1642)         'The SSH agent failed to or refused to supply a list of loaded keys.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1643)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1644)     AGENT_REFUSED_SIGNATURE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1645)         'The message to be signed is the vault UUID, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1646)         "but there's no space to explain that here, "
1647)         'so ideally the error message does not go into detail.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1648)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1649)         'Error message',
1650)         'The SSH agent failed to or refused to issue a signature '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1651)         'with the selected key, necessary for deriving a service passphrase.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1652)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1653)     CANNOT_CONNECT_TO_AGENT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1654)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1655)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1656)         'Error message',
1657)         'Cannot connect to the SSH agent: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1658)         flags='python-brace-format',
1659)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1660)     CANNOT_DECODEIMPORT_VAULT_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1661)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1662)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1663)         'Error message',
1664)         'Cannot import vault settings: cannot decode JSON: {error!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1665)         flags='python-brace-format',
1666)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1667)     CANNOT_EXPORT_VAULT_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1668)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1669)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1670)         'Error message',
1671)         'Cannot export vault settings: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1672)         flags='python-brace-format',
1673)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1674)     CANNOT_IMPORT_VAULT_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1675)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1676)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1677)         'Error message',
1678)         'Cannot import vault settings: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1679)         flags='python-brace-format',
1680)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1681)     CANNOT_LOAD_USER_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1682)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1683)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1684)         'Error message',
1685)         'Cannot load user config: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1686)         flags='python-brace-format',
1687)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1688)     CANNOT_LOAD_VAULT_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1689)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1690)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1691)         'Error message',
1692)         'Cannot load vault settings: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1693)         flags='python-brace-format',
1694)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1695)     CANNOT_PARSE_AS_VAULT_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1696)         'Unlike the "Cannot load {path!r} as a {fmt!s} '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1697)         'vault configuration." message, *this* error message is emitted '
1698)         'when we have tried loading the path in each of our '
1699)         'supported formats, and failed.  '
1700)         'The user will thus see the above "Cannot load ..." warning message '
1701)         'potentially multiple times, '
1702)         'and this error message at the very bottom.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1703)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1704)         'Error message',
1705)         'Cannot parse {path!r} as a valid vault-native '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1706)         'configuration file/directory.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1707)         flags='python-brace-format',
1708)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1709)     CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1710)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1711)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1712)         'Error message',
1713)         r'Cannot parse {path!r} as a valid vault-native '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1714)         'configuration file/directory: {error!s}: {filename!r}.',
Marco Ricci Replace strings in `derivep...

Marco Ricci authored 2 months ago

1715)         flags='python-brace-format',
1716)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1717)     CANNOT_STORE_VAULT_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1718)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1719)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1720)         'Error message',
1721)         'Cannot store vault settings: {error!s}: {filename!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1722)         flags='python-brace-format',
1723)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1724)     CANNOT_UNDERSTAND_AGENT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1725)         'This error message is used whenever we cannot make '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1726)         'any sense of a response from the SSH agent '
1727)         'because the response is ill-formed '
1728)         '(truncated, improperly encoded, etc.) '
1729)         'or otherwise violates the communications protocol.  '
1730)         'Well-formed responses that adhere to the protocol, '
1731)         'even if they indicate that the requested operation failed, '
1732)         'are handled with a different error message.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1733)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1734)         'Error message',
1735)         "Cannot understand the SSH agent's response because it "
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1736)         'violates the communications protocol.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1737)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1738)     CANNOT_UPDATE_SETTINGS_NO_SETTINGS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1739)         'The settings_type metavar contains translations for '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1740)         'either "global settings" or "service-specific settings"; '
1741)         'see the CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL and '
1742)         'CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE entries.  '
1743)         'The first sentence will thus read either '
1744)         '"Cannot update the global settings without any given settings." or '
1745)         '"Cannot update the service-specific settings without any '
1746)         'given settings.".  '
1747)         'You may update this entry, and the two metavar entries, '
1748)         'in any way you see fit that achieves the desired translations '
1749)         'of the first sentence.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1750)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1751)         'Error message',
1752)         'Cannot update the {settings_type!s} without any given settings.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1753)         'You must specify at least one of --lower, ..., --symbol, '
1754)         'or --phrase or --key.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1755)         flags='python-brace-format',
1756)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1757)     INVALID_USER_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1758)         '"error" is supplied by the operating system (errno/strerror).',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1759)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1760)         'Error message',
1761)         'The user configuration file is invalid.  {error!s}: {filename!r}.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1762)         flags='python-brace-format',
1763)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1764)     INVALID_VAULT_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1765)         'This error message is a reaction to a validator function '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1766)         'saying *that* the configuration is not valid, '
1767)         'but not *how* it is not valid.  '
1768)         'The configuration file is principally parsable, however.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1769)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1770)         'Error message',
1771)         'Invalid vault config: {config!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1772)         flags='python-brace-format',
1773)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1774)     MISSING_MODULE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1775)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1776)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1777)         'Error message',
1778)         'Cannot load the required Python module {module!r}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1779)         flags='python-brace-format',
1780)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1781)     NO_AF_UNIX = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1782)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1783)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1784)         'Error message',
1785)         'Cannot connect to an SSH agent because this Python version '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1786)         'does not support UNIX domain sockets.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1787)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1788)     NO_KEY_OR_PHRASE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1789)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1790)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1791)         'Error message',
1792)         'No passphrase or key was given in the configuration.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1793)         'In this case, the --phrase or --key argument is required.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1794)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1795)     NO_SSH_AGENT_FOUND = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1796)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1797)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1798)         'Error message',
1799)         'Cannot find any running SSH agent because SSH_AUTH_SOCK is not set.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1800)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1801)     NO_SUITABLE_SSH_KEYS = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1802)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1803)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1804)         'Error message',
1805)         'The SSH agent contains no keys suitable for {PROG_NAME!s}.',  # noqa: RUF027
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1806)         flags='python-brace-format',
1807)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1808)     PARAMS_MUTUALLY_EXCLUSIVE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1809)         'The params are long-form command-line option names.  '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1810)         'Typical example: "--key is mutually exclusive with --phrase."',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1811)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1812)         'Error message',
1813)         '{param1!s} is mutually exclusive with {param2!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1814)         flags='python-brace-format',
1815)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1816)     PARAMS_NEEDS_SERVICE_OR_CONFIG = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1817)         'The param is a long-form command-line option name, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1818)         'the metavar is Label.VAULT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1819)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1820)         'Error message',
1821)         '{param!s} requires a {service_metavar!s} or --config.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1822)         flags='python-brace-format',
1823)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1824)     PARAMS_NEEDS_SERVICE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1825)         'The param is a long-form command-line option name, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1826)         'the metavar is Label.VAULT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1827)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1828)         'Error message',
1829)         '{param!s} requires a {service_metavar!s}.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1830)         flags='python-brace-format',
1831)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1832)     PARAMS_NO_SERVICE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1833)         'The param is a long-form command-line option name, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1834)         'the metavar is Label.VAULT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1835)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1836)         'Error message',
1837)         '{param!s} does not take a {service_metavar!s} argument.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1838)         flags='python-brace-format',
1839)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1840)     SERVICE_REQUIRED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1841)         'The metavar is Label.VAULT_METAVAR_SERVICE.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1842)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1843)         'Error message',
1844)         'Deriving a passphrase requires a {service_metavar!s}.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1845)         flags='python-brace-format',
1846)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1847)     SET_AND_UNSET_SAME_SETTING = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1848)         'The rephrasing '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1849)         '"Attempted to unset and set the same setting '
1850)         '(--unset={setting!s} --{setting!s}=...) at the same time."'
1851)         'may or may not be more suitable as a basis for translation instead.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1852)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1853)         'Error message',
1854)         'Attempted to unset and set --{setting!s} at the same time.',
Marco Ricci Add more translatable strin...

Marco Ricci authored 2 months ago

1855)         flags='python-brace-format',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1856)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1857)     SSH_KEY_NOT_LOADED = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1858)         '',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1859)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1860)         'Error message',
1861)         'The requested SSH key is not loaded into the agent.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1862)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1863)     USER_ABORTED_EDIT = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1864)         'The user requested to edit the notes for a service, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1865)         'but aborted the request mid-editing.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1866)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1867)         'Error message',
1868)         'Not saving any new notes: the user aborted the request.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1869)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1870)     USER_ABORTED_PASSPHRASE = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1871)         'The user was prompted for a master passphrase, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1872)         'but aborted the request.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1873)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1874)         'Error message',
1875)         'No passphrase was given; the user aborted the request.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1876)     )
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1877)     USER_ABORTED_SSH_KEY_SELECTION = _Commented(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1878)         'The user was prompted to select a master SSH key, '
Marco Ricci Normalize and unwrap transl...

Marco Ricci authored 2 months ago

1879)         'but aborted the request.',
Marco Ricci Split off comments in trans...

Marco Ricci authored 2 months ago

1880)     )(
Marco Ricci Convert translatable string...

Marco Ricci authored 2 months ago

1881)         'Error message',
1882)         'No SSH key was selected; the user aborted the request.',
Marco Ricci Extract translatable log me...

Marco Ricci authored 2 months ago

1883)     )
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1884) 
1885) 
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

1886) MsgTemplate: TypeAlias = Union[
1887)     Label,
1888)     DebugMsgTemplate,
1889)     InfoMsgTemplate,
1890)     WarnMsgTemplate,
1891)     ErrMsgTemplate,
1892) ]
1893) MSG_TEMPLATE_CLASSES = (
1894)     Label,
1895)     DebugMsgTemplate,
1896)     InfoMsgTemplate,
1897)     WarnMsgTemplate,
1898)     ErrMsgTemplate,
1899) )
1900) 
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1901) DebugTranslations._load_cache()  # noqa: SLF001
1902) 
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

1903) 
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1904) 
1905) def _write_po_file(  # noqa: C901
1906)     fileobj: TextIO,
1907)     /,
1908)     *,
1909)     is_template: bool = True,
1910)     version: str = __version__,
1911) ) -> None:  # pragma: no cover
1912)     r"""Write a .po file to the given file object.
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1913) 
1914)     Assumes the file object is opened for writing and accepts string
1915)     inputs.  The file will *not* be closed when writing is complete.
1916)     The file *must* be opened in UTF-8 encoding, lest the file will
1917)     declare an incorrect encoding.
1918) 
1919)     This function crucially depends on all translatable strings
1920)     appearing in the enums of this module.  Certain parts of the
1921)     .po header are hard-coded, as is the source filename.
1922) 
Marco Ricci Update ruff to v0.8.x, refo...

Marco Ricci authored 2 months ago

1923)     """  # noqa: DOC501
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

1924)     entries: dict[str, dict[str, MsgTemplate]] = {}
1925)     for enum_class in MSG_TEMPLATE_CLASSES:
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1926)         for member in enum_class.__members__.values():
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1927)             value = cast('TranslatableString', member.value)
1928)             ctx = value.l10n_context
1929)             msg = value.singular
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1930)             if (
1931)                 msg in entries.setdefault(ctx, {})
1932)                 and entries[ctx][msg] != member
1933)             ):
Marco Ricci Update ruff to v0.8.x, refo...

Marco Ricci authored 2 months ago

1934)                 raise AssertionError(  # noqa: TRY003
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1935)                     f'Duplicate entry for ({ctx!r}, {msg!r}): '  # noqa: EM102
1936)                     f'{entries[ctx][msg]!r} and {member!r}'
1937)                 )
1938)             entries[ctx][msg] = member
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1939)     build_time = datetime.datetime.now().astimezone()
Marco Ricci Support SOURCE_DATE_EPOCH f...

Marco Ricci authored 2 months ago

1940)     if os.environ.get('SOURCE_DATE_EPOCH'):
1941)         try:
1942)             source_date_epoch = int(os.environ['SOURCE_DATE_EPOCH'])
1943)         except ValueError as exc:
1944)             err_msg = 'Cannot parse SOURCE_DATE_EPOCH'
1945)             raise RuntimeError(err_msg) from exc
1946)         else:
1947)             build_time = datetime.datetime.fromtimestamp(
1948)                 source_date_epoch,
1949)                 tz=datetime.timezone.utc,
1950)             )
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1951)     if is_template:
1952)         header = (
1953)             inspect.cleandoc(rf"""
1954)             # English translation for {PROG_NAME!s}.
1955)             # Copyright (C) {build_time.strftime('%Y')} AUTHOR
1956)             # This file is distributed under the same license as {PROG_NAME!s}.
1957)             # AUTHOR <someone@example.com>, {build_time.strftime('%Y')}.
1958)             #
1959)             msgid ""
1960)             msgstr ""
1961)             """).removesuffix('\n')
1962)             + '\n'
1963)         )
1964)     else:
1965)         header = (
1966)             inspect.cleandoc(rf"""
1967)             # English debug translation for {PROG_NAME!s}.
1968)             # Copyright (C) {build_time.strftime('%Y')} {__author__}
1969)             # This file is distributed under the same license as {PROG_NAME!s}.
1970)             #
1971)             msgid ""
1972)             msgstr ""
1973)             """).removesuffix('\n')
1974)             + '\n'
1975)         )
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

1976)     fileobj.write(header)
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

1977)     po_info = {
1978)         'Project-Id-Version': f'{PROG_NAME} {version}',
1979)         'Report-Msgid-Bugs-To': 'software@the13thletter.info',
1980)         'PO-Revision-Date': build_time.strftime('%Y-%m-%d %H:%M%z'),
1981)         'MIME-Version': '1.0',
1982)         'Content-Type': 'text/plain; charset=UTF-8',
1983)         'Content-Transfer-Encoding': '8bit',
1984)         'Plural-Forms': 'nplurals=2; plural=(n != 1);',
1985)     }
1986)     if is_template:
1987)         po_info.update({
1988)             'POT-Creation-Date': build_time.strftime('%Y-%m-%d %H:%M%z'),
1989)             'Last-Translator': 'AUTHOR <someone@example.com>',
1990)             'Language': 'en',
1991)             'Language-Team': 'English',
1992)         })
1993)     else:
1994)         po_info.update({
1995)             'Last-Translator': __author__,
1996)             'Language': 'en_DEBUG',
1997)             'Language-Team': 'English',
1998)         })
1999)     print(*_format_po_info(po_info), sep='\n', end='\n', file=fileobj)
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2000)     for _ctx, subdict in sorted(entries.items()):
2001)         for _msg, enum_value in sorted(
2002)             subdict.items(),
2003)             key=lambda kv: str(kv[1]),
2004)         ):
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

2005)             value = cast('TranslatableString', enum_value.value)
2006)             value2 = value.maybe_without_filename()
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2007)             fileobj.writelines(
2008)                 _format_po_entry(
2009)                     enum_value, is_debug_translation=not is_template
2010)                 )
2011)             )
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

2012)             if value != value2:
2013)                 fileobj.writelines(
2014)                     _format_po_entry(
2015)                         enum_value,
2016)                         is_debug_translation=not is_template,
2017)                         transformed_string=value2,
2018)                     )
2019)                 )
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2020) 
2021) 
2022) def _format_po_info(
2023)     data: Mapping[str, Any],
2024)     /,
2025) ) -> Iterator[str]:  # pragma: no cover
2026)     sortorder = [
2027)         'project-id-version',
2028)         'report-msgid-bugs-to',
2029)         'pot-creation-date',
2030)         'po-revision-date',
2031)         'last-translator',
2032)         'language',
2033)         'language-team',
2034)         'mime-version',
2035)         'content-type',
2036)         'content-transfer-encoding',
2037)         'plural-forms',
2038)     ]
2039) 
2040)     def _sort_position(s: str, /) -> int:
2041)         n = len(sortorder)
2042)         for i, x in enumerate(sortorder):
2043)             if s.lower().rstrip(':') == x:
2044)                 return i
2045)         return n
2046) 
2047)     for key in sorted(data.keys(), key=_sort_position):
2048)         value = data[key]
2049)         line = f"{key}: {value}\n"
2050)         yield _cstr(line)
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2051) 
2052) 
2053) def _format_po_entry(
Marco Ricci Hide translation template e...

Marco Ricci authored 2 months ago

2054)     enum_value: MsgTemplate,
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2055)     /,
2056)     *,
2057)     is_debug_translation: bool = False,
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

2058)     transformed_string: TranslatableString | None = None,
Marco Ricci Fix coverage

Marco Ricci authored 2 months ago

2059) ) -> tuple[str, ...]:  # pragma: no cover
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2060)     ret: list[str] = ['\n']
Marco Ricci Properly support trimmed fi...

Marco Ricci authored 2 months ago

2061)     ts = transformed_string or cast('TranslatableString', enum_value.value)
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2062)     if ts.translator_comments:
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2063)         comments = ts.translator_comments.splitlines(False)  # noqa: FBT003
2064)         comments.extend(['', f'Message-ID: {enum_value}'])
2065)     else:
2066)         comments = [f'TRANSLATORS: Message-ID: {enum_value}']
2067)     ret.extend(f'#. {line}\n' for line in comments)
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2068)     if ts.flags:
2069)         ret.append(f'#, {", ".join(sorted(ts.flags))}\n')
2070)     if ts.l10n_context:
2071)         ret.append(f'msgctxt {_cstr(ts.l10n_context)}\n')
2072)     ret.append(f'msgid {_cstr(ts.singular)}\n')
2073)     if ts.plural:
2074)         ret.append(f'msgid_plural {_cstr(ts.plural)}\n')
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2075)     value = (
2076)         DebugTranslations().pgettext(ts.l10n_context, ts.singular)
2077)         if is_debug_translation
2078)         else ''
2079)     )
2080)     ret.append(f'msgstr {_cstr(value)}\n')
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2081)     return tuple(ret)
2082) 
2083) 
Marco Ricci Fix coverage

Marco Ricci authored 2 months ago

2084) def _cstr(s: str) -> str:  # pragma: no cover
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2085)     def escape(string: str) -> str:
2086)         return string.translate({
2087)             0: r'\000',
2088)             1: r'\001',
2089)             2: r'\002',
2090)             3: r'\003',
2091)             4: r'\004',
2092)             5: r'\005',
2093)             6: r'\006',
2094)             7: r'\007',
2095)             8: r'\b',
2096)             9: r'\t',
2097)             10: r'\n',
2098)             11: r'\013',
2099)             12: r'\f',
2100)             13: r'\r',
2101)             14: r'\016',
2102)             15: r'\017',
2103)             ord('"'): r'\"',
2104)             ord('\\'): r'\\',
2105)             127: r'\177',
2106)         })
2107) 
2108)     return '\n'.join(
2109)         f'"{escape(line)}"'
Marco Ricci Generate debug translations...

Marco Ricci authored 2 months ago

2110)         for line in s.splitlines(True) or ['']  # noqa: FBT003
Marco Ricci Add a writer function for d...

Marco Ricci authored 2 months ago

2111)     )
2112) 
2113) 
2114) if __name__ == '__main__':