The best time to apply localization on an application is really at the end of its development.
- The obvious reason is that it allows you to get decoupling of localization from business modules.
- Localization should be done on UI side, not in business layer or data layer.
- If you are facing scenarios where you have to localize something in Business layer, Data layer then that part should be in UI. (It means BL,DL are trying to do work of UI, avoid it.)