2010-04-16 17 views
5

Necesito activar el corrector ortográfico para un richtextbox, y establecer el idioma en uno que el usuario haya elegido de un menú desplegable. Por ahora, solo estoy probando construyendo richtextbox en xaml y proporcionando un lenguaje para el atributo de idioma xaml.Revisión ortográfica multilingüe en WPF richtextbox

He leído dos recursos diferentes y uno dice que necesito establecer el atributo de idioma, y ​​el otro dice que necesito establecer el atributo xml: lang. Ninguno parece funcionar. Intenté configurar cualquiera de las dos letras "es" para español, y también intenté configurar ambas en "es". También probé francés configurándolos en "fr-FR", sin éxito. Lo único que sucede es que las palabras en inglés no están marcadas, pero las demás palabras del idioma están marcadas como mal escritas.

También leí que tengo que cambiar el idioma del teclado. Esto sería un problema para mi aplicación, ya que el idioma dentro de la aplicación debe cambiarse sobre la marcha, por lo que hacer que el usuario final acceda a su configuración de teclado para que la corrección ortográfica funcione es un problema. Sin embargo, cambié la configuración de mi teclado y el corrector ortográfico todavía no funciona correctamente. Esta vez no marca nada como palabras inglesas mal escritas, incluso mal escritas.

¿Qué me estoy perdiendo?

Editar: algunos enlaces a mis referencias anteriores http://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck(v=VS.100).aspx

http://www.dev102.com/2008/03/25/customize-spellcheck-on-wpf-text-controls/

http://books.google.com/books?id=clLc5BBHqRMC&pg=PA121&lpg=PA121&dq=C%23+wpf+enable+spellcheck&source=bl&ots=_r59pZRDjP&sig=yHMBc39EHKK5gaRMzxlBaEsY890&hl=en&ei=oXnIS8zWH4G88gaq48yGBw&sa=X&oi=book_result&ct=result&resnum=6&ved=0CBMQ6AEwBQ#v=onepage&q&f=false

+0

Sólo comprobar que está utilizando WPF 4.0 (supongo que este es el caso, ya que tiene una etiqueta .net4) ... Sí – Bermo

+0

. Lo tenía en mi publicación y alguien lo editó y puso la etiqueta. Había estado probando esto en 3.5 y había estado obteniendo resultados similares. Sin embargo, el sitio msdn dijo que esto funciona en 4.0, por lo que descargué e instalé 2010 la semana pasada y sigo teniendo el mismo problema. – JoeSharp

Respuesta

1

Desde el foro de MSDN:

"En primer lugar, exactamente qué necesitamos componentes para WPF para habilitar el corrector ortográfico para Inglés/Español/Alemán/idiomas francés

netfx 3?.5 SP1

Windows XP (Paquetes de idiomas); Windows Vista (Fuera de la caja); Windows 7 (Fuera de cuadro)

netfx 4 Windows XP (paquetes de idiomas); Windows Vista (Paquetes de idiomas); Windows 7 (Paquetes de idiomas)

Aquí 'Paquetes de idiomas' significa que debe instalar los paquetes de idioma de .NET Framework correspondientes. Por ejemplo, si desea activar el corrector ortográfico en español en Windows XP y .NET Framework 3.5 SP1, entonces instala .NET Framework 3.5 SP1 Spanish Language Pack. Y si desea habilitar el corrector ortográfico alemán en .NET Framework 4.0, entonces instala .NET Framework 4.0 German Language Pack.

Los paquetes de idiomas para .NET Framework 4.0 estarán disponibles pronto.

Fuera de la caja significa que no tiene que hacer nada y el corrector ortográfico de los cuatro idiomas está disponible automáticamente.

Si está implementando su aplicación a través de ClickOnce, puede incluir los paquetes de idioma correspondientes como requisitos previos. Para obtener ayuda sobre la inclusión de paquetes de idioma en una implementación de ClickOnce, puede usar ClickOnce and Setup & Deployment Projects Forum.

