public static Translations createTranslations(
      ObjectFactory objectFactory, URI baseUri, Document doc) throws XWikiException {
    Translations translations = objectFactory.createTranslations();

    List<String> languages = doc.getTranslationList();

    if (!languages.isEmpty()) {
      if (!doc.getDefaultLanguage().equals("")) {
        translations.setDefault(doc.getDefaultLanguage());

        Translation translation = objectFactory.createTranslation();
        translation.setLanguage(doc.getDefaultLanguage());

        /* Add the default page with the default translation explicitely */
        String pageTranslationUri =
            uri(baseUri, PageResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
        Link pageTranslationLink = objectFactory.createLink();
        pageTranslationLink.setHref(pageTranslationUri);
        pageTranslationLink.setRel(Relations.PAGE);
        translation.getLinks().add(pageTranslationLink);

        String historyUri =
            uri(baseUri, PageHistoryResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
        Link historyLink = objectFactory.createLink();
        historyLink.setHref(historyUri);
        historyLink.setRel(Relations.HISTORY);
        translation.getLinks().add(historyLink);

        translations.getTranslations().add(translation);
      }
    }

    for (String language : languages) {
      Translation translation = objectFactory.createTranslation();
      translation.setLanguage(language);

      String pageTranslationUri =
          uri(
              baseUri,
              PageTranslationResource.class,
              doc.getWiki(),
              doc.getSpace(),
              doc.getName(),
              language);
      Link pageTranslationLink = objectFactory.createLink();
      pageTranslationLink.setHref(pageTranslationUri);
      pageTranslationLink.setRel(Relations.PAGE);
      translation.getLinks().add(pageTranslationLink);

      String historyUri =
          uri(
              baseUri,
              PageTranslationHistoryResource.class,
              doc.getWiki(),
              doc.getSpace(),
              doc.getName(),
              language);
      Link historyLink = objectFactory.createLink();
      historyLink.setHref(historyUri);
      historyLink.setRel(Relations.HISTORY);
      translation.getLinks().add(historyLink);

      translations.getTranslations().add(translation);
    }

    return translations;
  }