Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 31.03.24
Príspevky: 450
Témy: 198
Bydlisko: Poprad-okolie
Príspevok NapísalOffline : 03.04.2016 12:20

Ahojte, ako tak robím tú PHP hru, chceli by sme ju raz dokončiť globálne a teda by sme do hry radi zabudovali jazyky. Vedel by nám niekto poradiť, ako najjednoduchšie nato? IF využívam napríklad pre frakcie frakciu 0 1 2 3 stále s ifkom takže if by som nemohol použiť pre ďalšie polia myslím. Kódy sú už teraz dosť dlhé.
Dávam ako príklad časť z jedného kód a skúste poradiť, ako by bolo najvýhodnejšie ho upraviť.
Kód:
if(isset($_POST['register'])){
   $username = protect($_POST['username']);
   $password = protect($_POST['password']);
   $email = protect($_POST['email']);
   
   if($username == "" || $password == "" || $email == ""){
      echo "Na niečo si zabudol!";
   }elseif(strlen($username) > 20){
      echo "Tvoje meno je veľmi dlhé!";
   }elseif(strlen($email) > 100){
      echo "Tvoj e-mail je veľmi dlhý!";
   }else{
      $register1 = mysql_query("SELECT `id` FROM `user` WHERE `username`='$username'") or die(mysql_error());
      $register2 = mysql_query("SELECT `id` FROM `user` WHERE `email`='$email'") or die(mysql_error());
      if(mysql_num_rows($register1) > 0){
         echo "Toto meno je už používané!";
      }elseif(mysql_num_rows($register2) > 0){
         echo "Tento e-mail je už používaný!";


Offline

Užívateľ
Užívateľ
Viacjazyčnosť - ako nato?

Registrovaný: 21.09.13
Prihlásený: 22.04.24
Príspevky: 2111
Témy: 77
Bydlisko: Považská By...
Príspevok NapísalOffline : 03.04.2016 13:24

Neviem či to je najlepší spôsob ale teraz má napadlo
Podľa užívateľovi ip mu ulozis do cookies z akého štátu je (sk/cz/en/...)
Vytvoriš si "slovníky" napr. slovník_sk.php/slovník_en.php, tam si zadefinuješ jednotlivé frázy
slovník_sk.php: zobraziť
<?php
define ('OBSADENE_MENO', 'meno je obsadené');

Použiješ include('slovník_'.$stat.'.php'); do premennej $stat si hodiš štát ktorý vytiahneš z cookies
echo "meno je obsadené"; nahradiš za echo OBSADENE_MENO;
Nezabudni že cookies je tiež od užívateľa a je treba to ošetrovať.
A ešte, die(mysql_error()) je zbytočné, ak nastane chyba uživatelovicje zbytočne vedieť čo sa stalo a teda nevypisuj nič lebo by to mohlo pomôcť prípadnému zaskodnikovi.







_________________
Nesnívaj svoj život, ale ži svoj sen.
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 03.04.2016 16:00

Buď tak, alebo často je v kóde krajšie, keď tam je skuočná veta a nie nejaký alias.
Preto sa to zvykne robiť takouto funkciou:
Kód:
echo trans('This is a sentence to be translated');


A funkcia trans bude implementovať preklad. A je veľa možností, ako na to.
Úplne v najjednoduchšej forme, napr. v ini súbore. Napr. v súbore lang_sk.ini bude
Kód:
This is sentence to be translated = Toto je veta na preklad


V kóde potom len urobíš podľa detekovaného jazyka
Kód:
function trans( $sentence ) {
  global $lang; //detekovany jazyk
  $texts = parse_ini_file('lang_' . $lang .'.ini');
  return $texts[$sentence];
}


Samozrejme chce to trocha ošetriť a domyslieť - mať texty niekde globálne načítané, aby si ich nemusel loadovať pri každom preklade vety.

No a preklady si môžeš dať do spomínaného .ini, alebo kľudne json, databáze, to je fuk.

Výhody:
1. V kóde je ozajstná veta v nejakom jazyku (akože "vývojovom" jazyku).

2. Kým žiadne jazyky nemáš, netreba ti ani žiadny súbor s prekladmi. Urobíš jednoducho
Kód:
function trans( $sentence ) {
  return $sentence;
}

Keď pribudnú preklady, upravíš iba funkciu trans.

3. výhoda/nevýhoda - Keď použiješ vo funkcii trans text, ktorý nemá preklad, môžeš zobraziť vetu v pôvodnom jazyku (žiadna error hláška).
Kód:
function trans( $sentence ) {
  ...
  return isset($texts[$sentence]) ? $texts[$sentence] : $sentence;
}


Nevýhody:
1. Vety sa musia zhodovať. Keď upravíš vetu v kóde, musíš ju zmeniť aj v každom súbore prekladu (lebo slúži ako index).
2. Keď chceš zmeniť vetu vo "vývojovom" jazyku, musíš ísť do kódu.

Obe veci sa dajú vyriešiť prekladovým súborom z "vývojového" jazyka na ten istý. V súbore teda bude preklad napr z anglického do anglického jazyka. Ale v kóde sa vety nechajú a budú sa upravovať len tie preklady.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 03.04.2016 18:09

Nebolo by jednoduchšie použiť napr. gettext?

// Spojený príspevok Ned 03.04.16 18:13

Kraliček píše:
Podľa užívateľovi ip mu ulozis do cookies z akého štátu je (sk/cz/en/...)
Ja osobne by som použil nastavenia jazykov v prehliadači.


Offline

Skúsený užívateľ
Skúsený užívateľ
Viacjazyčnosť - ako nato?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 03.04.2016 18:26

Samozrejme že bolo, už len kvôli tomu že je to štandard presahujúci PHP. Ďalší programátori potom nemusia študovať, čo tým vlastne umelec myslel.







_________________
C#, PHP, ...
Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. OC pamati, ako nato? resp ako :)

v Biosy a ladenie výkonu

10

822

02.10.2007 19:14

eXistenZ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nato?

v Redakčné systémy

3

890

23.03.2007 18:55

altt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nato (skrinka) ?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PC skrinky a zdroje

32

1167

15.07.2015 21:14

Jalo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Ako Nato] Internet - Router

v Články

13

4713

22.09.2010 8:40

dodisenko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nova siet, ako nato?

v Siete

4

393

15.01.2015 11:40

mirom Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. !Neviem ako nato...predny ventilator!

v Modifikácie, návody a projekty

15

2892

21.06.2010 11:01

mimkork Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zabezpečenie proti XSS - ako nato

v PHP, ASP

1

442

05.09.2016 13:41

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. webcam na stranke ako nato ?

v Ostatné

3

740

15.06.2008 11:57

Numline1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vymazať už vymazané?? :-)) ako nato

v Ostatné programy

3

495

09.12.2010 21:12

DAVE1979 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pust to talk, ako nato?

v Mobilné zariadenia

1

905

17.03.2008 15:23

brm Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Reinštálacia Windows XP - Ako nato + Internet

v Operačné systémy Microsoft

5

2590

14.03.2007 20:50

zmija31 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Debian uncache? Operačnej Pamäte... Ako nato?

v Operačné systémy Unix a Linux

4

754

23.08.2009 17:51

ssssss Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ventilator na 110% ci 130% ??? ako nato?

v Elektronika

7

925

30.03.2008 13:29

Harlequin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rada ako nato (ci sa to da)

v PHP, ASP

1

650

22.03.2007 12:30

itsgoingd Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Obrazok vždy na spodku okna (ako nato)

v HTML, XHTML, XML, CSS

3

503

02.02.2011 16:20

allan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Domáca WiFi sieť - ako nato? Rozdelenie podsietí, IP Help?

v Siete

7

960

27.01.2013 0:16

Vikinger Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra