PDA

Zobacz pełną wersję : Mechanizm tłumaczenia nie działa lub jest jakiś błąd w J4.2.5



rkonik
14-12-2022, 00:59
Moje doświadczenie w tłumaczeniu jest skromne. Przeprowadziłem parę tłumaczeń lepiej lub gorzej mi to wyszło ale dziś pierwszy raz natknąłem się na taki problem:
Językiem oryginalnym jest angielski
Utworzyłem odpowiedni plik ini dla j.polskiego. i umieszczone są w odpowiednich folderach z identyczną nazwą. Oczywiście z uwzględnieniem pl-PL
Dokładnie skopiowałem zawartość oryginału STAŁA=WARTOŚĆ

i tu jest problem część tłumaczeń działa poprawnie. Natomiast część mimo poprawnej STAŁEJ się nie tłumaczy. Problem występuje w zapleczu na lokalnej maszynie jak i na serwerze produkcyjnym.

Czy ktoś spotkał się z takim problemem i jest w stanie podpowiedzieć jak ten problem rozwiązać? Czy może to jest jakiś błąd w tej wersji Joomla?

siristru
19-12-2022, 17:34
Włącz analizę języka w konfiguracji globalnej Joomla.
Czasami dodatkowy znak w wartości stałej językowej psuje plik - i to co jest nad przechodzi przetłumaczone, to co po tej błędnej linii już nie tłumaczy się.

rkonik
20-12-2022, 12:42
Problem jest bardzo dziwny z mojego punktu widzenia ponieważ plik INI w wersji polskiej zawiera X linii
STAŁA lub stałe które w pliku są przetłumaczone znajdują się dosłownie w środku pliku. Tłumaczenia powyżej i poniżej działają natomiast parę wybranych się nie tłumaczy.

Sprawdzałem stałe po włączeniu debugowania i wszystko się zgadza. Jednocześnie z twojej wypowiedzi sugerujesz że w innym pliku INI może być ta sama stała? Dlatego nie jest już moje tłumaczenie wczytywane? Dobrze Ciebie rozumiem?

edit:
Dodatkowo przeszukałem wszystkie pliki szukając konkretnie tych stałych z którymi mam problem. Okazuje się że jest w pliku INI angielskim, polskim, i pliku widoku w komponencie. Nigdzie indziej nie ma tej stałej przeszukałem dosłownie wszystkie pliki w Joomla

edit2:
Zrobiłem Ciekawy eksperyment. Wywaliłem wszystkie stałe pozostawiając wyłącznie stałą która stwarza problem. Tłumaczenie nie działa. Jakieś sugestie pomysły?

siristru
21-12-2022, 16:12
A jak wygląda stała i jej wartość, które stwarzają problemy?

rkonik
21-12-2022, 20:46
przykładowo w języku ang:


OSM_NET_AMOUNT="Net Amount"


Moje tłumaczenie:

OSM_NET_AMOUNT="Kwota netto"

siristru
22-12-2022, 10:55
Dobra a gdzie masz ten plik językowy? W katalogu languages czy w katalogu tego konkretnego rozszerzenia?

rkonik
22-12-2022, 12:16
To jest akurat tłumaczenie zaplecza i pliki znajdują się odpowiednio
administrator/language/en-GB/
administrator/language/pl-PL/

siristru
22-12-2022, 13:40
Ale dla rozszerzenia dla zaplecza?
Bo aktualnie pliki językowe mogą być zarówno w katalogu languages jak i w katalogu rozszerzenia.

rkonik
22-12-2022, 15:22
W katalogu rozszerzenia nie znajduje się żaden plik językowy.
Komponent ma swoją część frontendową i backendową dlatego umieszcza się pliki w odpowiednich katalogach language dla frontu i backendu osobno.

Dokładnie jest problem z tłumaczeniem backendu tego komponentu a tak jak napisałem wcześniej nie wszystkie Stałe się tłumaczą. Nawet podczas mojego eksperymentu gdzie zostawiłem w pliku INI wyłącznie stałą która sprawia problem i też nie był tłumaczona.

Sprawdziłem również kod komponentu i jest prawidłowo użyty Text::_('OSM_NET_AMOUNT');

siristru
22-12-2022, 15:58
Komponent ma swoją część frontendową i backendową dlatego umieszcza się pliki w odpowiednich katalogach language dla frontu i backendu osobno.

