Autor | Zpráva | ||
---|---|---|---|
Jimmik Profil * |
#1 · Zasláno: 23. 10. 2014, 13:26:55
Ahoj, chtěl bych poprosit o názor na mé řešení překladu administrace.
Řešení: cs.json (soubor s překlady) { "Home": { "Accounts": "Seznam účtů" } } class.translator.php (překladač) class translator { public $sec; public $exp; public function __construct($sec) { $this->data = json_decode(file_get_contents(dirname(__FILE__).'/../../lang/'.$sec.'.json'),true); } public function translate($sec,$exp) { return ($this->data[$sec][$exp]); } } php volání: $lang = new translator($userdats['lang']); // Načtení jazyka $lang->translate('Home','Accounts'); // Překlad potřebné části Nejsem si jist, zda problematiku řeším správně. Jde mi hlavně o náročnost načítání, protože to nechci tahat z DB (abych ji nezatěžoval jednotlivými dotazy) a záznamů k přeložení může být i 1000. Tedy na každé stránce, kde je nějaký překlad se musí načítat soubor s tisíci záznamy. Samozřejmě soubor zmenším číselnými indexy místo používáním slovních indexů k překladu, ale i přesto mi to přijde celkem náročné. Je nějaký lepší způsob řešení nebo se nemusím, až tak zabývat tou velikostí souboru? |
||
Joker Profil |
#2 · Zasláno: 23. 10. 2014, 14:04:52
Jimmik:
Je to jeden z možných způsobů, jak se to dá udělat. „Jde mi hlavně o náročnost načítání, protože to nechci tahat z DB (abych ji nezatěžoval jednotlivými dotazy)“ Tak databázová analogie toho uvedeného by byl jeden dotaz ve stylu SELECT klic, preklad FROM preklady WHERE sekce = $sec .
„Samozřejmě soubor zmenším číselnými indexy“ To bych si rozmyslel, protože pak budou vznikat kódy typu: <h2>{315}</h2><div><strong>{28}</strong>: {54}</div> a nikdo se v tom nevyzná.
„nebo se nemusím, až tak zabývat tou velikostí souboru?“ Jestli záznamů může být „až tisíc“ a průměrný záznam bude mít řádově jednotky-desítky bajtů, bude celý soubor mít maximálně pár desítek kilobajtů. To asi nemá cenu řešit. |
||
Jimmik Profil * |
#3 · Zasláno: 23. 10. 2014, 14:15:42
Joker:
Děkuji moc, za Váš názor. |
||
Časová prodleva: 10 let
|
0