Compartir a través de


Descripción de la interfaz de usuario multilingüe (MUI)

Última modificación: miércoles, 01 de diciembre de 2010

Hace referencia a: SharePoint Foundation 2010

En este artículo
Terminología de la interfaz de usuario multilingüe
Habilitación de la compatibilidad con idiomas alternativos
Cambio del idioma para mostrar
Procedimiento para localizar el texto para mostrar
Adición de traducciones a los recursos de usuario

La funcionalidad de la interfaz de usuario multilingüe (MUI) de Microsoft SharePoint Foundation 2010 ofrece a los usuarios la posibilidad de cambiar el idioma de la interfaz de usuario de un sitio web.

Por ejemplo, un usuario hispanohablante que trabaje con una interfaz de usuario en inglés puede cambiar su idioma al español. Las barras de herramientas, barras de navegación, títulos de lista y encabezados de columna del sitio aparecerán en español. De forma similar, un usuario que habla árabe puede cambiar la interfaz de usuario al árabe. En este caso, las barras de herramientas, barras de navegación, títulos de lista y encabezados de columna aparecerán en árabe y la orientación de izquierda a derecha del sitio cambiará por la orientación de derecha a izquierda.

Para que esto sea posible, los idiomas deben ponerse a disposición por medio de paquetes de idioma instalados en los servidores donde está instalado SharePoint Foundation 2010 y el propietario del sitio de SharePoint Foundation debe habilitar los idiomas como idiomas alternativos para el sitio.

Los paquetes de idioma proporcionan las traducciones del texto de la interfaz de usuario que se incluye con SharePoint Foundation 2010. También se puede localizar el texto que los usuarios agregan a un sitio web después de crearlo. Si bien SharePoint Foundation 2010 no admite la localización del contenido de elementos de lista, sí admite la localización del cromo de una lista, incluidos el título y la descripción de la lista, los encabezados de columna, los nombres y descripciones de tipos de contenido personalizados usados en la lista y el texto para mostrar usado en las extensiones de los menús de lista. Al personalizar la interfaz de usuario del sitio web propiamente dicho, quizás mediante la adición de nodos a la barra de navegación superior o al área de inicio rápido o mediante la adición de extensiones a la cinta de opciones, también puede agregar traducciones del texto para mostrar de estos nuevos elementos en todos los idiomas admitidos por el sitio. Todo texto de la interfaz de usuario que se pueda personalizar, también puede ser compatible con recursos de idioma creados por el usuario.

Terminología de la interfaz de usuario multilingüe

En las siguientes secciones se define la terminología estándar relacionada con la MUI de SharePoint Foundation.

Idioma de SKU

El idioma en el que se ha instalado SharePoint Foundation se denomina idioma de SKU. Se trata del idioma usado por la aplicación de Administración central y el idioma predeterminado en el que se crean los sitios web y las colecciones de sitios de todo el conjunto o granja de servidores.

Puede determinar el idioma de SKU mediante el modelo de objetos de SharePoint Foundation. La propiedad estática GlobalServerLanguage de la clase SPRegionalSettings devuelve un objeto SPLanguage con información sobre el nombre para mostrar del idioma de SKU y su identificador de configuración regional (LCID). Para obtener una lista de todos los LCID, vea la propiedad SPLocale.LCID.

Idiomas instalados

Un idioma instalado es el idioma de SKU o un idioma que un administrador de la granja de servidores agrega a los servidores de la granja mediante la descarga e instalación de un paquete de idioma.

Nota

Para obtener una lista de los paquetes de idioma disponibles, vea el tema sobre los paquetes de idioma para SharePoint Foundation 2010.

La propiedad estática GlobalInstalledLanguages de la clase SPRegionalSettings devuelve un objeto SPLanguageCollection que se puede enumerar para descubrir qué paquetes de idioma están instalados. Cada objeto SPLanguage de la colección tiene información sobre el nombre para mostrar y el LCID de un idioma instalado.

