Tutorial: Localización de columnas, tipos de contenido y listas
Última modificación: martes, 07 de diciembre de 2010
Hace referencia a: SharePoint Foundation 2010
En este artículo
Escenario
Creación de un proyecto de SharePoint
Creación de una característica con ámbito de colección de sitios
Adición de recursos globales al proyecto
Creación de columnas de sitio, un tipo de contenido y una definición de lista
Creación de una característica para aprovisionar una instancia de lista
Adición de recursos de la característica
Prueba del proyecto
En este tutorial se muestra cómo proporcionar y consumir recursos de localización para las columnas, los tipos de contenido y las listas que se crean e implementan. Entre las tareas ilustradas en el tutorial se incluyen:
Uso de expresiones de recurso en definiciones XML para columnas, tipos de contenido y listas.
Implementación de recursos de localización específicos de una sola característica.
Implementación de recursos de localización que se pueden compartir entre varias características.
Requisitos previos
Para obtener información sobre los requisitos generales, vea el tema sobre los requisitos para desarrollar soluciones de SharePoint. Además, entre los requisitos específicos para completar este tutorial, se incluyen:
Al menos un paquete de idioma de Microsoft SharePoint Foundation 2010.
Para obtener información acerca de la descarga e instalación de paquetes de idioma, vea el tema sobre los paquetes de idioma para SharePoint Foundation 2010.
Una colección de sitios de SharePoint Foundation que incluya al menos un sitio web en el que se haya habilitado la compatibilidad con idiomas alternativos.
Para obtener información acerca de cómo habilitar la compatibilidad con idiomas alternativos, vea el tema sobre cómo poner a disposición varios idiomas para la interfaz de usuario del sitio.
Escenario
En este tutorial creará un proyecto de SharePoint en Microsoft Visual Studio 2010 denominado WingtipReports. El proyecto incluye dos características: una con ámbito de sitio, de modo que pueda activarse para una colección de sitios completa, y otra con ámbito de Web, de modo que pueda activarse para sitios web individuales de la colección.
La primera característica agrega varios elementos nuevos a la colección de sitios, incluidas varias columnas de sitio personalizadas; un tipo de contenido de sitio personalizado denominado Weekly Status Report y una plantilla de lista personalizada denominada Weekly Status Reports. Todos estos elementos se localizan mediante la sustitución de cadenas para mostrar codificadas de forma rígida por expresiones de recurso de Microsoft ASP.NET que recuperan valores de cadena localizados de archivos (.resx) de recursos de idioma. Los archivos de recursos de idioma se instalan como recursos globales para que se puedan compartir con otras características que los programadores de Wingtip han creado en implementaciones independientes.
La segunda característica con ámbito de Web aprovisiona una instancia de la lista Weekly Status Reports. Gran parte del texto para mostrar de esta instancia de la lista lo proporcionan las columnas de sitio y los tipos de contenido de sitio que se han aprovisionado al activar la primera característica. (Por este motivo, la segunda característica tiene definida una dependencia de activación de la primera característica). No obstante, la instancia de lista tiene su propio título y descripción, cuyo texto se localiza mediante la recuperación de traducciones de otro conjunto de archivos de recursos. Puesto que estos recursos solo localizan una única instancia de lista, se instalan como recursos locales que solo están disponibles para la característica que los instala.
Creación de un proyecto de SharePoint
En primer lugar, cree un proyecto de SharePoint en Visual Studio 2010 y denomínelo WingtipReports.
Para crear un proyecto de SharePoint
Inicie Visual Studio 2010 como administrador.
Muestre el cuadro de diálogo Nuevo proyecto; para ello, elija Nuevo en el menú Archivo y, a continuación, haga clic en Nuevo proyecto.
Expanda el nodo SharePoint en Visual C# o Visual Basic y, a continuación, haga clic en 2010.
En el panel Plantillas, haga clic en Proyecto de SharePoint vacío, cambie el nombre del proyecto a WingtipReports y, a continuación, haga clic en Aceptar.
Aparecerá el Asistente para la personalización de SharePoint.
En la página Especifique el sitio y el nivel de seguridad de la depuración, escriba la dirección URL del sitio de SharePoint al que desea agregar el nuevo elemento de campo personalizado, o bien use la ubicación predeterminada (http://< nombre del sistema>/).
En la sección ¿Cuál es el nivel de confianza de esta solución de SharePoint?, seleccione Implementar como solución de granja de servidores.
Haga clic en Finalizar.
El proyecto aparecerá en el Explorador de soluciones.
En el Explorador de soluciones, haga clic en el nodo de proyecto y, a continuación, presione F4.
Aparecerá la ventana Propiedades.
Establezca la propiedad Incluir ensamblado en paquete en False.
El proyecto no tiene código y no es necesario implementar un ensamblado.
Presione Ctrl+Mayús+S para guardar todo.
Creación de una característica con ámbito de colección de sitios
El primer elemento principal que debe agregar a este proyecto es una característica que pueda usarse para aprovisionar las definiciones XML para las columnas de sitio, un tipo de contenido de sitio y una plantilla de lista, además de recursos de localización para admitir cada uno de esos elementos. El ámbito de la característica será la colección de sitios para que los elementos que la característica aprovisiona estén disponibles en todos los sitios web de la colección de sitios.
Para crear una característica con ámbito de colección de sitios
En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Features y, a continuación, haga clic en Agregar característica.
Se agregará una carpeta llamada Feature1 y se abrirá el Diseñador de características.
Haga clic con el botón secundario en la carpeta Feature1, seleccione Cambiar nombre y escriba WeeklyStatusReport.
En el Diseñador de características, reemplace el valor generado automáticamente para el campo Título por la siguiente cadena:
$Resources:WeeklyStatusFeature
Esta cadena es una expresión de ASP.NET. El signo de dólar ($) indica que sigue una expresión. El prefijo Resources indica el tipo de expresión. El sufijo que sigue a los dos puntos (:) es el valor de expresión que se resolverá. En este caso, WeeklyStatusFeature es el nombre de una clave de un archivo de recursos. SharePoint Foundation evalúa la expresión y la reemplaza por el valor localizado que encuentra en un archivo de recursos. Más adelante en este tutorial, creará un archivo de recursos que contiene el par clave-valor correcto.
Es posible que a veces vea expresiones de recurso como la siguiente:
$Resources:wingtip,WeeklyStatusFeature
El valor que antecede a la coma (,) especifica un nombre de archivo base para el archivo de recursos, wingtip. Puede usar la misma sintaxis para la expresión de recurso en este paso, pero en el paso 8 establecerá una propiedad que hará que no sea necesario especificar un nombre de archivo base.
En el campo Descripción, pegue la siguiente cadena:
$Resources:WeeklyStatusFeatureDesc
En la lista Ámbito, seleccione Site.
Si la ventana Explorador de empaquetado no está abierta, en el menú Ver, elija Otras ventanas y, a continuación, haga clic en Explorador de empaquetado.
En el Explorador de empaquetado, haga clic en el nodo de $Resources:WeeklyStatusFeature y, a continuación, presione F4 para mostrar la ventana Propiedades.
En la ventana Propiedades, establezca el valor de la propiedad Archivo de recursos predeterminado en wingtip.
Cambie el valor de la propiedad Ruta de acceso de implementación a WingtipReports.
Presione Ctrl+Mayús+S para guardar todo.
Adición de recursos globales al proyecto
El siguiente paso consiste en agregar archivos de recursos de localización a la solución de SharePoint. Los archivos que se agregan en este paso se implementan como recursos globales. Los recursos globales se instalan en la carpeta %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources en todos los servidores del conjunto o granja de servidores, donde pueden compartirlos muchas características, incluidas las características que implementan otros usuarios. En este tutorial se supone que se desean usar las columnas de sitio y los tipos de contenido que se crean en este momento en otras características que se desarrollarán en proyectos futuros.
En esta fase del proyecto se crean dos archivos de recursos. En primer lugar, se crea un archivo de recursos para que admita el idioma predeterminado del sitio web. A continuación, se crea un segundo archivo de recursos para uno de los idiomas alternativos que se admiten en el sitio web. En un entorno de producción, es posible crear e implementar muchos archivos de recursos adicionales específicos del idioma.
Para agregar archivos de recursos globales
En el Explorador de soluciones, haga clic en el nodo de proyecto. A continuación, en el menú Proyecto, haga clic en Agregar carpeta asignada de SharePoint.
En el cuadro de diálogo Agregar carpeta asignada de SharePoint, seleccione Resources y, a continuación, haga clic en Aceptar.
Se agregará una carpeta Resources al proyecto. Compruebe las propiedades de esta carpeta. Observe que la propiedad DeploymentLocation está establecida en {SharePointRoot}\Resources.
En el Explorador de soluciones, seleccione la carpeta Resources. En el menú Proyecto, haga clic en Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, expanda el nodo de Visual C# si el lenguaje de desarrollo es C#, o bien Elementos comunes si trabaja en Visual Basic. Seleccione General. En el panel de plantillas, seleccione Archivo de recursos. Denomine al archivo Wingtip.resx y, a continuación, haga clic en Agregar.
El archivo de recursos se agrega al proyecto y se abre en el Editor de recursos administrados.
Sugerencia Siempre que aprovisione archivos en la carpeta global Resources, se recomienda elegir nombres de archivo únicos para evitar conflictos de nomenclatura con los recursos que aprovisionan otras aplicaciones. Una convención consiste en agregar el nombre de la compañía como prefijo del nombre de archivo. Por ejemplo, si la compañía es Wingtip Toys, los nombres de todos los archivos de recursos que implemente pueden comenzar con "Wingtip".
En el Explorador de soluciones, haga clic con el botón secundario en el archivo de recursos que acaba de crear y, a continuación, seleccione Abrir con.
En el cuadro de diálogo Abrir con, en Elija el programa que desea usar para abrir el siguiente archivo, seleccione Editor XML (de texto). A continuación, haga clic en Aceptar.
El recurso se abrirá en el editor XML.
En el editor XML, desplácese hasta el final del archivo e inserte una línea en blanco justo sobre la etiqueta final </root>. Coloque el punto de inserción en la línea en blanco y, a continuación, pegue el siguiente XML en el archivo.
<data name="Accomplishments" xml:space="preserve"> <value>Accomplishments (invariant)</value> </data> <data name="BlockingIssues" xml:space="preserve"> <value>Blocking Issues (invariant)</value> </data> <data name="Direction" xml:space="preserve"> <value>LTR</value> <comment>Can be LTR, RTL, or none</comment> </data> <data name="FromDate" xml:space="preserve"> <value>From (invariant)</value> </data> <data name="PlanForNextWeek" xml:space="preserve"> <value>Plan For Next Week (invariant)</value> </data> <data name="SubmittedBy" xml:space="preserve"> <value>Submitted By (invariant)</value> </data> <data name="ToDate" xml:space="preserve"> <value>To (invariant)</value> </data> <data name="WeeklyStatusFeature" xml:space="preserve"> <value>Weekly Status Reports (invariant)</value> </data> <data name="WeeklyStatusFeatureDesc" xml:space="preserve"> <value>Provides support for weekly status report lists. (invariant)</value> </data> <data name="WeeklyStatusListTemplate" xml:space="preserve"> <value>Weekly Status Reports List (invariant)</value> </data> <data name="WeeklyStatusListTemplateDesc" xml:space="preserve"> <value>A list of weekly progress reports. (invariant)</value> </data> <data name="WeeklyStatusReportCT" xml:space="preserve"> <value>Weekly Status Report (invariant)</value> </data> <data name="WeeklyStatusReportCTDesc" xml:space="preserve"> <value>Add a new weekly status report. (invariant)</value> </data>
Presione Ctrl+S para guardar el archivo. A continuación, en el menú Archivo, haga clic en Cerrar para cerrar el archivo.
En el Explorador de soluciones, seleccione el archivo Wingtip.resx. En el menú Edición, haga clic en Copiar. A continuación, haga clic en Pegar.
Se agregará un archivo denominado Copia de Wingtip.resx a la carpeta Resources.
Haga clic con el botón secundario en el archivo llamado Copia de Wingtip.resx y, a continuación, haga clic en Cambiar nombre. Cambie el nombre del archivo por Wingtip.idioma-PAÍS O REGIÓN.resx donde idioma es un código de dos letras para el idioma predeterminado del sitio web y PAÍS O REGIÓN es un código de dos letras para la referencia cultural secundaria.
Por ejemplo, si el idioma predeterminado es inglés (Estados Unidos), el nombre del archivo de recursos será Wingtip**.en-US**.resx.
Para obtener más información acerca de los identificadores de idioma, vea la clase System.Globalization.CultureInfo.
Importante En las expresiones de recurso, para hacer referencia a un archivo de recursos, se debe usar su nombre de archivo base, como "Wingtip". Cuando SharePoint Foundation recupera un valor de recurso, busca un archivo de recursos cuyo nombre de archivo base vaya seguido por un identificador de idioma que corresponda al valor de la propiedad CurrentUICulture del subproceso que se encuentra en ejecución actualmente. SharePoint Foundation espera encontrar una coincidencia exacta. Por ejemplo, si el identificador de idioma en el subproceso actual es "pt-BR", SharePoint Foundation busca un archivo de recursos cuyo nombre sea "nombreDeArchivoBase.pt-BR.resx". Pasa por alto los archivos con el mismo código de idioma pero con un código de referencia cultural secundaria diferente, como "nombreDeArchivoBase.pt.resx" y "nombreDeArchivoBase.pt-PT.resx".
Si SharePoint Foundation no encuentra un archivo de recursos que coincida con el identificador de idioma del subproceso en ejecución, busca un archivo de recursos de reserva. La primera opción para un archivo de recursos de reserva es uno que tenga la referencia cultural de todos los idiomas; es decir, un archivo de recursos que no tenga ningún identificador de idioma al final del nombre de archivo. Por ejemplo, en el proyecto actual, el archivo de recursos con referencia cultural todos los idiomas es Wingtip.resx. Si SharePoint Foundation no puede encontrar un archivo de recursos con referencia cultural todos los idiomas, intenta buscar uno con el idioma predeterminado. Si no encuentra un archivo de recursos con el idioma predeterminado, muestra el nombre del recurso.
Repita los pasos 9 y 10, pero esta vez anexe el identificador específico de la referencia cultural de un idioma alternativo habilitado en el sitio web.
Abra los dos archivos de recursos de idioma específicos de la referencia cultural que acaba de crear y reemplace la palabra "invariant" por el identificador de idioma del archivo. Por ejemplo, en Wingtip.en-US.resx, "Accomplishments (invariant)" se convierte en "Accomplishments (en-US)".
En este tutorial, no es necesario traducir los valores de cadena. Basta con anexar un identificador de idioma a una cadena sin traducir. Al probar el elemento web, el identificador de idioma indica el idioma que se muestra.
Presione Ctrl+Mayús+S para guardar todo.
Creación de columnas de sitio, un tipo de contenido y una definición de lista
Ahora es el momento de consumir los recursos globales que acaba de crear. En esta fase del proyecto, se crean varias columnas de sitio personalizadas y, a continuación, se define un tipo de contenido que usa las columnas. Finalmente, se crea una definición de lista que se basa en el tipo de contenido.
Para crear las columnas de sitio, el tipo de contenido y la definición de lista
En el Explorador de soluciones, haga clic en el nodo de proyecto. A continuación, en el menú Proyecto, haga clic en Agregar nuevo elemento.
Expanda el nodo SharePoint en Visual C# o Visual Basic y, a continuación, haga clic en 2010.
En el panel Plantillas, haga clic en Elemento vacío, cambie el nombre del elemento por Fields y, a continuación, haga clic en Agregar.
Aparecerá una carpeta Fields en el Explorador de soluciones. En la carpeta encontrará un archivo llamado Elements.xml.
Si Elements.xml no está abierto en el editor, ábralo.
En Elements.xml, agregue las siguientes definiciones de campo entre la etiqueta de apertura <Elements> y la etiqueta de cierre </Elements>.
<Field ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" DisplayName="$Resources:SubmittedBy" Type="User" List="UserInfo" ShowField="NameWithPicture" UserSelectionMode="PeopleOnly" UserSelectionScope="0" Required="TRUE" /> <Field ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" DisplayName="$Resources:FromDate" Type="DateTime" Format="DateOnly" Required="TRUE" > <Default>[today]</Default> </Field> <Field ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" DisplayName="$Resources:ToDate" Type="Calculated" Format="DateOnly" ResultType="DateTime" ReadOnly="TRUE" Required="FALSE"> <Formula>=StartDate+7</Formula> <FieldRefs> <FieldRef Name="FromDate"/> </FieldRefs> </Field> <Field ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" DisplayName="$Resources:Accomplishments" Type="Note" NumLines="10" RichText="TRUE" RichTextMode="FullHtml" Required="TRUE"/> <Field ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" DisplayName="$Resources:PlanForNextWeek" Type="Note" NumLines="6" RichText="TRUE" RichTextMode="FullHtml" Required="FALSE" /> <Field ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" DisplayName="$Resources:BlockingIssues" Type="Note" NumLines="4" RichText="TRUE" RichTextMode="FullHtml" Required="FALSE" />
Presione Ctrl+S para guardar Elements.xml. A continuación, cierre el archivo.
En el Explorador de soluciones, haga clic en el nodo de proyecto. A continuación, en el menú Proyecto, haga clic en Agregar nuevo elemento.
En el panel Plantillas, haga clic en Tipo de contenido, cambie el nombre del elemento por ContentTypes y, a continuación, haga clic en Agregar.
En el Asistente para la personalización de SharePoint, en ¿De qué tipo de contenido base debe heredar este tipo de contenido? seleccione Elemento. A continuación, haga clic en Finalizar.
Aparecerá una carpeta ContentTypes en el Explorador de soluciones. En la carpeta encontrará otro archivo llamado Elements.xml.
En el nuevo archivo Elements.xml, elimine todo lo que haya entre la etiqueta de apertura <Elements> y la etiqueta de cierre </Elements>. A continuación, inserte la siguiente definición de tipo de contenido.
<!-- Parent ContentType: Item (0x01) --> <ContentType ID="0x010013573845130047cdb90148d52e593cef" Name="$Resources:WeeklyStatusReportCT" Group="Custom Content Types" Description="$Resources:WeeklyStatusReportCTDesc" Inherits="TRUE" Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE"/> <FieldRef ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> <FieldRef ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" Required="FALSE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/> </FieldRefs> </ContentType>
Presione Ctrl+S para guardar Elements.xml. A continuación, cierre el archivo.
En el Explorador de soluciones, haga clic en el nodo de proyecto. A continuación, en el menú Proyecto, haga clic en Agregar nuevo elemento.
En el panel Plantillas, haga clic en Definición de lista de tipo de contenido, cambie el nombre del elemento por ListDefinitions y, a continuación, haga clic en Agregar.
En el Asistente para la personalización de SharePoint, en ¿Cuál es el nombre para mostrar de la definición de lista? pegue la siguiente expresión de recurso:
$Resources:WeeklyStatusListTemplate
Asegúrese de que el valor de ¿Qué tipo de contenido desea usar para la definición de lista? sea $Resources:WeeklyStatusReportCT (WingtipReports\ContentTypes).
Desactive la casilla de verificación Agregar una instancia de lista para esta definición de lista y, a continuación, haga clic en Finalizar.
Aparecerá una carpeta ListDefinitions en el Explorador de soluciones. En la carpeta encontrará otro archivo llamado Elements.xml y un archivo llamado Schema.xml.
En el nuevo archivo Elements.xml, sustituya el valor del atributo Description por la siguiente expresión de recurso:
$Resources:WeeklyStatusListTemplateDesc"
Presione Ctrl+S para guardar Elements.xml. A continuación, cierre el archivo.
En el Explorador de soluciones, haga doble clic en WeeklyStatusReport.feature para abrirlo en el diseñador.
En el Diseñador de características, compruebe que la lista debajo de Elementos de la característica incluya estos elementos:
Resources
Fields
ContentTypes
ListDefinitions
Haga clic en Manifiesto (cerca del final). Compruebe que el manifiesto sea idéntico (excepto el valor del atributo Id) al siguiente XML:
<Feature xmlns="https://schemas.microsoft.com/sharepoint/" DefaultResourceFile="wingtip" Description="$Resources:WeeklyStatusFeatureDesc" Id="e18a0885-083e-43f6-94fe-b6d378a2468c" Scope="Site" Title="$Resources:WeeklyStatusFeature"> <ElementManifests> <ElementManifest Location="Resources\Elements.xml" /> <ElementManifest Location="Fields\Elements.xml" /> <ElementManifest Location="ContentTypes\Elements.xml" /> <ElementManifest Location="ListDefinitions\Elements.xml" /> <ElementFile Location="ListDefinitions\Schema.xml" /> </ElementManifests> </Feature>
Creación de una característica para aprovisionar una instancia de lista
La siguiente tarea consiste en agregar una segunda característica con ámbito de Web al proyecto y, a continuación, agregarle la definición de una instancia de lista. Tanto el elemento Feature que define la característica como el elemento ListInstance que define la instancia de lista usan expresiones de recurso para los atributos clave. La tarea final del proyecto es crear los archivos de recursos que proporcionan valores para esas expresiones.
Dado que esta característica depende de los elementos que implementa la primera característica creada, se definirá una dependencia de activación para la nueva característica. No se podrá activar a menos que la característica de la que depende se active en primer lugar.
Para crear una característica que aprovisione una instancia de lista
En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Features y, a continuación, haga clic en Agregar característica.
Se agregará una carpeta llamada Feature1 y se abrirá el Diseñador de características.
Haga clic con el botón secundario en la carpeta Feature1, seleccione Cambiar nombre y escriba WeeklyStatusList.
En el Diseñador de características, reemplace el valor generado automáticamente para el campo Título por la siguiente cadena:
$Resources:WeeklyStatusListFeature
En el campo Descripción, pegue la siguiente cadena:
$Resources:WeeklyStatusListFeatureDesc
Compruebe que el valor de la lista Ámbito sea Web.
Haga clic en Dependencias de activación de característica (cerca del final) para expandir el panel de dependencias. A continuación, haga clic en Agregar.
Se abrirá el cuadro de diálogo Agregar dependencias de activación de característica.
Haga clic en $Resources:WeeklyStatusFeature y, a continuación, haga clic en Agregar.
En el Explorador de soluciones, haga clic en el nodo de proyecto. A continuación, en el menú Proyecto, haga clic en Agregar nuevo elemento.
Aparecerá el cuadro de diálogo Agregar nuevo elemento.
Expanda el nodo SharePoint en Visual C# o Visual Basic y, a continuación, haga clic en 2010.
En el panel Plantillas, haga clic en Instancia de lista. Acepte el nombre predeterminado y, a continuación, haga clic en Agregar.
En el Asistente para la personalización de SharePoint, reemplace el valor de ¿Cuál es el nombre para mostrar de la lista? por la siguiente cadena:
$Resources:WeeklyStatusList
Compruebe que el valor de ¿De qué lista desea crear una instancia? sea $Resources:WeeklyStatusListTemplate (WingtipReports\ListDefinitions).
Reemplace el valor de Descripción por la siguiente cadena:
$Resources:WeeklyStatusListDesc
Compruebe que la casilla de verificación Agregar esta instancia de lista a la barra Inicio rápido esté activada y, a continuación, haga clic en Finalizar.
Una carpeta denominada ListInstance1 aparecerá en el Explorador de soluciones y el archivo Elements.xml aparecerá en la carpeta y se abrirá en el editor. Observe que las expresiones de recurso son los valores de los atributos Title y Description del elemento ListInstance.
Presione Ctrl+Mayús+S para guardar todo.
Adición de recursos de la característica
La última tarea consiste en crear recursos de localización para la instancia de lista y la característica que la implementa. Dado que estos recursos son específicos de una característica, se pueden crear como recursos locales en lugar de globales.
Para agregar recursos locales para una característica
En el Explorador de soluciones, haga clic con el botón secundario en la carpeta WeeklyStatusList y, a continuación, haga clic en Agregar recurso de características.
En el cuadro de diálogo Agregar recurso, en Seleccione la referencia cultural del archivo de recursos, seleccione Todos los idiomas (todos los países). A continuación, haga clic en Aceptar.
El archivo de recursos se agregará a la carpeta WeeklyStatusList. Tenga en cuenta que el nombre de archivo base es Resources. Los recursos que son locales para una característica siempre usan este nombre de archivo base. Cuando se implementa la característica, los archivos de recursos locales se colocan en una carpeta Resources en la carpeta Features del sistema de archivos.
En el Explorador de soluciones, haga clic con el botón secundario en el archivo de recursos que acaba de crear y, a continuación, seleccione Abrir con.
En el cuadro de diálogo Abrir con, en Elija el programa que desea usar para abrir el siguiente archivo, seleccione Editor XML (de texto). A continuación, haga clic en Aceptar.
El recurso se abrirá en el editor XML.
En el editor XML, desplácese hasta el final del archivo e inserte una línea en blanco justo sobre la etiqueta final </root>. Coloque el punto de inserción en la línea en blanco y, a continuación, pegue el siguiente XML en el archivo.
<data name="WeeklyStatusList" xml:space="preserve"> <value>Weekly Status Reports (invariant)</value> </data> <data name="WeeklyStatusListDesc" xml:space="preserve"> <value>Use the Weekly Status Reports list to submit progress reports. (invariant)</value> </data> <data name="WeeklyStatusListFeature" xml:space="preserve"> <value>Weekly Status Report List (invariant)</value> </data> <data name="WeeklyStatusListFeatureDesc" xml:space="preserve"> <value>Creates a weekly status report list. (invariant)</value> </data>
Presione Ctrl+S para guardar el archivo de recursos y, a continuación, ciérrelo.
Repita los pasos del 1 al 6, pero esta vez cree un archivo de recursos para el idioma predeterminado del sitio web. En el paso 5, reemplace la palabra "invariant" por el código del idioma predeterminado (por ejemplo, "en-US").
Repita los pasos del 1 al 6, pero esta vez cree un archivo de recursos para un idioma alternativo admitido en el sitio web. En el paso 5, reemplace la palabra "invariant" por el código del idioma alternativo (por ejemplo, "es-ES").
En el Explorador de soluciones, haga doble clic en WeeklyStatusList.feature para abrirlo en la característica en el diseñador.
Compruebe que el único elemento debajo de Elementos de la característica sea ListInstance1 (WingtipReports).
En el Diseñador de características, haga clic en Manifiesto (cerca del final). Compruebe que el manifiesto sea similar al siguiente XML:
<Feature xmlns="https://schemas.microsoft.com/sharepoint/" Title="$Resources:WeeklyStatusListFeature" Description="$Resources:WeeklyStatusListFeatureDesc" Id="30444f12-2c40-4d2a-92dd-68a30192f0ae" Scope="Web"> <ActivationDependencies> <ActivationDependency FeatureDescription="$Resources:WeeklyStatusFeatureDesc" FeatureId="e18a0885-083e-43f6-94fe-b6d378a2468c" FeatureTitle="$Resources:WeeklyStatusFeature" /> </ActivationDependencies> <ElementManifests> <ElementManifest Location="ListInstance1\Elements.xml" /> <ElementFile Location="Resources\Resources.en-US.resx" /> <ElementFile Location="Resources\Resources.es-ES.resx" /> </ElementManifests> </Feature>
El manifiesto tendrá un valor diferente para el atributo Id. Los nombres de referencia cultural en los archivos de recursos también pueden ser diferentes.
Presione Ctrl+Mayús+S para guardar todo.
Prueba del proyecto
Pruebe el proyecto para asegurarse de que funcione correctamente.
Para probar el proyecto
En Visual Studio, presione F5 para iniciar la depuración.
En el panel Resultados se notifica el proceso de compilación e implementación. Finalmente, el sitio web aparecerá en el explorador.
En Inicio rápido, busque un vínculo de navegación a la lista Weekly Status Reports. El título del vínculo debe mostrar el título de la lista en el idioma para mostrar predeterminado del sitio.
Haga clic en la flecha situada junto a su nombre de usuario en la esquina superior derecha de la página. Haga clic en Idioma para mostrar y, a continuación, haga clic en el nombre del idioma alternativo que usó en el tutorial. Compruebe que el título del vínculo de la lista Weekly Status Reports cambie al idioma alternativo.
Haga clic en el vínculo a la lista Weekly Status Reports. A continuación, haga clic en Agregar nuevo elemento o su equivalente en el idioma alternativo.
Aparecerá el formulario Nuevo elemento.
Compruebe que todos los campos del formulario tengan el texto para mostrar en el idioma alternativo.
Continúe de forma similar y compruebe que las columnas de sitio, el tipo de contenido y la plantilla de lista consuman los recursos de localización correctamente.
Compruebe que Weekly Status Reports sea una característica de colección de sitios y que Weekly Status Report List sea una característica de sitio.
Vea también
Tareas
Tutorial: Localización de un elemento web