Jak zrobić tłumaczenie na stronie przy wyświetlaniu z bazy


(batmomobil) #1

Witam proszę o pomoc ponieważ nie wiem jak to zrobić,mianowicie zapisuje z formularza rejestracji z facebooka dane do bazy płeć użytkownika

$gender=$response['registration']['gender'];

i jest po angielsku.Moje pytanie jak zapisać lub jak wyświetlić by było po polsku.Proszę o jakąś podpowiedż???


(Grzelix) #2

Ty serio się pytasz?

$gender = $response['registration']['gender'] == "men" ? "mężczyzna" : "kobieta";

albo przy zapisie albo przy odczycie jak wolisz.


(batmomobil) #3

Odczytuje tak:

$gender=$row->gender ;

i jak dodam do tego

$gender=$row->gender == "male" ? "mężczyzna" : "kobieta";

to wyświetla u wszystkich kobieta.Jak zrobić,by rozróżniało płeć.Z fejsa zapisuje tak:male i female.Proszę o pomoc???


(ra-v) #4
var_dump($response['registration']) [/code]

Sprawdź co zwraca, potem zastosuj się do ww. instrukcji.


(Grzelix) #5
$gender= strpos($row->gender, "female") === false ? "mężczyzna" : "kobieta";

(batmomobil) #6

zwraca mi mężczyzna,a jak będzie kobieta to co zwróci???


(Drobok) #7

3posty wyżej ra-v dał ci odpowiedź.


(batmomobil) #8
var_dump($response['registration'])

zwraca

["gender"]=>

  string(4) "male"

,

var_dump($response['registration']['gender'] == "male" ? "mężczyzna" : "kobieta");

zwraca

string(9) "mężczyzna"

.Wolałbym to zrobić przy odbieraniu! !!


(Drobok) #9

Wszystko inne niż female zwróci ci mężczyzna


(batmomobil) #10

Drobok,nie kumam za bardzo tego,ale

$gender= strpos($row->gender, "female") === false ? "mężczyzna" : "kobieta";

jeśli jest male to zwraca mężczyzna,jak jest female to zwraca kobieta.Chyba by było dobrze,tylko jeszcze jedno bo jak jest pole gender puste w bazie to wyświetla automatycznie mężczyzna,a powinno być puste.Jak to jeszcze poprawić???


(kostek135) #11

Oszczędź sobie kłopotu na przyszłość i daruj sobie "lokalizację na ifach" (szczerze takiego amatorskiego pomysłu to się nie spodziewałem), bo ten system jest całkowicie nieskalowalny. Co jeśli za przysłowiowy dzień, dwa potrzebny będzie francuski, hiszpański, etc? W bazie danych, w ogóle w całym systemie powinieneś mieć klucze (tego co ma być tłumaczone), a po wybraniu odpowiedniej lokalizacji podstawić odpowiedni słownik, gdzie dzięki kluczowi odnajdziesz przypisaną doń wartość. Zatem powinieneś stworzyć klasę zarządcy tłumaczeń, który znajduje odpowiednia strukturę typu i na tej podstawie wyciąga tłumaczenie. Najlepiej gdyby to był słownik, słowników (albo mapa map). Pierwszy poziom zawierałby jako klucz skrót lokalizacji, albo nazwę kraju, języka - ważne, że unikalne i intuicyjne. Na tej podstawie do zarządcy mówiłbyś który słownik ma załadować. Następnie docelowe klucze i wartości użyte w tłumaczeniu.


(batmomobil) #12

Wszystko fajnie,ale ja nie wiem jak to zrobić,nigdy nie instalowałem pakietów językowych w bazie,gdzie są te klucze i jak to się robi???Zrobiłem jak koledzy wyżej pisali,czyli przed zapisem

$gender = $response['registration']['gender'] == "male" ? "mężczyzna" : "kobieta";

i działa.Jeszcze zwraca

[user] => Array

        (

            [country] => pl

            [locale] => pl_PL

        )

do czego to przydatne???