The i18n helper is quite simple in what it does. If it does not find a
target translation it will simply return what was passed.

You have a few of ways to get round this:

1. Write your own (override the) __() function So it checks if the
string returned is identical, if it is - then you can invoke the i18n
call again with the culture set to "en". So instead of loading helper
i18n, you load myI18n (or whatever)
2. Extend the sfI18n class (change in factories.yml to yourI18n class
and extend sfI18n) - change the behaviour there

Probably a few others - but the bottom line is that the symfony i18n
helper does not support what you are trying to do, as the "normal"
behaviour is to write your __("key") using the fallback language. This
has much less overhead than falling back to an entirely new catalogue
every time a string is not found.

Russ.

On Mar 19, 2:40 am, Andy Cheung <andychi...@gmail.com> wrote:
> Hello,
>
> I would like to ask if it is possible to return another language
> translation instead of the input when there is no translation for the
> user's current language.
>
> For example:
>
> in the template:
> <?php echo __('[HELLO]'); ?>
>
> in a translation in 'en'
>       <trans-unit id="1">
>         <source>[HELLO]</source>
>         <target>Hello</target>
>       </trans-unit>
>
> OK, when the user reads the page in 'en', the
> [HELLO] message is translated without problem,
> but if the user changes to another language say 'fr',
> and I have not defined this translation for fr, then
> it will display [HELLO](the input value).
>
> However, what I want is that to return
> the en translation as default.
>
> I am doing the translation like this because
> the wording of the default language(en) may change frequently
> but not it other language, and it will be very annoying if
> I change the <source> for other language every time.
>
> Hope someone gives me advice, thanks!

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

To unsubscribe from this group, send email to 
symfony-users+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to