code: def import_po_files(path='poexport', stdout=None):
      import polib
      from basic_cms.models import Page, Content
      source_language = settings.PAGE_DEFAULT_LANGUAGE
      source_list = []
      pages_to_invalidate = []
      for page in Page.objects.published():
          source_list.extend(page.content_by_language(source_language))
      if stdout is None:
          import sys
          stdout = sys.stdout
      if not path.endswith('/'):
          path += '/'
      for lang in settings.PAGE_LANGUAGES:
          if lang[0] != settings.PAGE_DEFAULT_LANGUAGE:
              stdout.write("Update language %s.\n" % lang[0])
              po_path = path + lang[0] + '.po'
              po = polib.pofile(po_path)
              for entry in po:
                  meta_data = entry.tcomment.split(do_not_msg)[1].split("\n")
                  placeholder_name = meta_data[1].split('=')[1]
                  page_id = int(meta_data[2].split('=')[1])
                  page = Page.objects.get(id=page_id)
                  current_content = Content.objects.get_content(page, lang[0],
                      placeholder_name)
                  if current_content != entry.msgstr:
                      stdout.write("Update page %d placeholder %s.\n" % (page_id,
                          placeholder_name))
                      Content.objects.create_content_if_changed(
                          page, lang[0], placeholder_name, entry.msgstr)
                      if page not in pages_to_invalidate:
                          pages_to_invalidate.append(page)
      for page in pages_to_invalidate:
          page.invalidate()
      stdout.write("Import finished from %s.\n" % path)