Jego projektant, Alex Kempkens, nawiązał nazwą komponentu do powieści Adama Douglasa „Autostopem po galaktyce", w której Babel Fish pełniła obowiązki tłumacza.
Takie samo jest źródło nazwy programu BabelFish, udostępnianego przez firmę AltaVista.
Joom!Fish nie jest jednak, jak BabelFish, automatycznym tłumaczem treści.
Joom!Fish jest zaawansowanym menedżerem, umożliwiającym tłumaczenie materiałów i ich publikację. Joom!Fish wesprze Twoją redakcję w tworzeniu tłumaczeń wszystkich materiałów na witrynie, zarówno elementów interfejsu użytkownika - etykiet i komunikatów ekranowych, jak i artykułów i wszystkich treści publikowanych przez komponenty czy moduły.
Twoja pierwsza instalacja Joom!Fish
Pierwsze wrażenie po instalacji komponentu może prowadzić do przekonania, że jego obsługa jest trudna. Ale, jak to z pozorami bywa - mylą. Pierwsze kroki z Joom!Fish przekonują, że tak nie jest.
W pierwszej części poradnika na przykładzie lokalizacji pozycji menu pokażemy, że proces tłumaczenia w Joom!Fish jest łatwy. W części drugiej omówimy szczegółowo wszystkie elementy programu.
1. krok: Instalacja Joom!Fish
Joom!Fish składa się z komponentu, modułów i botów dla Joomla! Instalacja jest w pełni zintegrowana i wymaga jedynie instalacji komponentu.
Po pobraniu najnowszego wydania (zobacz: download) musisz jedynie przejść w panelu administracyjnym Twojego serwisu do menu Instalatory ⇒ Komponenty i wczytać pakiet instalacyjny (instalować ze spakowanego archiwum).
Przed instalacją zapewnij jedynie prawa zapisu we wszystkich katalogach, w których Joom!Fish umieszcza swoje elementy. Sprawdź zwłaszcza katalog /mambots
i katalog /modules
. W przeciwnym przypadku instalacja nie powiedzie się.
Po zakończeniu procesu instalacji czekają Cię następne kroki, trzeba bowiem w następnym kroku skonfigurować komponent.
2. krok: Instalacja języka
Po pierwsze trzeba zainstalować standardowe pliki językowe Joomla! Wszystkie pliki znajdziesz na witrynie Joomla! extension.
Zainstaluj wszystkie języki (nie ma limitu), jakich chcesz używać na swojej witrynie, korzystając z menu Witryna ⇒ Języki ⇒ (funkcja Instaluj).
3. krok: konfiguracja języka
Po zainstalowaniu plików etykiet i komunikatów językowych uaktywnić wybrane języki i nadać im "naturalne" nazwy. Zadanie to wykonasz panelu administracyjnym, korzystając z opcji konfiguracji języków w Joom!Fish (Komponenty ⇒ Joom!Fish ⇒ Języki).
Pierwszy test: Kiedy zmienisz język na stronie frontowej (szablon Solarflar jest już z łatką), możesz zmieniać później inne stałe teksty.
Jak tłumaczyć materiały?
Po upewnieniu się, że podstawowa konfiguracja witryny jest poprawna, tłumaczymy w kolejnym kroku stałe teksty, umieszczone w bazie danych.
4. krok: Tłumaczenie informacji w bazie danych
Wykonajmy prostą próbę. Przetłumaczymy nazwy pozycji menu na Twojej witrynie.
Przejdź do panelu kontrolnego komponentu i wybierz opcję Tłumaczenia.
Najpierw wybierz język, na który lubisz tłumaczyć. Następnie dobierz element witryny - Menu. Gdy wykonasz te czynności, otrzymasz listę wszystkich pozycji menu znajdujących się w bazie danych. Wybierając typ menu - np. menu główne [mainmenu], zmniejszysz ilość widocznych pozycji. Teraz przetłumacz kolejne pozycje, klikając nazwę. Ważne jest,, by każdą przetłumaczona nazwę opublikować (ostatnia kolumna).
Drugi test: Po wprowadzeniu wszystkich zmian, sprawdź na stronie frontowej, czy pozycje menu są przetłumaczone.
Po przetłumaczeniu (i opublikowaniu) wszystkich pozycji Twoje menu powinno się wyświetlać w przetłumaczonym języku.
5. krok: Tłumaczenie dodatkowych informacji
Wszystkie inne dynamiczne materiały umieszczone w bazie danych tłumaczymy dokładnie w taki sam sposób, jak objaśniliśmy w kroku 3. Tłumaczenie rozszerzeń dodatkowo instalowanych wymaga instalacji dodatkowych plików i ich skonfigurowania.
Konfiguracja języków
Konfiguracja języków wymaga dwóch przedsięwzięć. Jedno jest stosunkowo proste. Sprowadza się do określenie kilku podstawowych parametrów języków, które chcemy udostępnić użytkownikom. Drugie - konfiguracja powiązań komponentu z bazą danych nieco złożone, toteż autorzy nie zdecydowali się na udostępnienie możliwości konfigurowania ich w panelu administracyjnym.
Konfiguracja panelu administracyjnego
Rozpocznij od wyboru języka panelu administracyjnego komponentu. Jeśli etykiety i komunikaty ekranowe w panelu administracyjnym wyświetlane sa w języku angielskim, przejdź w menu do pozycji Komponenty ⇒ Joom!Fish ⇒ Konfiguracja komponentu i ustal domyślny język panelu administracyjnego, wybierając jeden z dostępnych na rozwijanej liście (m.in. polski).
Ustawienia języków
Zanim skonfigurujesz dostępne języki, trzeba zgodnie z wcześniejszą instrukcją (zob. krok 2.) zainstalować odpowiednie pakiety językowe. Lista wszystkich zainstalowanych plików językowych pojawi się w oknie edytora konfiguracji języków. Wybierz w menu panelu administracyjnego pozycję Komponenty ⇒ Joom!Fish ⇒Języki bądź kliknij w panelu kontrolnym komponentu ikonę skrótu o tej samej nazwie. Przejdziesz do edytora konfiguracji.
Pierwsza z opcji informuje, który z dostępnych języków jest ustawiony jako domyślny język witryny. Powinien to być język „główny", ten, w którym będą przygotowywane wszystkie materiały. Domyślny język witryny ustawiamy w edytorze Konfiguracja globalna. Jeśli chcesz się do niego przenieść, kliknij odnośnik w komunikacie o domyślnym języku witryny.
W edytorze konfiguracji języków ustal następujące parametry dla każdego języka, który chcesz udostępnić:
- Nazwa [Name] wpisz tekst nazwy, jaka będzie się pojawiać na liście wyboru języków na stronie frontowej. Podczas pierwszego wywołania konfiguratora języków Joom!Fish wyświetla tutaj nazwę pobraną z pliku .xml pakietu językowego. Nazwę języka podaj w jej naturalnym brzmieniu (english, polski).
- Aktywny [Active]: zaznacz pola wyboru przy każdym z języków, który chcesz udostępnić.
- ISO: wpisz dwuliterowy oficjalny kod języka, np. pl dla języka polskiego, en dla języka angielskiego, de dla języka niemieckiego. Wpisane tutaj wartości wykorzystywane są jako argument parametru
lang
w adresie URL wywoływanej pozycji. - Nazwa pliku języka [Joomla Filename] raczej nie dokonuj zmian. Joom!Fish odczytuje nazwy z katalogu
/languages
. Powinny więc być poprawnie wpisane, np. polish, english. Zwróć uwagę, że nazwy plików nie mają rozszerzeń.
- Nazwa pliku grafiki [Image filename] możesz podać ścieżkę dostępu do pliku z flagą państwową odpowiednią dla każdego języka. Standardowo pliki z grafikami umieszczone są w katalogu
/components/com_joomfish/images/flags
. Jeśli chcesz stosować standardowe obrazki, pozostaw to pole niewypełnione. Jeśli chcesz zastosować własne obrazki, wpisz ścieżkę względną do obrazków w katalogu /images, np./Joom!Fish/flagi/pl.gif
. Aby skorzystać z domyślnych flag, ich kody muszą odpowiadać nazwom plików graficznych w katalogucomponents/com_joomfish/images/flags
. - Kolejność [Ordering]: Możesz ustalić inną niż alfabetyczna kolejność wyświetlania języków. Gdy witryna jest publikowana w kilku językach, zmiana kolejności raczej nie sprawi kłopotu w wyborze języka. Gdy jednak będzie to kilkanaście pozycji, raczej należy zostawić kolejność alfabetyczną.
- Zapisz ustawienia, klikając przycisk Zapisz [Save] w górnym pasku narzędzi.
Konfiguracja powiązań komponentu z bazą danych
Jak wspomnieliśmy, w panelu administracyjnym nie ma narzędzi umożliwiających konfigurację powiązań komponentu z bazą danych. Ustawienia konfiguracyjne zgromadzone są w specjalnych plikach XML, umieszczonych w katalogu /administrator/components/com_joomfish/contentelements
. W panelu administracyjnym natomiast można zobaczyć, które z elementów treści zostały skonfigurowane.
Kliknij w panelu kontrolnym komponentu ikonę skrótu Elementy witryny [Content elements] lub wybierz w menu administracyjnym pozycję Komponenty ⇒ Joom!Fish ⇒ Elementy witryny.
W wykazie wyszczególnione są wszystkie elementy witryny, dla których zdefiniowane zostały powiązania z bazą danych. Kliknij nazwę w wykazie lub zaznacz pole wyboru i kliknij nieco mylący w tym przypadku przycisk Edytuj [Edit]. Niczego edytować bowiem nie można.
W oknie informacyjnym znajdziesz trzy karty odsłaniane przez kliknięcie w zakładkę: Konfiguracja, Baza danych, Przykłady.
Na pierwszej karcie znajdują się ogólne informacje - nazwa elementu oraz dane o autorze pliku XML definiującego powiązania z bazą danych.
Druga karta zawiera informacje o powiązanej z elementem witryny tabeli bazy danych. Podana jest nazwa tabeli (bez przyrostka jos_
lub innego, własnego) oraz szczegółowy wykaz pól, z informacjami o nich w czterech kolumnach: Nazwa [Name], Typ [Type], Etykieta [Lable] i Podlega tłumaczeniu [Translate]
W ostatniej kolumnie znajdziemy tu informację, czy treść wpisu do danego pola podlega tłumaczeniu.
Na kolejnej trzeciej karcie można zobaczyć przykłady.
Elementy witryny
Gdy mówimy elementy witryny lub materiały albo zawartość, mamy tu na myśli dowolny tekst, każdą informację wprowadzaną do tabel bazy danych, obsługującej Joomla!.
W bazie danych przechowywane są różne teksty:
- nazwy, etykiety ekranowe, np. pozycji menu
- teksty artykułów i materiałów statycznych,
- imiona i nazwiska autorów,
- teksty definiowane w parametrach publikowanych treści (np. teksty alternatywne dla grafik)
- dane adresowe, np. w komponencie Kontakty,
- …itd.
Wszystkie teksty umieszczane w bazie danych i wyświetlane na stronach witryny mogą podlegać tłumaczeniu.
O tym, które z elementów będzie można tłumaczyć, korzystając z Joom!Fish, decydują wspomniane wcześniej pliki konfiguracyjne XML.
Przyjrzyjmy się plikowi konfigurującemu tłumaczenie elementów gromadzonych w tabeli #__content
, a więc artykułów i materiałów statycznych. Oto tekst umieszczony w pliku XML
<?xml version="1.0" encoding="iso-8859-2"?>
<joomfish type="contentelement">
<name>Materiały - artykuły i statycze</name>
<author>A. Kempkens</author>
<version>1.7</version>
<description>Definicje dla komponentu Materiały (Content)
należącego do trzonu Joomla</description>
<reference type="content">
<table name="content">
<field type="referenceid" name="id" translate="0">ID</field>
<field type="titletext" name="title" translate="1">Tytuł</field>
<field type="text" name="title_alias" translate="0">Zwięzły tytuł</field>
<field type="htmltext" name="introtext" translate="1">Wstęp (Intro)</field>
<field type="htmltext" name="fulltext" translate="1">Tekst</field>
<field type="textarea" name="images" translate="1">Grafiki</field>
<field type="text" name="metakey" translate="1">Słowa kluczowe</field>
<field type="text" name="metadesc" translate="1">Metadane - opis</field>
<field type="created_date" name="created" translate="0">Data utworzenia</field>
<field type="modified_date" name="modified" translate="0">Data modyfikacji</field>
<field type="checked_out_by" name="checked_out"
translate="0">Blokowany przez</field>
<field type="checked_out_date" name="checked_out_time"
translate="0">Data zablokowania</field>
<filter>c.state >= 0</filter>
</table>
</reference>
<translationfilters>
<category>catid</category>
<author>created_by</author>
<keyword>title</keyword>
<published>published</published>
</translationfilters>
</joomfish>
Zrozumienie treści pliku nie powinno Ci prawić kłopotu. W sekcji reference
[powiązania] wyszczególniony jest typ powiązania oraz wszystkie pola tabeli content
[field
]. Dla każdego pola określone są trzy parametry: typ, nazwa w tabeli oraz parametr translate
. Ten właśnie parametr decyduje, czy zawartość danego pola będzie można tłumaczyć. Dla pól, które powinny być tłumaczone, ma on ma wartość: translate="1"
.
Posługując się tym przykładem, można samodzielnie tworzyć pliki XML dla dodatkowo instalowanych komponentów i modułów, które umieszczają dane w bazie danych.
Projektanci Joom!Fish oferują pliki XML dla wielu rozszerzeń. Ponadto coraz częściej zdarza się, że autorzy rozszerzeń dołączają do nich również pliki przeznaczone dla komponentu Joom!Fish.
Aby z nich korzystać, wystarczy je umieścić w katalogu /administrator/components/com_joomfish/contentelements
.
Konfiguracja komponentu
W edytorze konfiguracji komponentu możemy dokonać trzech ustawień.
Po pierwsze, określić język panelu administracyjnego komponentu, o czym już wspominaliśmy. Wybieramy dostępny język z listy możliwych.
Po drugie, możemy określić, jak zachowa się Joomla! gdy nie będzie dostępne tłumaczenie jakiegoś elementu. Do dyspozycji mamy trzy opcje:
- Treść oryginalna [The original content]
- Domyślny tekst [Default Text].
- Treść oryginalna i domyślny tekst [The original content and Information].
Tekst domyślny jest zdefiniowany w pliku językowym Joom!Fish, w stałej _JOOMFISH_NO_TRANSLATION_AVAILALBLE
. W razie potrzeby mozna go zmoyfikować.
Wszystkie trzy ustawienia dotyczą jedynie artykułów i materiałów statycznych. A efekt dokonanego ustawienia widoczny będzie dopiero po opublikowaniu przynajmniej jednego materiału, w którym zostanie przetłumaczony jedynie tytuł.
Pierwsze z ustawień jest ustawieniem standardowym. Jeśli zatem nie będzie dostępne tłumaczenie artykułu w jakimś języku, Joomla! wyświetli oryginalny tekst. Początkowo będzie to „normalna sytuacja". Z czasem, gdy tłumaczeń przybędzie, warto rozważyć dwie pozostałe opcje.
Opcja Domyślny tekst [Default Text] spowoduje, że pojawi się komunikat informujący, iż tekst tłumaczenia jest niedostępny i prośba o wybór innego języka
Opcja Treść oryginalna i domyślny tekst [The original content and Information] spowoduje, że przed wstępem do artykułu czy materiału statycznego pojawi się podobny komunikat, jak poprzednio, ale zostanie wyświetlony także oryginalny tekst.
Prawa do publikacji ze strony frontowej
Kolejny parametr umożliwia określenie, kto z użytkowników ma prawo publikowania tłumaczeń przy wykorzystaniu interfejsu redakcyjnego na stronie frontowej. Tylko dwie opcje są tutaj dostępne:
- Nikt [No-one]
- Wydawcy i wyżsi [Publishers and above]
Wybór drugiego z ustawień umożliwia - bez ingerencji w kod Joomla! - tłumaczenie i publikowanie tłumaczeń administratorom z najniższymi uprawnieniami (operatorom [Managers]). Standardowo bowiem, operatorzy w Joomla! nie mają prawa obsługiwać komponentów.
Można to, oczywiście zmodyfikować. Wystarczy wyedytować skrypt (/includes/gacl.class.php
), dodając np. po linii 163 następujący kod:
_mos_add_acl( 'administration', 'install', 'users',
'manager', 'components', 'all' );
$this->_mos_add_acl( 'administration', 'edit', 'users',
'manager', 'components', 'com_joomfish' );
Konfiguracja modułu
Modułowi można ustawić sześć parametrów:
- Włącz CSS Joom!Fish [Include Joom!Fish CSS]: Komponent został wyposażony we własny arkusz stylów, definiujący sposób wyświetlania menu. Aby korzystać z tego arkusza, można tu wybrać opcję Tak. Sensowniejszym rozwiązaniem jest jednak przekopiowanie arkusza stylów do arkusza stylów szablonu i zaznaczenie tutaj opcji Nie. Unikniemy wówczas nietolerowanego przez walidatory dołączania zewnętrznych arkuszy stylów wewnątrz głównej części dokumentu (zamiast w nagłówku).
- Przyrostek klasy CSS modułu [Module Class Suffix]: To standardowy w Joomla! parametr. W arkuszu CSS można stworzyć klasy z przyrostkiem (
table.moduletable-przyrostek
i.module-przyrostek
), aby zastosować ją do wyświetlania niektórych modułów. W takim przypadku należy wpisać tutaj tekst owego przyrostka (wszystkie znaki włącznie z myślnikiem!) - Schowek [Enable Cache]: To również standardowy parametr. W przypadku witryn wielojęzycznych korzystanie z pamięci podręcznej przez moduły jest szczególnie wskazane, znacznie może zmniejszyć obciążenie serwera transmisją danych.
- Format selektora języków [Appereance of language selector]: Parametr umożliwia określenie sposobu wyświetlania selektora języków. Do wyboru mamy trzy opcje. Wszystkie są zgodne xHTML. Wybór zależy od koncepcji graficznej projektu.
- rozwijane menu z nazw [Drop down of names],
- ul - lista z nazw [ul-list of names]
- ul - lista z grafik [ul-list of images]
- Separator [Spacer for names]: Jeśli zdecydujemy się na poziome menu w postaci listy elementów, można tu wprowadzić symbol separator oddzielającego pozycje listy. Standardowo jest to znak ‘|'. Można też zastosować np. ostry nawias skierowany w prawo : ‘>'
- Pokaż aktywny język [Show active language]: Jeśli zaznaczymy Nie, na liście wyboru zostaną wyświetlone jedynie nazwy nieaktywnych języków. Jeśli zaznaczymy Tak, zostanie wyświetlona pełna lista.
Konfiguracja botów
Komponent obsługiwany jest przez dwa boty:
- Multi lingual abstraction layer bot
- Multi lingual content searchbot
Oba powinny być włączone (opublikowane).
Multi lingual abstraction layer bot
Pierwszy z nich należy do grupy botów systemowych. Jeśli zostanie opublikowany, usprawnia działanie komponentu. W sposób niezauważalny dla użytkownika wybiera podczas jego pierwszej wizyty język: przy pierwszych odwiedzinach witryny. Bot ma dwa parametry:
- Włącz ustalanie języka [Enable Language determination]: Gdy zaznaczymy Tak, Joom!Fish ustawia domyślnie język zgodny z ustawieniami poczynionymi w następnym parametrze. UstawienieNie uniemożliwi użytkownikom wybór języka, mimo, że lista będzie wyświetlana! Joom!Fish ustawi wówczas zawsze jako domyślny język przeglądarki!
- Język dla nowych użytkowników [Language selection for new visitors?]: Decyduje o sposobie ustalania języka. Domyślnie Joom!Fish ustawia język przeglądarki użytkownika. Można jednak ustalić, że będzie to domyślny język witryny albo pierwszy na liście języków udostępnianych przez Joom!Fish. Do wyboru mamy więc trzy opcje:
- Kolejność w komponencie Joom!Fish [Ordering of Languages in Joomfish Component]
- Ustawienia przeglądarki [Browser Settings]
- Domyślny język witryny [Site Default Language]
Wyszukiwarka
Parametry drugiego bota umożliwiają określenie:
- Limit wyników [Search Limit]: ilości zwracanych przez komponent wyników wyszukiwania (standardowo 50),
- Materiały statyczne bez łącza w menu [Static Content NonMenu]: Czy w wynikach wyszukiwania pokazywać odnośniki do materiałów statycznych znalezionych w bazie danych, ale nieumieszczonych w żadnym menu witryny
- Tylko aktywny język [Active language only]: Czy przeszukiwać wszystkie artykuły i materiały statyczne, czy jedynie przetłumaczone na bieżący, wybrany przez użytkownika język.
Tłumaczenia
Aby dokonać tłumaczenia dowolnego elementu witryny, należy przejść w panelu kontrolnym komponentu lub w menu administracyjnym do opcji Tłumaczenia [Translation]. W oknie menedżera zobaczymy zwykle pustą tabelę wykazu. Aby pojawiły się w niej elementy przeznaczone do tłumaczenia, musimy skorzystać z umieszczonego po prawej stronie filtru Elementy witryny [Content elements]. Po wyborze dowolnego z elementów (Kategorie, Kontakty, Materiały statyczne i artykuły, Menusy, czyli pozycje menu, itp.) tabela zostanie wypełniona listą pozycji do tłumaczenia.
Równocześnie przybędzie filtrów. Dodatkowo można wybrać język tłumaczenia, kategorie w przypadku artykułów - autora i słowa kluczowe oraz tłumaczenia opublikowane [published], nieopublikowane [unpublished] bądź wszystkie [both].
By przejść do edytora, klikamy tytuł pozycji w kolumnie Tytuł oryginalny [Original title] albo zaznaczamy pole wyboru i klikamy przycisk Edytuj w pasku narzędzi.
Okno edytora podzielone jest na dwie części. Po lewej mamy umieszczone jeden pod drugim elementy treści, po prawej kartę Publikacja [Published] .
Każdy z elementów przeznaczonych do tłumaczenia oznaczony jest etykietą (np. Tytuł, Wstęp, Słowa kluczowe). Poniżej znajduje się tekst oryginału, a pod nim pole przeznaczone na wpisanie tłumaczenia. W przypadku obszarów tekstowych w polu tym można uaktywnić edytor tekstu typu WYSIWYG.
Po prawej stronie części przeznaczonej dla każdego elementu znajdują się dwa przyciski: Wklej [Paste] i Usuń [Delete]. Naciśnięcie pierwszego umieszcza w polu przeznaczonym na tłumaczenie tekst oryginału. Naciśnięcie drugiego czyści pole edycji. Z przycisku Usuń trzeba korzystać z rozwagą, aby nie usunąć przypadkowo przetłumaczonego wcześniej tekstu.
Po zakończeniu pracy nad tłumaczeniem, można zdecydować, czy udostępnić tłumaczenie na witrynie. W tym celu na karcie po prawej stronie zaznaczamy pole wyboru Opublikowane [Published]. Decyzję tę można podjąć również później, w oknie menedżera tłumaczeń.
Proces tłumaczenia kończymy zachowaniem wyników pracy.
Jak widać, posługiwanie się edytorem jest proste.
W praktyce zdarzają się jednak różne kłopotliwe sytuacje.
Łatwo można zniszczyć niezapisany efekt pracy, jeśli przypadkowo naciśniemy przycisk Usuń.
Stosunkowo łatwo można nadpisać tekst oryginału tekstem tłumaczenia, jeśli przypadkowo zostanie zmieniony na karcie po prawej stronie język tłumaczenia.
Dlatego - w przypadku dłuższych materiałów bezpieczniejszym jest przygotowanie tłumaczenia w dowolnym edytorze zewnętrznym i wklejenie go w translatorze.
Metryczka
- Nazwa projektu: Joom!Fish 1.7-pl
- Typ składnika: Komponent + moduł + boty
- Podstawowa funkcja: Wielojęzyczność serwisu
- Nazwa pliku: pack_joom!fish1.7-pl.zip
- Wersja oryginalna: 1.7 PL
- Polska wersja z dnia:27 maja 2007 przez Stefan Wajda
- Kodowanie: ISO-8859-2
- Licencja: GNU/GPL
- Autor: Alex Kempkens i Zespół
- Strona WWW: www.joomfish.net
- Do pobrania: w naszej plikowni