i18n.setKeys({
	"General.Elasticsearch": "Elasticsearch",
	"General.LoadingAggs": "Tổng hợp dữ liệu...",
	"General.Searching": "Đang tìm kiếm...",
	"General.Search": "Tìm kiếm",
	"General.Help": "Trợ giúp",
	"General.HelpGlyph": "?",
	"General.CloseGlyph": "X",
	"General.RefreshResults": "Refresh",
	"General.ManualRefresh": "Refresh",
	"General.RefreshQuickly": "Refresh nhanh",
	"General.Refresh5seconds": "Refresh sau 5 giây",
	"General.Refresh1minute": "Refresh sau 1 phút",
	"AliasForm.AliasName": "Alias",
	"AliasForm.NewAliasForIndex": "Alias mới cho {0}",
	"AliasForm.DeleteAliasMessage": "type ''{0}'' xóa {1}. Hành động này không thể hoàn tác.",
	"AnyRequest.DisplayOptions" : "Hiển thị",
	"AnyRequest.AsGraph" : "Hiển thị cây",
	"AnyRequest.AsJson" : "Hiển thị Json thô",
	"AnyRequest.AsTable" : "Hiển thị kết quả dạng bảng",
	"AnyRequest.History" : "Lịch sử",
	"AnyRequest.RepeatRequest" : "Lặp lại request",
	"AnyRequest.RepeatRequestSelect" : "Lặp lại request sau ",
	"AnyRequest.Transformer" : "Truy vấn kết quả",
	"AnyRequest.Pretty": "Gọn",
	"AnyRequest.Query" : "Câu truy vấn",
	"AnyRequest.Request": "Request",
	"AnyRequest.Requesting": "Đang yêu cầu...",
	"AnyRequest.ValidateJSON": "Kiểm tra JSON",
	"Browser.Title": "Trình",
	"Browser.ResultSourcePanelTitle": "Kết quả",
	"Command.DELETE": "XÓA",
	"Command.SHUTDOWN": "TẮT",
	"Command.DeleteAliasMessage": "Xóa alias?",
	"ClusterOverView.IndexName": "Tên Index",
	"ClusterOverview.NumShards": "Số lượng Shards (tập con)",
	"ClusterOverview.NumReplicas": "Số lượng Replicas (nhân bản)",
	"ClusterOverview.NewIndex": "Index Mới",
	"IndexActionsMenu.Title": "Hành động",
	"IndexActionsMenu.NewAlias": "Alias mới...",
	"IndexActionsMenu.Refresh": "Refresh",
	"IndexActionsMenu.Flush": "Flush",
	"IndexActionsMenu.Optimize": "Tối ưu hóa...",
	"IndexActionsMenu.ForceMerge": "Bắt buộc xác nhập...",
	"IndexActionsMenu.Snapshot": "Gateway Snapshot",
	"IndexActionsMenu.Analyser": "Kiểm tra Analyser",
	"IndexActionsMenu.Open": "Mở",
	"IndexActionsMenu.Close": "Đóng",
	"IndexActionsMenu.Delete": "Xóa...",
	"IndexInfoMenu.Title": "Thông tin",
	"IndexInfoMenu.Status": "Trạng thái Index",
	"IndexInfoMenu.Metadata": "Index Metadata",
	"IndexCommand.TextToAnalyze": "Điền text để Analyse",
	"IndexCommand.ShutdownMessage": "loại ''{0}'' tắt {1}. Node không thể được restart ở đây",
	"IndexOverview.PageTitle": "Tóm tắt các index",
	"IndexSelector.NameWithDocs": "{0} ({1} docs)",
	"IndexSelector.SearchIndexForDocs": "Tìm kiếm {0} mà:",
	"FilterBrowser.OutputType": "Kết quả trả về: {0}",
	"FilterBrowser.OutputSize": "Số lượng kết quả: {0}",
	"Header.ClusterHealth": "Trạng thái cluster: {0} ({1} trong {2})",
	"Header.ClusterNotConnected": "Trạng thái cluster: không có kết nối",
	"Header.Connect": "Kết nối",
	"Nav.AnyRequest": "Gửi request",
	"Nav.Browser": "Trình",
	"Nav.ClusterHealth": "Trạng thái cluster",
	"Nav.ClusterState": "Tình trạng cluster",
	"Nav.ClusterNodes": "Thông tin các node",
	"Nav.Info": "Thông tin",
	"Nav.NodeStats": "Thông số các Nodes ",
	"Nav.Overview": "Tóm tắt",
	"Nav.Indices": "Các index",
	"Nav.Plugins": "Plugins",
	"Nav.Status": "Thông số các index",
	"Nav.Templates": "Templates",
	"Nav.StructuredQuery": "Câu truy vấn",
	"NodeActionsMenu.Title": "Hành động",
	"NodeActionsMenu.Shutdown": "Tắt...",
	"NodeInfoMenu.Title": "Thông tin",
	"NodeInfoMenu.ClusterNodeInfo": "Thông tin Cluster node",
	"NodeInfoMenu.NodeStats": "Thông số Node",
	"NodeType.Client": "Client Node",
	"NodeType.Coord": "Coordinator",
	"NodeType.Master": "Master Node",
	"NodeType.Tribe": "Tribe Node",
	"NodeType.Worker": "Worker Node",
	"NodeType.Unassigned": "Chưa được gán",
	"OptimizeForm.OptimizeIndex": "Tối ưu hóa {0}",
	"OptimizeForm.MaxSegments": "Lượng Segments Max",
	"OptimizeForm.ExpungeDeletes": "Chỉ xóa",
	"OptimizeForm.FlushAfter": "Flush Sau Khi Optimize",
	"OptimizeForm.WaitForMerge": "Chờ Merge",
	"ForceMergeForm.ForceMergeIndex": "Bắt buộc merge {0}",
	"ForceMergeForm.MaxSegments": "Lượng Segments Max",
	"ForceMergeForm.ExpungeDeletes": "Chỉ xóa",
	"ForceMergeForm.FlushAfter": "Flush Sau Khi bắt buộc Merge",
	"Overview.PageTitle" : "Tóm tắt Cluster",
	"Output.JSON": "JSON",
	"Output.Table": "Bảng",
	"Output.CSV": "CSV",
	"Output.ShowSource": "Hiện câu truy vấn",
	"Preference.SortCluster": "Sắp xếp Cluster",
	"Sort.ByName": "Theo Tên",
	"Sort.ByAddress": "Theo Địa Chỉ",
	"Sort.ByType": "Theo Type",
	"Preference.SortIndices": "Sắp xếp các index",
	"SortIndices.Descending": "Giảm dần",
	"SortIndices.Ascending": "Tăng dần",
	"Preference.ViewAliases": "Xem Aliases",
	"ViewAliases.Grouped": "Nhóm",
	"ViewAliases.List": "List",
	"ViewAliases.None": "None",
	"Overview.IndexFilter": "Lọc Index",
	"TableResults.Summary": "Tìm {0} trong {1} shards. {2} kết quả. {3} giây",
	"QueryFilter.AllIndices": "Tất cả index",
	"QueryFilter.AnyValue": "bất kì",
	"QueryFilter-Header-Indices": "Các index",
	"QueryFilter-Header-Types": "Types",
	"QueryFilter-Header-Fields": "Trường",
	"QueryFilter.DateRangeHint.from": "Từ : {0}",
	"QueryFilter.DateRangeHint.to": "  Tới : {0}",
	"Query.FailAndUndo": "Truy vấn thất bại. Hoàn tác thay đổi gần nhất",
	"StructuredQuery.ShowRawJson": "Hiện JSON"
});

