http://wordpress.org/extend/plugins/bbpress/ bbpress 'carpeta de idioma (wp-content / plugins / bbpress / bbp-languages) tienen esa advertencia:
/**
* Do not put custom translations here. They will be deleted on bbPress updates.
*
* Keep custom bbPress translations in /wp-content/languages/
*/
En realidad, este no es un problema nuevo y sí, tienen razón. Este es un gran problema si está utilizando complementos de WordPress con un idioma que no es inglés.
Básicamente traduje bbpress y creé archivos .po y .mo. Los archivos funcionan si los pongo en su carpeta normal wp-content / plugins / bbpress / bbp-languages. Pero como la advertencia anterior dice que se eliminará cuando se actualice. Pero el problema es que la traducción no funciona si los pongo en wp-content / languages / folder como se sugiere en bbpress.
Creo que debe haber un gancho o algo que pueda activarlo, pero ¿cuál es la mejor solución para ello? Simplemente quiero mantener los archivos de idioma del complemento en wp-content / languages /
fuente
Respuestas:
Debe reemplazar la llamada al archivo de idioma de BBpress.
Un buen lugar para hacerlo es un archivo de idioma específico en su directorio de idiomas generales. Para turco probablemente sería un archivo llamado
tr_TR.php
. Esto se cargará automáticamente y solo si coincide con el idioma de su blog. No se sobrescribirá.BBPress no usa la función
load_plugin_textdomain
, sino que la usaload_textdomain
. Aquí puedes encontrar un filtro:Entonces, en su archivo php de idioma, simplemente agregue un filtro para cambiar la ruta:
fuente
WP_LANG_DIR
) más su archivo mo.load_plugin_textdomain()
llamadas durante la acción "init", de lo contrario no podremos conectarnos al filtro "load_textdomain_mofile". Ya será demasiado tarde.Lo que debe hacer es crear un complemento simple que gestione el dominio de texto de los complementos instalados. Si no desea tener una solución global, puede agregar el código a functions.php en su tema.
La idea es instruir a WordPress sobre dónde encontrar traducciones. Internamente en todos los complementos esto se hace usando algo similar a
Esta es la función que utilizará. Como puede ver aquí , el último argumento se usa para establecer la ruta relativa al complemento, donde residen los archivos de traducción.
Puede hacer lo que quiera colocando una línea para cada complemento que desee modificar su carpeta de idiomas de la siguiente manera.
esto le indicará a WordPress que cargue sus archivos de traducción personalizados desde una carpeta al lado de la
plugins
carpeta que tiene una carpeta llamadabbpress
que tiene los archivos de traducción usando EXACTAMENTE el mismo nombre que usa cada complemento.Su método, que indica los dominios de texto para todos los complementos, debe ejecutarse en la
init
fase de la siguiente manera(No olvide marcar esto como respuesta si lo encuentra útil)
fuente
Para que esto funcione, debe tener los archivos de traducción de WordPress en WP_LANG_DIR y tener la configuración regional global configurada en ese idioma. Si solo incluye traducciones para bbPress sin cambiar la configuración regional o sin tener presentes los archivos de traducción centrales de WordPress, nada se traducirá a pesar de que los haya cargado.
Si desea anular la configuración regional solo para bbPress, debe agregar un filtro a 'bbpress_locale' que le permite anular el archivo bbPress mo.
Si bien es cierto que bbPress 2.0 usa la función load_textdomain (), load_plugin_textdomain () es solo un contenedor para load_textdomain () de todos modos. El método bbPress 2.0 es más robusto y permite la colocación global de archivos de traducción, por lo que no los perderá durante la actualización del complemento.
fuente
En mi caso, crear una traducción personalizada permanente para el complemento requiere los siguientes pasos (ejemplos para la traducción del complemento ACF):
wp-content/languages/plugins/
directorio.po
de lalang/
carpeta del complemento (o cualquier otro con traducciones) a creadowp-content/languages/plugins/
(por ejemplo, delang/acf-pl_PL.po
awp-content/languages/plugins/acf-pl_PL.po
).po
archivos y luego generar.mo
y guardar enwp-content/languages/plugins/
(por ejemplowp-content/languages/plugins/acf-pl_PL.mo
)De esta manera, la traducción debe conservarse incluso después de la actualización del complemento.
No estoy seguro de si esta estrategia funcionará para todos los complementos, pero definitivamente vale la pena intentarlo.
fuente