Localización de soluciones de SharePoint

El proceso de preparación de las aplicaciones para que se puedan usar en todo el mundo se conoce como localización. La localización consiste en traducir los recursos a una referencia cultural específica. Para obtener más información, vea Globalización y localización de aplicaciones. En este tema se proporciona información general sobre cómo localizar una solución de SharePoint.

Para localizar una solución, se quitan las cadenas codificadas de forma rígida del código y se abstraen en archivos de recursos. Un archivo de recursos es un archivo basado en XML con una extensión .resx. El archivo de recursos contiene las versiones traducidas de las cadenas que se usan en la solución. Para obtener más información, vea Recursos en aplicaciones.

Nota

Agregue solo recursos de cadena a los archivos de recursos de la solución de SharePoint. Aunque el Editor de recursos le permite agregar recursos que no son de cadena, estos no se implementan en SharePoint.

Archivos de recursos

Hay tres tipos de archivos de recursos: valores predeterminados, independientes del idioma y específicos del idioma.

Tipo de archivo de recursos Descripción
Valor predeterminado También conocidos como recursos de reserva, los archivos de recursos predeterminados contienen cadenas localizadas para la referencia cultural predeterminada, como el inglés. Se usan si no se pueden encontrar archivos de recursos localizados para el idioma especificado. Los recursos predeterminados no tienen archivos independientes, sino que se almacenan en el ensamblado de la aplicación principal.
Independiente del idioma Un archivo de recursos que contiene cadenas localizadas para un idioma, pero no una referencia cultural específica. Por ejemplo, "fr" para francés.
Específico por idioma Un archivo de recursos que contiene cadenas localizadas para un idioma y una referencia cultural. Por ejemplo, "fr-CA" para francés canadiense.

Para obtener más información, vea Organización jerárquica de recursos para la localización.

Para especificar los archivos de recursos predeterminados en los proyectos de SharePoint que desarrolle en Visual Studio, elija Todos los idiomas (todos los países) en la lista de referencia cultural del cuadro de diálogo Agregar recurso al agregar un archivo de recursos.

Agregar un archivo de recursos

En el Explorador de soluciones, los comandos para agregar archivos de recursos se encuentra en el menú contextual del nodo de la solución y los nodos de las características.

Para agregar un archivo de recursos global a una solución de SharePoint

  1. En Visual Studio, abra una solución de SharePoint.

  2. En el Explorador de soluciones, elija un nodo de proyecto de SharePoint y, a continuación, en la barra de menús, elija Proyecto>Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento, elija la plantilla Archivo de recursos global y haga clic en el botón Agregar.

    Nota

    La plantilla elementos de proyecto Archivo de recursos globales solo aparece cuando se selecciona un elemento de proyecto de SharePoint.

  4. En el cuadro de diálogo Agregar recurso, elija una referencia cultural para el archivo de recursos; por ejemplo, inglés (Estados Unidos).

    En este paso, se agrega un archivo de recursos global a una solución con el formato, {Resource_x_}.{culture}.resx, por ejemplo, Resource1.en-US.resx.

  5. Cuando se abra el Editor de recursos en Visual Studio, agregue los recursos al archivo.

Para agregar un archivo de recursos de características a una característica de SharePoint

  1. Si la solución de SharePoint aún no está abierta en Visual Studio, ábrala.

  2. En el Explorador de soluciones, abra el menú contextual del nombre de una característica que se encuentre en el nodo Características y haga clic en Agregar recurso de características.

    En este paso, se agrega un archivo de recursos a la característica con el formato {ResourceFileName}.{culture}{.resx}, por ejemplo, Feature1.en-US.resx.

  3. Cuando se abra el Editor de recursos en Visual Studio, agregue los recursos al archivo.

Localización de soluciones de SharePoint en Visual Studio

Al localizar una solución, debe tener en cuenta toda la información textual que muestra a los usuarios. Los mensajes informativos, los mensajes de error y las cadenas de la interfaz de usuario se deben traducir, y esas traducciones se deben colocar en los archivos de recursos.

Todas las cadenas de un archivo de recursos tienen un identificador único. Use el mismo identificador para la cadena traducida en cada archivo de recursos. Por ejemplo, si "Cadena1" es el identificador de la primera cadena del archivo de recursos predeterminado, use el mismo identificador para la primera cadena en los archivos de recursos específicos del lenguaje.

