1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

chore: update docs & scripts for getting translations from Weblate

Removed not used script.
This commit is contained in:
Zetok Zalbavar 2016-09-18 19:08:18 +01:00
parent 3824a47e6f
commit dc10309a82
No known key found for this signature in database
GPG Key ID: C953D3880212068A
3 changed files with 86 additions and 63 deletions

View File

@ -121,6 +121,73 @@ Note:
duplicate of, tag with higher `duplicates:#`
# Translations from Weblate
Weblate provides an easy way for people to translate qTox. On one hand, it does
require a bit more attention & regular checking whether there are new
translations, on the other, it lessened problems that were happening with
"manual" way of providing translations.
To get translations into qTox:
1. Add Weblate: `git remote add weblate git://git.weblate.org/qtox.git`
2. Fetch newest: `git fetch weblate`
3. Check what has been changed compared to master: `git log --no-merges
master..weblate/master`
4. Cherry-pick from the oldest commit.
- check if there are multiple commits from the same author for the same
translation. If there are, cherry-pick them accordingly:
```
git cherry-pick <commit1> <commit2>
```
5. If there were multiple commits, squash them into a single one, and rename
remaining to
```
feat(l10n): update $LANGUAGE from Weblate
```
6. Update translation file that was changed to get rid of Weblate's formatting
using [`./tools/update-translation-files.sh`], e.g.:
```
./tools/update-translation-files.sh en
```
7. Commit those changes using `--amend`:
```
git commit --amend translations/en.ts
```
8. For translations that haven't yet been cherry-picked repeat steps 4-7.
9. Once done with cherry-picking, update all translation files, so that
Weblate would get newest strings that changed in qTox:
```
./tools/update-translation-files.sh ALL
```
10. Once PR with translation gets merged, `Reset` Weblate to current `master`,
since without reset there would be a git conflict that would prevent
Weblate from getting new strings.
**It's a good idea to lock translations on Weblate while they're in merge
process, so that no translation effort would be lost when resetting Weblate.**
## Vim macro to rename commits
Renames a single commit. To add it in Vim under register `t`:
```
:let @t='ggd4wifeat(l10n): update ^[A<80>kb translation from Weblate^[jVjd'
```
To invoke when editing a commit message: `@t`
# How to become a maintainer?
Contribute, review & test pull requests, be active, oh and don't forget to
@ -137,3 +204,4 @@ helping for a while, ask to be added to the `qTox` organization on GitHub.
[`CONTRIBUTING.md`]: /CONTRIBUTING.md
[`merge-pr.sh`]: /merge-pr.sh
[`test-pr.sh`]: /test-pr.sh
[`./tools/update-translation-files.sh`]: /tools/update-translation-files.sh

View File

@ -1,58 +0,0 @@
#!/bin/bash
#
# Copyright © 2016 Daniel Martí <mvdan@mvdan.cc>
# Copyright © 2016 Zetok Zalbavar <zetok@openmailbox.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This script pulls translations from weblate.
#
# It squashes all the changes into a single commit. This removes authorship
# from the changes, which is given to the Translatebot, so to keep the names
# they are grabbed from git log and added to the commit message.
#
# Note that this will apply changes and commit them! Make sure to not have
# uncommited changes when running this script.
#
# Note 2: after applying changes, files will be cleaned up before committing.
REMOTE="weblate"
REMOTE_URL="git://git.weblate.org/qtox.git"
REMOTE_BRANCH="master"
AUTHOR="qTox translations <>"
if ! git ls-remote --exit-code $REMOTE >/dev/null 2>/dev/null; then
git add "$REMOTE" "$REMOTE_URL"
git fetch "$REMOTE"
fi
ref="${REMOTE}/${REMOTE_BRANCH}"
diff="HEAD...$ref -- translations/*.ts"
authors=$(git log --format="%s %an" $diff | \
sed 's/Translated using Weblate (\(.*\)) \(.*\)/\2||\1/' | sort -f -u | column -s '||' -t)
git diff $diff | git apply
# clean up before committing
bash tools/update-translation-files.sh
git add translations/*
git commit --author "$AUTHOR" -m "feat(l10n): Update translations from Weblate
Translators:
$authors"

View File

@ -21,9 +21,22 @@
# Needed, since Weblate cannot do it automatically.
# Usage:
# ./tools/$script_name
# ./tools/$script_name [ALL|lang]
for translation in translations/*.ts
do
lupdate -pro qtox.pro -no-obsolete -locations none -ts $translation
done
set -eu -o pipefail
readonly COMMIT_MSG="chore(i18n): update translation files for weblate"
readonly LUPDATE_CMD="lupdate -pro qtox.pro -no-obsolete -locations none -ts"
if [[ "$@" = "ALL" ]]
then
for translation in translations/*.ts
do
$LUPDATE_CMD "$translation"
done
git add translations/*.ts
git commit --author -m "$COMMIT_MSG"
else
$LUPDATE_CMD "translations/$@.ts"
fi