views:

287

answers:

1

I have a problem. Basically, depending on whether a user goes to /es or /br or /cn etc on our website, we have different language template files. So far, we were using a custom templating engine to make this work, but are making a switch over to ZF. I can't seem to figure out how to get ZF to look for a view script in say cn/about-us if the language varuable is cn.

I can't (don't want to) use Zend_Translate for this because we have way too many translated template files and it's just not feasible using Zend_Translate for bazillion different files with multi-paragraphs of Chinese/Korean/Japanese, forgetting for a second that I don't speak those languages.

Can anybody help me?

A: 

You can write a controller plugin and use it's routeStartup() method to alter Zend_View settings (path to where your view scripts are located) and change the request uri before routing starts.

class My_Controller_Plugin_LanguageSwitcher extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        // examine the $_SERVER['REQUEST_URI'] and look for your language identifier
        // fetch the View and set appropriate view scripts path using setScriptPath() method
        // strip the language identifier from your REQUEST_URI
        // change the request uri using $request->setRequestUri('your-new-uri-without-the-language-  identifier');
    }
}
Goran Jurić