feat: allow splitting _() function call on multiple lines
This commit is contained in:
parent
92c563d193
commit
29ca4d7aaa
3 changed files with 22 additions and 5 deletions
|
|
@ -125,6 +125,9 @@ expected_output = [
|
||||||
('Warning: Unable to find {0} in any table related to {1}', 'This is some context', 15),
|
('Warning: Unable to find {0} in any table related to {1}', 'This is some context', 15),
|
||||||
('Submit', 'Some DocType', 17),
|
('Submit', 'Some DocType', 17),
|
||||||
("You don't have any messages yet.", None, 19),
|
("You don't have any messages yet.", None, 19),
|
||||||
("You don't have any messages yet.", None, 21)
|
("You don't have any messages yet.", None, 21),
|
||||||
|
("Long string that needs its own line because of black formatting.", None, 24),
|
||||||
|
("Long string with", "context", 28),
|
||||||
|
("Long string with", "context on newline", 32),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,4 +18,18 @@ _('Submit', context="Some DocType")
|
||||||
|
|
||||||
_("""You don't have any messages yet.""")
|
_("""You don't have any messages yet.""")
|
||||||
|
|
||||||
_('''You don't have any messages yet.''')
|
_('''You don't have any messages yet.''')
|
||||||
|
|
||||||
|
// allow newline in beginning
|
||||||
|
_(
|
||||||
|
"""Long string that needs its own line because of black formatting."""
|
||||||
|
).format("blah")
|
||||||
|
|
||||||
|
_(
|
||||||
|
"Long string with", context="context"
|
||||||
|
).format("blah")
|
||||||
|
|
||||||
|
_(
|
||||||
|
"Long string with",
|
||||||
|
context="context on newline"
|
||||||
|
).format("blah")
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ from frappe.query_builder import Field, DocType
|
||||||
from pypika.terms import PseudoColumn
|
from pypika.terms import PseudoColumn
|
||||||
|
|
||||||
TRANSLATE_PATTERN = re.compile(
|
TRANSLATE_PATTERN = re.compile(
|
||||||
r"_\(" # starts with literal `_(` work with both python / JS
|
r"_\([\s\n]*" # starts with literal `_(`, ignore following whitespace/newlines
|
||||||
|
|
||||||
# BEGIN: message search
|
# BEGIN: message search
|
||||||
r"([\"']{,3})" # start of message string identifier - allows: ', ", """, '''; 1st capture group
|
r"([\"']{,3})" # start of message string identifier - allows: ', ", """, '''; 1st capture group
|
||||||
|
|
@ -33,7 +33,7 @@ TRANSLATE_PATTERN = re.compile(
|
||||||
# END: message search
|
# END: message search
|
||||||
|
|
||||||
# BEGIN: python context search
|
# BEGIN: python context search
|
||||||
r"(\s*,\s*context\s*=\s*" # capture `context=` with ignoring whitespace
|
r"([\s\n]*,[\s\n]*context\s*=\s*" # capture `context=` with ignoring whitespace
|
||||||
r"([\"'])" # start of context string identifier; 5th capture group
|
r"([\"'])" # start of context string identifier; 5th capture group
|
||||||
r"(?P<py_context>((?!\5).)*)" # capture context string till closing id is found
|
r"(?P<py_context>((?!\5).)*)" # capture context string till closing id is found
|
||||||
r"\5" # match context string closure
|
r"\5" # match context string closure
|
||||||
|
|
@ -49,7 +49,7 @@ TRANSLATE_PATTERN = re.compile(
|
||||||
r")*" # match one or more context string
|
r")*" # match one or more context string
|
||||||
# END: JS context search
|
# END: JS context search
|
||||||
|
|
||||||
r"\)" # Closing function call
|
r"[\s\n]*\)" # Closing function call ignore leading whitespace/newlines
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue