mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +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)
 |