When using Text::_()
I often find I want a space before or after the translated string when it is not possible to use Text::sprintf()
` - for example when using two successive translations to make a composite phrase.
echo Text::_('FOO').' '.Text::_('BAR');
Of course you could simply make a separate translation string for each specific case but that seems like a lot of unnecessary effort. Under J3 you were allowed to have a space at the end of a string, but not any longer.
Equally when the words or values being joined are coming from variables echo $foo.' '.$bar;
it would be nice just to set a flag that they should be joined with a space.
Or another case I often find I have a language string defined as XB_FOO="bar"
and I want it echoed with an initial capital "Bar". Yes, you can simply echo lcfirst(Text::_('FOO');
but it would be simpler to just have an flag parameter to Text::_()
to tell it make make an initial capital, or all uppercase, or the opposite. Likewise often I want to enclose a variable in single or double quotes, or if writing it to a file follow it with a newline.
So I have made an alternative Helper class to use instead of Text::_()
called Xbtext::_()
which takes a bitmapped value as a second parameter to modify or add to the simple language translation.
Comments powered by CComment