mirror of
https://github.com/zulip/zulip.git
synced 2025-10-29 19:13:53 +00:00
Now executable! Just run `tools/tagmessages`. Also, get the username and password from a `.transifexrc` file. And hardcode the project slug to `zulip-test` rather than to `zulip`; the Transifex API is bad at namespacing, so this makes it possible to run this script on a test project (the only way we're currently using it) even for people like me who can also upload to the real Zulip project on Transifex.
32 lines
1.2 KiB
Python
Executable File
32 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
from __future__ import absolute_import
|
|
from __future__ import print_function
|
|
|
|
import configparser
|
|
from hashlib import md5
|
|
import os
|
|
|
|
import polib
|
|
|
|
THIS_DIR = os.path.dirname(os.path.realpath(__file__))
|
|
config = configparser.RawConfigParser()
|
|
config.read(os.path.join(THIS_DIR, '../.transifexrc'))
|
|
login = '{}:{}'.format(config.get('https://www.transifex.com', 'username'),
|
|
config.get('https://www.transifex.com', 'password'))
|
|
|
|
project_slug = 'zulip-test' # HACK hardcode
|
|
|
|
tools_dir = os.path.dirname(os.path.abspath(__file__))
|
|
root_dir = os.path.dirname(tools_dir)
|
|
# Choose any translation file for processing all strings.
|
|
po = polib.pofile(os.path.join(root_dir, 'static', 'locale', 'de', 'LC_MESSAGES', 'django.po'))
|
|
for entry in po:
|
|
tag = entry.comment
|
|
if tag:
|
|
keys = [entry.msgid, entry.msgctxt or '']
|
|
msg_hash = md5(':'.join(keys).encode('utf-8')).hexdigest()
|
|
curl_call = 'curl -i -L --user {} -X PUT -H "Content-Type: application/json" ' \
|
|
'--data \'{{"tags": ["{}"]}}\' https://www.transifex.com/api/2/project/{}/resource' \
|
|
'/djangopo/source/{}'.format(login, tag, project_slug, msg_hash)
|
|
os.system(curl_call)
|