Php prekladac stranek – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Php prekladac stranek – PHP – Fórum – Programujte.comPhp prekladac stranek – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
tribalcz0
Super člen
26. 1. 2014   #1
-
0
-

ahoj mam statickou třídu settings kterou předávámnapříč aplikací uzivatelovo nastavení tří da je totozná pro všechny uživatele jedná se resp o nastavení UI jako jsou vzhled apod. nastavení systemu kde predavam napriklad povolene formaty fotek aj. veci pro nahrani se jmenuje jinak ale to neni predmetem tohoto dotazu jde mi o vytvoření slovníku který bude překládat web podle přání uživatelů tj uživatel si nastavá že jeho primárníím jazykem je němčina tak se mu po loginu a pomocí cookies pred loginem zobrazí stránka v němčině pokud nebude prihlášený a v cookiees nebude záznam tak se bude vše zobrazovat v angličtině ale nevím jak na to napadlo mě následující všechny hlášk a texty jako názvy menu apod uložit do databáze a pak tyto údaje předat do pole které by se potaralo o preklad pro tento případ mě napadlo následující řešení používám ho pro odtrsanění diakritiky pri nahravani fotek u multibyte formátování tj. UTF-8 apod.

$prevodni_tabulka = Array(
  'ä'=>'a',
  'Ä'=>'A',
  'á'=>'a',
  'Á'=>'A',
  'à'=>'a',
  'À'=>'A',
  'ã'=>'a',
  'Ã'=>'A',
  'â'=>'a',
  'Â'=>'A',
  'č'=>'c',
  'Č'=>'C',
  'ć'=>'c',
  'Ć'=>'C',
  'ď'=>'d',
  'Ď'=>'D',
  'ě'=>'e',
  'Ě'=>'E',
  'é'=>'e',
  'É'=>'E',
  'ë'=>'e',
  'Ë'=>'E',
  'è'=>'e',
  'È'=>'E',
  'ê'=>'e',
  'Ê'=>'E',
  'í'=>'i',
  'Í'=>'I',
  'ï'=>'i',
  'Ï'=>'I',
  'ì'=>'i',
  'Ì'=>'I',
  'î'=>'i',
  'Î'=>'I',
  'ľ'=>'l',
  'Ľ'=>'L',
  'ĺ'=>'l',
  'Ĺ'=>'L',
  'ń'=>'n',
  'Ń'=>'N',
  'ň'=>'n',
  'Ň'=>'N',
  'ñ'=>'n',
  'Ñ'=>'N',
  'ó'=>'o',
  'Ó'=>'O',
  'ö'=>'o',
  'Ö'=>'O',
  'ô'=>'o',
  'Ô'=>'O',
  'ò'=>'o',
  'Ò'=>'O',
  'õ'=>'o',
  'Õ'=>'O',
  'ő'=>'o',
  'Ő'=>'O',
  'ř'=>'r',
  'Ř'=>'R',
  'ŕ'=>'r',
  'Ŕ'=>'R',
  'š'=>'s',
  'Š'=>'S',
  'ś'=>'s',
  'Ś'=>'S',
  'ť'=>'t',
  'Ť'=>'T',
  'ú'=>'u',
  'Ú'=>'U',
  'ů'=>'u',
  'Ů'=>'U',
  'ü'=>'u',
  'Ü'=>'U',
  'ù'=>'u',
  'Ù'=>'U',
  'ũ'=>'u',
  'Ũ'=>'U',
  'û'=>'u',
  'Û'=>'U',
  'ý'=>'y',
  'Ý'=>'Y',
  'ž'=>'z',
  'Ž'=>'Z',
  'ź'=>'z',
  'Ź'=>'Z'
);
 
$text = strtr($pole[], $prevodni_tabulka);

samozřejmě bych místo znaků přepisoval celá slova a věty

u tohoto řešení by se nabízelo mnoho problémů ale s tím bych si poradil pomocí nějakého šikovného rozdělení dat v db je to jedine reseni co me napadlo je mi jasné že to není jediné řešení ale je to jediná věc co mě napadla

Nahlásit jako SPAM
IP: 178.209.131.–
Kit+15
Guru
26. 1. 2014   #2
-
0
-

#1 tribalcz

<?php
$text = iconv('UTF-8', 'ASCII//TRANSLIT', $vstup));
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
tribalcz0
Super člen
26. 1. 2014   #3
-
0
-

tuto knihovnu trovhu znam ale nepouzivam ji mohl bys to trochu rozvest??

Nahlásit jako SPAM
IP: 178.209.131.–
Kit+15
Guru
26. 1. 2014   #4
-
0
-

