Telepieza es un mezcla de ayuda, información, opinión, ocio, negocio y diversión, esperamos que todos vosotros os sintaís en vuestra casa.

Archivo de la Categoría Programación

Cuando realizas una página web pensando en todas las culturas e idiomas , tienes que tener en cuanta estos consejos :

1.- Google no está en todos los continentes, por ejemplo en Asia domina Baidu.

2.- El famoso YouTube está prohibido en China, alli el que funciona se llama Youku.

3.- En programación, existen funciones automáticas que cambian las palabras de minúsculas a mayúsculas, recuerda que muchos idiomas no existe las mayúsculas y el efecto es que no salen las letras.

4.- Cuando diseñas una página web necesitas comprender el significado de los colores en cada cultura. El significado del color es fundamental para un pueblo, por ejemplo el blanco en china significa muerte, sus colores preferidos son el dorado y el rojo, aquí en nuestra cultura el significado de los colores son diferentes.

5.- El mundo está lleno de ordenadores conectados a Internet. El navegador más utilizado es el Explorer 6 y muchos de ellos tienen una antigüedad superior a 5 años con tarjetas de vídeo no superior a 512 Kb y resolución de 800×600.

6.- Si tú sitio web está pensado para ordenadores de 1024×768,  millones de ordenadores no podrán ver tú página web, por lo explicado en el punto 5.

7.- En la escuela , en el trabajo, en las noticias te explican que los navegadores más utilizados en el mundo son IE, mozilla, chrome …, pero se olviden de que un pueblo como los chinos utilizan uno llamado 360 IE en chino ……..

8.- Nuestra cultura  se expresa y escribe con caracteres y en otras culturas en símbolos. Lo explico porque un carácter se puede leer con font 10, pero cuando estamos visualizando sí­mbolos es a font 12 o superior.

9.- Si quieres armonizar una página web en varios idiomas, recuerda que la lengua expresada con sí­mbolos es más ancha que la expresada en caracteres.

10.- Si pides opinión a personas de otras culturas, puede que nunca te digan que no, pero si no les gusta la página no entrarán nunca a tu web.

11.- Si realizas una web y tu vecino o amigo la ve lenta, en otros continentes como el Asiatico o el Africano ni la verán, sus líneas de comunicaciones son más penosas que las nuestras.

12.- Una página web multi-idioma que se aprecie tiene que enseñar la página principal en el idioma que el usuario tiene en su ordenador o navegador.

 Existen muchas técnicas diferentes para buscar el cambio de una divisa en lenguaje PHP en otro servidor que no sea el tuyo (Por ejemplo : European Center Bank). Generalmente el cambio de las divisas del día lo dan servidores de Bancos, Instituciones Económicas, Prensa especializada en economía, Las Bolsas de todo el Mundo ,  los buscadores como yahoo, google y demás organizaciones que están especializados en Importación/Exportación de Divisas.

 Para poder leer un fichero HTML en otro ordernador en PHP podemos utilizar la funcion :  file_get_contents()  y para poder leer un fichero en otro servidor en XML la funcion : simplexml_load_file()

Dichas funciones funcionan perfectamente si las utilizamos en programa PHP que sus máquinas son controladas por nuestro Dpto. Informático o en ordenadores locales con conexión a Internet.

 Las técnicas que estamos utilizando para buscar el valor de divisa en los formatos ya explicados anteriormente, son muy factibles porque dichas organizaciones nos dejan dichos ficheros en sitios públicos, para que otras compañías puedan acceder a leer libremente dichos ficheros.

 Pero la sorpresa es cuando una aplicación realizada en PHP  la ejecutamos en un HOSTING,  y vemos con sorpresa que dichas funciones nos dan error,  porque el Servidor del Hosting no permite acceder a otros Ordenadores con dichas funciones para leer los ficheros que nosotros necesitamos en nuestra aplicación.

Para solucionar el problema existe una función : fsockopen() que nos puede ayudar a leer ficheros HTML y TXT, para poder leer ficheros de otros servidores sin que el HOSTING nos corte el acceso a las máquinas remotas que deseamos acceder.

La funcion fsockopen()  abre una conexión de dominio Internet o Unix via sockets. su descripción es : 

   int fsockopen( string hostname, int port [, int errno [, string errstr [, double timeout]]])

 fsockopen() : Inicia una conexión de dominio Internet  o Unix.

 Para el domino Internet, abrirá una conexión TCP hacia el ordenador hostname en el puerto port.

 Para el dominio Unix, hostname se usará como ruta al socket, port debe ser 0 para este caso, el parámetro opcional timeoutse puede usar para especificar un timeout en segundos para establecer la conexión.