Idioma predeterminado

Cuando los propietarios del sitio web o los administradores de la colección de sitios crean sitios web o colecciones de sitios nuevas, pueden seleccionar un idioma. Esta selección se convierte en el idioma predeterminado del sitio web nuevo o, en el caso de una colección de sitios nueva, el idioma predeterminado del sitio web raíz. El idioma predeterminado se usa para el texto de la interfaz de usuario que se crea automáticamente al aprovisionar un sitio web. También es el idioma que se usa para el texto de la interfaz de usuario sin traducir que se agrega a un sitio web que admite varios idiomas.

La propiedad UICulture de la clase SPWeb devuelve un objeto CultureInfo con información sobre el idioma predeterminado.

Idiomas alternativos

El propietario de un sitio web puede especificar cuáles de los idiomas instalados admitirá el sitio. Posteriormente, los usuarios que navegan al sitio podrán cambiar el idioma para mostrar de la interfaz de usuario por cualquiera de estos idiomas alternativos.

La propiedad SupportedUICultures de la clase SPWeb devuelve una colección enumerable de objetos CultureInfo con información acerca de los idiomas admitidos por la interfaz de usuario del sitio web. Esta colección incluye un objeto para el idioma predeterminado además de objetos para los idiomas alternativos.

Nota

Si no se ha habilitado la MUI para un sitio web, la colección devuelta por la propiedad SupportedUICultures contiene solo un objeto CultureInfo que representa el idioma predeterminado. Puede determinar si se habilitará la MUI mediante la obtención del valor de la propiedad IsMultilingual.

Recursos de usuario

Todo texto de la interfaz de usuario que se puede personalizar en SharePoint Foundation está respaldado por una colección de cadenas, una cadena para cada idioma admitido por el sitio web. Una colección de cadenas localizables creadas por el usuario se denomina recurso de usuario.

En el modelo de objetos de SharePoint Foundation, un recurso de usuario se representa por una instancia de la clase SPUserResource. Por ejemplo, el texto para mostrar de un título de lista se proporciona mediante la propiedad Title del objeto SPList que representa la lista. La propiedad Title, a su vez, obtiene su valor de un objeto SPUserResource devuelto por la propiedad TitleResource de la lista.

Cuando se agrega texto de la interfaz de usuario nuevo a un sitio web después de crearlo, el objeto SPUserResource que respalda el texto devuelve el mismo valor, el valor inicial, para todos los idiomas hasta que se agregue una traducción.

Nota

Los recursos de usuario no son lo mismo que los archivos (.resx) de recursos de idioma. Los archivos de recursos de idioma son específicos del idioma. Contienen muchas cadenas de texto en un idioma. Los objetos SPUserResource, en cambio, son específicos del texto. Contienen representaciones de una cadena de texto en varios idiomas.

Habilitación de la compatibilidad con idiomas alternativos

El propietario de un sitio web puede habilitar la MUI; para ello, debe navegar a la página Configuración de idioma (/_layouts/muisetng.aspx) en la interfaz de usuario. (Haga clic en Acciones del sitio y, a continuación, en Configuración del sitio. En Administración del sitio, haga clic en Configuración de idioma). Los idiomas instalados aparecen en el grupo Idiomas alternativos. Los idiomas alternativos admitidos actualmente en el sitio web tienen marcas de verificación en las casillas situadas junto a sus nombres. Para admitir o no admitir un idioma, debe activar o desactivar una casilla de verificación.

