¿Cómo hago que mi aplicación soporte multiples idiomas?

En las aplicaciones nativas un enfoque que se utiliza bastante es el de tener una dll de recursos para cada idioma que se desea soportar. Esta dll se carga dinamicamente con LoadLibray (o AfxLoadLibray en MFC) y se establece como origen de los recursos. Para saber como crear esta dll lee Creating a Resource-Only DLL en la MSDN.

Tipicamente harás esto en InitInstace:

BOOL CMyApp::InitInstance()
{
  //Default Appwizard code.
  HINSTANCE hRes = NULL;
  hRes= LoadLibrary(«ResourceD.dll»);
  if(hRes)
    AfxSetResourceHandle(hRes);
  //Rest of wizard code
  return CWinApp::InitInstance();
}

En ATL/WTL para establecer la dll cargada como origen de los recursos se utiliza la función
CAtlBaseModule::SetResourceInstance.

Usando el API se utiliza LoadResource, LoadString etc… para cargar los recursos, pasando como primer parametro el handle de la libreria de recursosque previamente hemos cargado con LoadLibrary.


En el mundo manejado todo es un poco más sencillo, un buen punto de entrada puede ser: Resources and Localization, habla desde el punto de vista de Visual Basic, pero los conceptos se aplican a cualquier lenguaje .Net

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *