Add i18n system

This commit is contained in:
Janet Blackquill 2022-10-19 22:18:40 -04:00
parent d5f46925a3
commit 77be338e46
11 changed files with 340 additions and 17 deletions

71
.github/scripts/check-diff.py vendored Executable file
View file

@ -0,0 +1,71 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2019 Corentin Noël <tintou@noel.tf>
#
# SPDX-License-Identifier: GPL-3.0-only
# Taken from https://github.com/elementary/actions/blob/master/gettext-template/check-diff.py
import git
import io
def commit_to_repo(repo):
print('There are translation changes, committing changes to repository!')
files = repo.git.diff(None, name_only=True)
for f in files.split('\n'):
if f.endswith ('.po') or f.endswith ('.pot'):
repo.git.add(f)
repo.git.commit('-m', 'Update translation template')
infos = repo.remotes.origin.push()
has_error=False
error_msg=''
for info in infos:
if info.flags & git.remote.PushInfo.ERROR == git.remote.PushInfo.ERROR:
has_error=True
error_msg += info.summary
if has_error:
raise NameError('Unable to push to repository: ' + error_msg)
print('Checking the repository for new translations...')
repo = git.Repo('.')
t = repo.head.commit.tree
files = repo.git.diff(None, name_only=True)
needs_commit=False
for f in files.split('\n'):
if f.endswith ('.pot'):
raw_diff = repo.git.diff(t, f)
output = io.StringIO()
for line in raw_diff.splitlines():
if line.startswith ('+++'):
continue
if line.startswith ('---'):
continue
if line.startswith ('diff'):
continue
if line.startswith ('index'):
continue
if line.startswith ('@@'):
continue
if line.startswith (' '):
continue
if line.startswith ('+#:'):
continue
if line.startswith ('-#:'):
continue
if line.startswith ('-"'):
continue
if line.startswith ('+"'):
continue
if not line.strip():
continue
print(line, file=output)
if output.getvalue().strip():
print(f + " has changed!")
needs_commit = True
output.close()
if needs_commit:
commit_to_repo(repo)
else:
print('The translations are up-to-date!')