Puede usar el modelo de objetos de SharePoint Foundation con el mismo fin; para ello, debe obtener una referencia a un objeto SPWeb, establecer su propiedad IsMultilingual en true y, a continuación, llamar al método AddSupportedUICulture para admitir uno o varios idiomas alternativos, o bien al método RemoveSupportedUICulture para no admitirlos. El procedimiento para admitir idiomas alternativos se ilustra en la siguiente aplicación de consola:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {

                    // A website can be created from a template that does not support MUI.
                    SPWebTemplateCollection templates = site.GetWebTemplates(web.Language);
                    SPWebTemplate template = templates[web.WebTemplate];
                    if (template.SupportsMultilingualUI)
                    {

                        // Enable MUI.
                        web.IsMultilingual = true;

                        // Add support for any installed language currently not supported.
                        SPLanguageCollection installed = SPRegionalSettings.GlobalInstalledLanguages;
                        IEnumerable<CultureInfo> supported = web.SupportedUICultures;

                        foreach (SPLanguage language in installed)
                        {
                            CultureInfo culture = new CultureInfo(language.LCID);

                            if (!supported.Contains(culture))
                            {
                                Console.WriteLine("Adding {0}", culture.Name);
                                web.AddSupportedUICulture(culture);
                            }
                        }
                        web.Update();
                    }
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.Read();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Threading
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.RootWeb

                ' A website can be created from a template that does not support MUI.
                Dim templates As SPWebTemplateCollection = site.GetWebTemplates(web.Language)
                Dim template As SPWebTemplate = templates(web.WebTemplate)

                If template.SupportsMultilingualUI Then

                    ' Enable MUI.
                    web.IsMultilingual = True

                    ' Add support for any installed language currently not supported.
                    Dim installed As SPLanguageCollection = SPRegionalSettings.GlobalInstalledLanguages
                    Dim supported As IEnumerable(Of CultureInfo) = web.SupportedUICultures

                    For Each language As SPLanguage In installed
                        Dim culture As New CultureInfo(language.LCID)

                        If Not supported.Contains(culture) Then
                            Console.WriteLine("Adding {0}", culture.Name)
                            web.AddSupportedUICulture(culture)
                        End If
                    Next
                    web.Update()
                End If

            End Using
        End Using
        Console.Write(vbCrLf & "Press ENTER to continue....")
        Console.Read()
    End Sub

End Module

Tenga en cuenta que la aplicación de consola comprueba si el sitio web se basa en una plantilla web que es compatible con la MUI. Es posible crear una plantilla web que no sea compatible con los idiomas alternativos. Para obtener más información, vea el atributo SupportsMultilingualUI en Elemento Configuration (Sitio) y la propiedad SupportsMultilingualUI de la clase SPWebTemplate.

Por motivos de simplicidad, la aplicación de consola no rodea al código que establece la propiedad IsMultilingual con un bloque try-catch; no obstante, debería hacerlo. Al intentar establecer la propiedad IsMultilingual en true se producirá una excepción SPException si el sitio web tiene hojas de estilos en cascada (CSS) personalizadas. No se puede habilitar la compatibilidad con idiomas alternativos en un sitio que usa archivos CSS personalizados.

Una tarea común muy similar a la realizada en el último ejemplo consiste en replicar el conjunto de idiomas alternativos de un sitio web en un subsitio. Esto es necesario porque todos los sitios web nuevos se crean con un idioma predeterminado, pero sin idiomas alternativos. Para replicar la compatibilidad con idiomas alternativos de un sitio web en un subsitio, enumere la colección devuelta por la propiedad SupportedUICultures del sitio web primario y admita cada referencia cultural en el sitio web secundario mediante una llamada al método AddSupportedUICulture del sitio web secundario.

Cambio del idioma para mostrar

En SharePoint Foundation 2010, cuando alguien navega a un sitio web multilingüe, el sitio web usa el encabezado Accept-Language que envía el explorador cliente con la solicitud HTTP para determinar el idioma en el que se va a representar la interfaz de usuario. Si el sitio web no admite ninguno de los idiomas especificados en el explorador, se usará el idioma predeterminado como el idioma para mostrar.

Un sitio web multilingüe también muestra un menú desplegable en la esquina superior derecha de la página, junto al nombre del usuario, donde los usuarios pueden seleccionar un idioma para mostrar. Cuando un usuario selecciona un idioma diferente del idioma para mostrar actual, el sitio web cambia al nuevo idioma. Las preferencias del usuario se almacenan en una cookie que se coloca en el equipo cliente. El sitio web obtiene la preferencia de idioma del usuario de la cookie en las visitas posteriores al sitio.

La interfaz de usuario para obtener la preferencia de idioma de un usuario se implementa mediante un control PersonalActions en la parte superior de la mayoría de las páginas. Este control llama al método Page.RegisterStartupScript para colocar el siguiente marcado en el HTML que se envía al explorador cliente.

<script type ="text/javascript"> 
// <![CDATA[
function OnSelectionChange(value)
{
    var today = new Date();
    var oneYear = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);
    var url = window.location.href;
    document.cookie = "lcid=" + value + ";path=/;expires=" + oneYear.toGMTString();
    window.location.href = url;
}
// ]]>
</script>