Tak osobno, ale w wersji 4 już nie muszą być w katalogu "languages" tylko w katalogu głównym rozszerzenia (osobno dla zaplecza i frontu).
W komponencie czy generalnie w rozszerzeniu tworzy się katalog "language" a w nim odpowiednio katalog dla języka np. "pl-PL".

rkonik
28-12-2022, 20:51
Może i w wersji J4 pliki językowe mogą być w katalogu komponentu. Ja lubię porządek i skoro ktoś odseparował pliki językowe i pliki np. media to niech tak zostanie. Przynajmniej jest porządek.
Tym bardziej że część tłumaczeń działa a niektóre nie. Nie sądzę aby lokalizacja miała na to wpływ tym bardziej że oryginalne pliki językowe znajdują się w katalogach language.

siristru
28-12-2022, 21:16
Może i w wersji J4 pliki językowe mogą być w katalogu komponentu. Ja lubię porządek i skoro ktoś odseparował pliki językowe i pliki np. media to niech tak zostanie. Przynajmniej jest porządek.

IMO ten pomysł z separacją właśnie nie był dobry. Ten nowy jest zdecydowanie lepszy bo w folderze rozszerzenia jest wszystko :P

A sprawdzałeś czy zadziała nadpisywanie tłumaczenia? Dodaj tam stałą językową i tekst. Zobacz czy tłumaczenie zostanie zastosowane.

rkonik
29-12-2022, 15:38
Skopiowałem pliki tłumaczeń do folderu komponentu. Nic nie pomogło dalej ten sam problem.

Użyłem nadpisywania językowego w Joomla i podczas odszukiwania stałej pokazały się dwie lokalizacje plików katalog /administrator/language i /administrator/ROZSZERZENIE/language/ i oba przetłumaczone tak jak jest w pliku INI

Wykonałem nadpisanie mimo że podczas wyszukiwań pokazało się poprawnie i działa. Ale nadpisywanie jest dobre dla kilku fraz i jednej strony przy większej ilości stron mija się z celem.
Jakiś pomysł co jest nie tak z tłumaczeniem?

siristru
29-12-2022, 16:30
A jak wywołujesz stałe językowe?


JText::_('COM_STALA')

czy


Text::_('COM_STALA')

Z jednoczesnym wywołaniem:

use Joomla\CMS\Language\Text;

rkonik
30-12-2022, 17:10
Tak jak pisałem wcześniej:

<?php echo Text::_('OSM_NET_AMOUNT'); ?>
musi być z use inaczej nawet angielskie treści by się nie wyświetliły

siristru
30-12-2022, 17:33
Dobra a jak nazywa się rozszerzenie? Jak się nazywa jego katalog?

rkonik
02-01-2023, 20:51
Membership Pro
administrator/components/com_osmembership/

siristru
02-01-2023, 21:51
Spróbuj używać stałej zaczynającej się od COM_OSMEMBERSHIP_

rkonik
03-01-2023, 11:37
Nic nie daje.
Jeszcze sprawdziłem plik który jest tworzony przez nadpisywanie i ma dokładnie taką samą regułę STAŁA=WARTOŚĆ jaką ja wpisałem w pliku INI

siristru
03-01-2023, 22:13
Czyli zatoczyliśmy koło.
A co wyświetla debug języka? Mam na myśli tę listę na samym dole, podsumowanie debugowania.

rkonik
15-02-2023, 19:39
Wracam do tematu mam podobny problem z innym tłumaczeniem. Ten sam efekt.
Tym razem konkrety chodzi o dodatek SP Easy Image Gallery. Jest on bezpłatny więc spokojnie można go pobrać.
Napisałem do niego tłumaczeni. Jedna z klientek nie mogła się odnaleźć w języku angielskim. W ramach usługi postanowiłem wprowadzić tłumaczenie a że nie wymagało zbyt wiele pracy więc postanowiłem je opublikować dla wszystkich.
Plik instalacyjny można pobrać z https://github.com/rkonikpl/SP-Easy-Image-Gallery-Polish-Translation/releases/download/v2.0/pkg.pl-PL.zip
Natomiast całość jest na Githubie https://github.com/rkonikpl/SP-Easy-Image-Gallery-Polish-Translation

W tym tłumaczeniu mam podobny problem jak opisywałem wcześniej.
@siristru jak tutaj możesz zerknąć na konkretnym przykładzie będę wdzięczny za opinię. U mnie np nie działa tłumaczenie o stałej

COM_SPEASYIMAGEGALLERY_GLOBAL_THUMB_WIDTH
Ta stała jest w opcjach komponentu w zapleczu.

Z góry dziękuję za każde uwagi i pomoc czemu występuje taki problem. Może coś źle wykonuję

siristru
15-02-2023, 23:27
Działa :P https://prnt.sc/swlWChF06G-x
Zobacz jak wyglądają nazwy plików językowych w strukturze. Nie mają już przedrostków z językiem.

https://prnt.sc/AIJNOAV615iv

rkonik
16-02-2023, 18:02
Zaskoczyłeś mnie.
U mnie mimo tej zmiany nazwy pliku nie działa. Co gorsza coś namieszałem w manifeście i mi nie instaluje plików językowych w odpowiednim miejscu.

siristru
16-02-2023, 18:19
Tak, instalacja faktycznie nie wrzuca plików z tłumaczeniem.
Nawet jak wrzucisz ręcznie i zmienisz im nazwę to nie tłumaczy?

rkonik
16-02-2023, 23:00
Tak.
Wrzucenie ręcznie do katalogu zgodnie z Twoim zrzutem to nie działa tłumaczenie.
Dlatego udostępniłem cały kod na GitHub by można działać na konkretnych plikach. Dokładnie tak samo miałem z innym tłumaczeniem o którym pisałem na początku.

Zdaję sobie sprawę, że mogłem popełnić błąd ale nie potrafię go odnaleźć. Co robię nie tak?

Jednocześnie wielkie podziękowanie za włożony wysiłek w sprawdzenia czy działa.

siristru
16-02-2023, 23:57
Ciężko mi powiedzieć co robisz nie tak. Miałem zainstalowana Joomla 4 w najnowszej wersji. Zainstalowałem galerię, wrzuciłem pliki do katalogu i zmieniłem im nazwy... i to wszystko.
A robiłeś debug języka?
Co w konsoli loguje?

terra
17-02-2023, 14:33
Jeśli masz w pakiecie instalacyjnym katalog language, a w pliku instalacyyjnym XML strukturę com_ , mod_ , tpl_


<languages folder="language">
<language tag="en-GB">en-GB/tpl_nazwa.ini</language>
<language tag="en-GB">en-GB/tpl_nazwa.sys.ini</language>
<language tag="pl-PL">pl-PL/tpl_nazwa.ini</language>
<language tag="pl-PL">pl-PL/tpl_nazwa.sys.ini</language>
</languages>

to musi działać. Problem może pojawić się tylko w dwóch przypadkach
1. tłumaczenia umieściłeś w pliku *.ini , a jest wymagane w *.sys.ini lub odwrotnie
2. w treści nie ma zmiennej łańcuchowej, którą tłumaczysz, tylko tekst jest wpisany na "sztywno"

Możesz to ominąć, ręcznie tworząc pliki na serwerze, we właściwym katalogu i pod właściwą nazwą, skoro nie ma tłumaczenia polskiego, to przy aktualizacji, nie powinny zostać nadpisane

Sprawdź, czy nigdzie w tłumaczeniu nie używasz znaków specjalnych np. ` ' i czy wszędzie masz zamknięty cudzysłów

rkonik
17-02-2023, 18:48
Znalazłem problem przy instalacji. Zamiast:


<files folder="admin" target="administrator/language/pl-PL">
<filename>com_speasyimagegallery.ini</filename>
<filename>com_speasyimagegallery.sys.ini</filename>
</files>

powinno być:


<files folder="admin" target="administrator/language/pl-PL">
<file>com_speasyimagegallery.ini</file>
<file>com_speasyimagegallery.sys.ini</file>
</files>


Natomiast borykam się z tłumaczeniem ponieważ niektóre serwery ładnie tłumaczą a inne nie. Ciekawe zjawisko którego nie rozumiem.

siristru
17-02-2023, 19:38
Doba ale co pokazuje konsola kiedy debugujesz język?

rkonik
08-03-2023, 22:20
Debugowanie języka jest ok. Jak się ręcznie wrzucało to tłumaczenia były problem był jak chciałem zrobić to poprzez instalację rozszerzenia file

Plik manifestu jeszcze miał jeden błąd. Tylko to dziwny błąd bo na niektórych serwerach instalował a na niektórych nie. A w niektórych niby zainstalował ale nie działało wszystko poprawnie. Na tą chwilę udało mi się opanować plik manifestu i wszystko działa poprawnie.

Dzięki za pomoc. Może komuś się przyda tłumaczenie do tego rozszerzenia.