mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	[mod] manage - implement babel commands, drop update_translations.sh
In ./manage implement babel.*: - extract : extract messages from source files and generate POT file - update : update existing message catalogs from POT file - compile : compile translation catalogs into binary MO files Replace searx_extra/update/update_translations.sh by command: - ci.babel.update Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
		
							parent
							
								
									7fa7177759
								
							
						
					
					
						commit
						900baf2eae
					
				
					 4 changed files with 44 additions and 37 deletions
				
			
		
							
								
								
									
										4
									
								
								.github/workflows/integration.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/integration.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -111,9 +111,7 @@ jobs: | |||
|     - name: Update transations | ||||
|       id: update | ||||
|       continue-on-error: true | ||||
|       run: | | ||||
|         pip install babel jinja2 | ||||
|         searx_extra/update/update_translations.sh | ||||
|       run: make V=1 ci.babel.update | ||||
|     - name: Open pull request | ||||
|       if: steps.update.outcome == 'success' | ||||
|       uses: peter-evans/create-pull-request@v3 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -77,7 +77,7 @@ test.shell: | |||
| # wrap ./manage script
 | ||||
| 
 | ||||
| MANAGE += buildenv | ||||
| MANAGE += babel.compile | ||||
| MANAGE += ci.babel.update babel.extract babel.update babel.compile | ||||
| MANAGE += data.all data.languages data.useragents data.osm_keys_tags | ||||
| MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean | ||||
| MANAGE += docker.build docker.push docker.buildx | ||||
|  |  | |||
							
								
								
									
										47
									
								
								manage
									
										
									
									
									
								
							
							
						
						
									
										47
									
								
								manage
									
										
									
									
									
								
							|  | @ -44,8 +44,10 @@ help() { | |||
|     cat <<EOF | ||||
| buildenv: | ||||
|   rebuild ./utils/brand.env | ||||
| babel.compile: | ||||
|   pybabel compile ./searx/translations | ||||
| babel.: | ||||
|   extract   : extract messages from source files and generate POT file | ||||
|   update    : update existing message catalogs from POT file | ||||
|   compile   : compile translation catalogs into binary MO files | ||||
| data.: | ||||
|   all       : update searx/languages.py and ./data/* | ||||
|   languages : update searx/data/engines_languages.json & searx/languages.py | ||||
|  | @ -120,12 +122,47 @@ buildenv() { | |||
|     return "${PIPESTATUS[0]}" | ||||
| } | ||||
| 
 | ||||
| babel.compile() { | ||||
|     build_msg BABEL compile | ||||
|     pyenv.cmd pybabel compile -d "${REPO_ROOT}/searx/translations" | ||||
| babel.sha256sum() { | ||||
|     grep "msgid" "searx/translations/messages.pot" | sort | sha256sum | cut -f1 -d ' ' | ||||
| } | ||||
| 
 | ||||
| ci.babel.update() { | ||||
|     local sha_before | ||||
|     (   set -e | ||||
|         sha_before="$(babel.sha256sum)" | ||||
|         babel.extract | ||||
|         if [ "$(babel.sha256sum)" = "${sha_before}" ]; then | ||||
|             build_msg BABEL 'no changes detected, exiting' | ||||
|             return 1 | ||||
|         fi | ||||
|         babel.update | ||||
|         build_msg BABEL 'update done, edit .po files if required and run babel.compile' | ||||
|     ) | ||||
|     dump_return $? | ||||
| } | ||||
| 
 | ||||
| babel.extract() { | ||||
|     build_msg BABEL 'extract messages from source files and generate POT file' | ||||
|     pyenv.cmd pybabel extract -F babel.cfg \ | ||||
|             -o "searx/translations/messages.pot" \ | ||||
|             "searx/" | ||||
|     dump_return $? | ||||
| } | ||||
| 
 | ||||
| babel.update() { | ||||
|     build_msg BABEL 'update existing message catalogs from POT file' | ||||
|     pyenv.cmd pybabel update -N \ | ||||
|               -i "searx/translations/messages.pot" \ | ||||
|               -d "searx/translations" | ||||
|     dump_return $? | ||||
| } | ||||
| 
 | ||||
| babel.compile() { | ||||
|     build_msg BABEL 'compile translation catalogs into binary MO files' | ||||
|     pyenv.cmd pybabel compile --statistics \ | ||||
|               -d "searx/translations" | ||||
|     dump_return $? | ||||
| } | ||||
| 
 | ||||
| data.all() { | ||||
|     data.languages | ||||
|  |  | |||
|  | @ -1,28 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| # -*- coding: utf-8; mode: sh indent-tabs-mode: nil -*- | ||||
| 
 | ||||
| # script to easily update translation language files | ||||
| 
 | ||||
| # add new language: | ||||
| # pybabel init -i searx/translations/messages.pot -d searx/translations -l en | ||||
| 
 | ||||
| APP_DIR="searx" | ||||
| TRANSLATIONS="${APP_DIR}/translations" | ||||
| MESSAGES_POT="${TRANSLATIONS}/messages.pot" | ||||
| 
 | ||||
| get_sha256() { | ||||
|     echo "$(grep "msgid" "${MESSAGES_POT}" | sort | sha256sum | cut -f1 -d\ )" | ||||
| } | ||||
| 
 | ||||
| EXISTING_SHA="$(get_sha256)" | ||||
| 
 | ||||
| pybabel extract -F babel.cfg -o "${MESSAGES_POT}" "${APP_DIR}" | ||||
| 
 | ||||
| if [ "$(get_sha256)" = "${EXISTING_SHA}" ]; then | ||||
|     echo '[!] no changes detected, exiting'] | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| pybabel update -N -i "${MESSAGES_POT}" -d "${TRANSLATIONS}" | ||||
| echo '[!] update done, edit .po files if required and run pybabel compile -d searx/translations/' | ||||
| exit 0 | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Markus Heiser
						Markus Heiser