code: def merge(self, po_file, source_files):
          
          # Create a temporary file to write pot file
          pot_file = tempfile.NamedTemporaryFile(mode='wb', prefix='rookout_', delete=False)
          pot_filename = pot_file.name
          slog.info('Create POT file [%s].', pot_filename)
          xargs = [self._xgettext,
                  "--package-name=main",
                  "--package-version=0.1",
                  "--default-domain=main",
                  "--from-code=UTF-8",
                  "-C", "-k_",
                  "--output", pot_filename]
          txt = subprocess.check_output(xargs+source_files, 
                  stderr=subprocess.STDOUT, 
                  universal_newlines=True)
          if len(txt) > 0:
              raise(ChildProcessError(txt))
          slog.info('Start merge [%s] to [%s].', pot_filename, po_file)
          xargs = [self._msgmerge, "-U", po_file, pot_filename]
          txt = subprocess.check_output(xargs, universal_newlines=True)
          slog.info(txt)
          pot_file.close()
          os.remove(pot_filename)
docs: 从源码中获取所有条目，合并到 po_file 中。
  
          :param string po_file: 待写入的 po 文件路径。
          :param list source_files :  所有待处理的原文件路径 list。