Internaționalizare aplicație ReactJS cu @wordpress/i18n

Vă salut,

Bucuros să mă aflu în această comunitate :slight_smile:
Î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! :ghost:

2 Likes