i18n.setKeys({
	"AnyRequest.TransformerHelp" : "\
		<p>Chức năng này thay đổi kết quả thô json trả về dưới dạng format hữu dụng hơn.</p>\
		<p>Chức năng cần phần body của một hàm javascript. Kết quả trả về từ hàm sẽ là giá trị mới gán cho hàm in json</p>\
		<p>Ví dụ:<br>\
		  <code>return root.hits.hits[0];</code> sẽ trả về kết quả đầu tiên trong chuỗi kết quả trả về<br>\
		  <code>return Object.keys(root.nodes).reduce(function(tot, node) { return tot + root.nodes[node].os.mem.used_in_bytes; }, 0);</code> sẽ trả về tổng lượng bộ nhớ được dùng ở toàn cluster<br></p>\
		<p>Các hàm có sẵn sau sẽ có ích khi làm việc với mảng và objects<br>\
		<ul>\
			<li><i>Object.keys</i>(object) := array</li>\
			<li>array.<i>forEach</i>(function(prop, index))</li>\
			<li>array.<i>map</i>(function(prop, index)) := array</li>\
			<li>array.<i>reduce</i>(function(accumulator, prop, index), initial_value) := final_value</li>\
		</ul>\
		<p>Khi chạy Lặp lại Request, một biến extra tên prev được gửi tới hàm transformation. Nó cho phép thực hiện các thao tá so sánh và hiện biểu đồ.</p>\
		<p>Ví dụ:<br>\
		<code>var la = [ root.nodes[Object.keys(root.nodes)[0]].os.load_average[0] ]; return prev ? la.concat(prev) : la;</code> sẽ trả về load tải trung bình ở node đầu tiên trong cluster ở phút gần nhất\
		Kết quả có thể được cho vào Biểu đồ để hiện lượng tải của node\
		"
});

