Plugin de Transliteración
Conversión de caracteres de diferentes idiomas
El plugin Transliterate es una extensión para Grav CMS. Añade filtros de Twig para transliterar y convertir texto a ASCII, facilitando el manejo de caracteres especiales, diacríticos y escrituras no latinas en tus plantillas de Grav.
Instalación
La instalación del plugin de Transliteración se puede realizar de tres maneras: el método de instalación mediante GPM (Grav Package Manager) te permite instalar el plugin rápidamente con un simple comando en la terminal, el método manual te permite hacerlo mediante un archivo zip, y el método a través del Admin Plugin te permite instalarlo directamente desde la interfaz de administración.
Instalación mediante GPM (Preferido)
Para instalar el plugin a través de GPM, abre la terminal de tu sistema (también llamada línea de comandos), navega hasta la raíz de tu instalación de Grav e introduce:
bin/gpm install transliterate
Esto instalará el plugin de Transliteración en el directorio /user/plugins
de Grav. Sus archivos se encontrarán en /tu/sitio/grav/user/plugins/transliterate
.
Instalación Manual
Para instalar el plugin manualmente, descarga la versión en zip de este repositorio y descomprímela en /tu/sitio/grav/user/plugins
. Luego, renombra la carpeta a transliterate
. Puedes encontrar estos archivos en GitHub o a través de GetGrav.org.
Ahora deberías tener todos los archivos del plugin en:
/tu/sitio/grav/user/plugins/transliterate
NOTA: Este plugin es un componente modular para Grav que puede requerir otros plugins para funcionar. Consulta su archivo blueprints.yaml en GitHub.
Admin Plugin
Si utilizas el Admin Plugin, puedes instalar el plugin directamente navegando al menú Plugins
y haciendo clic en el botón Añadir
.
Configuración
Antes de configurar este plugin, debes copiar el archivo user/plugins/transliterate/transliterate.yaml
a user/config/plugins/transliterate.yaml
y editar solo esa copia.
Aquí tienes la configuración por defecto y una explicación de las opciones disponibles:
enabled: true
custom_rules: 'Any-Latin; Latin-ASCII'
allowed_chars: 'A-Za-z0-9 \-_,.'
Opciones
-
enabled
(booleano) – Determina si el plugin está activo. Establécelo entrue
para habilitar la transliteración, o enfalse
para deshabilitarla. -
custom_rules
(cadena) – Define las reglas de transliteración utilizando la sintaxis de transliteración de ICU. El valor por defecto'Any-Latin; Latin-ASCII'
convierte caracteres de cualquier escritura a latín y luego reemplaza los caracteres latinos por su equivalente más cercano en ASCII. Puedes modificarlo según tus necesidades.- Ejemplos:
'Any-Latin; Latin-ASCII'
: Convierte caracteres no latinos a latín y luego a ASCII.'Greek-Latin; Latin-ASCII'
: Convierte caracteres griegos a latín y luego a ASCII.'Cyrillic-Latin; Latin-ASCII'
: Convierte caracteres cirílicos a latín y luego a ASCII.
- Ejemplos:
-
allowed_chars
(cadena) – Un patrón de expresión regular que define qué caracteres están permitidos en la salida transliterada. La configuración por defecto'A-Za-z0-9 \-_,.'
permite letras mayúsculas y minúsculas, números, espacios, guiones, guiones bajos, comas y puntos.- Ejemplos:
'A-Za-z0-9 \-_'
: Permite letras mayúsculas y minúsculas, números, espacios, guiones y guiones bajos.'A-Za-z0-9 \-_,.'
: Permite letras, números, espacios, guiones, guiones bajos, comas y puntos.
- Ejemplos:
Ten en cuenta que si utilizas el Admin Plugin, se guardará un archivo con tu configuración llamado transliterate.yaml
en la carpeta user/config/plugins/
una vez que guardes la configuración en el Admin.
Uso
El plugin de Transliteración proporciona dos filtros de Twig para manejar texto:
transliterate
: Convierte texto con caracteres especiales, diacríticos o escrituras no latinas en un equivalente basado en latín.to_ascii
: Convierte texto a ASCII, eliminando todos los caracteres no ASCII (incluyendo símbolos y espacios).
Ejemplos
Transliteración Básica
{{ 'Café en París' | transliterate }}
Salida:
Cafe en Paris
Conversión a ASCII
{{ 'Café en París @#$%^&*()' | to_ascii }}
Salida:
Cafe en Paris
Usando Reglas de Transliteración Personalizadas
Puedes especificar reglas de transliteración personalizadas para tener más control sobre la salida. Por ejemplo:
{{ 'Café en París' | transliterate('Any-Latin; Latin-ASCII; [\\u0100-\\u017F] remove') }}
Salida:
Cafe en Paris
Configuración de Caracteres Permitidos
Puedes configurar qué caracteres están permitidos en la salida. Por ejemplo, para permitir comas y puntos:
{{ 'Café, en París.' | to_ascii }}
Salida:
Cafe, en Paris.
Combinando Filtros
Puedes encadenar los filtros para realizar transformaciones más avanzadas:
{{ 'Café en París' | transliterate | to_ascii }}
Salida:
Cafe en Paris
Usando Códigos Unicode en Reglas de Transliteración
En el ejemplo:
{{ 'Café en París' | transliterate('Any-Latin; Latin-ASCII; [\\u0100-\\u017F] remove') }}
La parte [\\u0100-\\u017F]
es un rango de caracteres Unicode que se eliminarán durante el proceso de transliteración. A continuación, explicamos cómo funcionan estos códigos y cómo puedes usarlos en tus reglas personalizadas.
¿Qué son los Códigos Unicode?
Unicode es un estándar que asigna un número único (llamado "punto de código") a cada carácter, símbolo o emoji en todos los idiomas y sistemas de escritura. Los códigos Unicode se representan en formato hexadecimal, como U+0100
o U+017F
.
- Ejemplos:
U+00E9
representa la letraé
(e con acento agudo).U+0100
representa la letraĀ
(A con macrón).U+017F
representa la letraſ
(s larga).
¿Qué significa [\\u0100-\\u017F]
?
Este rango de caracteres Unicode incluye letras latinas extendidas con diacríticos, como:
Ā
(U+0100)ā
(U+0101)Ē
(U+0112)ē
(U+0113)Ī
(U+012A)ī
(U+012B)Ō
(U+014C)ō
(U+014D)Ū
(U+016A)ū
(U+016B)ſ
(U+017F)
Al usar [\\u0100-\\u017F] remove
, estás indicando que todos los caracteres en este rango deben ser eliminados del texto resultante.
Cómo Encontrar Más Códigos Unicode
Puedes consultar tablas de caracteres Unicode en los siguientes recursos:
- Tablas Oficiales de Unicode: unicode.org/charts
- Aquí encontrarás todos los rangos de caracteres organizados por idioma y tipo.
- FileFormat.Info: fileformat.info
- Un recurso útil para buscar caracteres específicos y sus códigos Unicode.
- Wikipedia: Lista de Caracteres Unicode
- Una lista completa de caracteres Unicode con ejemplos.
Cómo Usar Códigos Unicode en Reglas Personalizadas
Puedes usar rangos de caracteres Unicode en reglas de transliteración para:
- Eliminar Caracteres Específicos:
- Ejemplo:
[\\u0100-\\u017F] remove
elimina todas las letras latinas extendidas.
- Ejemplo:
- Convertir Caracteres Específicos:
- Ejemplo:
[\\u00C0-\\u00FF] Latin-ASCII
convierte letras latinas con diacríticos a ASCII.
- Ejemplo: