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; }