Normalmente, hay tres áreas que se pueden localizar en las aplicaciones de SharePoint de Visual Studio: características, marcado de páginas ASPX y código. Como ejemplo, en las secciones siguientes se supone que tiene una solución de SharePoint que quiere localizar en alemán y japonés. El idioma predeterminado es el inglés.

Localización de características

Para localizar una característica, tiene que reemplazar el título y la descripción de la característica codificados de forma rígida por una expresión que haga referencia al título y la cadena traducidos en el archivo de recursos localizado. Este cambio se realiza en el Diseñador de características de Visual Studio.

Para localizar la característica en inglés en alemán y japonés, agregue tres elementos de proyecto de archivo de recursos al proyecto: uno para inglés, otro para alemán y otro para japonés. Los archivos de recursos de características no se pueden usar para localizar el marcado ni el código ASPX, para lo que se necesitan archivos de recursos independientes.

Después de crear los archivos de recursos de características, agrégueles cadenas traducidas. Acceda a las cadenas traducidas mediante una expresión con el siguiente formato:

$Resources:String ID

Los recursos de características de Visual Studio siempre son recursos con nombre. Si selecciona un idioma que no sea el idioma invariable, se agregará un identificador de referencia cultural al nombre del archivo de recursos. Por ejemplo, si agrega un archivo de recursos de características de lenguaje invariable (predeterminado), se denominará Resources.resx. Si agrega un recurso de característica específico del idioma mediante la selección de una referencia cultural de japonés (Japón), el archivo se denominará Resources.ja-JP.resx. Los nombres de archivo de recursos de características se asignan automáticamente y no se pueden cambiar.

El ámbito de los recursos de características es local a la característica a la que se agregan. Para crear recursos que se puedan usar en cualquier característica o archivo de elemento de la solución, agregue un elemento de proyecto Archivo de recursos global en lugar de un archivo de recursos de características. El elemento de proyecto Archivo de recursos global se encuentra en la carpeta 2010 en SharePoint, en el cuadro de diálogo Agregar nuevo elemento. Los archivos de recursos globales se implementan en la carpeta \Resources de la carpeta raíz de SharePoint.

Para localizar una característica

  1. En el Explorador de soluciones, abra el menú contextual para el nodo Característica1 y, a continuación, elija Agregar recurso de características.

  2. En el cuadro de diálogo Agregar recurso, elija Idioma invariable en la lista como la referencia cultural para el archivo de recursos de características de idioma predeterminado.

  3. Repita el paso anterior para cada idioma localizado, eligiendo los idiomas que prefiera para los archivos de recursos de características localizados.

    Se crean archivos de recursos de características independientes: uno para el idioma predeterminado y otro para cada idioma localizado que quiera admitir.

  4. Abra cada archivo de recursos en el Editor de recursos y escriba todos los identificadores de cadena y sus valores.

    Por ejemplo, en el archivo de recursos de características predeterminado, escriba un identificador de cadena de Título con un valor de Mi título de característica y un segundo identificador de cadena de Descripción con un valor de Mi descripción de características. Para cada archivo de recursos localizado, use los mismos identificadores de cadena usados en el recurso de característica predeterminado, pero escriba cadenas localizadas para los valores.

  5. Después de escribir todos los valores de recursos, abra el menú contextual de la característica (por ejemplo, Feature1.feature) y, a continuación, elija Diseñador de vistas para abrir la característica en el Diseñador de características.

  6. Para localizar los campos Título y Descripción de la característica, use el siguiente formato para escribir valores en sus cuadros:

    $Resources: ID de cadena

    Por ejemplo, escriba $Resources:Title en el cuadro Título de la característica y $Resources:Description en el cuadro Descripción de la característica.

    Los identificadores de cadena deben coincidir con los que se usan en los archivos de recursos.

  7. Elija la tecla F5 para compilar y ejecutar la aplicación.

  8. En SharePoint, abra el menú Acciones del sitio, elija Configuración del sitio y, a continuación, en la sección Acciones del sitio, elija el vínculo Administrar las características del sitio.

  9. En SharePoint, cambie el idioma de presentación predeterminado.

    El título y la descripción localizados de la característica aparecen en la aplicación. Para mostrar los recursos localizados, el servidor de SharePoint debe tener instalado el paquete de idioma que coincide con la referencia cultural del archivo de recursos.

