Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> parse_ini_file + zmienna, Optymalna metoda do zamiany zmiennej z parse_ini_file
Radeqq
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 10.05.2008

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


Wzorując się na personalizacji z Wikipedii stworzyłem prosty system zamiany języka. Dodatkowo zamienia on zmienne ({x1}, {x2} ...) z pliku pl.php na wartości podane w kolejnych polach tablicy, przykład poniżej:

funkcja:
  1. <?php
  2. przetlumacz(array(
  3. array('zla_wartosc_pola','pole1', '2222'),
  4. array('brak_tekstu'),
  5. );
  6.  
  7. function przetlumacz($tekst)
  8. {
  9. $tlumaczenie = @parse_ini_file('pl.php');
  10. foreach ($tekst as $key => $value)
  11. {
  12. $tekst[$key]=$tlumaczenie[$value[0]];
  13.  
  14. $i=1;
  15. while (isset($value[$i]))
  16. {
  17. $tekst[$key]=str_replace('{x'.$i.'}', $value[$i], $tekst[$key]);
  18. $i++;
  19. }
  20. }
  21. return $tekst;
  22. }
  23. ?>


przykładowa zawartość pl.php (pliku z tłumaczeniem)
  1. zla_wartosc_pola='Nieprawidłowa wartosc pola ("{x1}"). Zmieniono na "{x2}"'
  2. brak_tekstu='Tekst nie istnieje'


Wywołanie funkcji zwróci
Cytat
Nieprawidłowa wartosc pola ("pole1"). Zmieniono na "2222"
Tekst nie istnieje


Przykład działa prawidłowo ale zastanawiam się, czy można to zrobić w bardziej optymalny sposób, proszę o propozycje. W założeniu nie będzie więcej niż 5 dodatkowych argumentów ({x1}, {x2} ...).

Nie jestem zainteresowany Gettext .

Ten post edytował Radeqq 23.01.2012, 13:09:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie jestem zainteresowany Gettext .

Dlaczego? Skoro chcesz to zrobić w optymalny sposób, to gettext jest tu najlepszym wyjściem, a to z tej racji, że pliki tłumaczeń są kompilowane do postaci binarnej.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Radeqq
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 10.05.2008

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


A jak później przetwarzać argumenty {x1}, {x2} itp? Analogicznie preg_replace'm czy jakieś lepsze rozwiązanie?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 16:30