diff options
Diffstat (limited to 'includes/js/dijit/demos/i18n.html')
-rw-r--r-- | includes/js/dijit/demos/i18n.html | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/includes/js/dijit/demos/i18n.html b/includes/js/dijit/demos/i18n.html new file mode 100644 index 0000000..b99f6b9 --- /dev/null +++ b/includes/js/dijit/demos/i18n.html @@ -0,0 +1,158 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>Dijit I18N Demo</title> + + <script> + var djConfig = {parseOnLoad: true, isDebug: true}, + locale, + lang, + bidi; + + // read in HREF arguments + if(window.location.href.indexOf("?") > -1){ + var str = window.location.href.substr(window.location.href.indexOf("?")+1); + var ary = str.split(/&/); + for(var i=0; i<ary.length; i++){ + var split = ary[i].split(/=/), + key = split[0], + value = split[1]; + switch(key){ + case "locale": + djConfig.locale = locale = value; + lang = locale.replace(/-.*/, ""); + break; + case "dir": + document.getElementsByTagName("html")[0].dir = value; + bidi = value; + break; + } + } + } + </script> + <style type="text/css"> + @import "../../dojo/resources/dojo.css"; + @import "../themes/tundra/tundra.css"; + @import "../themes/tundra/tundra_rtl.css"; + @import "../tests/css/dijitTests.css"; + @import "i18n/flags.css"; + </style> + + <script type="text/javascript" src="../../dojo/dojo.js"></script> + + <script language="JavaScript" type="text/javascript"> + dojo.require("dojo.data.ItemFileReadStore"); + dojo.require("dijit.Tree"); + dojo.require("dijit._Calendar"); + dojo.require("dijit.form.DateTextBox"); + dojo.require("dijit.form.CurrencyTextBox"); + dojo.require("dijit.form.NumberSpinner"); + dojo.require("dijit.form.ComboBox"); + dojo.require("dijit.Menu"); + dojo.require("dojo.parser"); + dojo.addOnLoad(function(){ + dojo.byId("locale").innerHTML = locale || "default"; + dojo.byId("dir").innerHTML = bidi || "default"; + }); + </script> + +</head> +<body class="tundra"> + <div dojoType="dojo.data.ItemFileReadStore" jsId="store" + url="i18n/data.json"></div> + <div dojoType="dijit.tree.ForestStoreModel" jsId="model" store="store" childrenAttrs="languages"> + <!-- Override all the data access functions to work from the I18N data store --> + <script type="dojo/method" event="getChildren" args="item, onComplete"> + switch(item.root ? "top" : store.getValue(item, "type")){ + case "top": + return store.fetch({query: {type:'continent'}, onComplete: onComplete}); + case "continent": + return store.fetch({query: {continent: store.getValue(item, "iso")}, onComplete: onComplete}); + case "country": + return dijit.tree.ForestStoreModel.prototype.getChildren.apply(this, arguments); + } + </script> + <script type="dojo/method" event="mayHaveChildren" args="item"> + if(item.root){ return true; } // top level + var type = store.getValue(item, "type"); + return (type == "continent" || type == "country"); + </script> + </div> + + <h1 class="testTitle" dir="ltr">Dijit I18N Demo (locale=<span id="locale"></span> dir=<span id="dir"></span>)</h1> + + <table width="100%"> + <tr> + <td width="30%" style="vertical-align: top;"> + <div dojoType="dijit.Tree" id="mytree" model="model"> + <!-- override functions for display of each node --> + <script type="dojo/method" event="getIconClass" args="item"> + var icon = + (!item.root && store.getValue(item, "type") == "country") ? + ("countryIcon country" + store.getValue(item, "iso") + "Icon") : + dijit.Tree.prototype.getIconClass.apply(this, arguments); + return icon; + </script> + <script type="dojo/method" event="getLabel" args="item"> + if(item.root){ return "Continents"; } + var localizedName = lang && store.getValue(item, lang); + return localizedName || (store.getLabel(item) + " \u202b" + "(" + store.getIdentity(item) + ")\u202c"); + </script> + + <!-- clicking a node refreshes the page with new locale setting --> + <script type="dojo/method" event="onClick" args="item, node"> + var type = store.getValue(item, "type"); + if(type == "language"){ + var lang = store.getIdentity(item), + locale = lang + "-" + store.getIdentity(node.getParent().item).toLowerCase(), + dir = /ar|fa|he|ps|ur|yi/i.test(lang) ? "rtl" : "ltr"; + window.location.href = window.location.href.replace(/\?.*/, "") + "?locale=" + locale + "&dir=" + dir; + }else{ + alert("Please click a language, not a country or continent."); + } + </script> + </div> + </td> + <td style="vertical-align: top;"> + <p dir="ltr"> + Use the tree to select a language or a language/country combo; the page will reload + in the specified locale. Note that tree is also rerendered using the specified language for top level tree items. + Arabic and Hebrew display right-to-left so be sure to try those. + </p> + <input dojoType="dijit._Calendar"/> + + <p>Some form controls:</p> + + <label for="date">Date:</label> + <input id="date" dojoType="dijit.form.DateTextBox" value="2006-07-04"/> + <br/> + <label for="spinner">Number spinner:</label> + <input id="spinner" dojoType="dijit.form.NumberSpinner" value="123456789"/> + <br/> + <label for="currency">Currency:</label> + <input id="currency" type="text" name="income1" value="54775.53" + dojoType="dijit.form.CurrencyTextBox" + required="true" + constraints="{fractional:true}" + currency="USD"/> + <br/> + + <label for="combo1">Simple Combo:</label> + <select id="combo1" dojoType="dijit.form.ComboBox"> + <option>option #1</option> + <option>option #2</option> + <option>option #3</option> + </select> + <br/> + <label for="combo2">Combo on languages and countries:</label> + <input id="combo2" dojoType="dijit.form.ComboBox" + value="" + store="store" + searchAttr="name" + name="anything"/> + </td> + </tr> + </table> +</body> +</html> |