Details
-
New Feature
-
Resolution: Duplicate
-
Minor
-
None
-
3.0
-
None
-
patch
-
Trivial
-
Awaiting Committer feedback
-
Description
There does not seem to be any way to create a new translation of a document via the restricted API. I therefore propose this as an addition:
Index: src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- src/main/java/com/xpn/xwiki/doc/XWikiDocument.java (revision 36199)
+++ src/main/java/com/xpn/xwiki/doc/XWikiDocument.java (working copy)
@@ -5348,6 +5348,11 @@
public XWikiDocument getTranslatedDocument(String language, XWikiContext context) throws XWikiException
{
+ return getTranslatedDocument(language, false, context);
+ }
+
+ public XWikiDocument getTranslatedDocument(String language, boolean create, XWikiContext context) throws XWikiException
+ {
XWikiDocument tdoc = this;
if (!((language == null) || (language.equals("")) || language.equals(getDefaultLanguage()))) {
@@ -5364,7 +5369,16 @@
tdoc = getStore(context).loadXWikiDoc(tdoc, context);
if (tdoc.isNew()) {
- tdoc = this;
+ boolean dontCreate = true;
+ if (create && context.getWiki().isMultiLingual(context)) {
+ List<String> available
+ = Arrays.asList(context.getWiki()
+ .getXWikiPreference("languages", context).split("[, |]"));
+ dontCreate = !available.contains(language);
+ }
+ if (dontCreate) {
+ tdoc = this;
+ }
}
} catch (Exception e) {
tdoc = this;
Index: src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- src/main/java/com/xpn/xwiki/api/Document.java (revision 36199)
+++ src/main/java/com/xpn/xwiki/api/Document.java (working copy)
@@ -532,8 +532,18 @@
}
/**
+ * @param language Language code for the translation.
+ * @param create If {@code true}, create a new translation if it does not exist.
* @return the translated document in the given document
*/
+ public Document getTranslatedDocument(String language, boolean create) throws XWikiException
+ {
+ return this.doc.getTranslatedDocument(language, create, getXWikiContext()).newDocument(getXWikiContext());
+ }
+
+ /**
+ * @return the translated document in the given document
+ */
public Document getTranslatedDocument(String language) throws XWikiException
{
return this.doc.getTranslatedDocument(language, getXWikiContext()).newDocument(getXWikiContext());
Attachments
Issue Links
- duplicates
-
XWIKI-9532 Add Locale support to XWiki#getDocument API taking DocumentReference
-
- Closed
-