Add i18n system
This commit is contained in:
parent
d5f46925a3
commit
77be338e46
11 changed files with 340 additions and 17 deletions
71
.github/scripts/check-diff.py
vendored
Executable file
71
.github/scripts/check-diff.py
vendored
Executable 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!')
|
||||
62
.github/scripts/i18n.sh
vendored
Executable file
62
.github/scripts/i18n.sh
vendored
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2019 Corentin Noël <tintou@noel.tf>
|
||||
# SPDX-FileCopyrightText: 2022 Janet Blackquill <uhhadd@gmail.com>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
# adapted from https://github.com/elementary/actions/blob/master/gettext-template/entrypoint.sh
|
||||
|
||||
set -e
|
||||
|
||||
export DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
# if a custom token is provided, use it instead of the default github token.
|
||||
if [ -n "$GIT_USER_TOKEN" ]; then
|
||||
GITHUB_TOKEN="$GIT_USER_TOKEN"
|
||||
fi
|
||||
|
||||
if [ -z "${GITHUB_TOKEN}" ]; then
|
||||
echo "\033[0;31mERROR: The GITHUB_TOKEN environment variable is not defined.\033[0m" && exit 1
|
||||
fi
|
||||
|
||||
# Git repository is owned by another user, mark it as safe
|
||||
git config --global --add safe.directory /github/workspace
|
||||
|
||||
# get default branch, see: https://davidwalsh.name/get-default-branch-name
|
||||
DEFAULT_BRANCH="$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)"
|
||||
|
||||
if [ -z "${INPUT_TRANSLATION_BRANCH}" ]; then
|
||||
TRANSLATION_BRANCH="${DEFAULT_BRANCH}"
|
||||
else
|
||||
TRANSLATION_BRANCH="${INPUT_TRANSLATION_BRANCH}"
|
||||
fi
|
||||
|
||||
# default email and username to github actions user
|
||||
if [ -z "$GIT_USER_EMAIL" ]; then
|
||||
GIT_USER_EMAIL="action@github.com"
|
||||
fi
|
||||
if [ -z "$GIT_USER_NAME" ]; then
|
||||
GIT_USER_NAME="GitHub Action"
|
||||
fi
|
||||
|
||||
# make sure branches are up-to-date
|
||||
git fetch
|
||||
echo "Setting up git credentials..."
|
||||
git remote set-url origin https://x-access-token:"$GITHUB_TOKEN"@github.com/"$GITHUB_REPOSITORY".git
|
||||
git config --global user.email "$GIT_USER_EMAIL"
|
||||
git config --global user.name "$GIT_USER_NAME"
|
||||
echo "Git credentials configured."
|
||||
|
||||
# get the project's name:
|
||||
PROJECT="$(basename "$GITHUB_REPOSITORY")"
|
||||
echo "Project: $PROJECT"
|
||||
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qq install python3-git
|
||||
|
||||
dotnet tool install --global GetText.NET.Extractor --version 1.6.6
|
||||
|
||||
GetText.Extractor --order -s TShock.sln -t i18n/template.pot
|
||||
|
||||
python3 .github/scripts/check-diff.py
|
||||
Loading…
Add table
Add a link
Reference in a new issue