diff --git a/.github/helper/translation.py b/.github/helper/translation.py
index 340f4f8..9146b3b 100644
--- a/.github/helper/translation.py
+++ b/.github/helper/translation.py
@@ -2,7 +2,7 @@
 import sys
 
 errors_encounter = 0
-pattern = re.compile(r"_\(([\"']{,3})(?P<message>((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P<py_context>((?!\5).)*)\5)*(\s*,\s*(.)*?\s*(,\s*([\"'])(?P<js_context>((?!\11).)*)\11)*)*\)")
+pattern = re.compile(r"_\(([\"']{,3})(?P<message>((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P<py_context>((?!\5).)*)\5)*(\s*,(\s*?.*?\n*?)*(,\s*([\"'])(?P<js_context>((?!\11).)*)\11)*)*\)")
 words_pattern = re.compile(r"_{1,2}\([\"'`]{1,3}.*?[a-zA-Z]")
 start_pattern = re.compile(r"_{1,2}\([f\"'`]{1,3}")
 f_string_pattern = re.compile(r"_\(f[\"']")
@@ -28,7 +28,7 @@
 					has_f_string = f_string_pattern.search(line)
 					if has_f_string:
 						errors_encounter += 1
-						print(f'\nF-strings are not supported for translations at line number {line_number + 1}\n{line.strip()[:100]}')
+						print(f'\nF-strings are not supported for translations at line number {line_number}\n{line.strip()[:100]}')
 						continue
 					else:
 						continue
@@ -36,7 +36,7 @@
 				match = pattern.search(line)
 				error_found = False
 
-				if not match and line.endswith(',\n'):
+				if not match and line.endswith((',\n', '[\n')):
 					# concat remaining text to validate multiline pattern
 					line = "".join(file_lines[line_number - 1:])
 					line = line[start_matches.start() + 1:]
@@ -44,11 +44,11 @@
 
 				if not match:
 					error_found = True
-					print(f'\nTranslation syntax error at line number {line_number + 1}\n{line.strip()[:100]}')
+					print(f'\nTranslation syntax error at line number {line_number}\n{line.strip()[:100]}')
 
 				if not error_found and not words_pattern.search(line):
 					error_found = True
-					print(f'\nTranslation is useless because it has no words at line number {line_number + 1}\n{line.strip()[:100]}')
+					print(f'\nTranslation is useless because it has no words at line number {line_number}\n{line.strip()[:100]}')
 
 				if error_found:
 					errors_encounter += 1
