Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite2c7057

Browse files
authored
[3.9] Add Last-Translators to TX pull commit message (#102)
Backport of#88 to 3.9 branch.Co-authored-by: Stan Ulbrych
1 parentd5cc2d8 commite2c7057

File tree

1 file changed

+60
-3
lines changed

1 file changed

+60
-3
lines changed

‎manage_translation.py‎

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,21 @@
1111
# files.
1212
# * recreate_readme: recreate readme to update translation progress.
1313
# * regenerate_tx_config: recreate configuration for all resources.
14+
# * generate_commit_msg: generates commit message with co-authors
1415

1516
fromargparseimportArgumentParser
1617
fromcollectionsimportCounter
1718
importos
1819
fromdataclassesimportdataclass
1920
frompathlibimportPath
2021
fromreimportmatch,search
21-
fromsubprocessimportcall,run
22+
fromsubprocessimportcall,run,CalledProcessError
2223
importsys
2324
fromurllib.parseimportunquote
2425
fromwarningsimportwarn
2526

27+
frompolibimportpofile,POFile
28+
2629
LANGUAGE='pl'
2730

2831

@@ -273,9 +276,63 @@ def average(averages, weights):
273276
'''
274277
)
275278

279+
defgenerate_commit_msg():
280+
"""Generate a commit message
281+
Parses staged files and generates a commit message with Last-Translator's as
282+
co-authors.
283+
"""
284+
translators:set[str]=set()
276285

277-
if__name__=="__main__":
278-
RUNNABLE_SCRIPTS= ('fetch','recreate_tx_config','recreate_readme','warn_about_files_to_delete')
286+
result=run(
287+
['git','diff','--cached','--name-only','--diff-filter=ACM'],
288+
capture_output=True,
289+
text=True,
290+
check=True,
291+
)
292+
staged= [
293+
filenameforfilenameinresult.stdout.splitlines()iffilename.endswith('.po')
294+
]
295+
296+
forfileinstaged:
297+
staged_file=run(
298+
['git','show',f':{file}'],capture_output=True,text=True,check=True
299+
).stdout
300+
try:
301+
old_file=run(
302+
['git','show',f'HEAD:{file}'],
303+
capture_output=True,
304+
text=True,
305+
check=True,
306+
).stdout
307+
exceptCalledProcessError:
308+
old_file=''
309+
310+
new_po=pofile(staged_file)
311+
old_po=pofile(old_file)ifold_fileelsePOFile()
312+
old_entries= {entry.msgid:entry.msgstrforentryinold_po}
313+
314+
forentryinnew_po:
315+
ifentry.msgstrand (
316+
entry.msgidnotinold_entries
317+
orold_entries[entry.msgid]!=entry.msgstr
318+
):
319+
translator=new_po.metadata.get('Last-Translator')
320+
translator=translator.split(',')[0].strip()
321+
iftranslator:
322+
translators.add(f'Co-Authored-By:{translator}')
323+
break
324+
325+
print('Update translation from Transifex\n\n'+'\n'.join(translators))
326+
327+
328+
if__name__=='__main__':
329+
RUNNABLE_SCRIPTS= (
330+
'fetch',
331+
'recreate_tx_config',
332+
'recreate_readme',
333+
'warn_about_files_to_delete',
334+
'generate_commit_msg',
335+
)
279336

280337
parser=ArgumentParser()
281338
parser.add_argument('cmd',nargs=1,choices=RUNNABLE_SCRIPTS)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp