elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] cargar traducciones para web con memcached
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] cargar traducciones para web con memcached  (Leído 1,786 veces)
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
[Resuelto] cargar traducciones para web con memcached
« en: 7 Mayo 2015, 22:55 pm »

Hola buenas. Necesito crear un sistema de traduccion para una web y estoy pensando en usar memcached para que no disminuya el rendimiento al tener que cargar tantos textos.

La idea sería guardar todo en una tabla de base de datos, cargarlo en la memoria y de ahí a los clientes. Pero es la primera vez que voy a usar esto y no estoy muy seguro de como hacerlo.

De todas formas agradezco cualquier otra surgerencia para hacer esto, pero no creo que vaya a cargar directamente de la db o de un fichero xml o bueno no se si hay alguna manera para que no sea lento pero creo que lo mejor será usar memcache.

Primero se detectará el lenguaje del navegador:

Código
  1. $languages = array('en', 'es', 'fr', 'de', 'it');
  2.  
  3. $preference = (isset($_COOKIE['lang'])) ?
  4.    $_COOKIE['lang'] : ((isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ?
  5.        Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']) : '');
  6.  
  7. $locale = Locale::lookup($languages, $preference, false, 'en');

No estoy seguro de como hacer esto, pero supongo que a peticion de la pagina cargada se enviarian los textos correspondientes o ¿de que manera podría hacer esto?

Gracias!


« Última modificación: 16 Mayo 2015, 19:18 pm por #!drvy » En línea

poco_digo

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: cargar traducciones para web con memcached
« Respuesta #1 en: 9 Mayo 2015, 21:41 pm »

Hola observa como lo solucioné aquí
https://github.com/Mrbytes/U-232-V3-custom/commit/4783dfdf8cc30e8f8fc5c4b2a8bbdc1e56f0f829
Usé Sqlite3 y dos funciones que ya había implementadas en database.php [take_out_remarks () y split_sql_file ()]
Creé una función  [____($words)] observa como le paso el texto original en ingles, con objeto de que me lo busque en el locale del cliente que le pasa el navegador.
El hecho de dejar el texto original en ingles dentro del script PHP tiene como objeto el poder localizar con más facilidad la ubicación de los textos dentro del código.

El uso de sqlite3 y una DB in-memory hace que no sea preciso credenciales para conectarse a ella. Por otro lado no usé memcache por que su uso haria redondantes los datos en memoria, y como ves sólo carga en memoria los locales que se soliciten, no todos (mira como hice uso del comando CASE en el sql). Sustituye el NULL por el texto traducido correspondiente.

La tabla script_texts tiene 9 campos de traducciones, pero puedes añadirle más o quitarle los que no creas necesarios.

Saludos


« Última modificación: 9 Mayo 2015, 21:48 pm por poco_digo » En línea

gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: cargar traducciones para web con memcached
« Respuesta #2 en: 10 Mayo 2015, 16:28 pm »

Muchas gracias, lo estoy adaptando a mis necesidades.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Chrono Cross (Traducciones)
Juegos y Consolas
LordKevin 0 1,453 Último mensaje 9 Junio 2008, 20:06 pm
por LordKevin
{RESUELTO}Cargar documento dentro de una celda, mediante javascript+jquery « 1 2 3 »
Desarrollo Web
|Miguel| 23 15,224 Último mensaje 28 Marzo 2012, 00:30 am
por |Miguel|
[Resuelto] cargar formulario en un contenedor
PHP
d91 1 2,018 Último mensaje 1 Junio 2015, 13:48 pm
por d91
[Resuelto] cargar secuencias de comandos no autorizadas
Desarrollo Web
basickdagger 2 4,076 Último mensaje 14 Agosto 2015, 10:32 am
por #!drvy
[Resuelto] no puedo cargar controllers en cakePHP
PHP
basickdagger 2 2,064 Último mensaje 15 Julio 2019, 09:43 am
por tosk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines