I am designing a site with following url form:
example.com/controller/action/locale
In which I get the locale from uri parameter locale.
In bootstrap when I want to initialize my resources like Zend_Locale, Zend_Translator or some other resource that configure Zend_Validate_Date like components, they all need locale data. And moreover I could have wanted to use different databases according to recieved locale. But since no uri parameters are normally available in bootstrap I need to initialize all above in the controller plugins, which seems senseless to me.
In conclusion i think the request object and so uri parameters should have been available in bootstrap. So the current design of Zend Framework is missing this point.
Am I right or missing something?
Sorry, but what you are suggesting is a bad idea. Bootstrapping is meant to get the library into a working state by initializing required settings, variables, etc.
Some things bootstrappers should do:
Your application should be handling your requirements at the controller layer. For example if a user visits example.com/controller/action/en-US, your controller can set the language accordingly by accessing the request object (and specified parameter) and set a user session var to display the current and subsequent pages in english.
-- Edit --
Example implementation for initializing i18n/locale settings using an intermediary class vs. passing values to bootstrap: