[2.0] moved locale management to a locale service provider

I've also made the URL matcher optional is none is available.