Re: [xwiki-users] How to get the rendered content of a document with translations?

2012-02-16 Thread Guillaume Delhumeau
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?

2012-02-15 Thread 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


Re: [xwiki-users] How to get the rendered content of a document with translations?

2012-02-15 Thread Edo Beutler
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?

2012-02-15 Thread Edo Beutler
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


[xwiki-users] How to get the rendered content of a document with translations?

2012-02-15 Thread Guillaume Delhumeau
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