Desarrollo de WordPress para usuarios intermedios: internacionalización

La internacionalización, o i18n, es el proceso de desarrollar el complemento o el tema, para que pueda traducirse fácilmente a otros idiomas. Y, debido a que WordPress se usa en todo el mundo, es importante asegurarse de que su código se pueda traducir fácilmente a cualquier idioma. Esta es la séptima publicación en nuestro desarrollo de WordPress para la serie de usuarios intermedios. Esta serie sigue nuestros populares tutoriales de desarrollo de WordPress para principiantes, que le han introducido en los elementos básicos de los sitios web de WordPress, cómo comenzar a codificar con PHP y construir temas y complementos.
En esta publicación final en nuestra serie intermedia, aprenderá cómo prepararse para la traducción del código para los usuarios o cómo internarlo. Deberá tener un tema y/o complementos para trabajar si desea trabajar juntos, ya sea continuar con el código que ha desarrollado durante la serie o descargarlo de los archivos de origen. Necesitará el código de la sexta parte, WordPress Development para usuarios intermedios: campos personalizados y de metadatos. En este tutorial final de la serie, harás tres cosas:
Aprenda sobre la internacionalización y qué es esto.
Prepare su código de traducción con algunas características de WordPress.
Cree un campo de texto, que WordPress usa para traducir su código.
Comencemos con una visión general de la traducción y la internacionalización.
¿Se ha perdido un tutorial en nuestra serie de usuarios de WordPress para el desarrollo de WordPress? Puedes mantenerte al día con las siete publicaciones aquí:
Desarrollo de WordPress para usuarios intermedios: desarrollo del tema en detalle
Desarrollo de WordPress para usuarios intermedios: preparación de temas para personalizar WordPress para usuarios intermedios: creación de complementos
Desarrollo de WordPress para usuarios intermedios: tipos de publicaciones y taxonomías personalizadas
Desarrollo de WordPress para usuarios intermedios: consulta y bucles
Desarrollo de WordPress para usuarios intermedios: campos personalizados y de metadatos
Desarrollo de WordPress para usuarios intermedios: internacionalización
Una descripción general de la traducción de la internacionalización del texto en pantallas de administración y front-end hace que su tema o complemento sea accesible para un público mucho más amplio. Según Wikipedia, el 54% de los sitios web están en inglés, mientras que el 26% de los usuarios de Internet son hablantes de inglés, chino en segundo lugar muy cerca del 21%. En cambio, solo el 3% de los sitios web están en chino. Una exploración de WordCamps del pasado muestra que los desarrolladores de WordPress están en todo el mundo, por ejemplo, en Europa e India, Nepal y Japón. Si bien muchos desarrolladores y usuarios de Internet que no hablan inglés están acostumbrados a codificar o leer en inglés, esto no es ideal. Si hace que el código esté disponible para la traducción, abre sus complementos y la tarea y los sitios web de sus clientes a una gran y creciente audiencia internacional.
Ni siquiera es como si la traducción fuera difícil: simplemente implica el uso de algunas funciones que ofrece WordPress. Nota: No traduzca el código, siempre será en inglés americano, mientras leo los navegadores. Lo que traducirá es el texto que aparece en los sitios públicos utilizando sus temas y complementos y en todas las pantallas de administración que crea o modifica. Es fácil confundirse entre los dos términos utilizados en la traducción: ubicación e I18N, y encontrará muchos tutoriales y artículos en línea que usan una terminología incorrecta. Los dos términos se pueden definir de la siguiente manera: la internacionalización es el proceso por el cual su código está disponible para la traducción utilizando funciones relevantes de WordPress, que hará aquí.
La ubicación es el proceso realizado por un traductor en su código, para traducirlo al idioma del usuario. No tiene que hacer esto: sus usuarios lo harán si lo necesitan.
Veamos cómo internacionaliza su código. A veces se llama i18n, porque hay 18 letras entre “i” y “n” en la internacionalización. La preparación del código de traducción implica tres pasos:
Usar funciones de WordPress para internacionalizar el texto.
Se carga un dominio de texto.
Creando un archivo de idioma.
Comencemos con las funciones.
Las funciones de internacionalización de WordPress utilizan cuatro características principales para internacionalizar el texto:
__ (‘Mensaje’) traduce el contenido del mensaje, pero no hago eco.
_e (‘Mensaje’) Haga eco del contenido del mensaje.
Printf (__ (‘mensaje’)) se usa con sustitutos (por ejemplo, el número de comentarios para una publicación o el objeto interrogado de una página de archivo).
_n (‘Mensaje’) se usa para el texto en singular y plural, por lo que si muestra cuántos comentarios hay, use esto para definir si la palabra “comentario” debe ser singular o plural “comentarios”. En nuestro tema y complementos Tenemos un texto que debe traducirse y algunos que ya hemos preparado para la traducción. Analicemos estos e identifiquemos el i18n ya agregado y lo que sea que necesitemos agregar.
En nuestro tema, ya hay dos archivos con texto internacionalizado:
Personalizador.php
funciones.php
También hay ocho archivos de texto para ser internacionalmente:
bucle.php
bucle-single.php
bucle-project.php
Archive.php
archivo-project.php
Taxonomy-Service.php
Search.php
404.php
Echemos un vistazo a cada uno de ellos, centrándonos en diferentes funciones seguidas. Usando la función __ () para traducir la función __ () traduce el texto, pero no se eco. Úselo al definir una cadena de texto que se utilizará en otro lugar. En nuestro tema ya tenemos algunos archivos en los que hicimos esto, cuando definimos el texto de la pantalla de administración.
Veamos un ejemplo. En Customizer.php tenemos este código:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Esto utiliza la función __ () para traducir el nombre de la sección creada en personalizador de esa función. La función __ () tiene dos parámetros: el texto traducido y el dominio de texto. Usaremos WPMU como dominio de texto en todos nuestros archivos y configuraremos ese dominio de texto después de haber agregado todas las funciones. Si pasa por el archivo Customizer.php, verá que la función __ () se usa en diferentes lugares. A continuación, veamos Functions.php, que es el otro archivo de código existente que se ha internacionalizado. En el código de registro de widgets, encontrará esto:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Nuevamente, usamos la función __ (). Ahora pasemos a la plantilla de archivo del proyecto. Abra el archivo Archive-Project.Php y busque esta línea:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Esto incluye un texto estático dentro de un filtro. Hagamos el texto listo para traducir: editar el código para leer de la siguiente manera:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Agregué la función I18N dentro de APLICE_FILTERS () como el segundo parámetro. Usando la función printf () con sustituyentes, la función printf () le permite internar un texto más complejo, que incluye el valor de las variables, agregadas al texto que se traduce con sustitutos.
Para hacer esto, necesitas hacer tres cosas:
Defina las variables que se utilizarán para el texto sustituto.
Cree una función printf () con el texto internacionalizado como primer parámetro y variables como parámetros posteriores.
Use la función relevante para internacionalizar el texto en el primer parámetro de la función.
Agregue sustituyentes al texto traducido, en el mismo orden que las variables que agregó como parámetros.
Esto es bastante difícil de explicar, pero tendrá más sentido una vez que lo vea en acción. Usemos printf () para internacionalizar algún texto en el front-end del sitio. Comenzando con Loop.php, este código debe traducirse: la idea de A24151F5A8557BFCF2C594C57ABBBD2 está cargada.
El bit específico que debe traducirse es el atributo de título de ese enlace. Edite su código para que lean así:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Nuevamente usé la función printf () porque trabajamos con un sustituto. Echemos un vistazo más de cerca a esto:
El primer parámetro de la función printf () es la función esc_attr __ () que traduce el texto. Tiene dos parámetros: el texto (incluido el sustituto, %s) y el texto, que es WPMU.
El segundo parámetro es el valor del texto sustituyente (que se toma sobre el uso de the_itle_attribute ()). Tiene un parámetro ECHO = 0 porque no queremos hacer eco, solo consígalo.
Ahora repita el cambio que acaba de hacer en el archivo bucle.php en el mismo código en el archivo bucle-project.php. Encontrará el mismo código en el archivo bucle-single.php. Debido a que el encabezado en un solo archivo se une a sí mismo, elimine el enlace del título de ese archivo. Si está atascado, eche un vistazo a los archivos de origen. Uso de la función _e () para guardar el texto traducido Your Loop.php ahora está listo para la traducción, por lo que puede cerrarla. Pero loop-single.php y loop-project.php tienen algo que traducir. Abra Loop-Single.php y busque este código:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Utiliza the_terms (), que eco en una lista de publicación actual. Editemos la función y agregemos algún texto traducido antes que, en lugar de estar dentro de la función. Aquí usaremos _e (), porque no solo queremos hacerse cargo del texto traducido, sino también que lo haga eco. Edite el texto para que se lea de la siguiente manera: Cargue la idea A24151F5A8557BFCF2C594C57ABBBBD2
Ahora abra el archivo bucle-project.php y realice los mismos cambios. No hablaré con usted al respecto, pero puede verificar los archivos de la serie si lo necesita. Finalmente, en el archivo bucle-single.php, busque div en la met-meta:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Deberá usar la función _e () y printf () que ya hemos analizado. Así es como se verá su código después de que lo haya hecho:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Echemos un vistazo a lo que hicimos con ese código más detallado:
Moví la etiqueta acondicionada fuera de la meta de entrada Div. Esto es para evitar mostrar publicaciones únicas, que no son de una publicación.
Definimos una variable para el nombre del autor, el enlace al archivo del autor y la fecha. Tenga en cuenta que todo esto usa funciones que comienzan con Get_ para que no obtengan nada, sino que solo las obtengan de la base de datos.
Agregué una función printf (). Su primer parámetro es la función de traducción __ () con los sustituyentes incluidos. Esta vez usamos __ () en lugar de esc_attr () porque queremos incluir HTML en lo que es el resultado. Los tres parámetros finales son los valores de esos sustitutos: nuestras variables.
Asumí las categorías para la publicación actual y las atribuí a una variable de $ Cats, luego verifiqué si esa variable tiene contenido (es decir, si hay categorías. Usé _e () para traducir el texto que precede a la lista de categorías.
Usé the_terms () de manera similar a la versión no firme, pero eliminando el texto traducido estático.
Repetí los pasos 4-6 para las etiquetas.
Esto no conducirá a ningún cambio en su sitio, porque no hemos agregado el archivo de traducción, pero le recomendamos que consulte una sola publicación solo para asegurarse de que todavía funcione en su idioma predeterminado.Nada debería haber cambiado.
Por lo tanto, estos son los archivos de bucle editados para incluir i18n.Abra el archivo Archive.php más.Encuentra esta línea:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
La función que necesita usar aquí es nuevamente _e (). Intente agregar la función solo sin mi guía aplicando lo que ha aprendido hasta ahora. Si permanece bloqueado, verifique los archivos de origen (necesitará archivos para la Parte 7). Un desafío: si prueba la plantilla de archivo accediendo a una plantilla de autor, descubrirá que falta el nombre del autor. Sin embargo, funciona muy bien para los archivos de etiquetas y categorías. Intente editar el archivo Archive.php para asegurarse de que se muestren los nombres de los autores. Alternativamente, cree un archivo autor.php para mostrar los archivos del autor. Si está atascado, eche un vistazo a los archivos de origen. Una indicación: si trabaja en Archive.php, necesitará una etiqueta condicional. En ambos casos, deberá usar $ Título-> Display_Name, donde $ Title es la variable definida en Archive.php basada en el objeto interrogado actual. Hemos creado una plantilla Author.php que también elimina el perfil del autor y un enlace a su sitio, puede encontrarlo en los archivos de origen. Hay otra plantilla de archivo que requiere una adición de internacionalización: nuestro archivo Taxonomy-Service.php. Ábrelo y busque esta línea: Cargue la idea A24151F5A8557BFCF2C594C57ABBBBD2
Esto le parecerá familiar porque es similar a la línea que edité en el archivo Archive.php. Aplique lo que hizo allí también, y este archivo: si permanece bloqueado, verifique el código fuente. Ahora solo permanecen nuestros archivos Search.PHP y 404.php. Ambos tienen texto estático en títulos y/o párrafos. Use lo que ha aprendido hasta ahora para usar la función _e () para traducir este texto. Es una buena manera de practicar y debería ser bastante simple si lo sigues. Nuevamente, si está atascado, vea los archivos de origen para esta parte de la serie (parte 7). Nota: En 404.php necesitará usar un personaje especial para un apóstrofe. El personaje especial de HTML para un apóstrofe es “. ¡Pf! Ahora nuestro tema está listo para la traducción. Su próxima tarea es internacionalizar los complementos que creó mientras trabajaba a través de esta serie. Aplicando lo que ha aprendido: internacionalización de sus complementos de WordPress Ahora ha aprendido a usar las funciones de traducción en su tema, para aplicar esto a los complementos. Algunos de los complementos que hemos desarrollado mientras trabajé a través de esta serie también deben internacionalizarse. Estos son los siguientes: el primer complemento para el cuadro de acción a la acción que creamos cuando miramos los ganchos. Aquí hay un texto estático que debe internar usando _e ().
El complemento que usa get_posts () para eliminar una lista de publicaciones por contenido, que hemos desarrollado en la serie sobre consultas personalizadas. El complemento principal tiene texto estático en el título y en un enlace. Use _e () para internacionalizarlos en ambos.
El complemento para mostrar el último proyecto en la barra lateral: nuevamente, use _e () para internacionalizar el texto estático desde el encabezado y el enlace. La placa agrega una metabox a la pantalla de edición posterior, aquí tiene que usar __ () para internacionalizar El título del metabox, no _e () porque no repite el texto, sino que lo define. También debe usar _e () para internacionalizar el texto en Metabox y el texto de salida. No olvides usar el personaje especial en lugar de cualquier apóstrofes.
Complemento para códigos cortos. Aquí deberá usar _e () para internacionalizar el texto estático en el código corto simple. El código corto con atributos deberá usar printf () con sustituyentes. Deberá definir dos nuevas variables, una para el número de teléfono y otra para la dirección de correo electrónico y usar lo que aprendió al editar el archivo bucle-single.php en su tema.

El complemento de widget tiene texto que tendrá que internar usando __ () e printf (): use variables ya definidas en el complemento para sus sustitutos.
Puede notar que el complemento para registrar publicaciones personalizadas y taxonómicas ya ha agregado i18n, ¡ahorra un trabajo! No trabajaré en cada uno de ellos en detalle, porque tendrá que usar técnicas que ya he mostrado para el tema. Intente aplicar lo que ya ha aprendido a internar sus complementos y, como siempre, si permanece bloqueado, puede consultar los archivos de origen. Una vez que haya agregado todas sus funciones I18N al tema y los complementos, puede ir a agregar un área de texto. Configuración de un dominio de texto Ahora todas sus funciones en su lugar están en su lugar. En el futuro, debe escribirlos en su código mientras lo crea, utilizando los métodos que ha aprendido aquí. Desde mi experiencia, es mucho más fácil que regresar y agregar todo después. Pero aún no has terminado. El siguiente paso es agregar un dominio de texto a su tema y complementos. ¿Recuerdas que el campo de texto ‘WPMU’ WPMU ‘agregué como el segundo parámetro a cada una de nuestras funciones I18N? Bueno, WordPress aún no sabe qué hacer con él. Si define el dominio del texto, lo será. Nota: Normalmente, haría esto para cada uno de sus temas y complementos antes de agregar funciones I18N a la siguiente, pero las llevo a todos en un lote, para que pueda averiguar los diferentes aspectos de I18N. Definición del dominio de texto para comenzar con el tema. Abra la hoja de estilo de estilo y encuentre el texto comentado desde el principio. En las líneas existentes de texto comentado, pero antes de que se cierren los comentarios, agregue estas dos líneas: Cargue la idea A24151F5A8557BFCF2C594C57ABBBD2
El texto comentado ahora se verá así: la idea de A24151F5A8557BFCF2C594C57ABBBD2 está cargada.
Ahora abra cada uno de sus complementos (el archivo principal del complemento) y agregue el mismo campo de texto y dominio al texto comentado en la parte superior. Cree ese directorio /lenguaje para cada tema y complemento: es posible que deba cambiar la estructura de algunos de los complementos si ha creado un solo archivo para ellos en lugar de una carpeta. Guardar todos sus archivos Cargue el texto del texto El último paso para configurar el dominio de texto es usar load_plugin_textdomain () en su tema y complementos para cargar el texto. Abra el archivo Functions.php del tema y agregue esta función:
La idea se carga A24151F5A8557BFCF2C594C57ABBBBD2
Guarde ese archivo y repita el mismo paso en cada uno de sus complementos, pero utilizando load_pligin_text_domain () en lugar de load_theme_textdomain (). Si permanece bloqueado, verifique los archivos de origen. Asegúrese de darle a la función un nombre diferente en cada caso (pero no el texto en sí, que puede ser el mismo). Si sus funciones tienen el mismo nombre, WordPress mostrará un error cuando cumpla con duplicados. Creación de archivos de idioma Su código ahora está listo para la traducción, pero se debe hacer más para que se traduzca. WordPress usa tres tipos de archivos de idioma para la traducción:
Un archivo .pot contiene una lista de todos los mensajes traducibles en un tema o complemento
Se crea un archivo .po cuando se traduce el archivo .pot (es decir, cuando la ubicación tiene lugar)
Un archivo .mo es un archivo binario creado a partir del archivo .po. Está en el texto que puede ser leído por el automóvil y contiene sus cuerdas y traducciones: podría decir que memoriza las traducciones y, por lo tanto, acelera las cosas cuando se traduce WordPress. El hijo que crea para su tema o complemento es el archivo .pot. .. Para crear un archivo .pot, use una utilidad como el veneno. Al crear este archivo, debe proporcionar la siguiente información al instrumento:
Información del proyecto, incluido el nombre, el conjunto de caracteres y el lenguaje en el que trabaja.
La ruta a la carpeta en la que irá el archivo .pot (el director /idiomas).
Funciones de WordPress utilizadas para traducir el texto (que trabajé anteriormente).
Después de haber proporcionado esta información, la herramienta escaneará los archivos de origen e identificará el texto que identificó para la traducción utilizando estas funciones. Luego guarde el archivo .pot que crea para usted en su directorio /idiomas, dándole el mismo nombre que su texto. La versión premium de Poetit funciona con WordPress, por lo que si traduce mucho código, es posible que desee comprar una copia. Pero puede crear un archivo .pot con la versión gratuita. Alternativamente, puede usar herramientas de WordPress I18n para crear su archivo .pot. Para obtener más detalles sobre estos métodos, consulte estos enlaces:
Creación de un archivo .pot (y más en i18n) en nuestro blog
WordPress I18N Instrumentos
Poetit Pro y WordPress
También puede encontrar una página útil de Codex en i18n. La traducción ayuda a que sus temas y complementos de WordPress lleguen a una audiencia más amplia si desarrolla un sitio para una audiencia en su propio país, la internacionalización puede no ser algo que hacer. Pero si construye los temas y complementos que tiene la intención de poner a disposición para que otros lo usen, ya sea gratuito o pagado, deberá preparar sus archivos de traducción. Si usa las funciones detalladas en esta parte de la serie, entonces el texto en sus archivos se puede traducir y su código podrá llegar a una audiencia mucho más amplia. Llegué al final de esta serie. ¡Felicidades! Sus habilidades de desarrollo de WordPress deberían haber experimentado un impulso real. Pero la mejor manera de aprender es poner en práctica lo que has aprendido. Asegúrese de encontrar (o crear) algunos proyectos que le permitan practicar sus nuevas habilidades antes de tener tiempo para olvidarlas. Si tiene la intención de iniciar su código para el público, deberá probarlo en detalle y también debe hacerlo si se desarrolla para los clientes. Si desea saber sobre las pruebas, vea nuestra serie futura sobre el desarrollo avanzado de WordPress. Mientras tanto, encontrará muchas publicaciones y tutoriales en nuestro blog. La capacidad de usar las habilidades de desarrollo de WordPress que ha aprendido en esta serie le permitirá crear proyectos más avanzados y hacer una carrera como desarrollador de WordPress. ¡Buena suerte! ¿Encontraste este tutorial útil? ¿Por qué quieres aprender el desarrollo de WordPress? ¿De qué quieres saber más? Háganos saber en los comentarios a continuación.
Etiquetas:
desarrollo
intermedio

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *