Vă salut,
Bucuros să mă aflu în această comunitate
Îmi încerc norocul primului subiect deschis cu o situație la care caut cel puțin o explicație, dacă nu o soluție.
Context
Se dă o aplicație creată în ReactJS, integrată printr-un modul în WordPress. Aplicația este „compilată” prin npm run build
din care rezultă un fișier main.js
. În aplicația respectivă am folosit pachetul @wordpress/i18n pentru internaționalizare și informațiile din documentația oficială WordPress pentru integrare în modulul WP. Ca și dependență la wp_register_script
pentru wp_enqueue_script
am folosit wp-i18n
.
Pe parcurs am mai cercetat niște articole ale dezvoltatorilor WP mai mari decât mine și am ajuns la acest articol care a venit în completarea a ceea ce știam.
În final m-am ales cu funcțiile de internaționalizare implementate în aplicația ReactJS (pentru început doar funcția __( 'Șir de tradus', 'text-domain' )
) și cu fișierele de mai jos, având șirurile traduse pentru modulul WP:
- nume-modul-wp-ro_RO.po - traducere necompilată pentru codul PHP
- nume-modul-wp-ro_RO.mo - traducere compilată pentru codul PHP
- nume-modul-wp-ro_RO-random_md5.json - traducere cu șirurile extrase din .po pentru aplicația ReactJS
Problemă: traducerea nu funcționează (șirurile din aplicație rămân netraduse), fișierul .json pare a fi configurat pentru fișierele sursă din aplicația ReactJS, nu pentru fișierul „compilat” main.js
.
Am încercat să modific sursele din Poedit și să adaug fișierul main.js
printre ele, am încercat ca în fișierele sursă ReactJS să folosesc fie import { __ } from '@wordpress/i18n';
, fie const { __ } = wp.i18n;
, toate în zadar.
Dacă a avut cineva de-a face cu o astfel de situație, rog puțin ajutor.
Sper că informațiile sunt clare. Revin cu adăugiri dacă este nevoie.
Mulțumesc mult și Halloween bântuit!