@@ -20,9 +20,10 @@ def open_file(path: str, mode: str = 'r') -> str:
2020 return file
2121
2222
23- def parse_entry (block : str ) -> tuple [str , str ]:
24- parts = block .split ('msgstr ' )
25- return parts [0 ].replace ('msgid ' , '' ), parts [1 ]
23+ def parse_entry (block : str ) -> tuple [str , str , str ]:
24+ head , msgstr = block .split ('msgstr ' , 1 )
25+ comments , msgid = head .split ('msgid ' , 1 )
26+ return comments , msgid , msgstr
2627
2728
2829def blocks_from_file (src : str , lang : str ) -> list [str ]:
@@ -32,7 +33,7 @@ def blocks_from_file(src: str, lang: str) -> list[str]:
3233def parse_file (src : str , lang : str ) -> dict [str , str ]:
3334 src_dict = {}
3435 for block in blocks_from_file (src , lang ):
35- id_ , value = parse_entry (block )
36+ _ , id_ , value = parse_entry (block )
3637 src_dict [id_ ] = value
3738 return src_dict
3839
@@ -53,15 +54,15 @@ def fusion_po(
5354
5455 new_blocks = []
5556 for block in blocks_from_file (target , lang ):
56- msgid , value = parse_entry (block )
57+ comments , msgid , value = parse_entry (block )
5758 new_val = src_parsed .get (msgid )
5859
5960 if not new_val or emtpy_value (new_val ):
6061 new_blocks .append (block )
6162 continue
6263
6364 if emtpy_value (value ) or overwrite :
64- new_blocks .append (f'msgid { msgid } msgstr { new_val } ' )
65+ new_blocks .append (f'{ comments } msgid { msgid } msgstr { new_val } ' )
6566 else :
6667 new_blocks .append (block )
6768
0 commit comments