web-dev-qa-db-fra.com

Traductions à plug-in non installé mais ... Les chaînes sont traduites!

J'ai eu depuis longtemps un site avec le célèbre récent widget Tweets . Le plugin est apparu dans le cadre d'un thème et de retour dans la journée, il incluait des fichiers de traduction .po et .mo pour la langue française. Je n'ai pas fait attention à cela auparavant.

Mais récemment, j'ai constaté que les cordes indiquant l'âge du Tweet (il y a des jours/mois, etc.) sont traduits en espagnol, langue principale du site. J'ai confirmé que Les chaînes traduites ne sont pas dans les fichiers .po , ni du plugin ni de la traduction du site. Je suppose donc qu'ils viennent froner un site externe. Je ne pouvais pas dire la date exacte quand c'est arrivé.

Creuser à propos de cette bizarrerie, j'ai découvert que les traductions peuvent maintenant être gérées dans http://translations.wordpress.org . Et sur ce site, le plugin susmentionné existe, avec 8 traductions (une spécialement mauvaise pour l'espagnol). Ma supposion est d'une manière ou d'une autre WP===== Pourcérir cette traduction sur le site, via REST API ou similaire. Mais je ne trouve aucun appel spécifique à cela dans le code.

Je me demande si la fonction __ () est désormais la possibilité de récupérer des traductions externes pour un domaine texte donné ou, sous la forme d'une question: Quelles pourraient être les sources possibles de ce "fantôme "Traduction? Merci d'avance.

1
macl

Oui, widget Tweets récents est l'un des nombreux plugins que leurs traductions sont gérées via TRADUCTION.WordPress.org , et cela signifie que lors de l'installation du plugin (* N'oubliez pas , installer et activer sont différents), WordPress (sur votre site) téléchargera automatiquement le pack de langue du plugin (.po et .mo fichiers) de Traduire .wordpress.org, puis stockez les fichiers de traduction dans WordPress Langues de langues par défaut à wp-content/languages.

Mais WordPress ne fera que cela que si un pack de langues core/site est trouvé à wp-content/languages/<locale>.mo (voir get_available_languages() ), qui Dans votre cas, il faut être vrai - par exemple, vous pourriez trouver le fichier Mo à wp-content/languages/es_ES.mo.

Et pour les plugins, les packs de langue téléchargés sont enregistrés sur wp-content/languages/plugins/<locale>.<mo|po>; Donc, par exemple, le fichier Tweets récents widget Plugin où le domaine texte est recent-tweets-widget, vous trouverez les traductions de Espagnol (Espagne) locale (es_ES) dans:

  • wp-content/languages/plugins/recent-tweets-widget-es_ES.mo
  • wp-content/languages/plugins/recent-tweets-widget-es_ES.po

En outre, il convient de noter que depuis WordPress 4.6, le pack de langues figurant dans le répertoire wp-content/languages/plugins a priorité sur celui dans le répertoire du plugin - qui est normalement chargé via load_plugin_textdomain() - ainsi avec le Tweets récents widget Plugin à titre d'exemple, si vous aviez les deux wp-content/languages/plugins/recent-tweets-widget-es_ES.mo et wp-content/plugins/recent-tweets-widget/languages/recent-tweets-widget-es_ES.mo, l'ancien volonté Be chargé automatiquement et être utilisé à la place de ce dernier.

Par conséquent, je crois que le fichier Mo est la source de cette traduction "Ghost". :)

(Eh bien, si la locale de votre site est es_ES, mais même si non, essayez de chercher l'un des autres locaux espagnols. Ensuite, essayez de renommer le fichier, par exemple <locale>.mo.bak et voyez si le " Ghost "La traduction persiste.)

Dernier point mais non le moindre, quand un plugin est supprimé (et non simplement désactivé), WordPress supprimera également le plugin Fichiers de traduction dans le wp-content/languages/plugins, Alors gardez cela à l'esprit Si vous souhaitez modifier ces fichiers/traductions.

lecture supplémentaire

1
Sally CJ