Skip Navigation

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client is developing a site using a Blocksy child theme and has implemented custom code for WooCommerce warnings in a file named 'ufi-warnings.php'. This code adds a product tab for UFI warnings and allows selection of UFI numbers for products. The client used WPML to translate the product tab into Slovenian and scanned the child theme for custom code translations from Croatian to Slovenian. However, the client encountered issues with the text domain in localization functions.
Solution:
We advised the client to ensure that all hard-coded strings in their PHP code are wrapped in WordPress localization functions like

__()

and

_e()

, and to specify the text domain as a string. This is crucial for the parsing tools to correctly distinguish between different text domains. The client was incorrectly using a variable for the text domain, represented as

$this->text_domain

, which should instead be passed as a string.

For more information on proper localization practices, we recommended visiting: WordPress Developer Resources.

If this solution does not resolve your issue or seems irrelevant due to updates or differences in your case, please open a new support ticket. We also highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins.

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Tagged: 

This topic contains 3 replies, has 1 voice.

Last updated by urbanT-2 4 days ago.

Assisted by: Andrey.

Author Posts
January 26, 2025 at 10:51 am #16634725

urbanT-2

Background of the issue:
I am developing a site using a Blocksy child theme and have implemented custom code for WooCommerce warnings in a file named 'ufi-warnings.php'. This code adds a product tab for UFI warnings and allows selection of UFI numbers for products. I used WPML to translate the product tab into Slovenian and scanned the child theme (Theme and plugins localizations) for custom code translations from Croatian to Slovenian.

```
array(
'label' => __('None', $this->text_domain),
'warning_title' => __('UPUTE ZA KORIŠTENJE:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'warning_text' => __('Čistači so namijeni za kožne seksualne igračke, erotsku odjeću i kožne dodatke. Izbjegavajte udisanje i gutanje. Zapaljivo - držati podalje od plamena. Čuvati izvan dohvata djece. Ne jesti, piti niti pušiti tijekom korištenja. Koristiti samo u dobro prozračenim prostorijama ili na otvorenom. Ako dođe u kontakt s kožom, odmah isprati vodom i potražiti liječničku pomoć ako se osjećate loše. Ako se proguta, isprati usta i kontaktirati liječnika. Čuvati na prozračenom, hladnom mjestu i držati u hladnjaku. U slučaju požara, koristiti vodu za gašenje. Osigurati da je spremnik čvrsto zatvoren. Nositi zaštitne rukavice, odjeću i zaštitne naočale. Oprati ruke nakon uporabe. Ako se udiše, premjestiti na svježi zrak i držati u položaju za lakše disanje. Kontaktirati liječnika ako se osjećate loše. Čuvati dalje od svjetla i osigurati da je čvrsto zatvoreno. Ne gutati jer može biti smrtonosno. Kupnjom potvrđujete da imate više od 18 godina.', $this->text_domain),
),
'U59N-JVW8-C60H-9N71' => array(
'label' => __('PENTYL NITRITE N-PENTANOL MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('pentil nitrit, 3-metilbutan-1-ol', $this->text_domain),
'warning_text' => __('Zapaljiva tekućina i pare. Štetno ako se proguta i ako se udiše. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Može nadražiti dišni sustav. Sumnja na moguće genetske defekte. Vrlo otrovno za vodeni okoliš. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenih plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Spriječiti ispuštanje u okoliš. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. AKO SE PROGUTA: U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom [ili tušem]. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. Ako nastane nadražaj ili osip na koži: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Pokupiti proliveno. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'exclamation-mark.jpg',
'environment.jpg'
)
),
'WVG6-RRUC-242F-STWQ' => array(
'label' => __('PENTYL NITRITE ISOAMYL ALCOHOL MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('pentil nitrit, 1-pentanol', $this->text_domain),
'warning_text' => __('Zapaljiva tekućina i pare. Štetno ako se proguta i ako se udiše. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Može nadražiti dišni sustav. Sumnja na moguće genetske defekte. Vrlo otrovno za vodeni okoliš. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenih plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Spriječiti ispuštanje u okoliš. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. AKO SE PROGUTA: U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom [ili tušem]. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. Ako nastane nadražaj ili osip na koži: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Pokupiti proliveno. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'exclamation-mark.jpg',
'environment.jpg'
)
),
'AQ1E-JFTN-V001-XCA2' => array(
'label' => __('PENTYL NITRITE, BUTAN-1-OL MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('pentil nitrit, 3-metilbutan-1-ol', $this->text_domain),
'warning_text' => __('Zapaljiva tekućina i pare. Štetno ako se proguta i ako se udiše. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Može nadražiti dišni sustav. Sumnja na moguće genetske defekte. Vrlo otrovno za vodeni okoliš. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenih plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Spriječiti ispuštanje u okoliš. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. AKO SE PROGUTA: U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom [ili tušem]. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. Ako nastane nadražaj ili osip na koži: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Pokupiti proliveno. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'exclamation-mark.jpg',
'environment.jpg'
)
),
'MG7T-F0Q9-800V-N20T' => array(
'label' => __('ISOAMYL NITRITE & ISOAMYL ALCOHOL MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('amil nitrit, smjesa izomera; 3-metilbutan-1-ol', $this->text_domain),
'warning_text' => __('Lako zapaljiva tekućina i pare. Štetno ako se proguta i ako se udiše. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Sumnja na moguće genetske defekte. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenih plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. AKO SE PROGUTA: U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom [ili tušem]. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'exclamation-mark.jpg'
)
),
'PGQ5-Q88V-W00Q-ERXD' => array(
'label' => __('ISOPROPYL NITRITE MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('izopropil nitrit, propan-2-ol', $this->text_domain),
'warning_text' => __('Lako zapaljiva tekućina i pare. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Smrtonosno ako se udiše. Može izazvati pospanost ili vrtoglavicu. Sumnja na moguće genetske defekte. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenog plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. U slučaju nedovoljne ventilacije nositi sredstva za zaštitu dišnog sustava. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom ili tušem. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. Ako nastane nadražaj ili osip na koži: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'skull-and-crossbones.jpg'
)
),
'QJYT-29PR-9003-8AKX' => array(
'label' => __('LEATHER CLEANER - ISOAMYL NITRITE MIXTURE', $this->text_domain),
'warning_title' => __('OPASNOST:', $this->text_domain),
'subtitle' => __('Uvijek pročitajte i slijedite informacije na etiketi proizvoda.', $this->text_domain),
'contains_text' => __('Sadrži:', $this->text_domain),
'ingredients' => __('amil nitrit, smjesa izomera; 3-metilbutan-1-ol', $this->text_domain),
'warning_text' => __('Lako zapaljiva tekućina i pare. Štetno ako se proguta i ako se udiše. Uzrokuje teške opekline kože i oštećenje oka. Može izazvati alergijsku reakciju na koži. Sumnja na moguće genetske defekte. Prije uporabe pribaviti posebne upute. Ne rukovati prije upoznavanja i razumijevanja sigurnosnih mjera predostrožnosti. Čuvati odvojeno od topline, vrućih površina, iskri, otvorenih plamena i ostalih izvora paljenja. Ne pušiti. Ne udisati maglu/pare. Nakon uporabe temeljito oprati ruke. Nositi zaštitne rukavice/zaštitnu odjeću/zaštitu za oči/zaštitu za lice. AKO SE PROGUTA: U slučaju zdravstvenih tegoba nazvati CENTAR ZA KONTROLU OTROVANJA/liječnika. AKO SE PROGUTA: Isprati usta. NE izazivati povraćanje. U SLUČAJU DODIRA S KOŽOM (ili kosom): Odmah skinuti svu zagađenu odjeću. Isprati kožu vodom [ili tušem]. AKO SE UDIŠE: Premjestiti osobu na svježi zrak i postaviti ju u položaj koji olakšava disanje. U SLUČAJU DODIRA S OČIMA: Oprezno ispirati vodom nekoliko minuta. Ukloniti kontaktne leće ako ih nosite i ako se one lako uklanjaju. Nastaviti ispirati. U SLUČAJU izloženosti ili sumnje na izloženost: Zatražiti savjet/pomoć liječnika. Skinuti zagađenu odjeću i oprati je prije ponovne uporabe. Skladištiti na dobro prozračenom mjestu. Održavati hladnim. Odložiti sadržaj/spremnik u skladu s lokalnim propisima.', $this->text_domain),
'pictograms' => array(
'flame.jpg',
'corrosion.jpg',
'health-hazard.jpg',
'exclamation-mark.jpg'
)
),
);
}
public function add_ufi_product_tab($tabs) {
global $product_object;

if ($product_object && $product_object->get_type() === 'simple') {
$tabs['ufi_warnings'] = array(
'label' => __('UFI Numbers', $this->text_domain),
'target' => 'ufi_warnings_product_data',
'class' => array('show_if_simple'),
'priority' => 65,
);
}
return $tabs;
}

public function add_ufi_product_tab_content() {
?>

'_ufi_warning_type',
'label' => __('UFI Warning Type', $this->text_domain),
'options' => array(
'none' => __('None', $this->text_domain),
'U59N-JVW8-C60H-9N71' => 'U59N-JVW8-C60H-9N71',
'WVG6-RRUC-242F-STWQ' => 'WVG6-RRUC-242F-STWQ',
'MG7T-F0Q9-800V-N20T' => 'MG7T-F0Q9-800V-N20T',
'AQ1E-JFTN-V001-XCA2' => 'AQ1E-JFTN-V001-XCA2',
'PGQ5-Q88V-W00Q-ERXD' => 'PGQ5-Q88V-W00Q-ERXD',
'QJYT-29PR-9003-8AKX' => 'QJYT-29PR-9003-8AKX'
),
'desc_tip' => true,
'description' => __('Select the appropriate UFI number for this product.', $this->text_domain)
));
?>

'_ufi_warning_type[' . $loop . ']',
'name' => '_ufi_warning_type[' . $loop . ']',
'label' => __('UFI Vrsta upozorenja', $this->text_domain),
'value' => get_post_meta($variation->ID, '_ufi_warning_type', true),
'options' => array(
'none' => __('None', $this->text_domain),
'U59N-JVW8-C60H-9N71' => 'U59N-JVW8-C60H-9N71',
'WVG6-RRUC-242F-STWQ' => 'WVG6-RRUC-242F-STWQ',
'MG7T-F0Q9-800V-N20T' => 'MG7T-F0Q9-800V-N20T',
'AQ1E-JFTN-V001-XCA2' => 'AQ1E-JFTN-V001-XCA2',
'PGQ5-Q88V-W00Q-ERXD' => 'PGQ5-Q88V-W00Q-ERXD',
'QJYT-29PR-9003-8AKX' => 'QJYT-29PR-9003-8AKX'
),
'wrapper_class' => 'form-row form-row-full',
));
}
public function save_ufi_fields($post_id) {
$ufi_type = isset($_POST['_ufi_warning_type']) ? sanitize_text_field($_POST['_ufi_warning_type']) : 'none';
update_post_meta($post_id, '_ufi_warning_type', $ufi_type);
}

public function save_variation_ufi_field($variation_id, $loop) {
if (isset($_POST['_ufi_warning_type']) && is_array($_POST['_ufi_warning_type'])) {
$ufi_type = isset($_POST['_ufi_warning_type'][$loop]) ?
sanitize_text_field($_POST['_ufi_warning_type'][$loop]) : 'none';
update_post_meta($variation_id, '_ufi_warning_type', $ufi_type);
}
}

public function add_ufi_data_to_variations($variation_data, $product, $variation) {
$ufi_type = get_post_meta($variation->get_id(), '_ufi_warning_type', true);
$variation_data['ufi_warning_type'] = $ufi_type;
return $variation_data;
}

private function generate_warning_html($ufi_type) {
if (empty($ufi_type) || $ufi_type === 'none') {
return '';
}

$ufi_options = $this->get_ufi_options();
if (!isset($ufi_options[$ufi_type])) {
return '';
}

$warning_data = $ufi_options[$ufi_type];
ob_start();
?>

<img src=""
alt=""
class="warning-pictogram" />

is_type('variable')) {
$variations = $product->get_available_variations();

foreach ($variations as $variation) {
$variation_obj = wc_get_product($variation['variation_id']);
$ufi_type = get_post_meta($variation['variation_id'], '_ufi_warning_type', true);

if (!empty($ufi_type) && $ufi_type !== 'none') {
$variation_attributes = array();
foreach ($variation['attributes'] as $key => $value) {
$taxonomy = str_replace('attribute_', '', $key);
$term = get_term_by('slug', $value, $taxonomy);
$variation_attributes[] = $term ? $term->name : $value;
}
$variation_title = implode(' - ', $variation_attributes);

$output .= '

Formula: ' . esc_html($variation_title) . '

';
$output .= $this->generate_warning_html($ufi_type);
}
}
} else {
$ufi_type = get_post_meta($product->get_id(), '_ufi_warning_type', true);
if (!empty($ufi_type) && $ufi_type !== 'none') {
$output .= $this->generate_warning_html($ufi_type);
}
}

if (!empty($output)) {
$output = '

' . $output . '

';

$output .= '
.all-ufi-warnings {
margin: 20px 0;
}
.variation-title {
font-weight: bold;
font-size: 16px;
margin: 20px 0 10px;
padding: 10px;
background: transparent;
border-left: 4px solid #000;
}
.product-ufi-warnings {
margin: 4px;
padding: 1em;
border: 2px solid #000;
border-radius: 3px;
font-family: Arial, sans-serif;
font-size: 13px;
line-height: 1.4;
position: relative;
box-shadow: 0 0 0 2px #fff, 0 0 0 4px #000;
margin-bottom: 20px;
}
.warning-title {
margin: 0 0 0.5em 0;
font-size: 16px;
font-weight: bold;
}
.warning-subtitle {
margin: 0 0 1em 0;
font-style: italic;
font-size: 13px;
}
.warning-pictograms {
display: flex;
gap: 0;
margin: 0.8em 0;
border: 1px solid #000;
}
.warning-pictogram {
width: 60px;
height: 60px;
border-right: 1px solid #000;
}
.warning-pictogram:last-child {
border-right: none;
}
.warning-content {
margin-top: 0.8em;
line-height: 1.3;
}
.warning-content strong {
font-size: 15px;
display: block;
margin-bottom: 0.3em;
}
.warning-ingredients {
margin-top: 0.8em;
border-top: 1px solid #000;
padding-top: 0.8em;
font-size: 12px;
}
@media screen and (max-width: 768px) {
.product-ufi-warnings {
font-size: 12px;
}
.warning-title {
font-size: 14px;
}
.warning-content strong {
font-size: 13px;
}
.warning-pictogram {
width: 50px;
height: 50px;
}
}
';
}

return $output;
}
}

// Initialize the class
add_action('init', function() {
UFI_Warnings::get_instance();
});
```