fsockopen() devuelve un puntero a fichero, el cual se puede usar junto con las otras funciones de ficheros (como fgets(), fgetss(), fputs(), fclose(), feof()).

En el siguiente post realizaremos un programa con fsockopen() para extraer el cambio de la divisa desde un servidor.

 En las aplicaciones por Internet cada vez es más popular el soportar varios idiomas a la vez. Existe una reglamentación el ISO-639 que regula el idioma. Tiene que ser dos dígitos y en minúsculas.

La lista está en : http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt

 Existe otro reglamento el ISO-3166 que regula los países. Tienen que ser dos dígitos y en mayúsculas.

La lista está en : http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html   
 
 Para indicar un idioma y un país en concreto se unen los dos dígitos en minusculas del idioma y los dos dígitos del país en mayúsculas unidos por un guión _.

Varios ejemplos :

  • “es_ES”   Español es España.
  • “ca_ES”   Catalán en España. 
  • ‘es_MX”  Español en Mexico.

Todo esto lo explico porque cada vez más se implementan los idiomas en lenguajes de programación orientados a Objetos como el JAVA , C++ y el PHP, que pueden tener la clase locale para gestionar los idiomas, dicha clase se regula según la reglamentación ISO-639 e ISO-3166.

Les dejo abajo todas las posibles combinaciones que existen entre los idiomas y los paises :

Value Description   Value Description
ar Arabic   fi Finnish
ar_AE Arabic (United Arab Emirates)   fi_FI Finnish (Finland)
ar_BH Arabic (Bahrain)   fr French
ar_DZ Arabic (Algeria)   fr_BE French (Belgium)
ar_EG Arabic (Egypt)   fr_CA French (Canada)
ar_IQ Arabic (Iraq)   fr_CH French (Switzerland)
ar_JO Arabic (Jordan)   fr_FR French (France)
ar_KW Arabic (Kuwait)   fr_LU French (Luxembourg)
ar_LB Arabic (Lebanon)   hi_IN Hindi (India)
ar_LY Arabic (Libya)   hr Croatian
ar_MA Arabic (Morocco)   hr_HR Croatian (Croatia)
ar_OM Arabic (Oman)   hu Hungarian
ar_QA Arabic (Qatar)   hu_HU Hungarian (Hungary)
ar_SA Arabic (Saudi Arabia)   id Indonesian
ar_SD Arabic (Sudan)   is Icelandic
ar_SY Arabic (Syria)   is_IS Icelandic (Iceland)
ar_TN Arabic (Tunisia)   it Italian
ar_YE Arabic (Yemen)   it_CH Italian (Switzerland)
be Belarusian   it_IT Italian (Italy)
be_BY Belarusian (Belarus)   iw Hebrew
bg Bulgarian   iw_IL Hebrew (Israel)
bg_BG Bulgarian (Bulgaria)   ja Japanese
ca Catalan   ja_JP Japanese (Japan)
ca_ES Catalan (Spain)   ko Korean
cs Czech   ko_KR Korean (Korea)
cs_CZ Czech (Czech Republic)   lt Lithuanian
da Danish   lt_LT Lithuanian (Lithuania)
da_DK Danish (Denmark)   lv Latvian
de German   lv_LV Latvian (Latvia)
de_AT German (Austria)   mk Macedonian
de_CH German (Switzerland)   mk_MK Macedonian (Macedonia)
de_DE German (Germany)   nl Dutch
de_LU German (Luxembourg)   nl_BE Dutch (Belgium)
el Greek   nl_NL Dutch (Netherlands)
el_GR Greek (Greece)   no Norwegian
en English   no_NO Norwegian (Norway)
en_AT English (Austria)   no_NO_NY Norwegian (Norway,Nynorsk)
en_AU English (Australia)   pl Polish
en_BR English (Brazil)   pl_PL Polish (Poland)
en_CA English (Canada)   pt Portuguese
en_CH English (Switzerland)   pt_BR Portuguese (Brazil)
en_DE English (Germany)   pt_PT Portuguese (Portugal)
en_DK English (Demark)   ro Romanian
en_ES English (Spain)   ro_RO Romanian (Romania)
en_FI English (Finland)   ru Russian
en_FR English (France)   ru_RU Russian (Russia)
en_GB English (Great Britain)   sk Slovak
en_HK English (Hong Kong)   sk_SK Slovak (Slovakia)
en_IE English (Ireland)   sl Slovenian
en_IN English (India)   sl_SI Slovenian (Slovenia)
en_IT English (Italy)   sq Albanian
en_JP English (Japan)   sq_AL Albanian (Albania)
en_KR English (Korea)   sr Serbian
en_MX English (Mexico)   sv Swedish
en_NL English (Netherlands)   sv_SE Swedish (Sweden)
en_NO English (Norway)   th Thai
en_NZ English (New Zealand)   th_TH Thai (Thailand)
en_SE English (Sweden)   tr Turkish
en_SG English (Singapore)   tr_TR Turkish (Turkey)
en_TW English (Taiwan)   uk Ukrainian
en_US English (United States)   uk_UA Ukrainian (Ukraine)
en_ZA English (South Africa)   vi Vietnamese
es Spanish   vi_VN Vietnamese (Vietnam)
es_AR Spanish (Argentina)   zh Chinese
es_BO Spanish (Bolivia)   zh_CN Chinese (China)
es_CL Spanish (Chile)   zh_HK Chinese (Hong Kong)
es_CO Spanish (Colombia)   zh_TW Chinese (Taiwan)
es_CR Spanish (Costa Rica)      
es_DO Spanish (Dominican)      
es_EC Spanish (Ecuador)      
es_ES Spanish (Spain)      
es_GT Spanish (Guatemala)      
es_HN Spanish (Honduras)      
es_MX Spanish (Mexico)      
es_NI Spanish (Nicaragua)      
es_PA Spanish (Panama)      
es_PE Spanish (Peru)      
es_PR Spanish (Puerto Rico)      
es_PY Spanish (Paraguay)      
es_SV Spanish (El Salvador)      
es_UY Spanish (Uruguay)      
es_VE Spanish (Venezuela)      
et Estonian      
et_EE Estonian (Estonia)      