Localización del marcado de páginas ASPX

Para localizar páginas ASP.NET, agregue tres elementos de proyecto de archivo de recursos al proyecto: uno para inglés, otro para alemán y otro para japonés. Si no tiene que localizar el código además del marcado, en su lugar puede agregar archivos de recursos globales.

Las páginas de ASP.NET (.aspx) suelen usar valores de cadena codificados de forma rígida. Para localizar estas cadenas, reemplácelas por expresiones que hagan referencia a recursos localizados.

Para localizar el marcado ASPX

  1. Agregue archivos de recursos independientes: uno para el idioma predeterminado y otro para cada idioma localizado.

    Si solo localiza el marcado y no el código, agregue un elemento de proyecto Archivo de recursos global. Si localiza el código y el marcado, agregue un elemento de proyecto Archivo de recursos.

    1. Para agregar un archivo de recursos global, en el Explorador de soluciones, abra el menú contextual de un elemento de proyecto de SharePoint y, a continuación, elija Agregar>Nuevo elemento. En el nodo SharePoint 2010, elija la plantilla Archivo de recursos global.

    2. Para agregar un archivo de recursos, en el Explorador de soluciones, abra el menú contextual de un elemento de proyecto de SharePoint y, a continuación, elija Agregar>Nuevo elemento. Elija la plantilla Archivo de recursos.

    Nota

    Asegúrese de agregar los archivos de recursos a un elemento de proyecto de SharePoint para habilitar la propiedad Tipo de implementación. Esta propiedad es necesaria más adelante en este procedimiento. Si la solución no tiene un elemento de proyecto de SharePoint, puede agregar un proyecto vacío de SharePoint y quitar su archivo Elements.xml predeterminado.

  2. Asigne al archivo de recursos del idioma predeterminado el nombre que desee y agréguele la extensión .resx, por ejemplo, MyAppResources.resx. Use el mismo nombre base para cada archivo de recursos localizado, pero agregue el identificador de la referencia cultural. Por ejemplo, el nombre del archivo de recursos localizado en alemán será MyAppResources.de-DE.resx.

  3. Cambie el valor de la propiedad Tipo de implementación de cada archivo de recursos a AppGlobalResource para que estos se implementen en la carpeta App_GlobalResources del servidor. La carpeta App_GlobalResources se encuentra en C:\inetpub\wwwroot\wss\VirtualDirectories\<número de puerto>\App_GlobalResources.

  4. Si usa los recursos para localizar el código además del marcado ASPX, mantenga el valor de la propiedad Acción de compilación de cada archivo como Recurso incrustado. Si usa los archivos de recursos solo para localizar el marcado, puede cambiar opcionalmente el valor de propiedad de los archivos a Contenido. Para obtener más información, consulte Localización de soluciones de SharePoint.

    Nota

    Si usa archivos de recursos no globales, muévalos a la carpeta de elementos de proyecto para habilitar la propiedad Tipo de implementación y otras propiedades específicas de SharePoint.

  5. Abra cada archivo de recursos y agregue cadenas localizadas con los mismos identificadores de cadena en cada archivo.

  6. En el marcado XML para la página o el control ASPX, reemplace las cadenas codificadas de forma rígida por valores que usan el siguiente formato:

    <%$Resources:Resource File Name, String ID%>
    

    Por ejemplo, para localizar el texto de un control de etiqueta en una página de aplicación, cambiaría:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    to

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. Elija la tecla F5 para compilar y ejecutar la aplicación.

  8. En SharePoint, cambie el idioma de presentación predeterminado.

    Las cadenas localizadas aparecen en la aplicación. Para mostrar los recursos localizados, el servidor de SharePoint debe tener instalado el paquete de idioma que coincide con la referencia cultural del archivo de recursos.

Localización de código

Además de localizar cadenas de características y marcado de ASP.NET, también tiene que localizar las cadenas de mensajes y las de error que aparecen en el código de la solución. Los mensajes informativos y de error localizados se incluyen en ensamblados satélite. Los ensamblados satélite contienen cadenas que son visibles para los usuarios, por ejemplo, texto de la interfaz de usuario y mensajes de salida, como excepciones.

