Index: Dev/trunk/src/client/dijit/_editor/nls/id/FontChoice.js
===================================================================
--- Dev/trunk/src/client/dijit/_editor/nls/id/FontChoice.js	(revision 485)
+++ Dev/trunk/src/client/dijit/_editor/nls/id/FontChoice.js	(revision 485)
@@ -0,0 +1,26 @@
+define(
+({
+	fontSize: "Ukuran",
+	fontName: "Font",
+	formatBlock: "Format",
+	serif: "serif",
+	"sans-serif": "sans-serif",
+	monospace: "monospace",
+	cursive: "cursive",
+	fantasy: "fantasy",
+	noFormat: "None",
+	p: "Paragraf",
+	h1: "Judul",
+	h2: "Sub Judul",
+	h3: "Sub sub judul",
+	pre: "Praformat",
+	1: "xx-kecil",
+	2: "x-kecil",
+	3: "kecil",
+	4: "medium",
+	5: "besar",
+	6: "x-besar",
+	7: "xx-besar"
+})
+);
+
Index: Dev/trunk/src/client/dijit/_editor/nls/id/LinkDialog.js
===================================================================
--- Dev/trunk/src/client/dijit/_editor/nls/id/LinkDialog.js	(revision 485)
+++ Dev/trunk/src/client/dijit/_editor/nls/id/LinkDialog.js	(revision 485)
@@ -0,0 +1,15 @@
+define(
+({
+	createLinkTitle: "Properti Tautan",
+	insertImageTitle: "Properti Gambar",
+	url: "URL:",
+	text: "Deskripsi:",
+	target: "Target:",
+	set: "Atur",
+	currentWindow: "Jendela Saat Ini",
+	parentWindow: "Jendela Induk",
+	topWindow: "Jendela Paling Atas",
+	newWindow: "Jendela Baru"
+})
+);
+
Index: Dev/trunk/src/client/dijit/_editor/nls/id/commands.js
===================================================================
--- Dev/trunk/src/client/dijit/_editor/nls/id/commands.js	(revision 485)
+++ Dev/trunk/src/client/dijit/_editor/nls/id/commands.js	(revision 485)
@@ -0,0 +1,52 @@
+define(
+({
+	'bold': 'Tebal',
+	'copy': 'Salin',
+	'cut': 'Potong',
+	'delete': 'Hapus',
+	'indent': 'Inden',
+	'insertHorizontalRule': 'Penggaris horisontal',
+	'insertOrderedList': 'Daftar Bernomor',
+	'insertUnorderedList': 'Daftar Poin',
+	'italic': 'Miring',
+	'justifyCenter': 'Rata Tengah',
+	'justifyFull': 'Rata Kanan Kiri',
+	'justifyLeft': 'Rata Kiri',
+	'justifyRight': 'Rata Kanan',
+	'outdent': 'Hapus spasi di depan',
+	'paste': 'Tempel',
+	'redo': 'Ulangi',
+	'removeFormat': 'Hapus Format',
+	'selectAll': 'Pilih Semua',
+	'strikethrough': 'Coretan',
+	'subscript': 'Subskrip',
+	'superscript': 'Superskrip',
+	'underline': 'Garis Bawah',
+	'undo': 'Batalkan',
+	'unlink': 'Hapus Tautan',
+	'createLink': 'Buat Tautan',
+	'toggleDir': 'Ubah Arah',
+	'insertImage': 'Masukkan Gambar',
+	'insertTable': 'Masukkan/Edit Tabel',
+	'toggleTableBorder': 'Ubah Tepi Tabel',
+	'deleteTable': 'Hapus Tabel',
+	'tableProp': 'Properti Tabel',
+	'htmlToggle': 'Sumber HTML',
+	'foreColor': 'Warna Latar Depan',
+	'hiliteColor': 'Warna Latar Belakang',
+	'plainFormatBlock': 'Gaya Paragraf',
+	'formatBlock': 'Gaya Paragraf',
+	'fontSize': 'Ukuran Font',
+	'fontName': 'Nama Font',
+	'tabIndent': 'Inden Tab',
+	"fullScreen": "Beralih ke Layar Penuh",
+	"viewSource": "Lihat Sumber HTML",
+	"print": "Cetak",
+	"newPage": "Halaman Baru",
+	/* Error messages */
+	'systemShortcut': 'Tindakan "${0}" hanya tersedia pada peramban Anda menggunakan jalan pintas keyboard. Gunakan ${1}.',
+	'ctrlKey':'ctrl+${0}',
+	'appleKey':'\u2318${0}' // "command" or open-apple key on Macintosh
+})
+);
+
Index: Dev/trunk/src/client/dijit/form/nls/id/ComboBox.js
===================================================================
--- Dev/trunk/src/client/dijit/form/nls/id/ComboBox.js	(revision 485)
+++ Dev/trunk/src/client/dijit/form/nls/id/ComboBox.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	previousMessage: "Pilihan sebelumnya",
+	nextMessage: "Pilihan lain"
+})
+);
+
Index: Dev/trunk/src/client/dijit/form/nls/id/Textarea.js
===================================================================
--- Dev/trunk/src/client/dijit/form/nls/id/Textarea.js	(revision 485)
+++ Dev/trunk/src/client/dijit/form/nls/id/Textarea.js	(revision 485)
@@ -0,0 +1,10 @@
+define(
+// used by both the editor and textarea widgets to provide information to screen reader users
+({
+	iframeEditTitle: 'edit area',  // primary title for editable IFRAME, for screen readers when focus is in the editing area
+	iframeFocusTitle: 'edit bingkai area'  // secondary title for editable IFRAME when focus is on outer container
+	//  to let user know that focus has moved out of editing area and to the
+	//  parent element of the editing area
+})
+);
+
Index: Dev/trunk/src/client/dijit/form/nls/id/validate.js
===================================================================
--- Dev/trunk/src/client/dijit/form/nls/id/validate.js	(revision 485)
+++ Dev/trunk/src/client/dijit/form/nls/id/validate.js	(revision 485)
@@ -0,0 +1,8 @@
+define(
+({
+	invalidMessage: "Nilai yang dimasukkan tidak valid.",
+	missingMessage: "Nilai ini diperlukan.",
+	rangeMessage: "Nilai ini di luar batas."
+})
+);
+
Index: Dev/trunk/src/client/dijit/nls/id/common.js
===================================================================
--- Dev/trunk/src/client/dijit/nls/id/common.js	(revision 485)
+++ Dev/trunk/src/client/dijit/nls/id/common.js	(revision 485)
@@ -0,0 +1,9 @@
+define(
+({
+	buttonOk: "OK",
+	buttonCancel: "Batal",
+	buttonSave: "Simpan",
+	itemClose: "Tutup"
+})
+);
+
Index: Dev/trunk/src/client/dijit/nls/id/loading.js
===================================================================
--- Dev/trunk/src/client/dijit/nls/id/loading.js	(revision 485)
+++ Dev/trunk/src/client/dijit/nls/id/loading.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	loadingState: "Memuatkan...",
+	errorState: "Maaf, terjadi kesalahan"
+})
+);
+
Index: Dev/trunk/src/client/dijit/tests/editor/Editor.html
===================================================================
--- Dev/trunk/src/client/dijit/tests/editor/Editor.html	(revision 485)
+++ Dev/trunk/src/client/dijit/tests/editor/Editor.html	(revision 485)
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<title>Editor Test</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2"/>
+
+	<script type="text/javascript" src="../boilerplate.js"></script>
+
+	<script type="text/javascript">
+		require([
+			"doh/runner",
+			"dojo/parser",
+			"dijit/registry",
+			"dijit/tests/helpers",
+			"dijit/Editor",
+			"dojo/domReady!"
+		], function(doh, parser, registry, helpers, Editor){
+
+			doh.register("setup", [
+				{
+					name: "parse",
+					timeout: 5000,
+					runTest: function(){
+						parser.parse();
+
+						// In some browsers, the editor will not yet be loaded.  Test that no error occurs
+						// when retrieving the value.
+						doh.is("initial content", editor.get("value"));
+					}
+				},
+				{
+					name: "wait for editors to load",
+					timeout: 5000,
+					runTest: helpers.waitForLoad
+				}
+			]);
+
+			doh.register("miscellaneous", [
+				{
+					name: "set value on unfocused editor",
+					runTest: function(){
+						editor.set("value", "hello");
+						editor.focus();
+						doh.is("hello", editor.editNode.textContent || editor.editNode.innerText);
+						doh.is("hello", editor.get("value"));
+					}
+				},
+				{
+					name: "get value of unloaded editor",
+					runTest: function(){
+						var tmpEditor = new Editor({ value: "test editor value"});
+						doh.is("test editor value", tmpEditor.get("value"));
+						doh.is("test editor value", tmpEditor.value);
+						doh.f(tmpEditor.isLoaded);
+						tmpEditor.startup();
+						doh.is("test editor value", tmpEditor.get("value"));
+						doh.is("test editor value", tmpEditor.value);
+						doh.f(tmpEditor.isLoaded);
+					}
+				}
+			]);
+
+			doh.run();
+		});
+	</script>
+</head>
+<body class="claro" role="main">
+	<div data-dojo-id="editor" data-dojo-type="dijit/Editor"
+		 data-dojo-props='"aria-label":"editor", name:"field"'>initial content</div>
+</body>
+</html>
Index: Dev/trunk/src/client/dojo/nls/id/colors.js
===================================================================
--- Dev/trunk/src/client/dojo/nls/id/colors.js	(revision 485)
+++ Dev/trunk/src/client/dojo/nls/id/colors.js	(revision 485)
@@ -0,0 +1,157 @@
+define(
+({
+// local representation of all CSS3 named colors, companion to dojo.colors.  To be used where descriptive information
+// is required for each color, such as a palette widget, and not for specifying color programatically.
+	//Note: due to the SVG 1.0 spec additions, some of these are alternate spellings for the same color (e.g. gray / grey).
+	//TODO: should we be using unique rgb values as keys instead and avoid these duplicates, or rely on the caller to do the reverse mapping?
+	aliceblue: "alice blue",
+	antiquewhite: "antique white",
+	aqua: "aqua",
+	aquamarine: "biru laut",
+	azure: "biru langit",
+	beige: "krem",
+	bisque: "bisque",
+	black: "hitam",
+	blanchedalmond: "almond pucat",
+	blue: "biru",
+	blueviolet: "biru-ungu",
+	brown: "coklat",
+	burlywood: "burlywood",
+	cadetblue: "cadet blue",
+	chartreuse: "chartreuse",
+	chocolate: "chocolate",
+	coral: "coral",
+	cornflowerblue: "cornflower blue",
+	cornsilk: "cornsilk",
+	crimson: "crimson",
+	cyan: "cyan",
+	darkblue: "biru tua",
+	darkcyan: "dark cyan",
+	darkgoldenrod: "dark goldenrod",
+	darkgray: "abu-abu tua",
+	darkgreen: "hijau tua",
+	darkgrey: "abu-abu tua", // same as darkgray
+	darkkhaki: "dark khaki",
+	darkmagenta: "magenta tua",
+	darkolivegreen: "olive hijau tua",
+	darkorange: "jingga tua",
+	darkorchid: "dark orchid",
+	darkred: "merah tua",
+	darksalmon: "dark salmon",
+	darkseagreen: "hijau laut tua",
+	darkslateblue: "biru batu tua",
+	darkslategray: "abu-abu batu tua",
+	darkslategrey: "abu-abu batu tua", // same as darkslategray
+	darkturquoise: "turquoise tua",
+	darkviolet: "lembayung tua",
+	deeppink: "merah muda dalam",
+	deepskyblue: "hijau langit dalam",
+	dimgray: "abu-abu temaram",
+	dimgrey: "abu-abu temaram", // same as dimgray
+	dodgerblue: "dodger blue",
+	firebrick: "fire brick",
+	floralwhite: "putih bunga",
+	forestgreen: "hijau hutan",
+	fuchsia: "fuchsia",
+	gainsboro: "gainsboro",
+	ghostwhite: "ghost white",
+	gold: "emas",
+	goldenrod: "goldenrod",
+	gray: "abu-abu",
+	green: "hijau",
+	greenyellow: "hijau-kuning",
+	grey: "abu-abu", // same as gray
+	honeydew: "hijau melon",
+	hotpink: "hot pink",
+	indianred: "merah indian",
+	indigo: "nila",
+	ivory: "ivory",
+	khaki: "khaki",
+	lavender: "lembayung muda",
+	lavenderblush: "lembayung muda kemerahan",
+	lawngreen: "rumput hijau",
+	lemonchiffon: "lemon chiffon",
+	lightblue: "biru muda",
+	lightcoral: "coral muda",
+	lightcyan: "light cyan",
+	lightgoldenrodyellow: "kuning goldenrod muda",
+	lightgray: "abu-abu muda",
+	lightgreen: "hijau muda",
+	lightgrey: "abu-abu muda", // same as lightgray
+	lightpink: "merah jambu muda",
+	lightsalmon: "light salmon",
+	lightseagreen: "hijau laut muda",
+	lightskyblue: "hijau langit muda",
+	lightslategray: "au-abu batu tua",
+	lightslategrey: "abu-abu batu tua", // same as lightslategray
+	lightsteelblue: "biru baja muda",
+	lightyellow: "kuning muda",
+	lime: "limau",
+	limegreen: "hijau limau",
+	linen: "linen",
+	magenta: "magenta",
+	maroon: "maroon",
+	mediumaquamarine: "medium aquamarine",
+	mediumblue: "biru medium",
+	mediumorchid: "medium orchid",
+	mediumpurple: "ungu medium",
+	mediumseagreen: "hijau laut medium",
+	mediumslateblue: "biru batu medium",
+	mediumspringgreen: "medium spring green",
+	mediumturquoise: "medium turquoise",
+	mediumvioletred: "ungu-merah medium",
+	midnightblue: "midnight blue",
+	mintcream: "mint cream",
+	mistyrose: "misty rose",
+	moccasin: "moccasin",
+	navajowhite: "navajo white",
+	navy: "navy",
+	oldlace: "old lace",
+	olive: "olive",
+	olivedrab: "olive drab",
+	orange: "jingga",
+	orangered: "merah jingga",
+	orchid: "orchid",
+	palegoldenrod: "goldenrod pucat",
+	palegreen: "hijau pucat",
+	paleturquoise: "turquoise pucat",
+	palevioletred: "ungu-marah pucat",
+	papayawhip: "papaya whip",
+	peachpuff: "peach puff",
+	peru: "peru",
+	pink: "merah jambu",
+	plum: "plum",
+	powderblue: "powder blue",
+	purple: "ungu",
+	red: "merah",
+	rosybrown: "rosy brown",
+	royalblue: "royal blue",
+	saddlebrown: "saddle brown",
+	salmon: "salmon",
+	sandybrown: "sandy brown",
+	seagreen: "hijau laut",
+	seashell: "seashell",
+	sienna: "sienna",
+	silver: "perak",
+	skyblue: "biru langit",
+	slateblue: "biru batu",
+	slategray: "abu-abu batu",
+	slategrey: "abu-abu batu", // same as slategray
+	snow: "snow",
+	springgreen: "spring green",
+	steelblue: "biru baja",
+	tan: "tan",
+	teal: "teal",
+	thistle: "thistle",
+	tomato: "tomat",
+	transparent: "transparan",
+	turquoise: "biru hijau",
+	violet: "lembayung",
+	wheat: "wheat",
+	white: "putih",
+	whitesmoke: "white smoke",
+	yellow: "kuning",
+	yellowgreen: "kuning hijau"
+})
+);
+
Index: Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryEditor.js
===================================================================
--- Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryEditor.js	(revision 485)
+++ Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryEditor.js	(revision 485)
@@ -0,0 +1,9 @@
+define(
+({
+	doNew: "[baru]",
+	edit: "[edit]",
+	save: "[simpan]",
+	cancel: "[batal]"
+})
+);
+
Index: Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryViewer.js
===================================================================
--- Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryViewer.js	(revision 485)
+++ Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedEntryViewer.js	(revision 485)
@@ -0,0 +1,14 @@
+define(
+({
+	displayOptions: "[pilihan tampilan]",
+	title: "Judul",
+	authors: "Penulis",
+	contributors: "kontributor",
+	id: "ID",
+	close: "[tutup]",
+	updated: "Diperbarui",
+	summary: "Ringkasan",
+	content: "Konten"
+})
+);
+
Index: Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedViewerEntry.js
===================================================================
--- Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedViewerEntry.js	(revision 485)
+++ Dev/trunk/src/client/dojox/atom/widget/nls/id/FeedViewerEntry.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	deleteButton: "[Hapus]"
+})
+);
+
Index: Dev/trunk/src/client/dojox/atom/widget/nls/id/PeopleEditor.js
===================================================================
--- Dev/trunk/src/client/dojox/atom/widget/nls/id/PeopleEditor.js	(revision 485)
+++ Dev/trunk/src/client/dojox/atom/widget/nls/id/PeopleEditor.js	(revision 485)
@@ -0,0 +1,8 @@
+define(
+({
+	add: "Tambahkan",
+	addAuthor: "Tambahkan Penulis",
+	addContributor: "Tambahkan Kontributor"
+})
+);
+
Index: Dev/trunk/src/client/dojox/calendar/nls/id/buttons.js
===================================================================
--- Dev/trunk/src/client/dojox/calendar/nls/id/buttons.js	(revision 485)
+++ Dev/trunk/src/client/dojox/calendar/nls/id/buttons.js	(revision 485)
@@ -0,0 +1,11 @@
+define( {
+	previousButton: "â",
+	nextButton: "âº",
+	todayButton: "Hari Ini",
+	dayButton: "Hari",
+	weekButton: "Minggu",
+	fourDaysButton: "4 Hari",
+	monthButton: "Bulan"
+}
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/AutoSave.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/AutoSave.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/AutoSave.js	(revision 485)
@@ -0,0 +1,16 @@
+define(
+({
+	"saveLabel": "Simpan",
+	"saveSettingLabelOn": "Atur Interval Penyimpanan Otomatis...",
+	"saveSettingLabelOff": "Menonaktifkan Penyimpanan Otomatis",
+	"saveSettingdialogTitle": "Penyimpanan Otomatis",
+	"saveSettingdialogDescription": "Tentukan interval Penyimpanan Otomatis",
+	"saveSettingdialogParamName": "Interval Penyimpanan Otomatis",
+	"saveSettingdialogParamLabel": "min",
+	"saveSettingdialogButtonOk": "Atur Interval",
+	"saveSettingdialogButtonCancel": "Batal",
+	"saveMessageSuccess": "Disimpan di ${0}",
+	"saveMessageFail": "Tidak dapat menyimpan di ${0}"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/Blockquote.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/Blockquote.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/Blockquote.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"blockquote": "Blockquote"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/Breadcrumb.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/Breadcrumb.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/Breadcrumb.js	(revision 485)
@@ -0,0 +1,12 @@
+define(
+({
+	"nodeActions": "${nodeName} Tindakan",
+	"selectContents": "Pilih konten",
+	"selectElement": "Pilih elemen",
+	"deleteElement": "Hapus elemen",
+	"deleteContents": "Hapus konten",
+	"moveStart": "Pindahkan kursor ke bagian awal",
+	"moveEnd": "Pindahkan kursor ke bagian akhir"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/CollapsibleToolbar.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/CollapsibleToolbar.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/CollapsibleToolbar.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	"collapse": "Persempit Toolbar Editor",
+	"expand": "Perluas Toolbar Editor"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/FindReplace.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/FindReplace.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/FindReplace.js	(revision 485)
@@ -0,0 +1,24 @@
+define(
+({
+	"findLabel": "Temukan:",
+	"findTooltip": "Masukkan teks untuk menemukan",
+	"replaceLabel": "Ganti dengan:",
+	"replaceTooltip": "Masukkan teks untuk mengganti",
+	"findReplace": "Temukan dan Ganti",
+	"matchCase": "Cocokkan huruf",
+	"matchCaseTooltip": "Cocokkan huruf",
+	"backwards": "Mundur",
+	"backwardsTooltip": "Mencari mundur teks",
+	"replaceAllButton": "Ganti Semua",
+	"replaceAllButtonTooltip": "Ganti semua teks",
+	"findButton": "Temukan",
+	"findButtonTooltip": "Temukan teks",
+	"replaceButton": "Ganti",
+	"replaceButtonTooltip": "Ganti teks",
+	"replaceDialogText": "Terjadi penggantian ${0}.",
+	"eofDialogText": "${0} terakhir kali terjadi",
+	"eofDialogTextFind": "Ditemukan",
+	"eofDialogTextReplace": "Diganti"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertAnchor.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertAnchor.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertAnchor.js	(revision 485)
@@ -0,0 +1,11 @@
+define(
+({
+	insertAnchor: "Masukkan Jangkar",
+	title: "Properti Jangkar",
+	anchor: "Nama:",
+	text: "Deskripsi:",
+	set: "Atur",
+	cancel: "Batal"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertEntity.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertEntity.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/InsertEntity.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	insertEntity: "Masukkan Simbol"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/LocalImage.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/LocalImage.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/LocalImage.js	(revision 485)
@@ -0,0 +1,13 @@
+define(
+({
+	insertImageTitle: "Masukkan Gambar",
+	url: "Gambar",
+	browse: "Telusuri...",
+	text: "Deskripsi",
+	set: "Masukkan",
+	invalidMessage: "Jenis file gambar tidak valid",
+	prePopuTextUrl: "Masukkan URL gambar",
+	prePopuTextBrowse: " atau telusuri file lokal."
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/PageBreak.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/PageBreak.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/PageBreak.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"pageBreak": "Pemisah Halaman"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/PasteFromWord.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/PasteFromWord.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/PasteFromWord.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	"pasteFromWord": "Tempel Dari Word",
+	"instructions": "Tempelkan konten dari Word ke dalam kotak teks di bawah.  Setelah Anda merasa yakin dengan konten yang disisipkan, tekan tombol tempel.  Untuk membatalkan penyisipan teks, tekan tombol batal."
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/Preview.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/Preview.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/Preview.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"preview": "Pratinjau"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/SafePaste.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/SafePaste.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/SafePaste.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"instructions": "Penempelan Langsung dinonaktifkan.  Silahkan untuk menempel konten dalam dialog ini menggunakan keyboard penelusuran standar atau menu kontrol tempel.  Setelah Anda merasa yakin dengan konten yang disisipkan, tekan tombol tempel.  Untuk membatalkan penyisipan teks, tekan tombol batal."
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/Save.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/Save.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/Save.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"save": "Simpan"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/ShowBlockNodes.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/ShowBlockNodes.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/ShowBlockNodes.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	"showBlockNodes": "Perlihatkan Elemen Blok HTML"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/Smiley.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/Smiley.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/Smiley.js	(revision 485)
@@ -0,0 +1,25 @@
+define(
+({
+	smiley: "Sisipkan Emoticon",
+	emoticonSmile: "tersenyum",
+	emoticonLaughing: "tertawa",
+	emoticonWink: "mengedipkan mata",
+	emoticonGrin: "menyeringai",
+	emoticonCool: "keren",
+	emoticonAngry: "marah",
+	emoticonHalf: "setengah tersenyum",
+	emoticonEyebrow: "menaikkan alis",
+	emoticonFrown: "cemberut",
+	emoticonShy: "malu",
+	emoticonGoofy: "bodoh",
+	emoticonOops: "aduh",
+	emoticonTongue: "menjulurkan lidah",
+	emoticonIdea: "mendapatkan ide",
+	emoticonYes: "ya",
+	emoticonNo: "tidak",
+	emoticonAngel: "malaikat",
+	emoticonCrying: "menangis",
+	emoticonHappy: "bahagia"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/SpellCheck.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/SpellCheck.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/SpellCheck.js	(revision 485)
@@ -0,0 +1,19 @@
+define(
+({
+	widgetLabel: "Batch Spell Check",
+	unfound: "Tidak Ditemukan",
+	skip: "Lewati",
+	skipAll: "Lewati Semua",
+	toDic: "Tambahkan ke dalam kamus",
+	suggestions: "Saran",
+	replace: "Ganti",
+	replaceWith: "Ganti dengan",
+	replaceAll: "Ganti Semua",
+	cancel: "Batal",
+	msg: "Tidak ada kesalahan ejaan yang ditemukan",
+	iSkip: "Lewati ini",
+	iSkipAll: "Lewati semua yang seperti ini",
+	iMsg: "Tidak ada saran untuk ejaan"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/TableDialog.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/TableDialog.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/TableDialog.js	(revision 485)
@@ -0,0 +1,34 @@
+define(
+({
+	insertTableTitle: "Sisipkan Tabel",
+	modifyTableTitle: "Ubah Tabel",
+	rows: "Baris:",
+	columns: "Kolom:",
+	align: "Ratakan:",
+	cellPadding: "Pengisian Sel:",
+	cellSpacing: "Penspasian Sel:",
+	tableWidth: "Lebar Tabel:",
+	backgroundColor: "Warna Latar Belakang:",
+	borderColor: "Warna Batas:",
+	borderThickness: "Ketebalan Batas:",
+	percent: "persen",
+	pixels: "piksel",
+	"default": "default",
+	left: "kiri",
+	center: "tengah",
+	right: "kanan",
+	buttonSet: "Setel", // translated elsewhere?
+	buttonInsert: "Sisip",
+	buttonCancel: "Batal",
+	selectTableLabel: "Pilih Tabel",
+	insertTableRowBeforeLabel: "Tambahkan Baris Sebelumnya",
+	insertTableRowAfterLabel: "Tambahkan Baris Setelahnya",
+	insertTableColumnBeforeLabel: "Tambahkan Kolom Sebelumnya",
+	insertTableColumnAfterLabel: "Tambahkan Kolom Setelahnya",
+	deleteTableRowLabel: "Hapus Baris",
+	deleteTableColumnLabel: "Hapus Kolom",
+	colorTableCellTitle: "Warna Latar Belakang Sel Tabel",
+	tableContextMenuTitle: "Menu Konteks Tabel"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/TextColor.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/TextColor.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/TextColor.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	"setButtonText": "Atur",
+	"cancelButtonText": "Batal"
+})
+);
+
Index: Dev/trunk/src/client/dojox/editor/plugins/nls/id/latinEntities.js
===================================================================
--- Dev/trunk/src/client/dojox/editor/plugins/nls/id/latinEntities.js	(revision 485)
+++ Dev/trunk/src/client/dojox/editor/plugins/nls/id/latinEntities.js	(revision 485)
@@ -0,0 +1,258 @@
+define(
+({
+	/* These are already handled in the default RTE
+	amp:"ampersand",lt:"less-than sign",
+	gt:"greater-than sign",
+	nbsp:"no-break space\nnon-breaking space",
+	quot:"quote",
+	*/
+	iexcl:"tanda seru terbalik",
+	cent:"tanda sen",
+	pound:"tanda pondsterling",
+	curren:"tanda mata uang",
+	yen:"tanda yen\tanda nyuan",
+	brvbar:"garis putus-putus\ngaris vertikal putus-putus",
+	sect:"tanda bagian",
+	uml:"diaeresis\ndiaresis spasi",
+	copy:"tanda hak cipta",
+	ordf:"indikator ordinal feminin",
+	laquo:"tanda kutipan sudut ganda kanan\nguillemet kiri",
+	not:"tanda larangan",
+	shy:"tanda hubung tipis\ntanda hubung diskresioner",
+	reg:"tanda terdaftar\ntanda merek dagang tercatat",
+	macr:"garis makron\ngaris makron spasi\noverline\nbilah APL",
+	deg:"tanda derajat",
+	plusmn:"tanda tambah-kurang\ntanda tambah-atau-kurang",
+	sup2:"tanda pangkat dua\ntanda pangkat dua digit\npersegi",
+	sup3:"tand apangkat tiga\ntanda pangkat tiga digit\nkubik",
+	acute:"aksen akut\nakut spasi",
+	micro:"tanda mikro",
+	para:"tanda pilcrow\ntanda paragraf",
+	middot:"titik tengah\nkoma Georgian\ntitik tengah Yunani",
+	cedil:"cedilla\ncedilla spasi",
+	sup1:"tanda pangkat satu\ntanda pangkat satu digit",
+	ordm:"indikator ordinal maskulin",
+	raquo:"tanda kutipan sudut ganda kanan\nguillemet kanan",
+	frac14:"pecahan satu per empat vulgar\npecahan satu per empat",
+	frac12:"pecahan satu per dua vulgar\npecahan satu per dua",
+	frac34:"pecahan satu per tiga vulgar\npecahan satu per tiga",
+	iquest:"tanda tanya terbalik\ntanda tanya berputar",
+	Agrave:"huruf kapital Latin A dengan grave\nhuruf kapital Latin A grave",
+	Aacute:"huruf kapital Latin A dengan akut",
+	Acirc:"huruf kapital Latin A dengan sirkomfleks",
+	Atilde:"huruf kapital Latin A dengan tilde",
+	Auml:"huruf kapital Latin A dengan diaeresis",
+	Aring:" huruf kapital Latin A dengan lingkaran di atas\nhuruf kapital Latin A lingkaran",
+	AElig:"huruf kapital Latin AE\nhuruf kapital Latin AE ligature",
+	Ccedil:"huruf kapital Latin C dengan cedilla",
+	Egrave:"huruf kapital Latin E dengan grave",
+	Eacute:"Hurufkapital Latin E dengan akut",
+	Ecirc:"huruf kapital Latin E dengan sirkomfleks",
+	Euml:"huruf kapital Latin E dengan diaeresis",
+	Igrave:"huruf kapital Latin I dengan grave",
+	Iacute:"huruf kapital Latin I dengan akut",
+	Icirc:"huruf kapital Latin I dengan sirkomfleks",
+	Iuml:"huruf kapital Latin I dengan diaeresis",
+	ETH:"huruf kapital Latin ETH",
+	Ntilde:"huruf kapital Latin N dengan tilde",
+	Ograve:"huruf kapital Latin O dengan grave",
+	Oacute:"huruf kapital Latin O dengan akut",
+	Ocirc:"huruf kapital Latin O dengan sirkomfleks",
+	Otilde:"huruf kapital Latin O dengan tilde",
+	Ouml:"huruf kapital Latin O dengan diaeresis",
+	times:"tanda perkalian",
+	Oslash:"huruf kapital Latin O dengan stroke\nhuruf kapital Latin bertanda miring",
+	Ugrave:"huruf kapital Latin dengan grave",
+	Uacute:"huruf kapital Latin U dengan akut",
+	Ucirc:"huruf kapital Latin u U dengan sirkomfleks",
+	Uuml:"huruf kapital Latin U dengan diaeresis",
+	Yacute:"huruf kapital Latin Y dengan akut",
+	THORN:"huruf kapital Latin THORN",
+	szlig:"huruf kecil Latin s tajam\ness-zed",
+	agrave:"huruf kecil Latin a dengan grave\nhuruf kecil Latin a grave",
+	aacute:"huruf kecil Latin a dengan akut",
+	acirc:"huruf kecil Latin a dengan sirkomfleks",
+	atilde:"Hruf kecil Latin a dengan tilde",
+	auml:"huruf kecil Latin a dengan diaeresis",
+	aring:"huruf kecil Latin a dengan lingkaran di atas\nhuruf kecil Latin a lingkaran",
+	aelig:"huruf kecil Latin ae\nHuruf Latin kecil ae ligature",
+	ccedil:"huruf kecil Latin c dengan cedilla",
+	egrave:"huruf kecil Latin e dengan grave",
+	eacute:"huruf kecil Latin e dengan akut",
+	ecirc:"Hruf kecil Latin e dengan sirkomfleks",
+	euml:"huruf kecil Latin e dengan diaeresis",
+	igrave:"huruf kecil Latin i dengan grave",
+	iacute:"huruf kecil Latin i dengan akut",
+	icirc:"huruf kecil Latin i dengan sirkomfleks",
+	iuml:"huruf kecil Latin i dengan diaeresis",
+	eth:"huruf kecil Latin eth",
+	ntilde:"huruf kecil Latin n dengan tilde",
+	ograve:"huruf kecil Latin o dengan grave",
+	oacute:"huruf kecil Latin o dengan akut",
+	ocirc:"huruf kecil Latin o dengan sirkomfleks",
+	otilde:"huruf kecil Latin o dengan tilde",
+	ouml:"huruf kecil Latin o dengan diaeresis",
+	divide:"tanda pembagi",
+	oslash:"huruf kecil Latin o dengan stroke\nhuruf kecil Latin o bertanda miring",
+	ugrave:"huruf kecil Latin u dengan grave",
+	uacute:"huruf kecil Latin u dengan akut",
+	ucirc:"huruf kecil Latin u dengan sirkomfleks",
+	uuml:"huruf kecil Latin u dengan diaresis",
+	yacute:"huruf kecil Latin y dengan akut",
+	thorn:"huruf kecil Latin thorn",
+	yuml:"huruf kecil Latin y dengan diaresis",
+// Greek Characters and Symbols
+	fnof:"f kecil Latin dengan pengait\nfungsi\nflorin",
+	Alpha:"huruf kapital Yunani alpha",
+	Beta:"huruf kapital Yunani beta",
+	Gamma:"huruf kapital Yunani gamma",
+	Delta:"huruf kapital Yunani delta",
+	Epsilon:"huruf kapital Yunani epsilon",
+	Zeta:"huruf kapital Yunani zeta",
+	Eta:"huruf kapital Yunani eta",
+	Theta:"huruf kapital Yunani theta",
+	Iota:"huruf kapital Yunani iota",
+	Kappa:"huruf kapital Yunani kappa",
+	Lambda:"huruf kapital Yunani lambda",
+	Mu:"huruf kapital Yunani mu",
+	Nu:"huruf kapital Yunani nu",
+	Xi:"huruf kapital Yunani xi",
+	Omicron:"huruf kapital Yunani omicron",
+	Pi:"huruf kapital Yunani pi",
+	Rho:"huruf kapital Yunani rho",
+	Sigma:"huruf kapital Yunani sigma",
+	Tau:"huruf kapital Yunani tau",
+	Upsilon:"huruf kapital Yunani upsilon",
+	Phi:"huruf kapital Yunani phi",
+	Chi:"huruf kapital Yunani chi",
+	Psi:"huruf kapital Yunani psi",
+	Omega:"huruf kapital Yunani omega",
+	alpha:"huruf kecil Yunani alpha",
+	beta:"huruf kecil Yunani beta",
+	gamma:"huruf kecil Yunani gamma",
+	delta:"huruf kecil Yunani delta",
+	epsilon:"huruf kecil Yunani epsilon",
+	zeta:"huruf kecil Yunani zeta",
+	eta:"huruf kecil Yunani eta",
+	theta:"huruf kecil Yunani theta",
+	iota:"huruf kecil Yunani iota",
+	kappa:"huruf kecil Yunani kappa",
+	lambda:"huruf kecil Yunani lambda",
+	mu:"huruf kecil Yunani mu",
+	nu:"huruf kecil Yunani nu",
+	xi:"huruf kecil Yunani xi",
+	omicron:"huruf kecil Yunani omicron",
+	pi:"huruf kecil Yunani pi",
+	rho:"huruf kecil Yunani rho",
+	sigmaf:"huruf kecil Yunani sigma final",
+	sigma:"huruf kecil Yunani sigma",
+	tau:"huruf kecil Yunani tau",
+	upsilon:"huruf kecil Yunani upsilon",
+	phi:"huruf kecil Yunani phi",
+	chi:"huruf kecil Yunani chi",
+	psi:"huruf kecil Yunani psi",
+	omega:"huruf kecil Yunani omega",
+	thetasym:"huruf kecil Yunani simbol theta",
+	upsih:"upsilon Yunani dengan simbol pengait",
+	piv:"simbol pi Yunani",
+	bull:"bullet\nlingkaran kecil hitam",
+	hellip:"elipsis horisontal\nleader titik tiga",
+	prime:"prima\nmenit\nkaki",
+	Prime:"prima ganda\ndetik\ninci",
+	oline:"overline\noverscore spasi",
+	frasl:"garis miring pecahan",
+	weierp:"huruf latin kapital P\npengatur daya\nWeierstrass p",
+	image:"kapital blackletter I\nbagian imajiner",
+	real:"kapital blackletter R\nsimbol bagian riil",
+	trade:"tanda merek dagang",
+	alefsym:"simbol alef\nkardinal transfinit pertama",
+	larr:"tanda panah ke kiri",
+	uarr:"tanda panah ke atas",
+	rarr:"tanda panah ke kanan",
+	darr:"tanda panah ke bawah",
+	harr:"tanda panah kanan kiri",
+	crarr:"tanda panah ke bawah dengan sudut ke kiri\nkembali ke awal baris",
+	lArr:"tanda panah ganda ke kanan",
+	uArr:"tanda panah ganda ke atas",
+	rArr:"tanda panah ganda ke kanan",
+	dArr:"tanda panah ganda ke bawah",
+	hArr:"tanda panah ganda kanan kiri",
+	forall:"untuk semua",
+	part:"diferensi parsial",
+	exist:"terdapat",
+	empty:"kumpulan kosong\nkumpulan nol\ndiameter",
+	nabla:"nabla\nselisih mundur",
+	isin:"elemen dari",
+	notin:"bukan elemen dari",
+	ni:"berisi sebagai anggota",
+	prod:"n-produk ary\ntanda produk",
+	sum:"n-sigma",
+	minus:"tanda kurang",
+	lowast:"operator asterik",
+	radic:"akar pangkat dua\ntanda radikal",
+	prop:"berbanding lurus dengan",
+	infin:"tidak terhingga",
+	ang:"sudut",
+	and:"logika dan\nirisan",
+	or:"logika atau\nvee",
+	cap:"perpotongan\ncap",
+	cup:"gabungan\ncup","int":"integral",
+	there4:"oleh karena itu",
+	sim:"operator tilde\nvariasi dengan\nserupa dengan",
+	cong:"kurang lebih sama dengan",
+	asymp:"hampir sama dengan\nasimtot dengan",
+	ne:"tidak sama dengan",
+	equiv:"sama dengan",
+	le:"kurang dari atau sama dengan",
+	ge:"lebih dari atau sama dengan",
+	sub:"himpunan bagian dari",
+	sup:"superset dari",
+	nsub:"bukan himpunan bagian dari",
+	sube:"himpunan bagian atau sama dengan",
+	supe:"superset dari atau sama dengan",
+	oplus:"lingkaran dengan tambah positif\njumlah langsung",
+	otimes:"lingkaran dengan tanda kali\nhasil vektor",
+	perp:"paku ke atas\nortogonal to\ntegaklurus",
+	sdot:"operator titik",
+	lceil:" ceiling kiri\nupstile APL",
+	rceil:"ceiling kanan",
+	lfloor:"floor kanan\ndownstile APL",
+	rfloor:"floor kanan",
+	lang:"braket dengan sudut penunjuk ke kiri",
+	rang:"braket dengan sudut penunjuk ke kanan",
+	loz:"lozenge",
+	spades:"sekop hitam",
+	clubs:"keriting hitam\nshamrock",
+	hearts:"hati hitam\nvalentine",
+	diams:"wajik hitam",
+	OElig:"huruf kapital Latin OE ligature",
+	oelig:"huruf kecil Latin oe ligature",
+	Scaron:"huruf kapital Latin S dengan caron",
+	scaron:"huruf kecil Latin s dengan caron",
+	Yuml:"huruf kapital Latin Y dengan diaeresis",
+	circ:"aksen sirkomfleks pengubah huruf",
+	tilde:"tilde kecil",
+	ensp:"spasi en",
+	emsp:"spasi em",
+	thinsp:"spasi tipis",
+	zwnj:"tanpa penghubung lebar nol",
+	zwj:"penghubung lebar nol",
+	lrm:"tanda kiri-ke-kanan",
+	rlm:"tanda kanan-ke-kiri",
+	ndash:"tanda pisah en",
+	mdash:"tanda pisah em",
+	lsquo:"tanda petik tunggal kiri",
+	rsquo:"tanda petik tunggal kanan",
+	sbquo:"tanda petik tunggal berbentuk angka 9",
+	ldquo:"tanda petik ganda kiri",
+	rdquo:"tanda petik ganda kanan",
+	bdquo:"tanda petik ganda berbentuk angka 9",
+	dagger:"salib",
+	Dagger:"salib ganda",
+	permil:"tanda per mil",
+	lsaquo:"tanda petik tunggal dengan sudut penunjuk ke kiri",
+	rsaquo:"tanda petik tunggal dengan sudut penunjuk ke kanan",
+	euro:"tanda euro"
+})
+);
+
Index: Dev/trunk/src/client/dojox/form/nls/id/CheckedMultiSelect.js
===================================================================
--- Dev/trunk/src/client/dojox/form/nls/id/CheckedMultiSelect.js	(revision 485)
+++ Dev/trunk/src/client/dojox/form/nls/id/CheckedMultiSelect.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	invalidMessage: "Setidaknya harus dipilih satu buah item.",
+	multiSelectLabelText: "{num} item yang dipilih"
+})
+);
+
Index: Dev/trunk/src/client/dojox/form/nls/id/PasswordValidator.js
===================================================================
--- Dev/trunk/src/client/dojox/form/nls/id/PasswordValidator.js	(revision 485)
+++ Dev/trunk/src/client/dojox/form/nls/id/PasswordValidator.js	(revision 485)
@@ -0,0 +1,7 @@
+define(
+({
+	nomatchMessage: "Kata Kunci tidak sesuai.",
+	badPasswordMessage: "Kata Kunci tidak valid."
+})
+);
+
Index: Dev/trunk/src/client/dojox/form/nls/id/Uploader.js
===================================================================
--- Dev/trunk/src/client/dojox/form/nls/id/Uploader.js	(revision 485)
+++ Dev/trunk/src/client/dojox/form/nls/id/Uploader.js	(revision 485)
@@ -0,0 +1,6 @@
+define(
+({
+	label: "Pilih File..."
+})
+);
+
Index: Dev/trunk/src/client/dojox/grid/enhanced/nls/id/EnhancedGrid.js
===================================================================
--- Dev/trunk/src/client/dojox/grid/enhanced/nls/id/EnhancedGrid.js	(revision 485)
+++ Dev/trunk/src/client/dojox/grid/enhanced/nls/id/EnhancedGrid.js	(revision 485)
@@ -0,0 +1,14 @@
+define(
+({
+	singleSort: "Pengurutan Tunggal",
+	nestedSort: "Pengurutan Berkelompok",
+	ascending: "Klik untuk mengurutkan Ke Atas",
+	descending: "Klik untuk mengurutkan Ke Bawah",
+	sortingState: "${0} - ${1}",
+	unsorted: "Jangan mengurutkan kolom ini",
+	indirectSelectionRadio: "Baris ${0}, pemilihan tunggal, kotak radio",
+	indirectSelectionCheckBox: "Baris ${0}, pemilihan ganda, kotak cek",
+	selectAll: "Pilih semua"
+})
+);
+
Index: Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Filter.js
===================================================================
--- Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Filter.js	(revision 485)
+++ Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Filter.js	(revision 485)
@@ -0,0 +1,76 @@
+define(
+({
+	"clearFilterDialogTitle": "Kosongkan Filter",
+	"filterDefDialogTitle": "Filter",
+	"ruleTitleTemplate": "Penggaris ${0}",
+	"conditionEqual": "sama dengan",
+	"conditionNotEqual": "tidak sama dengan",
+	"conditionLess": "kurang dari",
+	"conditionLessEqual": "kurang dari atau sama dengan",
+	"conditionLarger": "lebih besar dari",
+	"conditionLargerEqual": "lebih besar dari atau sama dengan",
+	"conditionContains": "berisi",
+	"conditionIs": "adalah",
+	"conditionStartsWith": "dimulai dengan",
+	"conditionEndWith": "diakhiri dengan",
+	"conditionNotContain": "tidak memuat",
+	"conditionIsNot": "tidak",
+	"conditionNotStartWith": "tidak dimulai dengan",
+	"conditionNotEndWith": "tidak diakhiri dengan",
+	"conditionBefore": "sebelum",
+	"conditionAfter": "setelah",
+	"conditionRange": "rentang",
+	"conditionIsEmpty": "kosong",
+	"all": "semua",
+	"any": "apa pun",
+	"relationAll": "semua penggaris",
+	"waiRelAll": "Sesuaikan semua penggaris berikut:",
+	"relationAny": "penggaris apa pun",
+	"waiRelAny": "Sesuaikan semua penggaris berikut:",
+	"relationMsgFront": "Sesuaikan:",
+	"relationMsgTail": "",
+	"and": "dan",
+	"or": "atau",
+	"addRuleButton": "Tambahkan Penggaris",
+	"waiAddRuleButton": "Tambahkan penggaris baru",
+	"removeRuleButton": "Hapus Penggaris",
+	"waiRemoveRuleButtonTemplate": "Hapus penggaris ${0}",
+	"cancelButton": "Batal",
+	"waiCancelButton": "Batalkan dialog ini",
+	"clearButton": "Kosongkan",
+	"waiClearButton": "Kosongkan filter",
+	"filterButton": "Filter",
+	"waiFilterButton": "Kirimkan filter",
+	"columnSelectLabel": "Kolom",
+	"waiColumnSelectTemplate": "Kolom untuk penggaris ${0}",
+	"conditionSelectLabel": "Kondisi",
+	"waiConditionSelectTemplate": "Kondisi untuk penggaris ${0}",
+	"valueBoxLabel": "Nilai",
+	"waiValueBoxTemplate": "Masukkan nilai untuk menyaring penggaris ${0}",
+	"rangeTo": "untuk",
+	"rangeTemplate": "dari ${0} untuk ${1}",
+	"statusTipHeaderColumn": "Kolom",
+	"statusTipHeaderCondition": "Penggaris",
+	"statusTipTitle": "Bilah Filter",
+	"statusTipMsg": "Klik bilah filter di sini untuk menyaring nilai pada ${0}.",
+	"anycolumn": "kolom mana pun",
+	"statusTipTitleNoFilter": "Bilah Filter",
+	"statusTipTitleHasFilter": "Filter",
+	"statusTipRelAny": "Sesuaikan semua penggaris berikut.",
+	"statusTipRelAll": "Sesuaikan semua penggaris.",
+	"defaultItemsName": "item",
+	"filterBarMsgHasFilterTemplate": "${0} dari ${1} ${2} diperlihatkan.",
+	"filterBarMsgNoFilterTemplate": "Tidak ada filter yang diterapkan",
+	"filterBarDefButton": "Tentukan filter",
+	"waiFilterBarDefButton": "Saring tabel",
+	"a11yFilterBarDefButton": "Saring...",
+	"filterBarClearButton": "Kosongkan filter",
+	"waiFilterBarClearButton": "Kosongkan filter",
+	"closeFilterBarBtn": "Tutup bilah filter ",
+	"clearFilterMsg": "Menutup bilah filter akan menghapus semua filter dan memperlihatkan semua catatan yang tersedia.",
+	"anyColumnOption": "kolom mana pun",
+	"trueLabel": "Benar",
+	"falseLabel": "Salah"
+})
+);
+
Index: Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Pagination.js
===================================================================
--- Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Pagination.js	(revision 485)
+++ Dev/trunk/src/client/dojox/grid/enhanced/nls/id/Pagination.js	(revision 485)
@@ -0,0 +1,22 @@
+define(
+({
+	"descTemplate": "${2} - ${3} dari ${1} ${0}",
+	"firstTip": "Halaman Pertama",
+	"lastTip": "Halaman Terakhir",
+	"nextTip": "Halaman Berikutnya",
+	"prevTip": "Halaman Sebelumnya",
+	"itemTitle": "item",
+	"singularItemTitle": "item",
+	"pageStepLabelTemplate": "Halaman ${0}",
+	"pageSizeLabelTemplate": "${0} item per halaman",
+	"allItemsLabelTemplate": "Semua item",
+	"gotoButtonTitle": "Beralih ke halaman tertentu",
+	"dialogTitle": "Beralih ke Halaman",
+	"dialogIndication": "Tentukan nomor halaman",
+	"pageCountIndication": " (${0} halaman)",
+	"dialogConfirm": "Beralih",
+	"dialogCancel": "Batal",
+	"all": "Semua"
+})
+);
+
Index: Dev/trunk/src/client/dojox/mobile/tests/doh/edgetoedgestorelist/EdgeToEdgeStoreList-sorted.html
===================================================================
--- Dev/trunk/src/client/dojox/mobile/tests/doh/edgetoedgestorelist/EdgeToEdgeStoreList-sorted.html	(revision 485)
+++ Dev/trunk/src/client/dojox/mobile/tests/doh/edgetoedgestorelist/EdgeToEdgeStoreList-sorted.html	(revision 485)
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
+	<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>
+	<meta name="apple-mobile-web-app-capable" content="yes"/>
+	<title>EdgeToEdgeStoreList sorted</title>
+
+	<script src="../../../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base']"></script>
+	<script src="../../../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: false"></script>
+	<script>
+	require([
+		"dojo/dom",
+		"dijit/registry",  // dijit.byId
+		"doh/runner",
+		"dojox/mobile/EdgeToEdgeStoreList",
+		"dojo/store/Observable",
+		"dojo/store/Memory",
+		"dojox/mobile/parser",		// This mobile app uses declarative programming with fast mobile parser
+		"dojox/mobile",				// This is a mobile app.
+		"dojox/mobile/View",		// This mobile app uses mobile view
+		"dojox/mobile/compat",		// This mobile app supports running on desktop browsers
+		"dojo/domReady!"
+	], function(dom, registry, runner, EdgeToEdgeStoreList, Observable, Memory, parser){
+			var storeData = [{label:"A item", rightText: "A"},
+                              {label:"Z item", rightText: "Z"},
+                              {label:"B item", rightText: "B"},
+                              {label:"Y item", rightText: "Y"},
+                              {label:"C item", rightText: "C"},
+                              {label:"X item", rightText: "X"},
+                              {label:"D item", rightText: "D"},
+                              {label:"W item", rightText: "W"},
+                              {label:"E item", rightText: "E"},
+                              {label:"V item", rightText: "V"},
+                              {label:"F item", rightText: "F"},
+                              {label:"U item", rightText: "U"},
+                              {label:"G item", rightText: "G"},
+                              {label:"T item", rightText: "T"},
+                              {label:"H item", rightText: "H"},
+                              {label:"S item", rightText: "S"},
+                              {label:"I item", rightText: "I"},
+                              {label:"R item", rightText: "R"},
+                              {label:"J item", rightText: "J"},
+                              {label:"Q item", rightText: "Q"},
+                              {label:"K item", rightText: "K"},
+                              {label:"P item", rightText: "P"},
+                              {label:"L item", rightText: "L"},
+                              {label:"O item", rightText: "O"},
+                              {label:"M item", rightText: "M"},
+                              {label:"N item", rightText: "N"}];
+			var store = Observable(new Memory({data: storeData, idProperty: "label"}));
+			var updateItemRightText = function(itemLabel, newRightText) {
+				var item = store.get(itemLabel);
+				if(item){
+					item.rightText = newRightText;
+					store.put(item);
+				}else{
+					alert("Cannot find item labelled " + itemLabel);
+				}
+			}
+			parser.parse();
+			var view = registry.byId("view1");
+			var demoWidget = new EdgeToEdgeStoreList({id:"list", store:store, query:{}, queryOptions:{sort:[{attribute:"rightText"}]}});
+			demoWidget.placeAt(view.containerNode);
+			demoWidget.startup();
+			dom.byId("updateButton").onclick = function () {
+				updateItemRightText(dom.byId("labelInput").value, dom.byId("rightTextInput").value);
+			};
+			
+			runner.register("EdgeToEdgeList sorted", [
+				{
+					name: "Check that #17622 is solved",
+					timeout: 4000,
+					runTest: function () {
+						var list = registry.byId("list");
+						runner.assertEqual(26, list.domNode.children.length, "The number of list items is not the expected one");
+						runner.assertEqual("A", list.domNode.children[0].children[0].innerHTML, "First item right text is not the expected one");
+						runner.assertEqual("A item", list.domNode.children[0].children[1].innerHTML, "First item label is not the expected one");
+						runner.assertEqual("Z", list.domNode.children[25].children[0].innerHTML, "Last item right text is not the expected one");
+						runner.assertEqual("Z item", list.domNode.children[25].children[1].innerHTML, "Last item label is not the expected one");
+						dom.byId("labelInput").value = "Z item";
+						dom.byId("rightTextInput").value = "A";
+						dom.byId("updateButton").onclick();
+						runner.assertEqual(26, list.domNode.children.length, "The number of list items is not the expected one after first update");
+						runner.assertEqual("A", list.domNode.children[0].children[0].innerHTML, "First item right text is not the expected one after first update");
+						runner.assertEqual("A item", list.domNode.children[0].children[1].innerHTML, "First item label is not the expected one after first update");
+						runner.assertEqual("A", list.domNode.children[1].children[0].innerHTML, "Second item right text is not the expected one after first update");
+						runner.assertEqual("Z item", list.domNode.children[1].children[1].innerHTML, "Second item label is not the expected one after first update");
+						runner.assertEqual("Y", list.domNode.children[25].children[0].innerHTML, "Last item right text is not the expected one after first update");
+						runner.assertEqual("Y item", list.domNode.children[25].children[1].innerHTML, "Last item label is not the expected one after first update");
+						dom.byId("labelInput").value = "Z item";
+						dom.byId("rightTextInput").value = "Z";
+						dom.byId("updateButton").onclick();
+						runner.assertEqual(26, list.domNode.children.length, "The number of list items is not the expected one after second update");
+						runner.assertEqual("A", list.domNode.children[0].children[0].innerHTML, "First item right text is not the expected one after second update");
+						runner.assertEqual("A item", list.domNode.children[0].children[1].innerHTML, "First item label is not the expected one after second update");
+						runner.assertEqual("Z", list.domNode.children[25].children[0].innerHTML, "Last item right text is not the expected one after second update");
+						runner.assertEqual("Z item", list.domNode.children[25].children[1].innerHTML, "Last item label is not the expected one after second update");
+					}
+				}
+			]);
+			runner.run();
+		});
+</script>
+</head>
+<body style="visibility:hidden;">
+	<div id="view1" data-dojo-type="dojox/mobile/View">
+		<h1>List sorted by items right text.</h1>
+		<label for="labelInput">Label:</label>
+		<input id="labelInput" type="text">
+		<label for="rightTextInput">New right text:</label>
+		<input id="rightTextInput" type="text">
+		<input id="updateButton" type="button" value="update">
+		<p>
+	</div>
+</body>
+</html>
Index: Dev/trunk/src/client/dojox/widget/nls/id/ColorPicker.js
===================================================================
--- Dev/trunk/src/client/dojox/widget/nls/id/ColorPicker.js	(revision 485)
+++ Dev/trunk/src/client/dojox/widget/nls/id/ColorPicker.js	(revision 485)
@@ -0,0 +1,15 @@
+define(
+({
+	redLabel: "r",
+	greenLabel: "g",
+	blueLabel: "b",
+	hueLabel: "h",
+	saturationLabel: "s",
+	valueLabel: "v", /* aka intensity or brightness */
+	degLabel: "\u00B0",
+	hexLabel: "hex",
+	huePickerTitle: "Selektor Corak",
+	saturationPickerTitle: "Selektor Kepekatan"
+})
+);
+
Index: Dev/trunk/src/client/dojox/widget/nls/id/FilePicker.js
===================================================================
--- Dev/trunk/src/client/dojox/widget/nls/id/FilePicker.js	(revision 485)
+++ Dev/trunk/src/client/dojox/widget/nls/id/FilePicker.js	(revision 485)
@@ -0,0 +1,8 @@
+define(
+({
+	name: "Nama",
+	path: "Jalur",
+	size: "Ukuran (dalam byte)"
+})
+);
+
Index: Dev/trunk/src/client/dojox/widget/nls/id/Wizard.js
===================================================================
--- Dev/trunk/src/client/dojox/widget/nls/id/Wizard.js	(revision 485)
+++ Dev/trunk/src/client/dojox/widget/nls/id/Wizard.js	(revision 485)
@@ -0,0 +1,8 @@
+define(
+({
+	next: "Berikutnya",
+	previous: "Sebelumnya",
+	done: "Selesai"
+})
+);
+
Index: Dev/trunk/src/client/util/package.json
===================================================================
--- Dev/trunk/src/client/util/package.json	(revision 485)
+++ Dev/trunk/src/client/util/package.json	(revision 485)
@@ -0,0 +1,20 @@
+{
+	"name": "dojo-util",
+	"version":"1.9.3",
+	"licenses": [
+		{
+			"type": "AFLv2.1",
+			"url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43"
+		},
+		{
+			"type": "BSD",
+			"url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13"
+		}
+	],
+	"description": "Dojo utilities including build system for optimizing JavaScript application performance, and DOH testing tool",
+	"bugs": {
+		"url": "http://bugs.dojotoolkit.org/"
+	},
+	"keywords": ["JavaScript", "Dojo", "Toolkit", "util"],
+	"homepage": "http://dojotoolkit.org/"
+}