i18n.setKeys({
	"AnyRequest.DisplayOptionsHelp" : "\
		<p>Json Thô: hiện toàn bộ kết quả câu truy vấn dưới dạng json thô</p>\
		<p>Graph: Hiển thị kết quả dưới dạng cây, dùng chức năng transformer để lấy các mảng từ kết quả</p>\
		<p>Bảng kết quả: Nếu câu truy vấn là tìm kiếm thì có thể hiển thị dữ liệu ở dạng bảng.</p>\
		"
});

i18n.setKeys({
	"QueryFilter.DateRangeHelp" : "\
		<p>Các trường Date chấp nhận thời gian bằng chữ để tạo ra giá trị From và To để tạo ra khoảng thời gian của các kết quả mong muốn.</p>\
		<p>Các định dạng sau được hỗ trợ:</p>\
		<ul>\
			<li><b>Keywords / Các cụm từ</b><br>\
				<code>now (hiện nay)<br> today (trong hôm nay)<br> tomorrow (trong ngày mai)<br> yesterday (hôm qua)<br> last (cuối) / this (hiện tại) / next (tiếp theo) + week (tuần) / month (tháng) / year (năm)</code><br>\
				sẽ tìm kết quả có thời gian dựa trên keyword. <code>last year</code> sẽ tìm kết quả trong năm ngoái.</li>\
			<li><b>Ranges</b><br>\
				<code>1000 secs<br> 5mins<br> 1day<br> 2days<br> 80d<br> 9 months<br> 2yrs</code> (dấu cách là không bắt buộc, có nhiều từ đồng nghĩa cho mục này)<br>\
				Tạo ra khoảng thời gian tìm kiếm dựa vào <code>now</code> kéo về quá khứ và tương lai để tìm ra range thích hợp.</li>\
			<li><b>DateTime và Partial DateTime</b><br>\
				<code>2011<br> 2011-01<br> 2011-01-18<br> 2011-01-18 12<br> 2011-01-18 12:32<br> 2011-01-18 12:32:45</code><br>\
				các định dạng này chỉ định cụ thể ngày tháng. <code>2011</code> sẽ tìm cả năm 2011, còn <code>2011-01-18 12:32:45</code> sẽ chỉ tìm trong thời gian cụ thể này thôi</li>\
			<li><b>Time và Time Partials</b><br>\
				<code>12<br> 12:32<br> 12:32:45</code><br>\
				định dạng này tìm kiếm trong khoảng thời gian trong ngày. <code>12:32</code> sẽ tìm trong giờ này thôi</li>\
			<li><b>Date Ranges</b><br>\
				<code>2010 -&gt; 2011<br> last week -&gt; next week<br> 2011-05 -&gt;<br> &lt; now</code><br>\
				Date range được tạo ra bằng cách chỉ định hai ngày cụ thể (Keyword / DateTime / Time) cách nhau bởi kí tự &lt; hoặc -&gt; (cả hai như nhau). Nếu thiếu 1 ngày, thì sẽ coi như là không có giới hạn ngày.</li>\
			<li><b>Date Range dùng Offset</b><br>\
				<code>2010 -> 1yr<br> 3mins < now</code>\
				Tìm kiếm theo khoảng thời gian cộng thêm phần offset.</li>\
			<li><b>Anchored Ranges</b><br>\
				<code>2010-05-13 05:13 <> 10m<br> now <> 1yr<br> lastweek <> 1month</code><br>\
				Hoạt động giống như format ở trên nhưng khác là offset sẽ tính lùi và tiến so với thời gian được set.</li>\
		</ul>\
	"
});
