/** * Copyright 2010-2013 Ben Birch * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function() { /** * provides text formatting and i18n key storage features
* implements most of the Sun Java MessageFormat functionality. * @see Sun's Documentation */ var keys = {}; var format = function(message, args) { var substitute = function() { var format = arguments[1].split(','); var substr = escape(args[format.shift()]); if(format.length === 0) { return substr; // simple substitution eg {0} } switch(format.shift()) { case "number" : return (new Number(substr)).toLocaleString(); case "date" : return (new Date(+substr)).toLocaleDateString(); // date and time require milliseconds since epoch case "time" : return (new Date(+substr)).toLocaleTimeString(); // eg i18n.text("Key", +(new Date())); for current time } var styles = format.join("").split("|").map(function(style) { return style.match(/(-?[\.\d]+)(#|<)([^{}]*)/); }); var match = styles[0][3]; for(var i=0; i