mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 02:49:27 +01:00
Add sandbox/check_trans.py
This commit is contained in:
parent
5ddbba4152
commit
ccfb0b9c6c
56
sandbox/check_trans.py
Executable file
56
sandbox/check_trans.py
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
def main():
|
||||
directory = sys.argv[1]
|
||||
for plugin in os.listdir(directory):
|
||||
if plugin[0] not in 'AZERTYUIOPQSDFGHJKLMWXCVBN':
|
||||
continue
|
||||
checkPlugin(os.path.join(directory, plugin))
|
||||
|
||||
def checkPlugin(pluginPath):
|
||||
try:
|
||||
pot = open(os.path.join(pluginPath, 'messages.pot'))
|
||||
except IOError: # Does not exist
|
||||
print 'WARNING: %s has no messages.pot' % pluginPath
|
||||
return
|
||||
localePath = os.path.join(pluginPath, 'locale')
|
||||
for translation in os.listdir(localePath):
|
||||
if not translation.endswith('.po'):
|
||||
continue
|
||||
pot.seek(0)
|
||||
potPath = os.path.join(localePath, translation)
|
||||
po = open(potPath)
|
||||
if checkTranslation(pot, po):
|
||||
print 'OK: ' + potPath
|
||||
else:
|
||||
print 'ERROR: ' + potPath
|
||||
|
||||
def checkTranslation(pot, po):
|
||||
checking = False
|
||||
for potLine in pot:
|
||||
if not checking and potLine.startswith('msgid'):
|
||||
checking = True
|
||||
while True:
|
||||
poLine = po.readline()
|
||||
if poLine == '': # EOF
|
||||
return False
|
||||
if poLine.startswith('msgid'):
|
||||
if poLine == potLine:
|
||||
break
|
||||
else:
|
||||
return False
|
||||
continue
|
||||
elif checking and potLine.startswith('msgstr'):
|
||||
checking = False
|
||||
|
||||
if checking:
|
||||
poLine = po.readline()
|
||||
if potLine != poLine:
|
||||
return False
|
||||
return True
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user