Symptoms:
The UFI warnings display correctly on the original Croatian version of the site, but they do not appear on the Slovenian version.

Questions:
Why are the UFI warnings not displaying on the Slovenian version of the site?
Is there a specific step I missed in translating the custom code using WPML?

January 26, 2025 at 7:14 pm #16635601

Itamar
Supporter

Languages: English (English ) Hebrew (עברית )

Timezone: Asia/Jerusalem (GMT+02:00)

Hi,

Thank you for contacting WPML support. While you wait for one of my colleagues to take this ticket and work on it, let me provide you with the first debugging steps or see if I can help with the issue quickly.

Please check our guides for developers on how to make your theme and plugins multilingual.

https://wpml.org/documentation/support/translating-the-theme-you-created/#wrap-all-texts-in-gettext-calls

Looking at your code, it seems you are using the wrong GETTEXT call. Here is an example of what you should use.

_e('Hello, world!', 'your-text-domain');

Also, since the language of your string is not English, you might need to change it in Strings Translation. For this, please read this guide.

https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/

Regards,
Itamar.

January 29, 2025 at 12:11 pm #16646207

urbanT-2

Okay, I will wait for your colleagues.

January 29, 2025 at 8:40 pm #16648579

Andrey
Supporter

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+02:00)

Thank you for contacting WPML support.

Please follow Itamar's advice. In PHP, ensure that all hard-coded strings are wrapped in WordPress localization functions like __() and _e(). Remember to specify a text domain as a string to identify translations for your theme or plugin uniquely.

You are currently using a variable for the text domain, represented as $this->text_domain, which is not correct. The text domain should be passed as a string to the localization functions. This practice allows parsing tools to distinguish between different text domains.

For more information, please have a look here: https://developer.wordpress.org/themes/functionality/internationalization/

January 30, 2025 at 3:01 pm #16652562

urbanT-2

I implemented your solution to my code and it worked. Thank you!