Hacer complementos y temas listos para traducir

La internacionalización hace que WordPress sea accesible en otros idiomas y es un elemento indispensable para el trabajo para una distribución a gran escala. A medida que WordPress continúa creciendo, no solo en los países de habla inglesa, sino en todo el mundo, aumenta una tensión: la mayor parte de la programación se realiza en inglés, y la mayoría de los suplementos de WordPress (ya sea complementos o temas) se escriben con filas en inglés. Sin embargo, muchos usuarios de WordPress, ahora significativamente más del 50%, no son hablantes de inglés. Es por eso que, en la última década, he visto más y más discusiones y apoyo para la internacionalización. La internacionalización hace que WordPress sea accesible en otros idiomas y es una necesidad si trabaja en temas o complementos para una amplia distribución.
Nota de término: “I18n” y “L10n” porque me llevó algo de tiempo entender: con frecuencia verá “internacionalización” abreviada como “I18N”. Esto se debe al hecho de que, entre la apertura y la “n” final de la palabra internacionalización, hay dieciocho letras. Así que salta más de 18 de las 20 letras en la palabra y reemplácelas con el número de número. La ubicación, la palabra para aprovechar la internacionalización, a menudo se abrevia como L10N, con la misma lógica. De nuevo, “l-hen-n” en sí no significa nada especial; La ortografía de esta manera es solo un tema inteligente.
Los pasos para la internacionalización del código de WordPress para simplificar la traducción de un complemento o tema, con sus filas nativas al inglés para los elementos de la interfaz, requieren tres pasos:
Decidir, declarar y usar un “dominio de texto”.
Use las funciones relevantes con sus cadenas y ese campo de texto. Esto le permite generar archivos de traducción.
Armado con esos archivos de traducción, las personas pueden traducir su complemento o tema. ¿Qué es un “dominio de texto” WordPress? Un campo de texto es una forma de segregar un conjunto de “cuerdas traducidas” de otras cuerdas en el entorno más amplio.
Un campo de texto es el “espacio de traducción” para su complemento o tema es una forma de WordPress, el complemento o tema para separar su lista de “cadenas traducidas” de otras filas que pueden necesitar traducir a otras partes de entorno más amplio. ¿Por qué es necesario o útil para un campo de texto? Porque diferentes cadenas pueden significar diferentes cosas en complementos o temas diferentes. Por ejemplo, “¡Vamos!” Podría significar “crear una cuenta de miembro” en un contexto y “comenzar la encuesta” en un contexto diferente. Por lo tanto, declara un dominio de texto y lo usa con todas sus funciones de “getText” o traducción, que explicamos en profundidad en la siguiente sección. No es demasiado difícil. (El proyecto SetText es la base de cómo funciona todo el sistema de traducción de WordPress).
Deberá enumerar su dominio de texto en su complemento o en la parte superior del tema, ubicado en style.css para temas o en el archivo PHP principal. Así es como se ven los complementos: <] dominio de texto: wpshout */ getText Functions: manteniendo __ () s, _e () s, _x () sy _n () s correcto Entonces, para hacer que sus textos se transmita, debe pasar Una función que podría reemplazar "¡Vamos!" con el equivalente español, coreano o swahili. Y, en aras de la comodidad, WordPress ofrece todas las funciones que realizan este objetivo de nombre muy corto .__ () Pienso en la función de doble subrayado, __ () como el principal. Tiene el nombre más confundido, pero su propósito básico es hacer exactamente lo que he descrito: permitir que todas las cuerdas se traduzcan en un idioma si deberían serlo. Lo usa transmitiendo dos parámetros: su cadena y el texto. Así que se verá así: echo __ ('wpshout es un gran sitio de WordPress!', 'Wpshout'); Echo automático con _e () doble énfasis solo devuelve la cadena; Tienes que hacer tu eco tú mismo. Si eso te molesta, _e () puede ayudarte: es el __ () equivalente. Te ahorra algunos personajes, pero no hace nada más.
Nuestro ejemplo, nuevamente: _e ('WpShout es un gran sitio de WordPress!', 'WpShout'); Luego tratas con algunos de los puntos de traducción más finos. Proporcionar contexto con _x () En primer lugar, a veces una palabra o expresión es bastante ambigua. Imaginemos que, como traductor, se le pide que traduzca solo la palabra "publicar" al árabe. Bueno, ¿esto se refería a un sustantivo, como "una publicación de WordPress"? ¿O tal vez fue un sustantivo, pero un pilar de la lámpara? O tal vez querías decir el verbo "publicar", que es el equivalente de "publicar". A diferencia de __ ('post', 'wpShout') y _e ('post', 'wpshout'), donde dejaría el traductor incierto sobre el significado, puede ofrecer un contexto con la función _x (). Muestra que: _x ('post', 'verbo, como en "to pub"', 'wpshout'); La cadena de parámetros medios nunca se presenta al usuario, pero se mostrará a los traductores para ayudarlos a comprender. (También vale la pena saber que hay una función _Ex (), que, como puede adivinar, son las combinaciones de las funciones _E y _X: imprima la cadena traducida y anotada.) Pluralización con _n () Otro lugar donde los idiomas Complicarse es alrededor de la pluralización. En inglés, tengo "1 comentario" o "3 comentarios". Para tener esto en cuenta, WordPress ofrece la función _n (), que puede procesar la diferencia entre los dos.
Usar _n () generalmente requiere otra llamada a la función printf () (o sprintf – s significa que devuelve una cadena, mientras que printf eco s). Estas funciones llaman y replican un símbolo de una cadena con un valor que se transmite a ellos. Entonces, para usar nuestro ejemplo de comentarios, mostrará algo como: printf (_n (un comentario ','%s comentarios ', $ comentarios,' wpshout '), $ comentarios); Notará que usamos un valor numérico, atribuido a la variable $ comentarios dos veces. Suponga que $ comentarios tiene el valor 3. El primer uso de $ comentarios es para _n determinar qué pluralización usar: porque 3 es más de 1, elegirá el lugar de los comentarios de %s de 'un comentario'. Printf para poner efectivamente ese número En una fila, reemplazar %s con los 3 a los que se establecieron $ comentarios. Así que tengo impresiones de "3 comentarios" en este caso. Otras funciones de GetText Esto cubre todos los elementos esenciales de las funciones de "getText", pero hay otros que vale la pena señalar:
esc_attr __ (), que hará lo mismo que __ (), pero manejará esc_attr () (escapar de los atributos de html) para usted por seguridad. (También hay esc_attr_e () y esc_attr_x (): esas eco automático y permiten anotaciones, como era de esperar).
Eschtml __ (): Nuevamente, por razones de seguridad, puede combinar HTML Escape con traducción. (Y nuevamente, hay variaciones esc_html_e () y esc_html_x ().).

_n_noop () que “se registra, pero no se traduce”. En otras palabras, hace lo mismo que _n () con “sin operación”. Para obtener más detalles o simplemente una perspectiva interesante sobre los puntos más finos de la traducción, puedo indicar esta publicación de Konstantin Kovshenin. Predorando las traducciones en JavaScript con wp_localise_crizt () porque las traducciones en WordPress son administradas por PHP, debe aprobar sus cadenas traducidas. JavaScript usa. Esto se realiza mediante la función wp_localise_script (). La función es extremadamente útil y muy utilizada fuera de la traducción, ya que le permite transmitir cualquier valor de PHP o variable a JavaScript. Pero la traducción es el uso para el que se llamó.
En todos los casos, use wp_localise_script de la siguiente manera: wp_localise_script (‘wpshout-js’, ‘strings’, array (‘hello’ => __ (‘Hola!’, ‘WpShout’););); Luego, para acceder a los valores en JavaScript, hará algo como: Alert (Strings.hello); wp_localise_script () tiene tres parámetros:
El mango que utilizamos en wp_enqueue_script () (o wp_register_script ()) para el JS que localizamos
El nombre del objeto JavaScript al que queremos estar vinculados a nuestras traducciones
Una matriz asociativa de traducciones, con “índice” o el nombre de la propiedad como clave y el valor como una cadena real a ser utilizada
La traducción en sí es administrada por las mismas funciones de PHP que cubrimos en la última sección. Detalles técnicos: ¿Cuáles son los archivos Can, PO y Mo? Hasta ahora hemos hablado principalmente sobre la programación de PHP. Pero hay una parte secundaria de todo el rango que no implica la creación de PHP y que es la generación de archivos de traducción. Hoy en día, WordPress.org ha simplificado este proceso para complementos lanzados allí. Pero lo que está sucediendo debajo del capó está un poco confundido. Todas las traducciones de WordPress en realidad son archivos debajo del capó. Independientemente de la forma que usó para crear, editar y leer estos archivos de traducción, hay tres tipos básicos: Can (.pot): archivos maestros para un complemento o tema que han reunido todas las cadenas en __ () y _Ex () su etc. Luego se recolectan para generar …
Los archivos PO (.po), que son las traducciones en el texto simple de sus cadenas de inglés en el idioma de destino. Raramente editará uno directamente: el formato tiene muchas partes ruidosas e intimidantes, pero puede abrirlas en un editor de texto para realizar cambios rápidos en la traducción.
MO Archivos (.mo): traducciones finales al inglés en el idioma de destino que realmente usan y leen por WordPress. Estos son archivos binarios, por lo que mientras abre uno en un editor de texto, no se verá como algo que editará … De hecho, debe volver al archivo PO y regenerar el archivo MO allí.

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 *