Home | History | Annotate | Download | only in common
      1 /*
      2  * Copyright (C) 2011 Google Inc.  All rights reserved.
      3  * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
      4  * Copyright (C) 2007 Matt Lilek (pewtermoose (at) gmail.com).
      5  * Copyright (C) 2009 Joseph Pecoraro
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  *
     11  * 1.  Redistributions of source code must retain the above copyright
     12  *     notice, this list of conditions and the following disclaimer.
     13  * 2.  Redistributions in binary form must reproduce the above copyright
     14  *     notice, this list of conditions and the following disclaimer in the
     15  *     documentation and/or other materials provided with the distribution.
     16  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     17  *     its contributors may be used to endorse or promote products derived
     18  *     from this software without specific prior written permission.
     19  *
     20  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     21  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     22  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     23  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     24  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     25  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     26  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     27  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     29  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30  */
     31 
     32 /**
     33  * @param {string} string
     34  * @param {...*} vararg
     35  * @return {string}
     36  */
     37 WebInspector.UIString = function(string, vararg)
     38 {
     39     return String.vsprintf(WebInspector.localize(string), Array.prototype.slice.call(arguments, 1));
     40 }
     41 
     42 /**
     43  * @param {string} string
     44  * @return {string}
     45  */
     46 WebInspector.localize = function(string)
     47 {
     48     return string;
     49 }
     50 
     51 /**
     52  * @constructor
     53  * @param {string} format
     54  */
     55 WebInspector.UIStringFormat = function(format)
     56 {
     57     /** @type {string} */
     58     this._localizedFormat = WebInspector.localize(format);
     59     /** @type {!Array.<!Object>} */
     60     this._tokenizedFormat = String.tokenizeFormatString(this._localizedFormat, String.standardFormatters);
     61 }
     62 
     63 /**
     64  * @param {string} a
     65  * @param {string} b
     66  * @return {string}
     67  */
     68 WebInspector.UIStringFormat._append = function(a, b)
     69 {
     70     return a + b;
     71 }
     72 
     73 WebInspector.UIStringFormat.prototype = {
     74     /**
     75      * @param {...*} vararg
     76      * @return {string}
     77      */
     78     format: function(vararg)
     79     {
     80         return String.format(this._localizedFormat, arguments,
     81             String.standardFormatters, "", WebInspector.UIStringFormat._append, this._tokenizedFormat).formattedResult;
     82     }
     83 }
     84