Revisión ortográfica
Activa el corrector ortográfico del navegador en el área de edición y ofrece un comando Spell Check que puede abrir un panel de revisión alimentado por tu propio servicio ortográfico. El editor no incluye diccionarios: sin servicio, la revisión depende del navegador y del sistema operativo del usuario y de los idiomas que tenga instalados.


Cómo activarlo
Esta función la ofrece el plugin spellcheck.js (también incluido en plugins/all_plugins.js). El botón es spellcheck ("Spell Check"). Está en la barra full y en el panel "more" de la barra predeterminada, y el menú de comandos con barra lo muestra como "Spell check". Para añadirlo a tu propia barra, incluye spellcheck en la cadena de la barra de herramientas.
Con el plugin cargado, el corrector nativo está activado y no hace falta nada más. Para obtener el panel de revisión, proporciona un resolver: una función que recibe el texto sin formato del documento y devuelve los problemas o una Promise con ellos.
// A stand-in for your spelling service: returns [{ word, offset, length, suggestions }].
var dictionary = { teh: ["the", "tech"], jumpd: ["jumped", "jumps"], befor: ["before", "befog"] };
var editor = new RichTextEditor("#editor", {
toolbar: "full",
spellCheckResolver: function (text) {
var issues = [];
text.replace(/[A-Za-z]+/g, function (w, offset) {
var s = dictionary[w.toLowerCase()];
if (s) issues.push({ word: w, offset: offset, length: w.length, suggestions: s });
});
return Promise.resolve(issues);
}
});
En una aplicación real, el resolver llama a tu servidor, que ejecuta un corrector como Hunspell o LanguageTool y adapta su respuesta a esa estructura:
spellCheckResolver: function (text) {
return fetch("/spell", { method: "POST", body: text }).then(function (r) { return r.json(); });
}
Opciones
| Opción | Valor predeterminado | Función |
|---|---|---|
spellCheckEnabled | true | Establece spellcheck="true" o "false" en el área de edición al iniciar el editor. |
spellcheck | true | El ajuste del propio núcleo del editor para el mismo atributo. El atributo solo es "true" cuando ambas opciones son true. |
spellCheckResolver | null | function (text) que devuelve un arreglo de { word, offset, length, suggestions }o una Promise de un arreglo. Sin él, el comando solo activa el corrector nativo. |
text_spellcheck, text_spellchecktitle, text_spellchecknative, text_spellcheckclean, text_sp_* | Inglés | Etiqueta del botón, título del panel y mensajes. Los paquetes de idioma los configuran. |
Cómo usarlo
- Sin un resolver. El comando establece
spellcheck="true"en el área de edición, le da el foco y muestra un mensaje breve al pie de la página: "Browser spell-check is on — misspellings are underlined as you type.". Esto también vuelve a activar el corrector nativo si comenzaste conspellCheckEnabled: false. Las correcciones se realizan desde el menú contextual del propio navegador. - Con un resolver. El comando envía el
innerTextdel documento al resolver y abre el panel Spelling. Cada problema muestra la palabra y hasta seis sugerencias. Al hacer clic en una, se sustituye la palabra y la fila se atenúa. Se muestra "No spelling issues found." cuando la lista está vacía y "Nothing to check." cuando el documento está vacío. - Un resolver que rechaza la solicitud muestra "Spell-check service error."; uno que tarda más de 12 segundos muestra "Spell-check timed out."; uno que lanza una excepción muestra "Spell-check error.".
Aspectos a tener en cuenta
- La sustitución se realiza por palabra, no por posición. Una sugerencia sustituye la primera coincidencia de palabra completa de
worden el documento (se omite el texto dentro decodeypre).offsetylengthno se usan, así que, si una palabra está mal escrita dos veces, cada clic corrige la siguiente aparición desde el principio. - Las sustituciones no son pasos de deshacer. En 2.6.12, pulsar Undo después de hacer clic en una sugerencia no recupera la palabra anterior.
- Idiomas. El plugin no tiene un ajuste de idioma. El corrector nativo usa los diccionarios del navegador y del sistema operativo del usuario; con un resolver, el idioma es el que revise tu servicio. Pásalo desde tu página, por ejemplo
fetch("/spell?lang=fr", …). - Tu texto se envía a tu servicio. En cada revisión se pasa al resolver todo el texto sin formato del documento. El plugin por sí mismo no envía nada a ningún sitio.
- No se añade nada al HTML guardado. El atributo
spellcheckestá en el área de edición, no en el contenido.
Relacionado: demo de revisión ortográfica, comandos con barra.