2010-06-04 128 views
10

He desarrollado un gran portal de negocios. Me acabo de dar cuenta de que necesito mi sitio web en otro idioma. Investigué las soluciones disponibles, como ¿Cómo traducir el sitio web en otro idioma? (ASP .NET, C#)

  • Utilicé el control de terceros en mi sitio web. (Cómo encaja en mi diseño. No es útil en relación con el punto de vista SEO. No quiera mostrar las denominaciones de terceros partido marca.)
  • crear archivos de recursos para cada idioma. (Una gran cantidad de trabajo necesario para reestructurar las páginas de usar texto de archivos de recursos ¿Qué pasa con los datos ingresados ​​por el usuario como Descripción del Negocio.)
  • ¿Hay otras opciones disponibles?
    Estaba pensando en una solución como una cuando se crea una página en el lado del servidor, entonces podría traducirla antes de enviarla al cliente. ¿Hay alguna manera de hacer eso? (Para traducirlo todo, incluyendo los datos de las bases de datos añadida por oa través de un código. Y sin afectar el diseño.)

    +2

    Por lo Sé que para los recursos estáticos las personas normalmente usan el mecanismo de recursos de ASP.NET y para el contenido generado por el usuario puede, por ejemplo, tener un apporach similar a CMS, donde tienen versiones de la misma página para cada lenguaje supuesto y d cada versión es editada manualmente por una persona responsable. En cuanto a la traducción automática, puede intentar la integración con google translate o algo por el estilo. – axk

    Respuesta

    14

    Si realmente necesita traducir su aplicación, va a tomar mucho trabajo duro y tedioso. No hay una bala mágica.

    Lo primero que debe hacer es convertir el texto sin formato en su marcado a asp: Localizar controles. Al usar el control Localizar, puede dejar las etiquetas existentes <span> en su lugar y simplemente reemplazar el texto dentro de ellas. Realmente no hay forma de evitar esto. La búsqueda y el reemplazo de Visual Studio admite la coincidencia de expresiones regulares que pueden ayudarlo con esto, o puede usar Resharper (consulte a continuación).

    El primer enfoque sería descargar la aplicación de compras de código abierto nopCommerce y ver cómo manejan su localización. Almacenan sus cadenas en una base de datos y tienen una interfaz de usuario para editar idiomas. Un enfoque similar puede funcionar bien para usted.

    Alternativamente, si desea utilizar archivos de recursos, hay dos herramientas que yo recomendaría utilizar, además de Visual Studio: Resharper 5 (Localization Features screencast) y Zeta Resource Editor. Estos son los pasos que se necesitaría para lograrlo usando este método:

    1. usar la herramienta "Generar Recursos Locales" en el estudio visual de cada página
    2. Uso de ReSharper "Mover HTML de recursos" en el texto de su marcado para convertirlos en controles de localización.
    3. Utilice Resharper para buscar cadenas localizables en su código y muévalas al archivo de recursos también.
    4. Utilice las Reglas de Globalización del Análisis de Código/FXCop para ayudar a encontrar cualquier problema adicional al formatear números, fechas, etc.
    5. Una vez que todo el texto esté en los archivos resx, use Zeta Resource Editor para cargar todos sus resx, agrega nuevos idiomas y exporta para la traducción (o auto traducción si eres lo suficientemente valiente).

    He utilizado este enfoque en un sitio traducido a 8 idiomas (y en crecimiento) con decenas de páginas (y en crecimiento). Sin embargo, este no es un sitio editable por el usuario; las páginas están controladas únicamente por los programadores.

    +0

    Gracias por una respuesta detallada. –

    +1

    Es incluso más difícil que eso - probablemente estés creando cadenas usando texto fijo y algún texto de base de datos, y el orden de estos será diferente en la traducción, que requiere marcadores de posición en las translaciones. Si es un sitio web, probablemente también tenga texto en algunas imágenes, que deberá regenerarse. –

    0

    Creo que deberías probar Google Translate.

    http://translate.google.com/translate_tools

    muy fácil y muy muy eficaz.

    HTH

    +1

    Sí. Esta es una gran herramienta en realidad. Pero no quiero usar debido a los motivos enumerados en la primera viñeta. –

    +1

    Es fácil pero no es efectivo, no es preciso y no es profesional – lKashef

    0

    Sin duda será más trabajo para crear archivos de recursos para cada idioma - pero esta es la opción optaría por, ya que le da la oportunidad de ser más preciso. Si lo haces de esta manera, alguien que hable el idioma puede traducir el texto manualmente (hay muchas empresas que ofrecen este tipo de servicio).

    Los sistemas de traducción automática a menudo son buenos para dar una impresión general de lo que significa algo en otro idioma, pero nunca los usaría cuando intente retratar una imagen profesional, ya que a menudo lo que producen no tiene sentido. ¡Nada grita 'no profesional!' como texto que simplemente no tiene sentido porque ha sido traducido automáticamente.

    +0

    Sí. Pero tampoco tenemos archivos de recursos para el inglés. He visto la opción Generar recurso local pero no incluye los tramos que muestran la mayoría de las etiquetas de interfaz de usuario :( –

    0

    tomaría la ruta del archivo de recursos sobre la opción de traducción debido a que el significado de las palabras en un idioma puede ser muy contextual y ni un solo error podría socavar la credibilidad de su sitio.

    Como usted sugiere Visual Studio puede generar las claves de archivos de recursos del meta para la mayoría de los controles que contienen texto pero puede dejar que tenga que hacer el resto de forma manual, pero no veo una solución más fácil, más fiable.

    No creo que la localización sea fácil de automatizar ya que el texto almacenado en la base de datos a menudo resulta en cambios de esquema para permitir múltiples idiomas, y el HTML web a menudo necesita reestructuración para tratar con etiquetas truncadas o envueltas botón de texto porque, por ejemplo, ha traducido al alemán o algo así.

    Otras consideraciones: configuración Cultura - delimitors financieros, formatos de fecha. De derecha a izquierda: algunos idiomas, como el árabe, se escriben de derecha a izquierda, lo que significa que las páginas requieren un replanteamiento para controlar el posicionamiento como imágenes, etc.

    Buena suerte sea lo que sea que elija.

    0

    que terminé haciendo de la manera difícil:

    • escribí un método de extensión de la clase de cadena llamado TranslateInto
    • El método PreRender de la página agarro todos los controles de forma recursiva en función de su tipo (los tipos que tendría texto)
    • Foreach través de ellos y text.TranslateInto (SupportedLanguages.CurrentLanguage)
    • En mi método TranslateInto que tiene una sentencia switch ridículamente grande con todas las palabras que se muestran al usuario y su traducción correspondiente.

    No es muy bonito, pero funcionó.

    +0

    Esa es una forma de hazlo. – Greg

    0

    ¿una caja de interruptor grande? use un diccionario/hashtable (instancia separada para cada idioma), es mucho, mucho más efectivo y rápido.

    +1

    Prueba y haz que tu respuesta sea más comprensible. – Amar

    0

    Trabajamos con una herramienta CAT de Traducción (Traducción Asistida por Computadora) llamada MemoQ que nos permite traducir el texto y dejar todas las etiquetas y códigos en su lugar. Esto es muy útil cuando el orden de las palabras cambia cuando traduces de un idioma a otro.

    También es muy útil porque nos permite trabajar con traductores de todo el mundo, sin la necesidad de tener ningún conocimiento técnico. También nos permite tener la prueba de traducción leída por un segundo traductor.

    Utilizamos este entorno de traducción para traducir HTML, XML, InDesign, Word, etc.

    1

    para convertir la página a la lengua árabe u otro lenguaje.

    Ir a:

    1 páginas de diseño

    2-Herramientas

    3-Generar Recursos Locales

    4-obtener "App_LocalResources" incluyen "filename.aspx.resx"

    5-copie el archivo y cambie el nombre a "filename.aspx.ar.resx" para convertir la página al idioma árabe u otro.

    esperanza de útil :)

    Cuestiones relacionadas