#3 tribalcz
Co na tom chceš rozvádět? Ta funkce odstraní diakritiku. To jsi přece chtěl. Zbytek je v dokumentaci.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
tribalcz0
Super člen
26. 1. 2014   #5
-
0
-

#4 Kit
uh no to neni tak pravda puvodni dotaz byl na preklad stránky ta prevodni tabulka co sem tam dal byl jen napad jak stanku prekladat jen jsem podotknul ze tuto funkci pouzivam k odstraneni diakritiky tudiz by mozna mohla jit pouzit i jako prekladac tj. 

$prevodni_tabulka = Array(
  'registrace'=>'registration',
  'prihlaseni'=>'login',
  'smazat'=>'delete',
//atd.
);
 
$text[] = strtr($pole[], $prevodni_tabulka);


s tim ze veskere texty urcene k prelozeni  by se ulozily do promenene $pole[] a pak by se to zpetne vytridilo

Nahlásit jako SPAM
IP: 178.209.131.–
Kit+15
Guru
26. 1. 2014   #6
-
+1
-
Zajímavé

#5 tribalcz
Pro vytváření slovníků používám soubory INI a funkci parse_ini_file(). Dají se tam vkládat celé věty.

registrace = registration
prihlaseni = login
smazat = delete
paticka = Tady mohu mít třeba patičku webu

Pokud by těch slovíček bylo víc než několik set, zvážil bych použití GDBM nebo DB4.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
tribalcz0
Super člen
26. 1. 2014   #7
-
0
-

#6 Kit
ok dky přesně tohle jsem potřeboval takze nemusim ani nijak specifikovat co chci prelozit proste mi to prelozi vse na strance pokud to mam v souboru INI tj staci udelat jednouducho podminku ktera zjisti nastaveni webu ze staticke tridy  v pripade vetsiho poctu jazyku by to byl opruz takez yová hláška že se to zjednodusilo nejakou databazi jazyku kde by byli jen zkratky ktere by se vypisovaly pokud by takovy jazyk v db existoval tak by se tránka prelozila pokud ne tak by se obsah zobrazil v aj

//napr.

$lang = settings::language;

if($lang == 'cz') 
{
	parse_ini_file(./lang/cz.ini);
}
elseif ($lang == 'en')
{
	parse_ini_file(./lang/en.ini);
}
//atd

nebo  

$result = Database::query('SELECT `country` FROM `language`');
$result->FetchAll()

$lang = Settings::lang;

if($lang == $result)
{
	parse_ini_file(./lang/" . $lang . ".ini);
} else {
	parse_ini_file(./lang/en.ini);
{
Nahlásit jako SPAM
IP: 178.209.131.–
Řešení
Kit+15
Guru
26. 1. 2014   #8
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

#7 tribalcz 

<?php
$lang = settings::language;
$slovnik = parse_ini_file(
    file_exists("./lang/$lang.ini") ? "./lang/$lang.ini" : "./lang/en.ini"
);
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
tribalcz0
Super člen
26. 1. 2014   #9
-
0
-

#8 Kit
diky na overeni existence jsem zapomel a pravda ze ternarni vyraz to zjednoduší

Nahlásit jako SPAM
IP: 178.209.131.–
Kit+15
Guru
26. 1. 2014   #10
-
0
-

#9 tribalcz
Také jsi zapomněl výsledek funkce parse_ini_file() vložit do proměnné $slovnik.

parse_ini_file() zvládá i dvourozměrné slovníky.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
28. 1. 2014   #11
-
0
-

Ja zase s oblibou pouzivam csv tabulky (sloupce oddeleny strednikem). Tez se doporucuje xml.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
tribalcz0
Super člen
28. 1. 2014   #12
-
0
-

#10 Kit
uh co myslis temi dvourozmernymi slovníky???

Nahlásit jako SPAM
IP: 178.209.131.–
Kit+15
Guru
28. 1. 2014   #13
-
0
-

#12 tribalcz
To, co je popsáno ve specifikaci INI: 

[cs]
delete = smazat
header = Hlavička webu
footer = Patička webu

[en]
delete = delete
header = Page header
footer = Page footer

[de]
delete = löschen
header = Seitenkopf
footer = Ende der Seite

 

<?php
$slovnik = parse_ini_file('slovnik.ini', true);
echo $slovnik['cs']['header'];
Ber to jen jako příklad. Dávat všechny jazyky do jednoho souboru není výhodné.

Nahlásit jako SPAM
IP: 195.113.151.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
tribalcz0
Super člen
4. 2. 2014   #14
-
0
-

#13 Kit
Tak sem se konecne dostal k tomu slovniku ale nejde mi udelat aby to prekladalo automatick veskerz obsah jde to nejak????

Nahlásit jako SPAM
IP: 178.209.131.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý