6 """ |
6 """ |
7 Module implementing message translations for the code style plugin messages. |
7 Module implementing message translations for the code style plugin messages. |
8 """ |
8 """ |
9 |
9 |
10 import re |
10 import re |
|
11 import contextlib |
11 |
12 |
12 from PyQt5.QtCore import QCoreApplication |
13 from PyQt5.QtCore import QCoreApplication |
13 |
14 |
14 from .Annotations.translations import ( |
15 from .Annotations.translations import ( |
15 _annotationsMessages, _annotationsMessagesSampleArgs |
16 _annotationsMessages, _annotationsMessagesSampleArgs |
26 from .Naming.translations import _namingStyleMessages |
27 from .Naming.translations import _namingStyleMessages |
27 from .PathLib.translations import _pathlibMessages |
28 from .PathLib.translations import _pathlibMessages |
28 from .Security.translations import ( |
29 from .Security.translations import ( |
29 _securityMessages, _securityMessagesSampleArgs |
30 _securityMessages, _securityMessagesSampleArgs |
30 ) |
31 ) |
|
32 from .Simplify.translations import ( |
|
33 _simplifyMessages, _simplifyMessagesSampleArgs |
|
34 ) |
31 |
35 |
32 ################################################################## |
36 ################################################################## |
33 ## pycodestyle error messages |
37 ## pycodestyle error messages |
34 ################################################################## |
38 ################################################################## |
35 |
39 |
502 "M": _miscellaneousMessages, |
506 "M": _miscellaneousMessages, |
503 "N": _namingStyleMessages, |
507 "N": _namingStyleMessages, |
504 "P": _pathlibMessages, |
508 "P": _pathlibMessages, |
505 "S": _securityMessages, |
509 "S": _securityMessages, |
506 "W": _pycodestyleWarningMessages, |
510 "W": _pycodestyleWarningMessages, |
|
511 "Y": _simplifyMessages, |
507 |
512 |
508 "FIX": _fixMessages, |
513 "FIX": _fixMessages, |
509 } |
514 } |
510 |
515 |
511 messageSampleArgsCatalog = { |
516 messageSampleArgsCatalog = { |
514 "D": _docStyleMessagesSampleArgs, |
519 "D": _docStyleMessagesSampleArgs, |
515 "E": _pycodestyleErrorMessagesSampleArgs, |
520 "E": _pycodestyleErrorMessagesSampleArgs, |
516 "M": _miscellaneousMessagesSampleArgs, |
521 "M": _miscellaneousMessagesSampleArgs, |
517 "S": _securityMessagesSampleArgs, |
522 "S": _securityMessagesSampleArgs, |
518 "W": _pycodestyleWarningMessagesSampleArgs, |
523 "W": _pycodestyleWarningMessagesSampleArgs, |
|
524 "Y": _simplifyMessagesSampleArgs, |
519 |
525 |
520 "FIX": _fixMessagesSampleArgs, |
526 "FIX": _fixMessagesSampleArgs, |
521 } |
527 } |
522 |
528 |
523 messageCategoryRe = re.compile(r"([A-Z]{1,3}).+") |
529 messageCategoryRe = re.compile(r"([A-Z]{1,3}).+") |
554 except KeyError: |
560 except KeyError: |
555 args = None |
561 args = None |
556 else: |
562 else: |
557 args = messageArgs |
563 args = messageArgs |
558 |
564 |
559 try: |
565 with contextlib.suppress(KeyError): |
560 catalog = messageCatalogs[messageCategory] |
566 catalog = messageCatalogs[messageCategory] |
561 try: |
567 with contextlib.suppress(KeyError): |
562 message = catalog[messageCode] |
568 message = catalog[messageCode] |
563 if args is None: |
569 if args is None: |
564 return message |
570 return message |
565 elif isinstance(args, int): |
571 elif isinstance(args, int): |
566 # Retranslate with correct plural form |
572 # Retranslate with correct plural form |
567 return message(args) |
573 return message(args) |
568 else: |
574 else: |
569 return message.format(*args) |
575 return message.format(*args) |
570 except KeyError: |
|
571 pass |
|
572 except KeyError: |
|
573 pass |
|
574 |
576 |
575 if example: |
577 if example: |
576 return None |
578 return None |
577 else: |
579 else: |
578 return QCoreApplication.translate( |
580 return QCoreApplication.translate( |