Una vez determinado un idioma para mostrar, SharePoint Foundation inicia un subproceso para atender la solicitud y establece la propiedad Thread.CurrentUICulture del subproceso de modo que refleje la selección del idioma. Al escribir código que se ejecutará en el servidor, por ejemplo en un elemento web, puede obtener el idioma para mostrar del contexto HTTP actual si obtiene acceso a la propiedad estática CultureInfo.CurrentUICulture.

El ejemplo siguiente es una aplicación de consola simple en la que se demuestra cómo el cambio del idioma para mostrar afecta al texto para mostrar. La aplicación enumera la lista de referencias culturales admitidas por un sitio web, establece a su vez el valor de la propiedad CurrentUICulture del subproceso actual para cada referencia cultural admitida e imprime el título del sitio web a medida que se representa en el idioma para mostrar actual.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    if (web.IsMultilingual)
                    {
                        IEnumerable<CultureInfo> cultures = web.SupportedUICultures;
                        foreach (CultureInfo culture in cultures)
                        {
                            // Change the UI culture of the thread.
                            Thread.CurrentThread.CurrentUICulture = culture;
 
                            // Print the name of the current language and the web title in the current language.
                            Console.WriteLine("{0}  {1}", CultureInfo.CurrentUICulture.Name, web.Title); 
                        }
                    }
                }
            }
            Console.WriteLine("\nPress ENTER to continue....");
            Console.Read();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Threading
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.RootWeb

                If web.IsMultilingual Then
                    Dim cultures As IEnumerable(Of CultureInfo) = web.SupportedUICultures
                    For Each culture As CultureInfo In cultures

                        ' Change the UI culture of the thread.
                        Thread.CurrentThread.CurrentUICulture = culture

                        ' Print the name of the current language and the web title in the current language.
                        Console.WriteLine("{0}  {1}", CultureInfo.CurrentUICulture.Name, web.Title)
                    Next
                End If

            End Using
        End Using
        Console.Write(vbCrLf & "Press ENTER to continue....")
        Console.Read()
    End Sub

End Module

Procedimiento para localizar el texto para mostrar

Los recursos de idioma localizados para el texto de la interfaz de usuario suministrado por Microsoft se proporcionan mediante un conjunto de archivos de recursos específicos de la referencia cultural que se instalan en cada servidor web de la granja de servidores. Al crear un nuevo sitio web, SharePoint Foundation abre un archivo de recursos para el idioma predeterminado del sitio, busca el texto necesario y lo almacena en los objetos que representan el texto para mostrar para la interfaz de usuario. A medida que se agregan idiomas alternativos al sitio, se usa el mismo proceso para obtener las traducciones del texto de la interfaz de usuario suministrado por Microsoft.

Todo elemento de la interfaz de usuario que los usuarios pueden personalizar está respaldado por un recurso de usuario, un objeto SPUserResource capaz de almacenar las traducciones proporcionadas por el usuario para cada idioma admitido por un sitio web. Por ejemplo, la propiedad Title de un objeto SPField proporciona el nombre para mostrar de una columna de una lista. Esa propiedad se relaciona estrechamente con TitleResource, una propiedad de solo lectura que devuelve un objeto SPUserResource. Al obtener la propiedad Title, esta devuelve TitleResource.Value. Al establecer la propiedad Title, esta establece TitleResource.Value. En otras palabras, obtener o establecer la propiedad Title de un objeto SPField equivale a obtener o establecer la propiedad Value de un objeto SPUserResource.

La propiedad SPUserResource.Value es muy interesante. El código fuente de la propiedad tiene un aspecto similar al siguiente:

public string Value 
{
    get
    {
        return GetValueForUICulture(Thread.CurrentThread.CurrentUICulture);
    }
    set
    {
        SetValueForUICulture(Thread.CurrentThread.CurrentUICulture, value);
    }
}

Al obtener y establecer la propiedad Value, se invoca uno de los dos métodos públicos de la clase SPUserResource, el método GetValueForUICulture o el método SetValueForUICulture. En cada caso se pasa un objeto CultureInfo que representa la referencia cultural del subproceso actual.

La clase SPUserResource mantiene un diccionario que asigna un conjunto de claves (idiomas) a un conjunto de valores (traducciones). Los métodos GetValueForUICulture y SetValueForUICulture buscan entradas de diccionario por idioma y obtienen o establecen el valor de cadena para ese idioma.

Valores iniciales de recursos de usuario

Los objetos SPUserResource nuevos se crean con al menos un valor, el valor del idioma predeterminado del sitio web. De hecho, es posible que el valor usado para el idioma predeterminado no sea el idioma predeterminado. Es cualquier cadena usada para crear el texto para mostrar que respalda el recurso de usuario, en el idioma usado al crear el texto para mostrar.

Por ejemplo, cuando un usuario crea una nueva lista, se debe pasar una cadena que contiene el título de lista como argumento al constructor de la clase SPList. Cuando se inicializa la propiedad TitleResource en el objeto SPList, se pasa esa misma cadena de título como argumento al constructor de un objeto SPUserResource. El código del constructor SPUserResource crea una entrada inicial en el diccionario de valores del objeto, mediante el uso del idioma predeterminado del sitio web como la clave de la entrada y la cadena de título como el valor inicial.

Este valor inicial es especialmente importante cuando es el único valor para el recurso de usuario. El método GetValueForUICulture devuelve el valor para el idioma predeterminado cuando cualquier llamada al método especifique un idioma que no existe en el diccionario del recurso. Como resultado, se usa el valor del idioma predeterminado para todo el texto sin traducir.

Los objetos que consumen recursos de usuario se pueden inicializar con valores de archivos (.resx) de recursos específicos del idioma si los objetos se crean mediante una característica que también implementa los archivos de recursos. Para obtener más información, vea el tema acerca de cómo localizar soluciones de SharePoint.

Elementos de interfaz de usuario que consumen recursos de usuario

El modelo de objetos de SharePoint Foundation consta de seis clases que tienen propiedades que devuelven un objeto SPUserResource:

En la siguiente tabla se enumeran las propiedades que devuelven objetos SPUserResource y se describe dónde se consumen los recursos.

Propiedad

Descripción

SPContentType.DescriptionResource

El origen de la cadena devuelta por la propiedad SPContentType.Description, que proporciona el texto que describe el tipo de contenido.

SPContentType.NameResource

El origen de la cadena devuelta por la propiedad SPContentType.Name, que proporciona el nombre para mostrar de un tipo de contenido.

SPField.DescriptionResource

El origen de la cadena devuelta por la propiedad SPField.Description, que proporciona el texto que describe la columna.

SPField.TitleResource

El origen de la cadena devuelta por la propiedad SPField.Title, que proporciona el nombre para mostrar de la columna.

SPList.DescriptionResource

El origen de la cadena devuelta por la propiedad SPList.Description, que proporciona el texto que describe la lista.

SPList.TitleResource

El origen de la cadena devuelta por la propiedad SPList.Title, que proporciona el nombre para mostrar de la lista.

SPNavigationNode.TitleResource

El origen de la cadena devuelta por la propiedad SPNavigationNode.Title, que proporciona el nombre para mostrar de un nodo de navegación.

SPUserCustomAction.CommandUIExtensionResource

El origen de la cadena devuelta por la propiedad SPUserCustomAction.CommandUIExtension, que proporciona una representación XML de una acción personalizada usada en la cinta de opciones.

SPUserCustomAction.DescriptionResource

El origen de la cadena devuelta por la propiedad SPUserCustomAction.Description, que proporciona el texto que describe un control personalizado con ámbito de lista, Web o sitio.

SPUserCustomAction.TitleResource

El origen de la cadena devuelta por la propiedad SPUserCustomAction.Title, que proporciona el texto para mostrar que describe un control personalizado con ámbito de lista, Web o sitio.

SPWeb.DescriptionResource

El origen de la cadena devuelta por la propiedad SPWeb.Description, que proporciona el texto que describe un sitio web.

SPWeb.TitleResource

El origen de la cadena devuelta por la propiedad SPWeb.Title, que proporciona el nombre para mostrar de un sitio web.

Dos propiedades adicionales devuelven colecciones de recursos de usuario en un objeto SPUserResourceCollection. La clase SPList tiene una propiedad UserResources que contiene objetos SPUserResource que tienen recursos localizables usados por la lista y los campos, tipos de contenido y acciones personalizadas de usuario asociados a la lista. Si no se ha personalizado ningún texto para mostrar de estos objetos, la propiedad UserResources devuelve una colección vacía. Por lo general, el texto para mostrar de las listas estándar como Anuncios y Documentos compartidos no se personaliza, por lo que las propiedades UserResources de dichas listas suelen devolver colecciones vacías.

La propiedad UserResources de la clase SPWeb realiza una función similar al devolver una colección de objetos SPUserResource que tienen recursos localizables usados por el sitio web y por las columnas de sitio, tipos de contenido, nodos de navegación y acciones personalizadas de usuario asociados al sitio web. Los objetos devueltos en la colección representan solo el texto para mostrar que los usuarios (incluidos los programadores y administradores) han personalizado en el sitio web.

Idiomas mixtos

Varias circunstancias pueden crear una experiencia de idiomas mixtos en un sitio web. La más evidente tiene lugar cuando los usuarios del sitio lo personalizan mediante la adición de nuevos elementos, como una nueva lista o un nuevo nodo de navegación, sin proporcionar también las traducciones de los recursos de usuario asociados a esos elementos.

Otro tipo de experiencia de idiomas mixtos tiene lugar con ciertos elementos integrados de la interfaz de usuario. Es posible que los mensajes de error, las notificaciones y algunos cuadros de diálogo no se muestren en el idioma para mostrar actual. Esto se debe a que SharePoint Foundation depende de varias tecnologías de apoyo, como Microsoft .NET Framework, Windows Workflow Foundation y Microsoft ASP.NET, algunas de las cuales están traducidas a un número limitado de idiomas. Si un elemento de interfaz de usuario generado por cualquiera de estas tecnologías de apoyo no está localizado en el idioma que el propietario del sitio especificó para el sitio, aparecerá en el idioma en el que se ha instalado la tecnología de apoyo (es decir, su idioma de SKU).

Por último, se puede producir una experiencia de idiomas mixtos con algunos elementos de la interfaz de usuario administrativa. En algunos casos, es posible que el texto de la interfaz de usuario aparezca en el idioma en que se ha instalado SharePoint Foundation. Esto lo suelen ver solo los administradores o propietarios del sitio, pero no los usuarios de los sitios.

Adición de traducciones a los recursos de usuario

La manera más sencilla de agregar una traducción al recurso de usuario de texto de la interfaz de usuario personalizado consiste en que un hablante bilingüe visite el sitio web, cambie a uno de los idiomas alternativos y traduzca el texto mediante su edición directa en la interfaz de usuario administrativa. Por ejemplo, para traducir el título y la descripción de una lista, haga clic en Configuración de lista en la cinta de opciones. En Configuración general, haga clic en Título, descripción y navegación y, a continuación, edite el texto en los cuadros Nombre y Descripción. Los cambios realizados en un idioma alternativo se guardan como el valor de ese idioma en el recurso de usuario que respalda el texto.

El propietario de un sitio web también puede organizar la traducción en masa de recursos de usuario mediante la exportación de cadenas sin traducir a un archivo (.resx) de recursos para cada idioma alternativo admitido en el sitio. Posteriormente, los archivos de recursos pueden entregarse a traductores que podrán realizar su trabajo sin conexión. Una vez completado el trabajo, el propietario puede importar los archivos de recursos. SharePoint Foundation agrega las traducciones a los recursos de usuario adecuados.

La operación de exportación puede realizarse en la interfaz de usuario en la página Exportar traducciones (_layouts/exporttranslations.aspx). Se pueden importar traducciones completadas en la página Importar traducciones (_layouts/importtranslations.aspx). Como alternativa, puede escribir su propio código para ambas operaciones. El código puede llamar al método ExportUserResources de la clase SPWeb y guardar el resultado en un archivo de recursos. Una vez traducidas las cadenas, puede importarlas mediante una llamada al método ImportUserResources. La documentación de ambos métodos incluye código de ejemplo.

Una solución mejor, desde el punto de vista de un programador, consiste en realizar las traducciones de antemano, antes de implementar una característica nueva en un sitio web multilingüe. Puede crear archivos de recursos específicos del idioma, hacer referencia a ellos en Lenguaje de marcado de la aplicación de colaboración (CAML), empaquetarlos en una solución de SharePoint e implementarlos en un sitio web o colección de sitios. Posteriormente, SharePoint Foundation puede usar los archivos de recursos para rellenar los objetos SPUserResource que crea la característica. Para obtener más información, vea el tema acerca de cómo localizar soluciones de SharePoint.

Permitir que los cambios sobrescriban las traducciones

La página Configuración de idioma (_layouts/muisetng.aspx) ofrece a los propietarios del sitio la opción de sobrescribir las traducciones existentes a idiomas alternativos cuando se realizan cambios en el idioma predeterminado. Los botones de radio y No de la página establecen la propiedad OverwriteTranslationsOnChange de la clase SPWeb en true o false. El valor predeterminado es false (No en la interfaz de usuario).

Si la propiedad OverwriteTranslationsOnChange se establece en true ( en la interfaz de usuario) y, por ejemplo, un usuario que está trabajando en el idioma predeterminado cambia el texto del encabezado de una columna de lista, se restablecerán automáticamente todos los valores de la propiedad TitleResource que es el origen del encabezado de columna. Las traducciones en idiomas alternativos existentes se sobrescriben con el nuevo texto en el idioma predeterminado. En otras palabras, el texto ya no tendrá traducciones.

Si la propiedad devuelve false, las traducciones en idiomas alternativos se conservarán cuando la versión del idioma predeterminado cambie. En este caso, el texto en el idioma alternativo ya no será una traducción válida del origen en el idioma predeterminado.

Por este motivo, la elección es realmente entre si el texto es más fácil de entender (elija No) o más preciso (elija ).

Vea también

Tareas

Tutorial: Localización de un elemento web

Tutorial: Localización de columnas, tipos de contenido y listas

Referencia

SupportsMultilingualUI

SPWeb.IsMultilingual

SPWeb.Language

Thread.CurrentUICulture