Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Podstawianie stringów
phpamator
post
Post #1





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


Wymyśliłem sobie, zrobić dwujęzyczna stronę (na potrzeby edukacyjne oczywiście) i trochę utknłem bo mi array_search owszem wyszukuje ale ... często źle, źle bo np w tablicy mam kilkakrotnie występujce ciagi znaków no i zamiast jeden raz powiela mi te stringi.
W sumie samo podstawianie to prosta funkcja, jak jednak zmusić, żeby array_search wyszukiwał mi tylko stringi które pasuja 1:1, poniższy kod działa całkiem dobrze:

  1. function transIt($data,$loc) {
  2. echo '<pre>';
  3. echo $data;
  4. $translation = array('Żadany: ' => 'Requested: ','Nowa licencja: ' => 'New licence: ','Oto twój nowy klucz licencyjny: ' => 'Here is your new license key: ','Keypoints - licencja' => 'Keypoints - license',', skopiuj i wklej w okienku `Klucz licencyjny w module` ' => ', copy and paste it into `License key in module` ',' i wciśnij `Zapisz`.' => ' and click `Save`.');
  5. if ($loc == 'pl-PL'){
  6. $key = array_search($data, $translacja);
  7. }else{
  8. $key = array_search($data, $translation);
  9. }
  10. echo $key;
  11. return $key;
  12. }

wyczytałem, że można też użyć preg_grep albo preg_match.
Podpowiedzcie, jaka metoda będzie najszybsza, najlepsza, najodpowiedniejsza?


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


No to tak:

Oczywiście duże uproszczenie (IMG:style_emoticons/default/smile.gif)

  1. function getTrans(string $key, string $lang = 'pl') {
  2. $langs = [
  3. 'pl' => [
  4. 'new_license' => 'Nowa licencja: ',
  5. ],
  6. 'en' => [
  7. 'new_license' => 'New licence: ',
  8. ]
  9. ];
  10.  
  11. return $langs[$lang][$key];
  12. }
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 06:02