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

Commit3620d73

Browse files
Add Last-Translators to TX pull commit message (#88)
1 parentee9daeb commit3620d73

File tree

2 files changed

+59
-4
lines changed

2 files changed

+59
-4
lines changed

‎.github/workflows/update-lint-and-build.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
run:>
5757
! git diff -I'^"POT-Creation-Date: ' -I'^"Language-Team: ' -I'^# ' -I'^"Last-Translator: ' -I'^"Project-Id-Version: ' --exit-code && echo "SIGNIFICANT_CHANGES=1" >> "$GITHUB_ENV" || exit 0
5858
-run:git add .
59-
-run:git commit -m'Update translation from Transifex'
59+
-run:git commit -m"$(python manage_translation.py generate_commit_msg)"
6060
if:env.SIGNIFICANT_CHANGES
6161
-name:Push commit
6262
uses:ad-m/github-push-action@master

‎manage_translation.py‎

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
# files.
1212
# * recreate_tx_config: recreate configuration for all resources.
1313
# * warn_about_files_to_delete: lists files that are not available upstream
14+
# * generate_commit_msg: generates commit message with co-authors
1415

1516
fromargparseimportArgumentParser
1617
importos
@@ -19,13 +20,13 @@
1920
fromdifflibimportSequenceMatcher
2021
fromloggingimportinfo
2122
frompathlibimportPath
22-
fromsubprocessimportcall
23+
fromsubprocessimportcall,run,CalledProcessError
2324
importsys
2425
fromtempfileimportTemporaryDirectory
2526
fromtypingimportSelf,Generator,Iterable
2627
fromwarningsimportwarn
2728

28-
frompolibimportpofile
29+
frompolibimportpofile,POFile
2930
fromtransifex.apiimporttransifex_api
3031

3132
LANGUAGE='pl'
@@ -202,8 +203,62 @@ def language_switcher(entry: ResourceLanguageStatistics) -> bool:
202203
)
203204

204205

206+
defgenerate_commit_msg():
207+
"""Generate a commit message
208+
Parses staged files and generates a commit message with Last-Translator's as
209+
co-authors.
210+
"""
211+
translators:set[str]=set()
212+
213+
result=run(
214+
['git','diff','--cached','--name-only','--diff-filter=ACM'],
215+
capture_output=True,
216+
text=True,
217+
check=True,
218+
)
219+
staged= [
220+
filenameforfilenameinresult.stdout.splitlines()iffilename.endswith('.po')
221+
]
222+
223+
forfileinstaged:
224+
staged_file=run(
225+
['git','show',f':{file}'],capture_output=True,text=True,check=True
226+
).stdout
227+
try:
228+
old_file=run(
229+
['git','show',f'HEAD:{file}'],
230+
capture_output=True,
231+
text=True,
232+
check=True,
233+
).stdout
234+
exceptCalledProcessError:
235+
old_file=''
236+
237+
new_po=pofile(staged_file)
238+
old_po=pofile(old_file)ifold_fileelsePOFile()
239+
old_entries= {entry.msgid:entry.msgstrforentryinold_po}
240+
241+
forentryinnew_po:
242+
ifentry.msgstrand (
243+
entry.msgidnotinold_entries
244+
orold_entries[entry.msgid]!=entry.msgstr
245+
):
246+
translator=new_po.metadata.get('Last-Translator')
247+
translator=translator.split(',')[0].strip()
248+
iftranslator:
249+
translators.add(f'Co-Authored-By:{translator}')
250+
break
251+
252+
print('Update translation from Transifex\n\n'+'\n'.join(translators))
253+
254+
205255
if__name__=='__main__':
206-
RUNNABLE_SCRIPTS= ('fetch','recreate_tx_config','warn_about_files_to_delete')
256+
RUNNABLE_SCRIPTS= (
257+
'fetch',
258+
'recreate_tx_config',
259+
'warn_about_files_to_delete',
260+
'generate_commit_msg',
261+
)
207262

208263
parser=ArgumentParser()
209264
parser.add_argument('cmd',choices=RUNNABLE_SCRIPTS)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp