From 63ebaef1c40c719465ff3a4a6e482202c41b2953 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 28 Aug 2013 10:40:29 +0900
Subject: [PATCH] Add Nepali Romanized keyboard

Bug: 6910787
Change-Id: Ib803a75ac3c0e36e05b82f36a38b3a7bc2cae689
---
 .../res/xml-sw600dp/rows_nepali_romanized.xml |  57 ++++++++
 .../res/xml-sw768dp/rows_nepali_romanized.xml |  68 ++++++++++
 java/res/xml-v16/key_nepali_romanized2.xml    |  32 +++++
 .../xml-v16/key_nepali_romanized2_shift.xml   |  32 +++++
 java/res/xml-v16/key_nepali_romanized3.xml    |  32 +++++
 .../key_nepali_romanized3_shift_center.xml    |  32 +++++
 .../key_nepali_romanized3_shift_left.xml      |  32 +++++
 .../key_nepali_romanized3_shift_right.xml     |  32 +++++
 .../xml-v16/keys_nepali_romanized1_left2.xml  |  42 ++++++
 .../xml-v16/keys_nepali_romanized1_right3.xml |  49 +++++++
 .../keys_nepali_romanized1_shift_left2.xml    |  36 ++++++
 .../keys_nepali_romanized1_shift_right2.xml   |  36 ++++++
 java/res/xml/kbd_nepali_romanized.xml         |  26 ++++
 java/res/xml/key_nepali_romanized2.xml        |  34 +++++
 java/res/xml/key_nepali_romanized2_shift.xml  |  34 +++++
 java/res/xml/key_nepali_romanized3.xml        |  34 +++++
 .../key_nepali_romanized3_shift_center.xml    |  34 +++++
 .../xml/key_nepali_romanized3_shift_left.xml  |  34 +++++
 .../xml/key_nepali_romanized3_shift_right.xml |  34 +++++
 .../keyboard_layout_set_nepali_romanized.xml  |  55 ++++++++
 java/res/xml/keys_nepali_romanized1_left2.xml |  46 +++++++
 .../res/xml/keys_nepali_romanized1_right3.xml |  55 ++++++++
 .../keys_nepali_romanized1_shift_left2.xml    |  40 ++++++
 .../keys_nepali_romanized1_shift_right2.xml   |  40 ++++++
 java/res/xml/method.xml                       |   8 ++
 java/res/xml/rowkeys_hindi1.xml               |   1 +
 java/res/xml/rowkeys_nepali_romanized1.xml    | 121 +++++++++++++++++
 java/res/xml/rowkeys_nepali_romanized2.xml    | 122 ++++++++++++++++++
 java/res/xml/rowkeys_nepali_romanized3.xml    | 110 ++++++++++++++++
 java/res/xml/rows_nepali_romanized.xml        |  52 ++++++++
 30 files changed, 1360 insertions(+)
 create mode 100644 java/res/xml-sw600dp/rows_nepali_romanized.xml
 create mode 100644 java/res/xml-sw768dp/rows_nepali_romanized.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized2.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized2_shift.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized3.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized3_shift_center.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized3_shift_left.xml
 create mode 100644 java/res/xml-v16/key_nepali_romanized3_shift_right.xml
 create mode 100644 java/res/xml-v16/keys_nepali_romanized1_left2.xml
 create mode 100644 java/res/xml-v16/keys_nepali_romanized1_right3.xml
 create mode 100644 java/res/xml-v16/keys_nepali_romanized1_shift_left2.xml
 create mode 100644 java/res/xml-v16/keys_nepali_romanized1_shift_right2.xml
 create mode 100644 java/res/xml/kbd_nepali_romanized.xml
 create mode 100644 java/res/xml/key_nepali_romanized2.xml
 create mode 100644 java/res/xml/key_nepali_romanized2_shift.xml
 create mode 100644 java/res/xml/key_nepali_romanized3.xml
 create mode 100644 java/res/xml/key_nepali_romanized3_shift_center.xml
 create mode 100644 java/res/xml/key_nepali_romanized3_shift_left.xml
 create mode 100644 java/res/xml/key_nepali_romanized3_shift_right.xml
 create mode 100644 java/res/xml/keyboard_layout_set_nepali_romanized.xml
 create mode 100644 java/res/xml/keys_nepali_romanized1_left2.xml
 create mode 100644 java/res/xml/keys_nepali_romanized1_right3.xml
 create mode 100644 java/res/xml/keys_nepali_romanized1_shift_left2.xml
 create mode 100644 java/res/xml/keys_nepali_romanized1_shift_right2.xml
 create mode 100644 java/res/xml/rowkeys_nepali_romanized1.xml
 create mode 100644 java/res/xml/rowkeys_nepali_romanized2.xml
 create mode 100644 java/res/xml/rowkeys_nepali_romanized3.xml
 create mode 100644 java/res/xml/rows_nepali_romanized.xml

