/** * @license jqGrid Vietnamese Translation * Lê Đình Dũng dungtdc@gmail.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*jslint white: true */ /*global jQuery, module, require */ (function (factory) { "use strict"; if (typeof define === "function" && define.amd) { // AMD. Register as an anonymous module. define(["jquery"], factory); } else if (typeof module === "object" && module.exports) { // Node/CommonJS module.exports = function (root, $) { if ($ === undefined) { // require("jquery") returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) $ = typeof window !== "undefined" ? require("jquery") : require("jquery")(root || window); } factory($); return $; }; } else { // Browser globals factory(jQuery); } }(function ($) { "use strict"; var locInfo = { isRTL: false, defaults: { recordtext: "View {0} - {1} of {2}", emptyrecords: "Không có dữ liệu", loadtext: "Đang nạp dữ liệu...", pgtext: "Trang {0} trong tổng số {1}", pgfirst: "First Page", pglast: "Last Page", pgnext: "Next Page", pgprev: "Previous Page", pgrecs: "Records per Page", showhide: "Toggle Expand Collapse Grid", savetext: "Đang lưu..." }, search: { caption: "Tìm kiếm...", Find: "Tìm", Reset: "Khởi tạo lại", odata: [ { oper: "eq", text: "bằng" }, { oper: "ne", text: "không bằng" }, { oper: "lt", text: "bé hơn" }, { oper: "le", text: "bé hơn hoặc bằng" }, { oper: "gt", text: "lớn hơn" }, { oper: "ge", text: "lớn hơn hoặc bằng" }, { oper: "bw", text: "bắt đầu với" }, { oper: "bn", text: "không bắt đầu với" }, { oper: "in", text: "trong" }, { oper: "ni", text: "không nằm trong" }, { oper: "ew", text: "kết thúc với" }, { oper: "en", text: "không kết thúc với" }, { oper: "cn", text: "chứa" }, { oper: "nc", text: "không chứa" }, { oper: "nu", text: "is null" }, { oper: "nn", text: "is not null" } ], groupOps: [ { op: "VÀ", text: "tất cả" }, { op: "HOẶC", text: "bất kỳ" } ], addGroupTitle: "Add subgroup", deleteGroupTitle: "Delete group", addRuleTitle: "Add rule", deleteRuleTitle: "Delete rule", operandTitle: "Click to select search operation.", resetTitle: "Reset Search Value" }, edit: { addCaption: "Thêm bản ghi", editCaption: "Sửa bản ghi", bSubmit: "Gửi", bCancel: "Hủy bỏ", bClose: "Đóng", saveData: "Dữ liệu đã thay đổi! Có lưu thay đổi không?", bYes: "Có", bNo: "Không", bExit: "Hủy bỏ", msg: { required: "Trường dữ liệu bắt buộc có", number: "Hãy điền đúng số", minValue: "giá trị phải lớn hơn hoặc bằng với ", maxValue: "giá trị phải bé hơn hoặc bằng", email: "không phải là một email đúng", integer: "Hãy điền đúng số nguyên", date: "Hãy điền đúng ngày tháng", url: "không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')", nodefined: " chưa được định nghĩa!", novalue: " giá trị trả về bắt buộc phải có!", customarray: "Hàm nên trả về một mảng!", customfcheck: "Custom function should be present in case of custom checking!" } }, view: { caption: "Xem bản ghi", bClose: "Đóng" }, del: { caption: "Xóa", msg: "Xóa bản ghi đã chọn?", bSubmit: "Xóa", bCancel: "Hủy bỏ" }, nav: { edittext: "", edittitle: "Sửa dòng đã chọn", addtext: "", addtitle: "Thêm mới 1 dòng", deltext: "", deltitle: "Xóa dòng đã chọn", searchtext: "", searchtitle: "Tìm bản ghi", refreshtext: "", refreshtitle: "Nạp lại lưới", alertcap: "Cảnh báo", alerttext: "Hãy chọn một dòng", viewtext: "", viewtitle: "Xem dòng đã chọn", savetext: "", savetitle: "Save row", canceltext: "", canceltitle: "Cancel row editing" }, col: { caption: "Chọn cột", bSubmit: "OK", bCancel: "Hủy bỏ" }, errors: { errcap: "Lỗi", nourl: "không url được đặt", norecords: "Không có bản ghi để xử lý", model: "Chiều dài của colNames <> colModel!" }, formatter: { integer: { thousandsSeparator: ".", defaultValue: "0" }, number: { decimalSeparator: ",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: "0" }, currency: { decimalSeparator: ",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix: "", defaultValue: "0" }, date: { dayNames: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7", "Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy" ], monthNames: [ "Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12", "Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai" ], AmPm: ["sáng", "chiều", "SÁNG", "CHIỀU"], S: function (j) { return j < 11 || j > 13 ? ["st", "nd", "rd", "th"][Math.min((j - 1) % 10, 3)] : "th"; }, srcformat: "Y-m-d", newformat: "n/j/Y", masks: { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" } } } }; $.jgrid = $.jgrid || {}; $.extend(true, $.jgrid, { defaults: { locale: "vi" }, locales: { // In general the property name is free, but it's recommended to use the names based on // http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry // http://rishida.net/utils/subtags/ and RFC 5646. See Appendix A of RFC 5646 for examples. // One can use the lang attribute to specify language tags in HTML, and the xml:lang attribute for XML // if it exists. See http://www.w3.org/International/articles/language-tags/#extlang vi: $.extend({}, locInfo, { name: "Tiếng Việt", nameEnglish: "Vietnamese" }), "vi-VN": $.extend({}, locInfo, { name: "Tiếng Việt (Việt Nam)", nameEnglish: "Vietnamese (Vietnam)" }) } }); }));