mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| '''
 | |
| Parse gettext pot files and extract path:line and msgid information
 | |
| compare this with downloaded files from localazy
 | |
| the output are the elements which are downloaded but not needed anymore.
 | |
| TODO: better output
 | |
| '''
 | |
| 
 | |
| import os
 | |
| from babel.messages.pofile import read_po
 | |
| 
 | |
| 
 | |
| def extract_content(file):
 | |
|     content = []
 | |
|     with open(file) as f:
 | |
|         data = read_po(f)
 | |
|     for message in data:
 | |
|         if message.id:
 | |
|             content.append(message)
 | |
|     return content
 | |
| 
 | |
| 
 | |
| gettext_dir = "docs/_build/gettext"
 | |
| gettext_ext = ".pot"
 | |
| original_content = list()
 | |
| 
 | |
| language_dir = "docs/_locale"
 | |
| language_ext = ".pot"
 | |
| language_content = dict()
 | |
| 
 | |
| # get gettext filepath
 | |
| for (dirpath, dirnames, filenames) in os.walk(gettext_dir):
 | |
|     for file in filenames:
 | |
|         if gettext_ext in file:
 | |
|             original_content.extend(extract_content(f"{dirpath}/{file}"))
 | |
| 
 | |
| # get filepath per language
 | |
| languages = next(os.walk(language_dir))[1]
 | |
| for language in languages:
 | |
| 
 | |
|     language_content[language] = list()
 | |
|     for (dirpath, dirnames, filenames) in os.walk(f"{language_dir}/{language}"):
 | |
|         for file in filenames:
 | |
|             if language_ext in file:
 | |
|                 language_content[language].extend(extract_content(f"{dirpath}/{file}"))
 | |
| 
 | |
| 
 | |
| 
 | |
| for lang in language_content.keys():
 | |
|     for message in language_content[lang]:
 | |
|         found = False
 | |
|         for ori_message in original_content:
 | |
|             if ori_message.id == message.id:
 | |
|                 found = True
 | |
|         if not found:
 | |
|             print()
 | |
|             print(f"{lang}: {message.id}")
 | |
|             for loc in message.locations:
 | |
|                 print(f"{loc[0]}:{loc[1]}")
 | |
|             
 |