old_contents: #!/usr/bin/env python
  
  import os
  import sys
  import subprocess
  
  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 changedir(f):
      def newf(new_path):
          old_path = os.getcwd()
          os.chdir(new_path)
          try:
              return f('.')
          finally:
              os.chdir(old_path)
      return newf
  
  
  @changedir
  def checkPlugin(pluginPath):
      subprocess.Popen('pygettext -D config.py plugin.py', shell=True).wait()
      pot = open(os.path.join(pluginPath, 'messages.pot'))
      localePath = os.path.join(pluginPath, 'locales')
      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()
  
new_contents: #!/usr/bin/env python
  
  import os
  import sys
  import subprocess
  
  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 changedir(f):
      def newf(new_path):
          old_path = os.getcwd()
          os.chdir(new_path)
          try:
              return f('.')
          finally:
              os.chdir(old_path)
      return newf
  
  
  @changedir
  def checkPlugin(pluginPath):
      subprocess.Popen('pygettext -D config.py plugin.py', shell=True).wait()
      pot = open(os.path.join(pluginPath, 'messages.pot'))
      localePath = os.path.join(pluginPath, 'locales')
      for translation in os.listdir(localePath):
          if not translation.endswith('.po'):
              continue
          pot.seek(0)
          potPath = os.path.join(os.getcwd(), 'locales', 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()
  
subject: Use absolute path in order to print it correctly (otherwise it wouldn't print the plugin name).