123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <!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>
- <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" store="store" label="Continents" childrenAttr="languages">
- <!-- Override all the data access functions to work from the I18N data store -->
- <script type="dojo/method" event="getItemChildren" args="item, onComplete">
- switch(item ? store.getValue(item, "type") : "top"){
- 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.prototype.getItemChildren.apply(this, arguments);
- }
- </script>
- <script type="dojo/method" event="mayHaveChildren" args="item">
- if(!item){ return true; } // top level
- var type = store.getValue(item, "type");
- return (type == "continent" || type == "country");
- </script>
- <!-- override functions for display of each node -->
- <script type="dojo/method" event="getIconClass" args="item">
- var icon =
- (item && store.getValue(item, "type") == "country") ?
- ("countryIcon country" + store.getValue(item, "iso") + "Icon") :
- null;
- return icon;
- </script>
- <script type="dojo/method" event="getLabel" args="item">
- 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>
|