En segundo lugar, ¿cómo determina el control RichTextBox el idioma que se va a verificar?

Si un elemento de ejecución está marcado con un lenguaje específico, el Corrector ortográfico usarlo: DOS

UNO tres cuatrro uno dos tres fourr

En tiempo de ejecución, la revisión ortográfica utiliza el idioma de entrada que se utilizó para escribir las palabras, como se describe en la publicación anterior.

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/06a2cc61-f2ae-4534-b35a-6c676bc2bcb2/?prof=required

+0

Así que, simplemente tiene que esperar 4.0 Paquetes de idiomas – majocha

+0

lol yup ... a menos que su aplicación esté en 3.5. El nuestro se encuentra actualmente en 3.5, pero estábamos buscando aumentarlo a 4.0 lo antes posible. Probablemente aún suceda, la revisión ortográfica multilingüe no es tan alta en la lista de prioridades. – JoeSharp

+1

Los paquetes de idioma de .NET Framework 4.0 están disponibles. ¿Pudiste obtener alguno de los otros idiomas además de inglés/español/alemán/francés? Intenté instalar el paquete de idioma ruso y configurar la etiqueta de idioma y eso no parece funcionar. – Luke

2

No estoy seguro de que el problema está para usted, pero esto definitivamente funciona en mi máquina:

<StackPanel> 
     <TextBox SpellCheck.IsEnabled="True" 
      Language="{Binding SelectedItem.Content, ElementName=lg, ConverterCulture=en-us}"> 

      Turtle tortue tortuga Schildkröte 

     </TextBox> 
     <ComboBox Name="lg"> 
      <ComboBoxItem Selector.IsSelected="True">en-US</ComboBoxItem> 
      <ComboBoxItem>fr-FR</ComboBoxItem> 
      <ComboBoxItem>es-ES</ComboBoxItem> 
      <ComboBoxItem>de-DE</ComboBoxItem> 
     </ComboBox> 
    </StackPanel> 

Editar funciona en 3.5, no en 4.0. Interesante.

En 3.5 todos los diccionarios soportados funcionan bien. En 4.0, el corrector ortográfico de WPF funciona solo para el idioma inglés.

Editar 2

Es parece que sólo funciona en 3.5 porque estoy en Windows 7, por lo que no necesita paquetes de idiomas.

El otro problema es que funciona solo porque el texto está preestablecido. Cualquier texto que ingrese obtendrá su idioma de la configuración actual del usuario.

Supongo que la solución a su problema sería atravesar todo el contenido y cambiar sus propiedades de idioma cada vez que el usuario seleccione un idioma.

+0

mojocha, ¿tiene los paquetes de idioma instalados? Publiqué esta misma pregunta en el foro de MSDN, y el moderador me dijo que debo descargar los paquetes de idioma para 3.5. Después de hacer eso y alrededor de una hora de prueba, los paquetes de idioma obtienen corrección ortográfica solo para 3.5. Por lo tanto, la corrección ortográfica aún no funciona para mí en 4.0 en otros idiomas, pero sí para español en 3.5 porque ahora tengo ese paquete de idioma. También solo funciona en un idioma dado siempre que el teclado esté configurado para ese idioma. Entonces, cuando comiences a escribir, si tu teclado está configurado en español, se corregirá en español. – JoeSharp

+0

Si su teclado está configurado en inglés, se corregirá en inglés. Por lo tanto, parece verificar el idioma en el nivel . Cualquier texto predeterminado se verifica en el idioma heredado. Entonces, si configuro RichTextBox en language = "es" y añado algún texto codificado, se corregirá ortográficamente en español no solo en el tiempo de ejecución, sino en la ventana del diseñador. – JoeSharp

+0

enlace: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/06a2cc61-f2ae-4534-b35a-6c676bc2bcb2/?prof=required – JoeSharp

Cuestiones relacionadas