diff --git a/java/res/xml-sw600dp/rows_nepali_romanized.xml b/java/res/xml-sw600dp/rows_nepali_romanized.xml
new file mode 100644
index 0000000000..59f92cf50e
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_nepali_romanized.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-sw768dp/rows_nepali_romanized.xml b/java/res/xml-sw768dp/rows_nepali_romanized.xml
new file mode 100644
index 0000000000..db3fa7b00d
--- /dev/null
+++ b/java/res/xml-sw768dp/rows_nepali_romanized.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="7.375%p"
+    >
+        <Key
+            latin:keyStyle="tabKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="7.969%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="7.227%p"
+    >
+        <Key
+            latin:keyStyle="toSymbolKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="11.172%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="7.000%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="13.829%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized2.xml b/java/res/xml-v16/key_nepali_romanized2.xml
new file mode 100644
index 0000000000..88450989af
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized2.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+    <Key
+        latin:keyLabel="&#x093E;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized2_shift.xml b/java/res/xml-v16/key_nepali_romanized2_shift.xml
new file mode 100644
index 0000000000..0257b5f88b
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized2_shift.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA -->
+    <Key
+        latin:keyLabel="&#x0903;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized3.xml b/java/res/xml-v16/key_nepali_romanized3.xml
new file mode 100644
index 0000000000..4dad7bdad0
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized3.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x094D;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized3_shift_center.xml b/java/res/xml-v16/key_nepali_romanized3_shift_center.xml
new file mode 100644
index 0000000000..5b27b66d95
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized3_shift_center.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x0902;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized3_shift_left.xml b/java/res/xml-v16/key_nepali_romanized3_shift_left.xml
new file mode 100644
index 0000000000..5d153702b6
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized3_shift_left.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
+    <Key
+        latin:keyLabel="&#x0901;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_nepali_romanized3_shift_right.xml b/java/res/xml-v16/key_nepali_romanized3_shift_right.xml
new file mode 100644
index 0000000000..4dad7bdad0
--- /dev/null
+++ b/java/res/xml-v16/key_nepali_romanized3_shift_right.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x094D;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_nepali_romanized1_left2.xml b/java/res/xml-v16/keys_nepali_romanized1_left2.xml
new file mode 100644
index 0000000000..d84524afcf
--- /dev/null
+++ b/java/res/xml-v16/keys_nepali_romanized1_left2.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+         U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keyLabel="&#x094C;"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E
+         U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keyLabel="&#x0947;"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_nepali_romanized1_right3.xml b/java/res/xml-v16/keys_nepali_romanized1_right3.xml
new file mode 100644
index 0000000000..0105f13ffc
--- /dev/null
+++ b/java/res/xml-v16/keys_nepali_romanized1_right3.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U
+         U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+    <Key
+        latin:keyLabel="&#x0941;"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="&#x096D;,7"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I
+         U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+    <Key
+        latin:keyLabel="&#x093F;"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="&#x096E;,8"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O
+         U+096F: "९" DEVANAGARI DIGIT NINE -->
+    <Key
+        latin:keyLabel="&#x094B;"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="&#x096F;,9"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_nepali_romanized1_shift_left2.xml b/java/res/xml-v16/keys_nepali_romanized1_shift_left2.xml
new file mode 100644
index 0000000000..a3d97e7dfd
--- /dev/null
+++ b/java/res/xml-v16/keys_nepali_romanized1_shift_left2.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+    <Key
+        latin:keyLabel="&#x0948;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+    <Key
+        latin:keyLabel="&#x0943;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_nepali_romanized1_shift_right2.xml b/java/res/xml-v16/keys_nepali_romanized1_shift_right2.xml
new file mode 100644
index 0000000000..6ec97350c8
--- /dev/null
+++ b/java/res/xml-v16/keys_nepali_romanized1_shift_right2.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+    <Key
+        latin:keyLabel="&#x0942;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+    <Key
+        latin:keyLabel="&#x0940;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/kbd_nepali_romanized.xml b/java/res/xml/kbd_nepali_romanized.xml
new file mode 100644
index 0000000000..9e43813649
--- /dev/null
+++ b/java/res/xml/kbd_nepali_romanized.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/rows_nepali_romanized" />
+</Keyboard>
diff --git a/java/res/xml/key_nepali_romanized2.xml b/java/res/xml/key_nepali_romanized2.xml
new file mode 100644
index 0000000000..0b01ebca5d
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized2.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x093E;"
+        latin:code="0x093E"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_romanized2_shift.xml b/java/res/xml/key_nepali_romanized2_shift.xml
new file mode 100644
index 0000000000..157b7f69fc
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized2_shift.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0903: "ः" DEVANAGARI SIGN VISARGA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0903;"
+        latin:code="0x0903"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_romanized3.xml b/java/res/xml/key_nepali_romanized3.xml
new file mode 100644
index 0000000000..193c202819
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized3.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094D;"
+        latin:code="0x094D"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_romanized3_shift_center.xml b/java/res/xml/key_nepali_romanized3_shift_center.xml
new file mode 100644
index 0000000000..147f67ab9d
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized3_shift_center.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0902;"
+        latin:code="0x0902"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_romanized3_shift_left.xml b/java/res/xml/key_nepali_romanized3_shift_left.xml
new file mode 100644
index 0000000000..d644fdf26b
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized3_shift_left.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0901;"
+        latin:code="0x0901"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_romanized3_shift_right.xml b/java/res/xml/key_nepali_romanized3_shift_right.xml
new file mode 100644
index 0000000000..19c1b29aa9
--- /dev/null
+++ b/java/res/xml/key_nepali_romanized3_shift_right.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094D;"
+        latin:code="0x094D"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ </merge>
diff --git a/java/res/xml/keyboard_layout_set_nepali_romanized.xml b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
new file mode 100644
index 0000000000..82f36cfbd8
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <Element
+        latin:elementName="alphabet"
+        latin:elementKeyboard="@xml/kbd_nepali_romanized"
+        latin:enableProximityCharsCorrection="true" />
+    <Element
+        latin:elementName="alphabetAutomaticShifted"
+        latin:elementKeyboard="@xml/kbd_nepali_romanized"
+        latin:enableProximityCharsCorrection="true" />
+    <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
+         because the letters on these layouts aren't the ones in different case of the above
+         unshifted layouts. -->
+    <Element
+        latin:elementName="alphabetManualShifted"
+        latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+    <Element
+        latin:elementName="alphabetShiftLocked"
+        latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+    <Element
+        latin:elementName="alphabetShiftLockShifted"
+        latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+    <Element
+        latin:elementName="symbols"
+        latin:elementKeyboard="@xml/kbd_symbols" />
+    <Element
+        latin:elementName="phone"
+        latin:elementKeyboard="@xml/kbd_phone" />
+    <Element
+        latin:elementName="phoneSymbols"
+        latin:elementKeyboard="@xml/kbd_phone_symbols" />
+    <Element
+        latin:elementName="number"
+        latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keys_nepali_romanized1_left2.xml b/java/res/xml/keys_nepali_romanized1_left2.xml
new file mode 100644
index 0000000000..5b92cc3441
--- /dev/null
+++ b/java/res/xml/keys_nepali_romanized1_left2.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+         U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094C;"
+        latin:code="0x094C"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0947: "े" DEVANAGARI VOWEL SIGN E
+         U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0947;"
+        latin:code="0x0947"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_nepali_romanized1_right3.xml b/java/res/xml/keys_nepali_romanized1_right3.xml
new file mode 100644
index 0000000000..c946ee660d
--- /dev/null
+++ b/java/res/xml/keys_nepali_romanized1_right3.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0941: "ु" DEVANAGARI VOWEL SIGN U
+         U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0941;"
+        latin:code="0x0941"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="&#x096D;,7"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+093F: "ि" DEVANAGARI VOWEL SIGN I
+         U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x093F;"
+        latin:code="0x093F"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="&#x096E;,8"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094B: "ो" DEVANAGARI VOWEL SIGN O
+         U+096F: "९" DEVANAGARI DIGIT NINE -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094B;"
+        latin:code="0x094B"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="&#x096F;,9"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_nepali_romanized1_shift_left2.xml b/java/res/xml/keys_nepali_romanized1_shift_left2.xml
new file mode 100644
index 0000000000..3e147057b6
--- /dev/null
+++ b/java/res/xml/keys_nepali_romanized1_shift_left2.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0948;"
+        latin:code="0x0948"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0943;"
+        latin:code="0x0943"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_nepali_romanized1_shift_right2.xml b/java/res/xml/keys_nepali_romanized1_shift_right2.xml
new file mode 100644
index 0000000000..650bcf9697
--- /dev/null
+++ b/java/res/xml/keys_nepali_romanized1_shift_right2.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0942;"
+        latin:code="0x0942"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0940;"
+        latin:code="0x0940"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 2c3ac57edb..a3586c01bc 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -60,6 +60,7 @@
     mn: Mongolian/mongolian
     ms: Malay/qwerty
     nb: Norwegian Bokmål/nordic
