pofilter tests

The following are desciptions of the tests available in pofilter with some 
details about what type of errors they are useful to test for and the 
limitations of each test.

You can always run:

  pofilter -l

to get a list of the current tests available in your instalations.

If you have an idea for a new test then please help us to write it.

Test Descriptions

* accelerators    
	checks whether accelerators are consistent between the two strings.

	Make sure you use the --mozilla, --kde, etc options so that pofilter knows
	which type of accelerator it is looking for.  The test will pick up
	accelerators that are missing and ones that shouldn't be there.

* acronyms
	checks that acronyms that appear are unchanged

	If the acronym URL appears in the original this test will check that it
	appears in the translation.  Translating acronyms is a language decision
	but many languages leave them unchanged in that case this test is useful
	for tracking down translations of the acronym and correcting them.

* blank
	checks whether a translation is totally blank

	This will check to see if a translation has inadvertantly been translated
	as blank ie as spaces.  This is different from untranslated which is
	compeltely empty.  This test is usefull in that if something is translated
	as "   " it will appear to most tools as if it is translated.

* brackets
	checks that the number of brackets in both strings match
	
	If ([{ pr }]) appear in the original this will check that the same number
	appear in the translation.

* compenidumconflicts
	checks for Gettext compendium conflicts (#-#-#-#-#)

	When you use msgcat to create a PO compendium it will insert #-#-#-#-# into
	entries that are not consistant.  If the compenidum us used later in a
	message merge then these conflicts will appear in your translations.  This
	test quickly extracts those for correction.

* doublequoting   
	checks whether doublequoting is consistent between the two strings

	Checks on double quotes " to ensure that you have the same number in both
	the orginal and the translated string.
	
* doublespacing   
	checks for bad double-spaces by comparing to original

	This will identify if you have [space][space] in when you don't have it in
	the original or it appears in the original but not in your translation.
	Some of these are spurious and how you correct them depends on the
	conventions of your language.

* endpunc 
	checks whether punctuation at the end of the strings match

	This will ensure that the ending of your translation has the same
	punctuation as the original.  Eg if it end in :[space] then so should
	yours.  It is usfull for ensuring that you have elipses [...] in all your
	translations. You may pick up some errors in the original feel free to keep
	your translation and notify the programmers.  In some languages characters
	such as ? ! are always preceeded by a space ege [space]? - do what your
	language customs dictate. Other false positives you will notice is if
	through changes in words order you add "), etc at the end of the sentence.
	Do not change these your language order takes precedence.

	It must be noted that if you are tempted to leave out [fullstop] or [colon]
	or add [fullstop] to a sentence that often these have been done for a
	reason eg a list where fullstops make it look clutered.  So initialy match
	them with the English and make changes once the program is being used.

* endwhitespace   
	checks whether whitespace at the end of the strings matches

	Operates the same as endpunc but is only concerned with whitespace.

* escapes 
	checks whether escaping is consistent between the two strings

	Checks escapes such as \n \\uNNNN to ensure that if they exist in the
	original that you have them in the translation.

* isfuzzy
	check if the po element has been marked fuzzy

	If a message is marked fuzzy in the PO file then it is extracted.  Note
	this is different from --fuzzy and --nofuzzy options which specify whether 
	tests should be performed against messages marked fuzzy

* isreview
	check if the po element has been marked review
	
	If you make use of the non-Gettext 'review' flag:

		#, review[ - reason for review]

	Then if a message is marked for review in the PO file it will be extracted.  
	Note this is different from --review and --noreview options which specify 
	whether tests should be performed against messages marked review.

* kdecomments
	checks to ensure that no KDE style comments appear in the translation

	KDE style translator comments appear in PO files as "_: comment\n"
	New translators often translate the comment.  This test tries to identify
	instances where the comment has been translated.
	
* long    
	checks whether a translation is much longer than the original string

* numbers 
	checks whether numbers of various forms are consistent between the two strings

	You will see some errors where you have either written the number in full
	or converted it to the digit in your translation.  Also changes in order
	will trigger this error.

* puncspacing     
	checks for bad spacing after punctuation

	In the case of [fullstop][space] in the origianl this test checks that your 
	translation does not remove the space.  It checks also for [coma], [colon],
	etc

* purepunc        
	checks that strings that are purely punctuation are not changed

	This extacrts strings like "+" or "-" as these usually should not be
	changed.

* short   
	checks whether a translation is much shorter than the original string

* simplecaps      
	checks the capitalisation of two strings isn't wildly different

	This will pick up many false positive so don't be a slave to it.  It is
	usefull for identifying translation that do not start with a capital when
	they should or those that do when they shouldn't.  It will also highlight
	sentences that have extra capitals, depending on the capitalisation
	convention of your language you might want to change these to Title Case
	or change them all to normal sentence case.

* singlequoting   
	checks whether singlequoting is consistent between the two strings

	The same as doublequoting but checks for the ' character.  Because this is
	used in words like - it's, user's, etc - this can cause spurious errors as
	your language might not use such a system.  If a quote appears at the end
	of a sentence in the translation ie '[fullstop] this might not be detected
	properly by the check.

* startpunc       
	checks whether punctuation at the beginning of the strings match

	Operates as endpunc but you will probably see fewer errors.

* startwhitespace 
	checks whether whitespace at the beginning of the strings matches

	As in endwhitespace but you will see fewer errors.

* unchanged       
	checks whether a translation is basically identical to the original string

	This checks to see if the translation isn't just a copy of the English
	original.  Many time this is what you want but sometimes you will detect
	words that should have been translated.

* untranslated    
	checks whether a string has been translated at all

	This check is really only useful if you want to extract untranslated
	strings so that they can be transalted independently of the main work.

* variables       
	checks whether variables of various forms are consistent between the two strings

	This checks to make sure that variables that appear in the original also
	appear in the translation.  Make sure you use the --kde, --openoffice, etc
	flags as these define what variables will be searched for.  It does not at
	the moment cope with variables that use the reordering syntax of Gettext PO
	files.