Jak przetłumaczyć nowo dodane frazy w nadpisywanych plikach w PrestaShop 1.7
W jaki sposób objawia się problem z tłumaczeniami?
Podczas tworzenia modułu w PrestaShop czasami musimy nadpisać rdzenne pliki PrestaShop z modułu, więc może pojawić się potrzeba dodania pewnych komunikatów walidacyjnych do tych plików.
Problem pojawia się przy tłumaczeniu tych nowo dodanych fraz, ponieważ tłumaczenia tych fraz nie istnieją w domyślnym pakiecie tłumaczeń PrestaShop. Dlatego gdy sprawdzamy te frazy w Międzynarodowe -> Tłumaczenia w odpowiedniej domenie tłumaczeń, te frazy nie pojawiają się do tłumaczenia.
Zrozummy to na przykładzie:
Załóżmy, że nadpisujemy plik /classes/PaymentModule.php i dodajemy nową frazę w ten sposób:
Context::getContext()->controller->errors[] = $this->getTranslator()->trans('The coupon code %s is no longer valid. The coupon has been removed. Please try again with a different coupon', [$rule->code], 'Shop.Notifications.Error');
Teraz przejdź do sekcji tłumaczenia i sprawdź ten ciąg, zobaczysz, że nie ma tego ciągu w tłumaczeniach.
Rozwiązanie problemu nowo dodanych fraz
Aby naprawić tłumaczenia przejdź do pliku /app/Resources/translations/default/ShopNotificationsError.xlf i dodaj następujący kod:
<file original="classes/PaymentModule.php" source-language="en-US" target-language="en" datatype="plaintext">
<body>
<trans-unit id="f1fc9fa094ebe59f7dfd9c9807a49829" approved="no">
<source>The coupon code %s is no longer valid. The coupon has been removed. Please try again with a different coupon</source>
<target state="final">The coupon code %s is no longer valid. The coupon has been removed. Please try again with a different coupon</target>
<note>Line</note>
</trans-unit>
</body>
</file>
Hash możemy wygenerować poprzez stronę: https://www.md5hashgenerator.com/
Sprawdzenie tłumaczeń czy są dostępne
Po takim zabiegu powinniśmy zobaczyć nowe frazy do tłumaczenia w panelu administratora.
Podobnie ten proces będzie działał również dla kontrolerów i plików .tpl.
Jeśli masz jakieś problemy lub wątpliwości, proszę śmiało je wspomnieć w sekcji komentarzy.
Chętnie pomożemy.