The source code

    /*!
     * Ext JS Library 3.2.1
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * licensing@extjs.com
     * http://www.extjs.com/license
     */
    /**
     * List compiled by KillerNay on the extjs.com forums.
     * Thank you KillerNay!
     *
     * Thailand Translations
     */

    Ext.UpdateManager.defaults.indicatorText = '¡ÓÅÑ§âËÅŽ...';

    if(Ext.View){
      Ext.View.prototype.emptyText = "";
    }

    if(Ext.grid.GridPanel){
      Ext.grid.GridPanel.prototype.ddText = "{0} àÅ×Í¡áÅéÇ·Ñé§ËÁŽá¶Ç";
    }

    if(Ext.TabPanelItem){
      Ext.TabPanelItem.prototype.closeText = "»ÔŽá·çº¹Õé";
    }

    if(Ext.form.Field){
      Ext.form.Field.prototype.invalidText = "€èÒ¢Í§ªèÍ§¹ÕéäÁè¶Ù¡µéÍ§";
    }

    if(Ext.LoadMask){
      Ext.LoadMask.prototype.msg = "¡ÓÅÑ§âËÅŽ...";
    }

    Date.monthNames = [
      "Á¡ÃÒ€Á",
      "¡ØÁŸÒÓŸÑ¹žì",
      "ÁÕ¹Ò€Á",
      "àÁÉÒÂ¹",
      "ŸÄÉÀÒ€Á",
      "ÁÔ¶Ø¹ÒÂ¹",
      "¡Ä¡¯Ò€Á",
      "ÊÔ§ËÒ€Á",
      "¡Ñ¹ÂÒÂ¹",
      "µØÅÒ€Á",
      "ŸÄÈšÔ¡ÒÂ¹",
      "žÑ¹ÇÒ€Á"
    ];

    Date.getShortMonthName = function(month) {
      return Date.monthNames[month].substring(0, 3);
    };

    Date.monthNumbers = {
      "Á€" : 0,
      "¡Ÿ" : 1,
      "ÁÕ€" : 2,
      "àÁÂ" : 3,
      "Ÿ€" : 4,
      "ÁÔÂ" : 5,
      "¡€" : 6,
      "Ê€" : 7,
      "¡Â" : 8,
      "µ€" : 9,
      "ŸÂ" : 10,
      "ž€" : 11
    };

    Date.getMonthNumber = function(name) {
      return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
    };

    Date.dayNames = [
      "ÍÒ·ÔµÂì",
      "šÑ¹·Ãì",
      "ÍÑ§€ÒÃ",
      "ŸØ×ž",
      "ŸÄËÑÊºŽÕ",
      "ÈØ¡Ãì",
      "àÊÒÃì"
    ];

    Date.getShortDayName = function(day) {
      return Date.dayNames[day].substring(0, 3);
    };

    if(Ext.MessageBox){
      Ext.MessageBox.buttonText = {
        ok     : "µ¡Å§",
        cancel : "Â¡àÅÔ¡",
        yes    : "ãªè",
        no     : "äÁèãªè"
      };
    }

    if(Ext.util.Format){
      Ext.util.Format.date = function(v, format){
        if(!v) return "";
        if(!(v instanceof Date)) v = new Date(Date.parse(v));
        return v.dateFormat(format || "m/d/Y");
      };
    }

    if(Ext.DatePicker){
      Ext.apply(Ext.DatePicker.prototype, {
        todayText         : "ÇÑ¹¹Õé",
        minText           : "This date is before the minimum date",
        maxText           : "This date is after the maximum date",
        disabledDaysText  : "",
        disabledDatesText : "",
        monthNames        : Date.monthNames,
        dayNames          : Date.dayNames,
        nextText          : 'àŽ×Í¹¶ÑŽä» (Control+Right)',
        prevText          : 'àŽ×Í¹¡èÍ¹Ë¹éÒ (Control+Left)',
        monthYearText     : 'àÅ×Í¡àŽ×Í¹ (Control+Up/Down to move years)',
        todayTip          : "{0} (Spacebar)",
        format            : "m/d/y",
        okText            : " µ¡Å§ ",
        cancelText        : "Â¡àÅÔ¡",
        startDay          : 0
      });
    }

    if(Ext.PagingToolbar){
      Ext.apply(Ext.PagingToolbar.prototype, {
        beforePageText : "Ë¹éÒ",
        afterPageText  : "of {0}",
        firstText      : "Ë¹éÒáÃ¡",
        prevText       : "¡èÍ¹Ë¹éÒ",
        nextText       : "¶ÑŽä»",
        lastText       : "Ë¹éÒÊØŽ·éÒÂ",
        refreshText    : "ÃÕà¿Ãª",
        displayMsg     : "¡ÓÅÑ§áÊŽ§ {0} - {1} šÒ¡ {2}",
        emptyMsg       : 'äÁèÁÕ¢éÍÁÙÅáÊŽ§'
      });
    }

    if(Ext.form.TextField){
      Ext.apply(Ext.form.TextField.prototype, {
        minLengthText : "The minimum length for this field is {0}",
        maxLengthText : "The maximum length for this field is {0}",
        blankText     : "This field is required",
        regexText     : "",
        emptyText     : null
      });
    }

    if(Ext.form.NumberField){
      Ext.apply(Ext.form.NumberField.prototype, {
        minText : "The minimum value for this field is {0}",
        maxText : "The maximum value for this field is {0}",
        nanText : "{0} is not a valid number"
      });
    }

    if(Ext.form.DateField){
      Ext.apply(Ext.form.DateField.prototype, {
        disabledDaysText  : "»ÔŽ",
        disabledDatesText : "»ÔŽ",
        minText           : "The date in this field must be after {0}",
        maxText           : "The date in this field must be before {0}",
        invalidText       : "{0} is not a valid date - it must be in the format {1}",
        format            : "m/d/y",
        altFormats        : "m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"
      });
    }

    if(Ext.form.ComboBox){
      Ext.apply(Ext.form.ComboBox.prototype, {
        loadingText       : "¡ÓÅÑ§âËÅŽ...",
        valueNotFoundText : undefined
      });
    }

    if(Ext.form.VTypes){
      Ext.apply(Ext.form.VTypes, {
        emailText    : 'This field should be an e-mail address in the format "user@example.com"',
        urlText      : 'This field should be a URL in the format "http:/'+'/www.example.com"',
        alphaText    : 'This field should only contain letters and _',
        alphanumText : 'This field should only contain letters, numbers and _'
      });
    }

    if(Ext.form.HtmlEditor){
      Ext.apply(Ext.form.HtmlEditor.prototype, {
        createLinkText : 'Please enter the URL for the link:',
        buttonTips : {
          bold : {
            title: 'Bold (Ctrl+B)',
            text: 'Make the selected text bold.',
            cls: 'x-html-editor-tip'
          },
          italic : {
            title: 'Italic (Ctrl+I)',
            text: 'Make the selected text italic.',
            cls: 'x-html-editor-tip'
          },
          underline : {
            title: 'Underline (Ctrl+U)',
            text: 'Underline the selected text.',
            cls: 'x-html-editor-tip'
          },
          increasefontsize : {
            title: 'Grow Text',
            text: 'Increase the font size.',
            cls: 'x-html-editor-tip'
          },
          decreasefontsize : {
            title: 'Shrink Text',
            text: 'Decrease the font size.',
            cls: 'x-html-editor-tip'
          },
          backcolor : {
            title: 'Text Highlight Color',
            text: 'Change the background color of the selected text.',
            cls: 'x-html-editor-tip'
          },
          forecolor : {
            title: 'Font Color',
            text: 'Change the color of the selected text.',
            cls: 'x-html-editor-tip'
          },
          justifyleft : {
            title: 'Align Text Left',
            text: 'Align text to the left.',
            cls: 'x-html-editor-tip'
          },
          justifycenter : {
            title: 'Center Text',
            text: 'Center text in the editor.',
            cls: 'x-html-editor-tip'
          },
          justifyright : {
            title: 'Align Text Right',
            text: 'Align text to the right.',
            cls: 'x-html-editor-tip'
          },
          insertunorderedlist : {
            title: 'Bullet List',
            text: 'Start a bulleted list.',
            cls: 'x-html-editor-tip'
          },
          insertorderedlist : {
            title: 'Numbered List',
            text: 'Start a numbered list.',
            cls: 'x-html-editor-tip'
          },
          createlink : {
            title: 'Hyperlink',
            text: 'Make the selected text a hyperlink.',
            cls: 'x-html-editor-tip'
          },
          sourceedit : {
            title: 'Source Edit',
            text: 'Switch to source editing mode.',
            cls: 'x-html-editor-tip'
          }
        }
      });
    }

    if(Ext.grid.GridView){
      Ext.apply(Ext.grid.GridView.prototype, {
        sortAscText  : "Sort Ascending",
        sortDescText : "Sort Descending",
        lockText     : "Lock Column",
        unlockText   : "Unlock Column",
        columnsText  : "Columns"
      });
    }

    if(Ext.grid.GroupingView){
      Ext.apply(Ext.grid.GroupingView.prototype, {
        emptyGroupText : '(None)',
        groupByText    : 'Group By This Field',
        showGroupsText : 'Show in Groups'
      });
    }

    if(Ext.grid.PropertyColumnModel){
      Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
        nameText   : "Name",
        valueText  : "Value",
        dateFormat : "m/j/Y"
      });
    }

    if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
      Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
        splitTip            : "Drag to resize.",
        collapsibleSplitTip : "Drag to resize. Double click to hide."
      });
    }