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 |     - name: Update transations | ||||||
|       id: update |       id: update | ||||||
|       continue-on-error: true |       continue-on-error: true | ||||||
|       run: | |       run: make V=1 ci.babel.update | ||||||
|         pip install babel jinja2 |  | ||||||
|         searx_extra/update/update_translations.sh |  | ||||||
|     - name: Open pull request |     - name: Open pull request | ||||||
|       if: steps.update.outcome == 'success' |       if: steps.update.outcome == 'success' | ||||||
|       uses: peter-evans/create-pull-request@v3 |       uses: peter-evans/create-pull-request@v3 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -77,7 +77,7 @@ test.shell: | ||||||
| # wrap ./manage script
 | # wrap ./manage script
 | ||||||
| 
 | 
 | ||||||
| MANAGE += buildenv | 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 += data.all data.languages data.useragents data.osm_keys_tags | ||||||
| MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean | MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean | ||||||
| MANAGE += docker.build docker.push docker.buildx | MANAGE += docker.build docker.push docker.buildx | ||||||
|  |  | ||||||
							
								
								
									
										47
									
								
								manage
									
										
									
									
									
								
							
							
						
						
									
										47
									
								
								manage
									
										
									
									
									
								
							|  | @ -44,8 +44,10 @@ help() { | ||||||
|     cat <<EOF |     cat <<EOF | ||||||
| buildenv: | buildenv: | ||||||
|   rebuild ./utils/brand.env |   rebuild ./utils/brand.env | ||||||
| babel.compile: | babel.: | ||||||
|   pybabel compile ./searx/translations |   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.: | data.: | ||||||
|   all       : update searx/languages.py and ./data/* |   all       : update searx/languages.py and ./data/* | ||||||
|   languages : update searx/data/engines_languages.json & searx/languages.py |   languages : update searx/data/engines_languages.json & searx/languages.py | ||||||
|  | @ -120,12 +122,47 @@ buildenv() { | ||||||
|     return "${PIPESTATUS[0]}" |     return "${PIPESTATUS[0]}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| babel.compile() { | babel.sha256sum() { | ||||||
|     build_msg BABEL compile |     grep "msgid" "searx/translations/messages.pot" | sort | sha256sum | cut -f1 -d ' ' | ||||||
|     pyenv.cmd pybabel compile -d "${REPO_ROOT}/searx/translations" | } | ||||||
|  | 
 | ||||||
|  | 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 $? |     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.all() { | ||||||
|     data.languages |     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