Re: [xwiki-users] How to get the rendered content of a document with translations?
Hi. Thanks for your answers. Edo> > $xwiki.renderText(Document.getTranslatedContent(language), Document) > That doesn't work, I get the answer "Nested scripts are not allowed". (my document contains velocity scripts) Marius> but this won't fix the fact that $msg.get('key') takes into account > the context language, not the document language. If you can use > programming rights then you can try setting the context language > before rendering the document, and revert it afterwards. > You are right. That the trick I expected. So the answer is to do : $xcontext.getContext().setLanguage('fr') > before getting the rendered content. Maybe we could add this to the public API, or add a new parameter to getRenderedContent() ? Thanks again, Guillaume 2012/2/15 Marius Dumitru Florea > On Wed, Feb 15, 2012 at 1:53 PM, Guillaume Delhumeau > wrote: > > Hi guys. > > > > Let met describe you my problem. > > > > I get the rendered content of a document on a velocity script : > > > > #set($newsletterContent = $newsletterContentDoc.getRenderedContent()) > > > > But I would like to specify the language I want ('fr' or 'en') because my > > document contains translation keys. > > > > > Of course, I tried to use Document.getTranslatedDocument() before > rendering > > it, but it doesn't work, maybe because my translated content is inside a > > velocity script of the document. > > > > The best way would be having a language parameter into > getRenderedContent() > > function but since we can't, is there an easy way to do it? > > You can render explicitly the content of the translated document with > > > $targetDocument.getRenderedContent($targetDocument.getTranslatedContent('fr'), > $targetDocument.syntax.toIdString()) > > but this won't fix the fact that $msg.get('key') takes into account > the context language, not the document language. If you can use > programming rights then you can try setting the context language > before rendering the document, and revert it afterwards. > > Hope this helps, > Marius > > > > > -- > > > > I also tried to do this : > > > > #set($newsletterContent = > > > $xwiki.getURLContent($newsletterContentDoc.getExternalURL('get','outputSyntax=plain&language=fr'))) > > > > but it is very dirty and doesn't work since the wiki ask for credentials > > when I do getURLContent(). > > > > -- > > > > Thx a lot. > > Guillaume > > ___ > > users mailing list > > users@xwiki.org > > http://lists.xwiki.org/mailman/listinfo/users > ___ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users > ___ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users
Re: [xwiki-users] How to get the rendered content of a document with translations?
On Wed, Feb 15, 2012 at 1:53 PM, Guillaume Delhumeau wrote: > Hi guys. > > Let met describe you my problem. > > I get the rendered content of a document on a velocity script : > > #set($newsletterContent = $newsletterContentDoc.getRenderedContent()) > > But I would like to specify the language I want ('fr' or 'en') because my > document contains translation keys. > > Of course, I tried to use Document.getTranslatedDocument() before rendering > it, but it doesn't work, maybe because my translated content is inside a > velocity script of the document. > > The best way would be having a language parameter into getRenderedContent() > function but since we can't, is there an easy way to do it? You can render explicitly the content of the translated document with $targetDocument.getRenderedContent($targetDocument.getTranslatedContent('fr'), $targetDocument.syntax.toIdString()) but this won't fix the fact that $msg.get('key') takes into account the context language, not the document language. If you can use programming rights then you can try setting the context language before rendering the document, and revert it afterwards. Hope this helps, Marius > > -- > > I also tried to do this : > > #set($newsletterContent = > $xwiki.getURLContent($newsletterContentDoc.getExternalURL('get','outputSyntax=plain&language=fr'))) > > but it is very dirty and doesn't work since the wiki ask for credentials > when I do getURLContent(). > > -- > > Thx a lot. > Guillaume > ___ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users ___ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users
Re: [xwiki-users] How to get the rendered content of a document with translations?
Sorry, I was a bit to quick ;-) What I meant is: $xwiki.renderText(Document.getTranslatedContent(language), Document) On Wed, Feb 15, 2012 at 1:22 PM, Edo Beutler wrote: > Hi Guillaume > > "Shooting from the hip" I suppose > $xwiki.renderText(Document.getTranslatedDocument().getContent(), > Document) should work. > > Regards > Edo > > On Wed, Feb 15, 2012 at 12:53 PM, Guillaume Delhumeau > wrote: >> Hi guys. >> >> Let met describe you my problem. >> >> I get the rendered content of a document on a velocity script : >> >> #set($newsletterContent = $newsletterContentDoc.getRenderedContent()) >> >> But I would like to specify the language I want ('fr' or 'en') because my >> document contains translation keys. >> >> Of course, I tried to use Document.getTranslatedDocument() before rendering >> it, but it doesn't work, maybe because my translated content is inside a >> velocity script of the document. >> >> The best way would be having a language parameter into getRenderedContent() >> function but since we can't, is there an easy way to do it? >> >> -- >> >> I also tried to do this : >> >> #set($newsletterContent = >> $xwiki.getURLContent($newsletterContentDoc.getExternalURL('get','outputSyntax=plain&language=fr'))) >> >> but it is very dirty and doesn't work since the wiki ask for credentials >> when I do getURLContent(). >> >> -- >> >> Thx a lot. >> Guillaume >> ___ >> users mailing list >> users@xwiki.org >> http://lists.xwiki.org/mailman/listinfo/users ___ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users
Re: [xwiki-users] How to get the rendered content of a document with translations?
Hi Guillaume "Shooting from the hip" I suppose $xwiki.renderText(Document.getTranslatedDocument().getContent(), Document) should work. Regards Edo On Wed, Feb 15, 2012 at 12:53 PM, Guillaume Delhumeau wrote: > Hi guys. > > Let met describe you my problem. > > I get the rendered content of a document on a velocity script : > > #set($newsletterContent = $newsletterContentDoc.getRenderedContent()) > > But I would like to specify the language I want ('fr' or 'en') because my > document contains translation keys. > > Of course, I tried to use Document.getTranslatedDocument() before rendering > it, but it doesn't work, maybe because my translated content is inside a > velocity script of the document. > > The best way would be having a language parameter into getRenderedContent() > function but since we can't, is there an easy way to do it? > > -- > > I also tried to do this : > > #set($newsletterContent = > $xwiki.getURLContent($newsletterContentDoc.getExternalURL('get','outputSyntax=plain&language=fr'))) > > but it is very dirty and doesn't work since the wiki ask for credentials > when I do getURLContent(). > > -- > > Thx a lot. > Guillaume > ___ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users ___ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users