Visual Studio usa el modelo en estrella tipo hub-and-spoke estándar de .NET Framework. El concentrador, o ensamblado de programa principal, contiene los recursos de idioma predeterminados. Los radios, o ensamblados satélite, contienen los recursos específicos del lenguaje. Para obtener más información, vea Packaging and Deploying Resources (Empaquetar e implementar recursos). Los ensamblados satélite se compilan a partir de archivos de recursos ( .resx). Cuando se agregan archivos de recursos específicos del lenguaje al proyecto y al paquete de la solución, Visual Studio compila los archivos de recursos en ensamblados satélite denominados {nombre del proyecto}.resources.dll.

Para localizar el código

  1. En el Explorador de soluciones, abra el menú contextual para un elemento de proyecto y, a continuación, elija Agregar>Módulo.

    Elija la plantilla Archivo de recursos.

    Nota

    Asegúrese de agregar el archivo de recursos a un elemento de proyecto de SharePoint para que esté disponible la propiedad Tipo de implementación. Esta propiedad es necesaria más adelante en este procedimiento.

  2. Asigne al archivo de recursos del idioma predeterminado el nombre que desee y agréguele la extensión .resx, por ejemplo, MyAppResources.resx.

  3. Repita los pasos 1 y 2 para agregar archivos de recursos independientes al elemento de proyecto de SharePoint: uno para cada idioma localizado.

    Use el mismo nombre base para cada archivo de recursos localizado, pero agregue el identificador de la referencia cultural. Por ejemplo, el nombre del archivo de recursos localizado en alemán será MyAppResources.de-DE.resx.

  4. Abra cada uno de los archivos de recursos y agregue las cadenas localizadas. Use los mismos identificadores de cadena en cada archivo.

  5. Cambie el valor de la propiedad Tipo de implementación de cada archivo de recursos a AppGlobalResource para que cada uno de los archivos se implemente en la carpeta App_GlobalResources del servidor.

  6. Deje el valor de la propiedad Acción de compilación de cada archivo como Recurso incrustado.

    Los recursos incrustados se compilan en el archivo DLL del proyecto.

  7. Compile el proyecto para crear los archivos DLL satélite de recursos.

  8. En el Diseñador de paquetes, elija la pestaña Opciones avanzadas y después agregue el ensamblado satélite.

  9. En el cuadro Ubicación, especifique delante de la ruta de acceso de la ubicación una carpeta con el identificador de referencia cultural, por ejemplo de-DE\<Nombre del elemento de proyecto>.resources.dll.

  10. Si la solución aún no hace referencia el ensamblado System.Web, agregue una referencia y una directiva del código System.Web.

  11. Busque todas las cadenas codificadas de forma rígida en el código visibles para los usuarios, como texto de la interfaz de usuario, errores y texto del mensaje. Reemplácelas por una llamada al método GetGlobalResourceObject utilizando la sintaxis siguiente:

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. Elija la tecla F5 para compilar y ejecutar la aplicación.

  13. En SharePoint, cambie el idioma de presentación predeterminado.

    Las cadenas localizadas aparecen en la aplicación. Para mostrar los recursos localizados, el servidor de SharePoint debe tener instalado el paquete de idioma que coincide con la referencia cultural del archivo de recursos.

El código sin localizar usa valores de cadena codificados de forma rígida. Para localizar cadenas de código, sustitúyalas por llamadas a GetGlobalResourceObject, que es un método que hace referencia a los recursos localizados.

Localización del código de elementos web

Los elementos web incluyen una característica del editor de propiedades personalizadas que incluye atributos de código que usan cadenas codificadas de forma rígida, como WebDisplayName, Category y WebDescription. Para reemplazar los valores de cadena de estos atributos, cree una clase independiente derivada de la clase del atributo. En esas clases, establezca la propiedad del atributo. La propiedad del atributo depende de la clase base. Por ejemplo, la propiedad de atributo WebDisplayName es DisplayNameValue y la propiedad de atributo WebDescription es DescriptionValue.

En la clase derivada, haga referencia al identificador de cadena del archivo de recursos y al objeto ResourceManager para obtener el valor localizado del identificador de cadena. Devuelva este valor al atributo de editor de propiedades.

Consulte también