logo_tomcat_60.gif Cuando instalas programas que necesitan el tomcat 6.0 , por ejemplo Openbravo , puedes quedarte sin memoria (help space) en la máquina virtual (JVM) del Tomcat 6.0.

 Tomcat 6.0 gestiona todos los host virtuales que se ejecutan  en el mismo proceso o procesos diferentes, eso significa poder tener problemas de recursos y sobre todo de memoria.

 Cuando iniciamos JVM, asigna una cantidad fija de memoria, si se ejecutan varios JVM, esa cantidad puede ser demasiado elevada  (Problemas con el servidor) o demasiado escasa (Problemas de memoria  – OutOfMemory – ).

Tomcat 6.0 tiene la posibilidad de configurar mediante parámetros la configuración de la pila dinámica de memoria.

Las opciones que puede establecer son :

  • Tamaño inicial de la pila de Java : Parámetros -Xms
  • Tamaño máximo de la pila de Java : Parámetro -Xmx
  • Tamaño de la pila de proceso de Java ; Parámetro -Xss
  • Tamaño Máximo Memoria Permanente : Parámetro :  -XX:MaxPermSize

Un Ejemplo :

  • Para establecer un tamaño inicial     de 384Mb  : -Xms384m
  • Para establecer un tamaño máximo de 512Mb  : -Xmx512m
  • Para establecer Memoria Permanente  256Mb  : -XX:MaxPermSize=256m

Buscamos el programa catalina.bat que está en la carpeta :   tomcat\bin\catalina.bat 

colocar estas dos instrucciones sobre la línea 70 :

set CATALINA_OPTS=-Xms384m -Xmx512m -XX:MaxPermSize=256m

set JAVA_OPTS=-Xms384m -Xmx512m -XX:MaxPermSize=256m

Existe otro fichero bat en la misma ruta llamado startup.bat, es aconsejable que también introduzcas dichas instrucciones sobre la línea 28 más o menos.
Lee el resto de esta entrada »

 Si desea contactar con telepieza, puede enviar un e-mail a: telepieza@telepieza.com.
Normas de uso y Politica de privacidad .Telepieza empezó el 20/12/2007 a las 18h (Hora Española).
 Ayude a financiar Telepieza en Internet, picando un anuncio de su interes en nuestro Weblog.