Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] translacja panelu administracyjnego
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Witam,
możliwe, że ktoś z Was już coś takiego robił; szukając w googlach oraz bezpośrednio na forum Symfony nic nie znalazłem więc piszę tutaj.

W jaki najprostszy sposób zmienić wyświetlane napisy w generatorze admina? Przeglądałem źródła admina i część elementów jest wyświetlania poprzez gettext. Spróbowałem więc dodać do app/backend/i18n pliczek messages.pl.xml wrzucając tam tłumaczenia jednak to nie pomogło (oczywiście i18n on + default_culture pl). Udało mi się przetłumaczyć dla testu napis "create" poprzez edycję samych źródeł szablonów jednak nie jest to zbyt dobre wyjście (co podczas update'u?). Ponadto nazwa buttona określa jego klasę i identyfikator w HTML (oraz samo location.href):
  1. <input class="sf_admin_action_create" value="create" type="button" onclick="document.location.href='/backend_dev.php/region/create';" />

na
  1. <input class="sf_admin_action_utworz" value="utworz" type="button" onclick="document.location.href='/backend_dev.php/region/utworz';" />

więc na pewno nie tędy droga.

Pytanie więc - jak Wy to robicie? O ile w ogóle robicie... ja po raz pierwszy zostałem "zmuszony" do zmiany języka admina na polski.

Pozdrawiam: pion

Ten post edytował phpion.com 1.01.2008, 18:50:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


U mnie działa normalnie. Jeśli nie zmieniałeś nic w generatorze to wszystko powinno być ok. Pokaż plik messages.pl.xml, sprawdź też (np. w layout.php) czy na pewno default_culture jest odpowiednio ustawione.
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Niestety nie mam już tych plików. Po prostu próbując coraz to innego rozwiązania usuwałem ślady po poprzednim. Ale mogę powiedzieć, że plik wyglądał standardowo:
  1. ...
  2. <source>create</source>
  3. <target>Utwórz</target>
  4. ...

plik ten (messages.pl.xml) wrzuciłem do app/backend/i18n; w app/backend/i18n/config/i18n.yml ustawiłem default_culture na "pl" (oczywiście wcześniej włączyłem i18n on w settings.yml.

Jeśli mógłbyś to prosiłbym o przesłanie Twoich plików z tłumaczeniami (adres maila pozwolę sobie podać na PW) oraz udzielenie ew. korekt do mojego sposobu (może o czymś zapomniałem?).

Pozdrawiam: pion
Go to the top of the page
+Quote Post
kwiateusz
post
Post #4


Admin Techniczny


Grupa: Administratorzy
Postów: 2 072
Pomógł: 93
Dołączył: 5.07.2005




a jedno pytanie bo miałem z tym zabawe wchodzisz od razu bezpośrednio do backendu czy najpierw frontend a potem backend? bo zauwazyłem ze nawet przy wyłaczonym i18n we frontendzie domyslnie ustala culture na en i wtedy po przejsciu do backendu pozostaje wszystko po angielsku
Go to the top of the page
+Quote Post
strife
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


A czy po zmianie default_culture na "pl" masz np. polski zapis dat? Chodzi o to, aby sprawdzić czy na pewno łapie język polski na tym etapie. Mogę Ci podać jak ja mam to rozwiązane.

apps/backend/config/i18n.yml

Kod
all:
  default_culture:     pl_PL
  source:              XLIFF
#  debug:               off
#  cache:               on
#  untranslated_prefix: "[T]"
#  untranslated_suffix: "[/T]"


apps/backend/config/settings.yml

Kod
.settings:
#    available:              on        # Enable the whole application. Switch to off to redirect all requests to the unavailable module and action.
#
#    # Optional features. Deactivating unused features boots performance a bit.
#    use_database:           on        # Enable database manager. Set to off if you don't use a database.
#    use_security:           on        # Enable security features (login and credentials). Set to off for public applications.
#    use_flash:              on        # Enable flash parameter feature. Set to off if you never use the set_flash() method in actions.
    i18n:                   on       #  WAZNE !


apps/backend/i18n/messages.pl.xml

  1. <?xml version="1.0" ?>
  2. <xliff version="1.0">
  3.  <file orginal="global" source-language="pl_PL" datatype="plaintext">
  4.    <body>
  5.      <trans-unit id="1">
  6.        <source>Actions</source>
  7.        <target>Wybierz akcje</target>
  8.      </trans-unit>
  9.      <trans-unit id="2">
  10.            <source>create</source>
  11.            <target>Stwórz nowy</target>
  12.      </trans-unit>
  13.      <trans-unit id="3">
  14.            <source>result</source>
  15.            <target>wynik</target>
  16.      </trans-unit>      
  17.      <trans-unit id="4">
  18.            <source>Title</source>
  19.            <target>Nazwa</target>
  20.      </trans-unit>            
  21.    </body>
  22.  </file>
  23. </xliff>


Pamiętaj o zresetowaniu przeglądarki i wyczyszczeniu cache.

Pozdrawiam.
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Dziękuje wszystkim za zainteresowanie i pomoc. W zasadzie wypowiedź każdego była mi pomocna (hehe temat będzie zakolorowiony) więc tym większe dzięki. Możliwe, że w którymś momencie zapomniałem o symfony cc bo daję sobie głowę uciąć, że robiłem tak samo jak Wy opisaliście. Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

// EDIT:
jednak czyszczenie cache nie ma tu nic do rzeczy - zmiany są widoczne i bez tego. W związku z tym dałem sobie uciąć głowę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) musiałem więc coś robić źle.
Przetłumaczyłem kilka komunikatów; na razie te, które widać na pierwszy rzut oka:
  1. <?xml version="1.0" ?>
  2. <xliff version="1.0">
  3.      <file orginal="global" source-language="en" datatype="plaintext">
  4.            <body>
  5.                  <trans-unit id="1">
  6.                        <source>create</source>
  7.                        <target>Utwórz</target>
  8.                  </trans-unit>
  9.                  <trans-unit id="2">
  10.                        <source>filters</source>
  11.                        <target>Filtry</target>
  12.                  </trans-unit>
  13.                  <trans-unit id="3">
  14.                        <source>reset</source>
  15.                        <target>Wyczyść</target>
  16.                  </trans-unit>
  17.                  <trans-unit id="4">
  18.                        <source>filter</source>
  19.                        <target>Filtruj</target>
  20.                  </trans-unit>
  21.                  <trans-unit id="5">
  22.                        <source>yes or no</source>
  23.                        <target> </target>
  24.                  </trans-unit>
  25.                  <trans-unit id="6">
  26.                        <source>yes</source>
  27.                        <target>Tak</target>
  28.                  </trans-unit>
  29.                  <trans-unit id="7">
  30.                        <source>no</source>
  31.                        <target>Nie</target>
  32.                  </trans-unit>
  33.                  <trans-unit id="8">
  34.                        <source>no result</source>
  35.                        <target>Brak rekordów</target>
  36.                  </trans-unit>
  37.  
  38.                  <trans-unit id="9">
  39.                        <source>delete</source>
  40.                        <target>Usuń</target>
  41.                  </trans-unit>
  42.                  <trans-unit id="10">
  43.                        <source>Are you sure?</source>
  44.                        <target>Czy na pewno chcesz wykonać tą operację?</target>
  45.                  </trans-unit>
  46.                  <trans-unit id="11">
  47.                        <source>list</source>
  48.                        <target>Powrót do listy</target>
  49.                  </trans-unit>
  50.                  <trans-unit id="12">
  51.                        <source>save</source>
  52.                        <target>Zapisz</target>
  53.                  </trans-unit>
  54.                  <trans-unit id="13">
  55.                        <source>save and add</source>
  56.                        <target>Zapisz i dodaj następny</target>
  57.                  </trans-unit>
  58.                  <trans-unit id="14">
  59.                        <source>Your modifications have been saved</source>
  60.                        <target>Zmiany zostały pomyślnie zapisane</target>
  61.                  </trans-unit>
  62.            </body>
  63.      </file>
  64. </xliff>


Ten post edytował phpion.com 1.01.2008, 21:12:38
Go to the top of the page
+Quote Post
magnus
post
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 15.11.2007
Skąd: Nowogród Bobrz.

Ostrzeżenie: (0%)
-----


Odkopuję dość stary wątek, ale jedyny jaki znalazłem pasujący.

Może ktoś będzie wiedział jak konkretnie przetłumaczyć ilości z polską odmianą. Czyli:
1 result = 1 wynik
2-4 results = 2-4 wyniki
5+ results = 5+ wyników

To nie działa:
Kod
<trans-unit id="15">
  <source>[0] no result|[1] 1 result|[2,4] %1% results|(5,+Inf] %2% results</source>
  <target>[0] Brak wyników|[1] 1 rekord|[2,4] %1% wyniki|(5,+Inf] %2% wyników</target>
</trans-unit>


Natomiast taka konstrukcja bez problemu:
Kod
<trans-unit id="6">
  <source>[0] no result|[1] 1 result|(1,+Inf] %1% results</source>
  <target>[0] brak wyników|[1] 1 wynik|(1,+Inf] %1% wyników</target>
</trans-unit>


Próbowałem z różnymi kombinacjami, ale bez skutku a nie znalazłem dokumentacji, która by to wyjaśniła (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Więc może ktoś wie jak to zapisać??
Go to the top of the page
+Quote Post
misiaczekmarek
post
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

Ostrzeżenie: (0%)
-----


witam,

to chyba najwłaściwszy temat do zadania mojego zapytania.

czy można, a jeśli tak to gdzie ustawić opcje aby genertaor crud generował automatycznie teksty dostosowane do wymagań i18n czyli używał helpera __()?

np. żeby zamiast lini:

Kod
<a href="<?php echo url_for('sl_firmy/create') ?>">Create</a>


wygenerował:

Kod
<a href="<?php echo url_for('sl_firmy/create') ?>"><?php echo __('Create')?></a>



ręczne zmiany nie uśmiechają mi się (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif)

Ten post edytował misiaczekmarek 21.11.2008, 16:25:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 03:02