Hacker News new | ask | show | jobs
by dholowiski 5632 days ago
This is why even us die hard php coders sometimes yearn for RoR. .to_spanish !
3 comments

Not trying to be pedantic but the gem has nothing to do with ror - it just extends the string class and adds to_x methods for each language.
http://code.google.com/p/gtranslate-api-php/

$gt = new Gtranslate; echo "Translating [Ciao mondo] Italian to English => ".$gt->it_to_en("Ciao mondo");

I think your example demonstrates very well why one would yearn for Ruby. The ability to give an extra method to a base class allows you to build very expressive code.

edit: and, BTW, the to_spanish method is not defined in the https://github.com/jimmycuadra/to_lang/blob/master/lib/to_la... module.

You're quite right, but in all fairness, the following would be a saner interface in php:

    italian_to_spanish("Ciao mondo");
Even boring old C# can do that.
Not true. That's just a compiler trick
But still not as elegant as: echo "Ciao mondo"->it_to_en(); would be.
It's only elegant until you have two libraries which want to add `foo` to a `Bar`. Then you're in the world of pain compared to writing `lib1->foo($myBar);`
Actually I agree, I'm rather against giving programmers ability to extend native objects at free will, but I'm still for strings being objects in PHP, or even having "everything-is-an-object" approach there.
I'd rather have the common case be gorgeous and have the uncommon case require a some workaround, than have every case look like crap.
Thank you for proving my point.
Drupal's localization infrastructure is quite nice. Instead of 'echo' you use the function t() which lets users use a GUI to translate all tokens in a Drupal site.