code: def validate_pages_json_data(d, preferred_lang):
      from .models import Page
      errors = []
      seen_complete_slugs = dict(
          (lang[0], set()) for lang in settings.PAGE_LANGUAGES)
      valid_templates = set(t[0] for t in settings.get_page_templates())
      valid_templates.add(settings.PAGE_DEFAULT_TEMPLATE)
      if d[JSON_PAGE_EXPORT_NAME] != JSON_PAGE_EXPORT_VERSION:
          return [_('Unsupported file version: %s') % repr(
              d[JSON_PAGE_EXPORT_NAME])], []
      pages = d['pages']
      for p in pages:
          slug = p['complete_slug'].get(preferred_lang, None)
          seen_parent = False
          for lang, s in p['complete_slug'].items():
              if lang not in seen_complete_slugs:
                  continue
              seen_complete_slugs[lang].add(s)
              if '/' not in s:
                  seen_parent = True
              if not seen_parent:
                  parent_slug, ignore = s.rsplit('/', 1)
                  if parent_slug in seen_complete_slugs[lang]:
                      seen_parent = True
                  else:
                      parent = Page.objects.from_path(parent_slug, lang,
                          exclude_drafts=False)
                      if parent and parent.get_complete_slug(lang) == parent_slug:
                          seen_parent = True
              if not slug:
                  slug = s
          if not slug:
              errors.append(_("%s has no common language with this site")
                  % (p['complete_slug'].values()[0],))
              continue
          if not seen_parent:
              errors.append(_("%s did not include its parent page and a matching"
                  " one was not found on this site") % (slug,))
          if p['template'] not in valid_templates:
              errors.append(_("%s uses a template not found on this site: %s")
                  % (slug, p['template']))
              continue
          import_fields = set(p['content'].keys())
          import_fields |= set(('meta_title', 'meta_description', 'meta_keywords', 'meta_author', 'fb_page_type', 'fb_image'))
          template_fields = set(p.name for p in get_placeholders(p['template']) if
                  p.name not in ('title', 'slug'))
          template_fields |= set(('meta_title', 'meta_description', 'meta_keywords', 'meta_author', 'fb_page_type', 'fb_image'))
          if template_fields != import_fields:
              errors.append(_("%s template contents are different than our "
                  "template: %s") % (slug, p['template']))
              continue
      return errors