66from pathlib import Path
77
88
9- def entry_check (pofile : polib .POFile ) -> str :
9+ def get_progress (pofile : polib .POFile ) -> float :
1010 '''
1111 Check the po file with how many entries are translated or not.
1212 '''
1313
1414 lines_tranlated = len (pofile .translated_entries ())
1515 lines_untranlated = len (pofile .untranslated_entries ())
1616
17- if lines_tranlated == 0 :
18- result = "❌"
19- elif lines_untranlated == 0 :
20- result = "✅"
21- else :
22- lines_all = lines_tranlated + lines_untranlated
23- progress = lines_tranlated / lines_all
24- progress_percentage = round (progress * 100 , 2 )
25- result = f"{ progress_percentage } %"
26-
27- return result
17+ # if lines_tranlated == 0:
18+ # result = "❌"
19+ # elif lines_untranlated == 0:
20+ # result = "✅"
21+ # else:
22+ lines_all = lines_tranlated + lines_untranlated
23+ progress = lines_tranlated / lines_all
24+ progress_percentage = round (progress * 100 , 2 )
25+ return progress_percentage
2826
2927
3028def get_open_issues_count () -> int :
@@ -93,13 +91,21 @@ def format_line_table_header() -> list:
9391 f"|-------:|:-------|:----|:-------|\r \n " ]
9492
9593
96- def format_issue_link (url : str ) -> str :
97- return f"[{ url .split ('/' )[- 1 ]} ]({ url } )" if len (url ) > 0 else ''
94+ def format_line_po_issue_display (issue_link : str , issue_number : str , create_issue_link : str , progress : float ) -> str :
95+ if issue_link :
96+ return f"[{ issue_number } ]({ issue_link } )"
97+ if progress != 100 :
98+ return f"[create issue]({ create_issue_link } )"
99+ return ""
98100
99101
100- def format_line_file (dirname : str , filename : str , data : dict ) -> str :
101- return f"|[`{ filename } `](https://github.com/python/python-docs-zh-tw/tree/3.13/{ dirname } /{ filename } )" + \
102- f"|{ data ['progress' ]} |{ format_issue_link (data ['issue' ])} |{ data ['assignee' ]} |\r \n "
102+ def format_line_po (filename : str , po_link : str , progress : str , issue_display : str , assignee : str ) -> str :
103+ progress_display = f"{ progress } %"
104+ if progress == 0 :
105+ progress_display = "❌"
106+ elif progress == 100 :
107+ progress_display = "✅"
108+ return f"|[`{ filename } `]({ po_link } )|{ progress_display } |{ issue_display } |{ assignee } |\r \n "
103109
104110
105111def format_line_directory (dirname : str ) -> str :
@@ -122,7 +128,7 @@ def format_line_directory(dirname: str) -> str:
122128 po = polib .pofile (filepath )
123129
124130 summary .setdefault (dirname , {})[filename ] = {
125- 'progress' : entry_check (po ),
131+ 'progress' : get_progress (po ),
126132 'issue' : '' ,
127133 'assignee' : '' ,
128134 }
@@ -153,7 +159,14 @@ def format_line_directory(dirname: str) -> str:
153159
154160 filedict_sorted = dict (sorted (filedict .items ()))
155161 for filename , filedata in filedict_sorted .items ():
156- writeliner .append (format_line_file (dirname , filename , filedata ))
162+ file_path = f"{ dirname } /{ filename } "
163+ po_link = f"https://github.com/python/python-docs-zh-tw/tree/3.13/{ file_path } "
164+ issue_link = filedata ['issue' ]
165+ issue_number = f"#{ issue_link .split ('/' )[- 1 ]} "
166+ create_issue_link = f"https://github.com/python/python-docs-zh-tw/issues/new?title=Translate `{ file_path } `"
167+ issue_display = format_line_po_issue_display (issue_link , issue_number , filedata ['progress' ], create_issue_link )
168+ line_po = format_line_po (filename , po_link , filedata ['progress' ], issue_display , filedata ['assignee' ])
169+ writeliner .append (line_po )
157170
158171 with open (
159172 f"summarize_progress/result.md" ,
0 commit comments