+    ne: Nepali Romanized/nepali_romanized
     nl: Dutch/qwerty
     nl_BE: Dutch Belgium/azerty
     pl: Polish/qwerty
@@ -361,6 +362,13 @@
             android:imeSubtypeMode="keyboard"
             android:imeSubtypeExtraValue="AsciiCapable,SupportTouchPositionCorrection"
     />
+    <subtype android:icon="@drawable/ic_subtype_keyboard"
+            android:label="@string/subtype_generic"
+            android:subtypeId="0xd80a4cee"
+            android:imeSubtypeLocale="ne"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=nepali_romanized"
+    />
     <subtype android:icon="@drawable/ic_subtype_keyboard"
             android:label="@string/subtype_generic"
             android:subtypeId="0x3f9fd91e"
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index 745747643f..c66d213464 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -93,6 +93,7 @@
             <include
                 latin:keyboardLayout="@xml/keys_hindi1_left5" />
             <!-- U+092C: "ब" DEVANAGARI LETTER BA
+                 U+096C: "६" DEVANAGARI DIGIT SIX
                  U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA -->
             <Key
                 latin:keyLabel="&#x092C;"
diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml
new file mode 100644
index 0000000000..c0951f3e9f
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized1.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+        >
+            <!-- U+0920: "ठ" DEVANAGARI LETTER TTHA -->
+            <Key
+                latin:keyLabel="&#x0920;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0914: "औ" DEVANAGARI LETTER AU -->
+            <Key
+                latin:keyLabel="&#x0914;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_nepali_romanized1_shift_left2" />
+            <!-- U+0925: "थ" DEVANAGARI LETTER THA -->
+            <Key
+                latin:keyLabel="&#x0925;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
+            <Key
+                latin:keyLabel="&#x091E;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_nepali_romanized1_shift_right2" />
+            <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+            <Key
+                latin:keyLabel="&#x0913;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+092B: "फ" DEVANAGARI LETTER PHA -->
+            <Key
+                latin:keyLabel="&#x092B;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0908: "ई" DEVANAGARI LETTER II -->
+            <Key
+                latin:keyLabel="&#x0908;"
+                latin:keyLabelFlags="fontNormal" />
+        </case>
+        <default>
+            <!-- U+091F: "ट" DEVANAGARI LETTER TTA
+                 U+0967: "१" DEVANAGARI DIGIT ONE
+                 U+093C: "़" DEVANAGARI SIGN NUKTA -->
+            <Key
+                latin:keyLabel="&#x091F;"
+                latin:keyHintLabel="1"
+                latin:additionalMoreKeys="&#x0967;,1"
+                latin:moreKeys="&#x093C;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_nepali_romanized1_left2" />
+            <!-- U+0930: "र" DEVANAGARI LETTER RA
+                 U+096A: "४" DEVANAGARI DIGIT FOUR -->
+            <Key
+                latin:keyLabel="&#x0930;"
+                latin:keyHintLabel="4"
+                latin:additionalMoreKeys="&#x096A;,4"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0924: "त" DEVANAGARI LETTER TA
+                 U+096B: "५" DEVANAGARI DIGIT FIVE -->
+            <Key
+                latin:keyLabel="&#x0924;"
+                latin:keyHintLabel="5"
+                latin:additionalMoreKeys="&#x096B;,5"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+092F: "य" DEVANAGARI LETTER YA
+                 U+096C: "६" DEVANAGARI DIGIT SIX -->
+            <Key
+                latin:keyLabel="&#x092F;"
+                latin:keyHintLabel="6"
+                latin:additionalMoreKeys="&#x096C;,6"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_nepali_romanized1_right3" />
+            <!-- U+092A: "प" DEVANAGARI LETTER PA
+                 U+0966: "०" DEVANAGARI DIGIT ZERO -->
+            <Key
+                latin:keyLabel="&#x092A;"
+                latin:keyHintLabel="0"
+                latin:additionalMoreKeys="&#x0966;,0"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0907: "इ" DEVANAGARI LETTER I -->
+            <Key
+                latin:keyLabel="&#x0907;"
+                latin:keyLabelFlags="fontNormal" />
+         </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized2.xml b/java/res/xml/rowkeys_nepali_romanized2.xml
new file mode 100644
index 0000000000..fd2e4d098f
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized2.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+        >
+            <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
+            <Key
+                latin:keyLabel="&#x0906;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
+            <Key
+                latin:keyLabel="&#x0936;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0927: "ध" DEVANAGARI LETTER DHA -->
+            <Key
+                latin:keyLabel="&#x0927;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+090A: "ऊ" DEVANAGARI LETTER UU -->
+            <Key
+                latin:keyLabel="&#x090A;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
+            <Key
+                latin:keyLabel="&#x0918;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+            <Key
+                latin:keyLabel="&#x0905;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
+            <Key
+                latin:keyLabel="&#x091D;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
+            <Key
+                latin:keyLabel="&#x0916;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
+            <Key
+                latin:keyLabel="&#x0965;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0910: "ऐ" DEVANAGARI LETTER AI -->
+            <Key
+                latin:keyLabel="&#x0910;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized2_shift" />
+        </case>
+        <default>
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized2" />
+            <!-- U+0938: "स" DEVANAGARI LETTER SA -->
+            <Key
+                latin:keyLabel="&#x0938;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0926: "द" DEVANAGARI LETTER DA -->
+            <Key
+                latin:keyLabel="&#x0926;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0909: "उ" DEVANAGARI LETTER U -->
+            <Key
+                latin:keyLabel="&#x0909;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0917: "ग" DEVANAGARI LETTER GA -->
+            <Key
+                latin:keyLabel="&#x0917;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
+            <Key
+                latin:keyLabel="&#x0939;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+091C: "ज" DEVANAGARI LETTER JA -->
+            <Key
+                latin:keyLabel="&#x091C;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0915: "क" DEVANAGARI LETTER KA -->
+            <Key
+                latin:keyLabel="&#x0915;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
+            <Key
+                latin:keyLabel="&#x0932;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+090F: "ए" DEVANAGARI LETTER E -->
+            <Key
+                latin:keyLabel="&#x090F;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0950: "ॐ" DEVANAGARI OM -->
+            <Key
+                latin:keyLabel="&#x0950;"
+                latin:keyLabelFlags="fontNormal" />
+         </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
new file mode 100644
index 0000000000..bbc0e3afee
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+        >
+            <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
+            <Key
+                latin:keyLabel="&#x090B;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0922: "ढ" DEVANAGARI LETTER DDHA -->
+            <Key
+                latin:keyLabel="&#x0922;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+091B: "छ" DEVANAGARI LETTER CHA -->
+            <Key
+                latin:keyLabel="&#x091B;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized3_shift_left" />
+            <!-- U+092D: "भ" DEVANAGARI LETTER BHA -->
+            <Key
+                latin:keyLabel="&#x092D;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
+            <Key
+                latin:keyLabel="&#x0936;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized3_shift_center" />
+            <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
+            <Key
+                latin:keyLabel="&#x0919;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized3_shift_right" />
+        </case>
+        <default>
+            <!-- U+0937: "ष" DEVANAGARI LETTER SSA -->
+            <Key
+                latin:keyLabel="&#x0937;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0921: "ड" DEVANAGARI LETTER DDA -->
+            <Key
+                latin:keyLabel="&#x0921;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+091A: "च" DEVANAGARI LETTER CA -->
+            <Key
+                latin:keyLabel="&#x091A;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0935: "व" DEVANAGARI LETTER VA -->
+            <Key
+                latin:keyLabel="&#x0935;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+092C: "ब" DEVANAGARI LETTER BHA -->
+            <Key
+                latin:keyLabel="&#x092C;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0928: "न" DEVANAGARI LETTER NA -->
+            <Key
+                latin:keyLabel="&#x0928;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+092E: "म" DEVANAGARI LETTER MA -->
+            <Key
+                latin:keyLabel="&#x092E;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- U+0964: "।" DEVANAGARI DANDA
+                 U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+            <Key
+                latin:keyLabel="&#x0964;"
+                latin:moreKeys="&#x093D;"
+                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_nepali_romanized3" />
+         </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rows_nepali_romanized.xml b/java/res/xml/rows_nepali_romanized.xml
new file mode 100644
index 0000000000..6df09c830d
--- /dev/null
+++ b/java/res/xml/rows_nepali_romanized.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" />
+    </Row>
+    <Row
+            latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
+    </Row>
+    <Row
+        latin:keyWidth="8.711%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.8%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
-- 
GitLab