fix check_po to work with lexemes in po files
This commit is contained in:
parent
32c53eba82
commit
e6a4b8dc45
19
po/check_po
19
po/check_po
@ -28,6 +28,7 @@
|
|||||||
import sys
|
import sys
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
import io
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
all_total = {}
|
all_total = {}
|
||||||
@ -118,7 +119,8 @@ class Check_named_fmt( Check ):
|
|||||||
|
|
||||||
class Check_mapping_fmt( Check ):
|
class Check_mapping_fmt( Check ):
|
||||||
# A pattern to find all {}
|
# A pattern to find all {}
|
||||||
find_map_pat = re.compile('\{ \w+ \}', re.VERBOSE)
|
find_map_pat = re.compile('\{\w+\.?f?\[?.*?\]?\}',
|
||||||
|
re.UNICODE) # needed for Russian index letters
|
||||||
|
|
||||||
def __init__( self ):
|
def __init__( self ):
|
||||||
Check.__init__( self )
|
Check.__init__( self )
|
||||||
@ -136,7 +138,10 @@ class Check_mapping_fmt( Check ):
|
|||||||
fmts1.sort()
|
fmts1.sort()
|
||||||
fmts2.sort()
|
fmts2.sort()
|
||||||
if fmts1 != fmts2:
|
if fmts1 != fmts2:
|
||||||
self.msgs.append( msg )
|
for idx in range(len(fmts2)):
|
||||||
|
fmts2[idx] = re.sub( r'\.f\[.+\]', '', fmts2[idx] )
|
||||||
|
if fmts1 != fmts2:
|
||||||
|
self.msgs.append( msg )
|
||||||
|
|
||||||
def process( self, msg ):
|
def process( self, msg ):
|
||||||
msgid = msg.msgid
|
msgid = msg.msgid
|
||||||
@ -173,9 +178,13 @@ class Check_runaway( Check ):
|
|||||||
self.summary_text = "Runaway context:"
|
self.summary_text = "Runaway context:"
|
||||||
|
|
||||||
def __process( self, msg, msgid, msgstr ):
|
def __process( self, msg, msgid, msgstr ):
|
||||||
# Runaway context. In the translated part we only to see
|
# Runaway context. In the translated part we only want to see
|
||||||
# the translation of the word after the |
|
# the translation of the word after the |
|
||||||
if msgid.count('|') > 0 and msgstr.count('|') > 0 and msgid != msgstr:
|
if (msgid.count('|') > 0 and msgstr.count('|') > 0
|
||||||
|
and msgid != msgstr
|
||||||
|
and not (' lexeme' in msgid) # _datestrings.py keyword
|
||||||
|
and not ('alternative month names ' in msgid) # this one too
|
||||||
|
):
|
||||||
self.msgs.append( msg )
|
self.msgs.append( msg )
|
||||||
|
|
||||||
def process( self, msg ):
|
def process( self, msg ):
|
||||||
@ -339,7 +348,7 @@ def read_msgs( fname ):
|
|||||||
str_pat = re.compile( r'"', re.VERBOSE )
|
str_pat = re.compile( r'"', re.VERBOSE )
|
||||||
old_pat = re.compile( r'\#~ \s+ ', re.VERBOSE )
|
old_pat = re.compile( r'\#~ \s+ ', re.VERBOSE )
|
||||||
|
|
||||||
f = open( fname )
|
f = io.open( fname, encoding='utf-8' )
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
|
|
||||||
# parse it like a statemachine
|
# parse it like a statemachine
|
||||||
|
Loading…
Reference in New Issue
Block a user