sharedObject + System.capabilities.language (Selección de idioma)

keywordsSharedObject()

En este tutorial, presenta dos formas de crear un menú de selección de idioma, usando SharedObjecty System.capabilities.language.

sharedObject
Como sabrás, al igual que con JavaScript se pueden almacenar variables en coockies, con actionScript disponemos del objeto sharedObjectque puede almacenar datos en nuestro disco duro crando un archivo de texto con la extensión .sol.

En este caso, usaremos sharedObjectpara almacenar en el disco duro un valor que forzará a que una página web se abra en el idioma que el usuario seleccionó la última vez.

System.capabilities.language

La propiedad languagede la clase System.capabilitiesserá la que determine el lenguaje por defecto la primera vez que el usuario visita el sitio.

Por ejemplo si escribes en un documento flash:

Actionscript:
  1. trace(System.capabilities.language)
  2. // -- devuelve 'es' si  el lenguaje del sistema es el español
  3. // -- devuelve 'en' si  el lenguaje del sistema es el ingles, etc.

Para este ejemplo, he pensado en un menú con tres idiomas (español, francés e Inglés) de forma que si System.capabilities.languagedetecta otro idioma que no sea español 'es' o francés 'fr' el idioma será inglés 'en'.

Al principio he mencionado que habia ideado dos sistemas, en realidad es uno pero con dos comportamientos ligeramente distintos:

Sistema 1, mostrar siempre los tres botones de idioma

Aunque siempre se mostrará un mensaje de bienvenida en el idioma por defecto (el que marque el sistema en la primera visita o el seleccionado por el ususario en su última visita), siempre se dispondrá de la posibilidad de seleccionar otro idioma,

Actionscript:
  1. Stage.scaleMode = "noscale";
  2. // -- botones selección idioma
  3. import mx.controls.Button;
  4. createClassObject(Button, "es_btn", 1, {label:"Bienvenido", _x:100, _y:100});
  5. createClassObject(Button, "fr_btn", 2, {label:"Bienvenue", _x:210, _y:100});
  6. createClassObject(Button, "en_btn", 3, {label:"Wellcome", _x:320, _y:100});
  7. // -- almacenar idioma en sharedObject
  8. var setLanguage = function (lang) {
  9.     idioma_so.data.idioma = lang;
  10.     idioma_so.flush();
  11. };
  12. // -- saludar
  13. var saludar = function (idioma) {
  14.     switch (idioma) {
  15.     case "es" :
  16.         trace("Bienvenido");
  17.         break;
  18.     case "fr" :
  19.         trace("Bienvenue");
  20.         break;
  21.     default :
  22.         trace("Wellcome");
  23.     }
  24. };
  25. // -- crea un sharedObject para almacenar el idioma seleccionado
  26. // -- si ya está creado lo abre
  27. var idioma_so = SharedObject.getLocal("idioma");
  28. // --
  29. if (idioma_so.data.idioma == null) {
  30.     // -- 1 detecta el lenguaje del sistema
  31.     // -- 2 primera visita, se saludo en el idioma del sistema
  32.     var lenguajeSystem = System.capabilities.language;
  33.     saludar(lenguajeSystem);
  34. } else {
  35.     // -- saluda según el idioma establecido en sharedObject
  36.     saludar(idioma_so.data.idioma);
  37. }
  38. // -- seleccionar idioma y entrar
  39. // -- 1. almacena el idioma en sharedObject según botón pulsado
  40. // -- 2. abrir la página según idioma
  41. myButtonListener = new Object();
  42. myButtonListener.click = function(evt) {
  43.     switch (evt.target) {
  44.     case es_btn :
  45.         setLanguage("es");
  46.         // -- entrar en la página en español
  47.         break;
  48.     case fr_btn :
  49.         setLanguage("fr");
  50.         // -- entrar en la página en francés
  51.         break;
  52.     default :
  53.         setLanguage("en");
  54.         // -- entrar en la página en inglés
  55.     }
  56. };
  57. es_btn.addEventListener("click", myButtonListener);
  58. fr_btn.addEventListener("click", myButtonListener);
  59. en_btn.addEventListener("click", myButtonListener);

Sistema 2, mostrar un único botón (tras la primera visita)

En la primera visita, se muestra el idioma establecido por el sistema, en posteriores visitas, solo se mostrará un botón en el idoma seleccionado en la última visita del usuario.

Actionscript:
  1. Stage.scaleMode = "noscale";
  2. // -- botones selección idioma
  3. var createMenuLanguage = function (langButon) {
  4.     import mx.controls.Button;
  5.     switch (langButon) {
  6.     case "es" :
  7.         createClassObject(Button, "es_btn", 1, {label:"Bienvenido", _x:100, _y:100});
  8.         break;
  9.     case "fr" :
  10.         createClassObject(Button, "fr_btn", 2, {label:"Bienvenue", _x:100, _y:100});
  11.         break;
  12.     case "en" :
  13.         createClassObject(Button, "en_btn", 3, {label:"Wellcome", _x:100, _y:100});
  14.         break;
  15.     default :
  16.         createClassObject(Button, "es_btn", 1, {label:"Bienvenido", _x:100, _y:100});
  17.         createClassObject(Button, "fr_btn", 2, {label:"Bienvenue", _x:210, _y:100});
  18.         createClassObject(Button, "en_btn", 3, {label:"Wellcome", _x:320, _y:100});
  19.     }
  20. };
  21. // -- almacenar idioma en sharedObject
  22. var setLanguage = function (lang) {
  23.     idioma_so.data.idioma = lang;
  24.     idioma_so.flush();
  25. };
  26. // -- saludar
  27. var saludar = function (idioma) {
  28.     switch (idioma) {
  29.     case "es" :
  30.         trace("Bienvenido");
  31.         break;
  32.     case "fr" :
  33.         trace("Bienvenue");
  34.         break;
  35.     default :
  36.         trace("Wellcome");
  37.     }
  38. };
  39. // -- crea un sharedObject para almacenar el idioma seleccionado
  40. // -- si ya está creado lo abre
  41. var idioma_so = SharedObject.getLocal("idioma");
  42. // --
  43. if (idioma_so.data.idioma == null) {
  44.     // -- 1 detecta el lenguaje del sistema
  45.     // -- 2 primera visita, se saludo en el idioma del sistema
  46.     // -- 3 se presenta el menú de selección de lenguaje en varios idiomas
  47.     var lenguajeSystem = System.capabilities.language;
  48.     saludar(lenguajeSystem);
  49.     createMenuLanguage();
  50. } else {
  51.     // -- saluda según el idioma establecido en sharedObject
  52.     // -- se presenta botón en idoma almacenado en sharedObject
  53.     saludar(idioma_so.data.idioma);
  54.     createMenuLanguage(idioma_so.data.idioma);
  55. }
  56. // -- seleccionar idioma y entrar
  57. // -- 1. almacena el idioma en sharedObject según botón pulsado
  58. // -- 2. abrir la página según idioma
  59. myButtonListener = new Object();
  60. myButtonListener.click = function(evt) {
  61.     switch (evt.target) {
  62.     case es_btn :
  63.         setLanguage("es");
  64.         // -- entrar en la página en español
  65.         break;
  66.     case fr_btn :
  67.         setLanguage("fr");
  68.         // -- entrar en la página en francés
  69.         break;
  70.     default :
  71.         setLanguage("en");
  72.         // -- entrar en la página en inglés
  73.     }
  74. };
  75. es_btn.addEventListener("click", myButtonListener);
  76. fr_btn.addEventListener("click", myButtonListener);
  77. en_btn.addEventListener("click", myButtonListener);

Descarga Idiomas.zip

Idiomas.zip se ha descargado 375 veces.

2 Votes | Average: 5 out of 52 Votes | Average: 5 out of 52 Votes | Average: 5 out of 52 Votes | Average: 5 out of 52 Votes | Average: 5 out of 5 (2 votos, promedio: 5 sobre 5)
Loading ... Loading ...

0 Responses to “sharedObject + System.capabilities.language (Selección de idioma)”


  1. No Comments

Leave a Reply




Subscribe

Subscribe to my RSS Feeds