Version 3.4.0
diff --git a/docs/en/3.4.0/config.json b/docs/en/3.4.0/config.json
new file mode 100644
index 0000000..99f6553
--- /dev/null
+++ b/docs/en/3.4.0/config.json
@@ -0,0 +1,18 @@
+{
+    "language": "English",
+    "merge": {
+        "events.md": [
+            "cordova/events/events.md",
+            "cordova/events/events.deviceready.md",
+            "cordova/events/events.pause.md",
+            "cordova/events/events.resume.md",
+            "cordova/events/events.backbutton.md",
+            "cordova/events/events.menubutton.md",
+            "cordova/events/events.searchbutton.md",
+            "cordova/events/events.startcallbutton.md",
+            "cordova/events/events.endcallbutton.md",
+            "cordova/events/events.volumedownbutton.md",
+            "cordova/events/events.volumeupbutton.md"
+        ]
+    }
+}
diff --git a/docs/en/3.4.0/config_ref/images.md b/docs/en/3.4.0/config_ref/images.md
new file mode 100644
index 0000000..27be27f
--- /dev/null
+++ b/docs/en/3.4.0/config_ref/images.md
@@ -0,0 +1,185 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Icons and Splash Screens
+
+This section shows how to configure an app's icon and optional splash
+screen for various platforms, both when working in the Cordova CLI
+(described in The Command-Line Interface) or using platform-specific
+SDK tools (detailed in the Platform Guides).
+
+## Configuring Icons in the CLI
+
+When working in the CLI, icon source files are located within various
+platform-specific subdirectories within the project's `www/res/icons`
+directory. Newly created projects come with a default set of Cordova
+icons for you to replace for the platforms you wish to target.
+
+Android specifies icons for low, medium, high, and extra-high resolutions:
+
+        android/icon-36-ldpi.png
+        android/icon-48-mdpi.png
+        android/icon-72-hdpi.png
+        android/icon-96-xhdpi.png
+
+The iOS platform specifies 72-pixel-square icons for iPads, and
+57-pixel icons for iPhones and iPods, with high-resolution _2x_
+variants for retina displays:
+
+        ios/icon-57-2x.png
+        ios/icon-57.png
+        ios/icon-72-2x.png
+        ios/icon-72.png
+
+Windows Phone specifies a default 48-pixel icon, along with various
+devices' background tiling images used when representing applications:
+
+        windows-phone/icon-48.png
+        windows-phone/icon-62-tile.png
+        windows-phone/icon-173-tile.png
+
+Blackberry 10 requires an icon element in config.xml:
+
+        <icon src="blackberry10/icon-86.png" />
+
+See BlackBerry's documentation for targeting multiple sizes and locales.
+
+[http://developer.blackberry.com/html5/documentation/icon_element.html]
+
+Tizen requires an 128-pixel icon:
+
+        tizen/icon-128.png
+
+## Configuring Splash Screens in the CLI
+
+Use the Splashscreen API to enable display of an app's introductory
+splash screen on many platforms.  When working in the CLI, splash
+screen source files are located within the project's `www/res/screens`
+subdirectory.
+
+Android specifies both portrait- and landscape-oriented splash screen
+images for low, medium, high, and extra-high resolutions:
+
+        android/screen-hdpi-landscape.png
+        android/screen-hdpi-portrait.png
+        android/screen-ldpi-landscape.png
+        android/screen-ldpi-portrait.png
+        android/screen-mdpi-landscape.png
+        android/screen-mdpi-portrait.png
+        android/screen-xhdpi-landscape.png
+        android/screen-xhdpi-portrait.png
+
+The iOS platform specifies variants for iPhone/iPod and iPad, with
+variants for retina displays and different orientations. The _568h_
+file applies to the iPhone 5's taller screen:
+
+        ios/screen-ipad-landscape-2x.png
+        ios/screen-ipad-landscape.png
+        ios/screen-ipad-portrait-2x.png
+        ios/screen-ipad-portrait.png
+        ios/screen-iphone-landscape-2x.png
+        ios/screen-iphone-landscape.png
+        ios/screen-iphone-portrait-2x.png
+        ios/screen-iphone-portrait.png
+        ios/screen-iphone-portrait-568h-2x.png
+
+Windows Phone specifies a single splash screen image:
+
+        windows-phone/screen-portrait.jpg
+
+The following sections detail how to set up splash screens when
+working with SDKs and related command-line tools described in Platform
+Guides.
+
+Don't forget to install the SplashScreen plugin before trying to use the
+`navigator.splashscreen.hide()` or `navigator.splashscreen.show()` methods.
+
+## Splash Screens for the Android Platform
+
+Place [9-patch image](https://developer.android.com/tools/help/draw9patch.html)
+files in the Android project's `platforms/android/res/drawable*` directories.
+
+The size for each should be:
+
+- xlarge (xhdpi): at least 960 &times; 720
+- large (hdpi): at least 640 &times; 480
+- medium (mdpi): at least 470 &times; 320
+- small (ldpi): at least 426 &times; 320
+
+When creating a new Android project, the default splash screen images
+provided in the Cordova sample app should already be present in the
+`platforms/android/res/drawable*` directories. Feel free to replace these
+with your own images.
+When providing your own splash screen images, you do not need to 
+provide the same permutation of 8 as the Cordova default ones
+here.  More or less optimization can be used. 
+The `drawable` directory names must follow the Android conventions for
+supporting
+[screen sizes](http://developer.android.com/guide/practices/screens_support.html) and
+[alternate resources](http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources).
+
+In the top-level `config.xml` file (not the one in `platforms`), add the
+following preferences:
+
+    <preference name="SplashScreen" value="screen" />
+    <preference name="SplashScreenDelay" value="10000" />
+
+The first line sets the image to display as the splash screen. This is the
+file name of the png in the `drawable*` directories, minus the `.png`
+extension. The default value for SplashScreen is `screen` (for the file
+`platforms/android/res/drawable*/screen.png`), so if you
+name the image anything other than `screen.png` in the `drawable*` directories,
+you need to add/modify this line.
+
+The second line sets the default delay of how long the splashscreen appears in
+milliseconds. This should be the worst-case expected start time.
+The default value for SplashScreenDelay is 3000 ms.
+
+Finally, as a best practice, the splash screen should be present only as long
+as necessary. When your app has started and the webview has loaded, your app
+should hide the splash screen so that your main view is visible as soon as it
+is ready. Because the app start time will vary quite a bit due to a number of
+factors such as CPU speed and network, it is recommended that your app
+explicitly invoke `navigator.splashscreen.hide()` in the JavaScript
+method that responds to the `deviceready` event. Otherwise the splash screen
+will be visible for the SplashScreenDelay value that you configured above,
+which is likely longer than necessary.
+This event-driven approach is highly recommended versus having the splash
+screen visible for always a fixed duration.
+
+## Splash Screens for the iOS Platform
+
+Copy splash screen images into the iOS project's `Resources/splash`
+directory. Only add those images for the devices you want to support,
+such as iPad or iPhone. The size of each image should be:
+
+- Default-568h@2x~iphone.png (640x1136 pixels)
+- Default-Landscape@2x~ipad.png (2048x1496 pixels)
+- Default-Landscape~ipad.png (1024x748 pixels)
+- Default-Portrait@2x~ipad.png (1536x2008 pixels)
+- Default-Portrait~ipad.png (768x1004 pixels)
+- Default@2x~iphone.png (640x960 pixels)
+- Default~iphone.png (320x480 pixels)
+
+## Splash Screens for the BlackBerry 10 Platform
+
+Add a rim:splash element to config.xml for each resolution and locale you wish
+to support:
+
+<http://developer.blackberry.com/html5/documentation/rim_splash_element.html>
diff --git a/docs/en/3.4.0/config_ref/index.md b/docs/en/3.4.0/config_ref/index.md
new file mode 100644
index 0000000..2df9931
--- /dev/null
+++ b/docs/en/3.4.0/config_ref/index.md
@@ -0,0 +1,178 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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 config.xml File
+
+Many aspects of an app's behavior can be controlled with a global
+configuration file, `config.xml`.  This
+platform-agnostic XML file is arranged based on the W3C's [Packaged
+Web Apps (Widgets)](http://www.w3.org/TR/widgets/) specification, and
+extended to specify core Cordova API features, plugins, and
+platform-specific settings.
+
+For projects created with the Cordova CLI (described in The
+Command-Line Interface), this file can be found in the top-level
+directory:
+
+        app/config.xml
+
+Note that before version 3.3.1-0.2.0, the file existed at `app/www/config.xml`,
+and that having it here is still supported.
+
+When using the CLI to build a project, versions of this file are
+passively copied into various `platforms/` subdirectories, for example:
+
+        app/platforms/ios/AppName/config.xml
+        app/platforms/blackberry10/www/config.xml
+        app/platforms/android/res/xml/config.xml
+
+This section details global and cross-platform configuration options.
+See the following sections for platform-specific options:
+
+- iOS Configuration
+- Android Configuration
+- BlackBerry 10 Configuration
+
+In addition to the various configuration options detailed below, you
+can also configure an application's core set of images for each target
+platform. See Icons and Splash Screens for more information.
+
+## Core Configuration Elements
+
+This example shows the default `config.xml` generated by the CLI's
+`create` command, described in The Command-Line Interface:
+
+        <widget id="com.example.hello" version="0.0.1">
+            <name>HelloWorld</name>
+            <description>
+                A sample Apache Cordova application that responds to the deviceready event.
+            </description>
+            <author email="dev@callback.apache.org" href="http://cordova.io">
+                Apache Cordova Team
+            </author>
+            <content src="index.html" />
+            <access origin="*" />
+        </widget>
+
+The following configuration elements appear in the top-level
+`config.xml` file, and are supported across all supported Cordova
+platforms:
+
+- The `<widget>` element's `id` attribute provides the app's
+  reverse-domain identifier, and the `version` its full version number
+  expressed in major/minor/patch notation.
+
+- The `<name>` element specifies the app's formal name, as it appears
+  on the device's home screen and within app-store interfaces.
+
+- The `<description>` and `<author>` elements specify metadata and
+  contact information that may appear within app-store listings.
+
+- The optional `<content>` element defines the app's starting
+  page in the top-level web assets directory. The default value is
+  `index.html`, which customarily appears in a project's top-level
+  `www` directory.
+
+- `<access>` elements define the set of external domains the app is
+  allowed to communicate with. The default value shown above allows
+  it to access any server. See the Domain Whitelist Guide for details.
+
+- The `<preference>` tag sets various options as pairs of
+  `name`/`value` attributes. Each preference's `name` is
+  case-insensitive.  Many preferences are unique to specific
+  platforms, as listed at the top of this page. The following sections
+  detail preferences that apply to more than one platform.
+
+## Global Preferences
+
+The following global preferences apply to all platforms:
+
+- `Fullscreen` allows you to hide the status bar at the top of the
+  screen. The default value is `false`. Example:
+
+        <preference name="Fullscreen" value="true" />
+
+- `Orientation` allows you to lock orientation and prevent the
+  interface from rotating in response to changes in orientation.
+  Possible values are `default`, `landscape`, or `portrait`. Example:
+
+        <preference name="Orientation" value="landscape" />
+
+  __NOTE__: The `default` value means _both_ landscape and portrait
+  orientations are enabled.  If you want to use each platform's
+  default settings (usually portrait-only), leave this tag out of the
+  `config.xml` file.
+
+## Multi-Platform Preferences
+
+The following preferences apply to more than one platform, but not to
+all of them:
+
+- `DisallowOverscroll` (boolean, defaults to `false`): set to `true`
+  if you don't want the interface to display any feedback when users
+  scroll past the beginning or end of content.
+
+        <preference name="DisallowOverscroll" value="true"/>
+
+  Applies to Android and iOS. On iOS, overscroll gestures cause
+  content to bounce back to its original position.  On Android, they
+  produce a more subtle glowing effect along the top or bottom edge of
+  the content.
+
+- `BackgroundColor`: Set the app's background color.  Supports a
+  four-byte hex value, with the first byte representing the alpha
+  channel, and standard RGB values for the following three bytes.  This
+  example specifies blue:
+
+        <preference name="BackgroundColor" value="0xff0000ff"/>
+
+  Applies to Android and BlackBerry. Overrides CSS otherwise available
+  across _all_ platforms, for example: `body{background-color:blue}`.
+
+- `HideKeyboardFormAccessoryBar` (boolean, defaults to `false`): set
+  to `true` to hide the additional toolbar that appears above the
+  keyboard, helping users navigate from one form input to another.
+
+        <preference name="HideKeyboardFormAccessoryBar" value="true"/>
+
+  Applies to iOS and BlackBerry. 
+
+## The _feature_ Element
+
+If you use the CLI to build applications, you use the `plugin` command
+to enable device APIs. This does not modify the top-level `config.xml`
+file, so the `<feature>` element does not apply to your workflow. If
+you work directly in an SDK and using the platform-specific
+`config.xml` file as source, you use the `<feature>` tag to enable
+device-level APIs and external plugins. They often appear with custom values in
+platform-specific `config.xml` files. For example, here is how to specify the
+Device API for Android projects:
+
+        <feature name="Device">
+            <param name="android-package" value="org.apache.cordova.device.Device" />
+        </feature>
+
+Here is how the element appears for iOS projects:
+
+        <feature name="Device">
+            <param name="ios-package" value="CDVDevice" />
+        </feature>
+
+See the API Reference for details on how to specify each feature. See
+the Plugin Development Guide for more information on plugins.
diff --git a/docs/en/3.4.0/cordova/events/events.backbutton.md b/docs/en/3.4.0/cordova/events/events.backbutton.md
new file mode 100644
index 0000000..c40d00a
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.backbutton.md
@@ -0,0 +1,81 @@
+---
+ license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# backbutton
+
+The event fires when the user presses the back button.
+
+    document.addEventListener("backbutton", yourCallbackFunction, false);
+
+## Details
+
+To override the default back-button behavior, register an event
+listener for the `backbutton` event, typically by calling
+`document.addEventListener` once you receive the `deviceready` event.
+It is no longer necessary to call any other method to override the
+back-button behavior.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- Windows Phone 7 and 8
+
+## Quick Example
+
+    document.addEventListener("backbutton", onBackKeyDown, false);
+
+    function onBackKeyDown() {
+        // Handle the back button
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Back Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("backbutton", onBackKeyDown, false);
+        }
+
+        // Handle the back button
+        //
+        function onBackKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.deviceready.md b/docs/en/3.4.0/cordova/events/events.deviceready.md
new file mode 100644
index 0000000..47537b0
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.deviceready.md
@@ -0,0 +1,90 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# deviceready
+
+The event fires when Cordova is fully loaded.
+
+    document.addEventListener("deviceready", yourCallbackFunction, false);
+
+## Details
+
+This event is essential to any application. It signals that Cordova's
+device APIs have loaded and are ready to access.
+
+Cordova consists of two code bases: native and JavaScript. While the
+native code loads, a custom loading image displays. However,
+JavaScript only loads once the DOM loads. This means the web app may
+potentially call a Cordova JavaScript function before the
+corresponding native code becomes available.
+
+The `deviceready` event fires once Cordova has fully loaded. Once the
+event fires, you can safely make calls to Cordova APIs.  Applications
+typically attach an event listener with `document.addEventListener`
+once the HTML document's DOM has loaded.
+
+The `deviceready` event behaves somewhat differently from others.  Any
+event handler registered after the `deviceready` event fires has its
+callback function called immediately.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("deviceready", onDeviceReady, false);
+
+    function onDeviceReady() {
+        // Now safe to use device APIs
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Device Ready Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Now safe to use device APIs
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.endcallbutton.md b/docs/en/3.4.0/cordova/events/events.endcallbutton.md
new file mode 100644
index 0000000..8b3e21d
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.endcallbutton.md
@@ -0,0 +1,78 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# endcallbutton
+
+This event fires when the user presses the end call button.
+
+    document.addEventListener("endcallbutton", yourCallbackFunction, false);
+
+## Details
+
+The event overrides the default end call behavior.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("endcallbutton", onEndCallKeyDown, false);
+
+    function onEndCallKeyDown() {
+        // Handle the end call button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>End Call Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("endcallbutton", onEndCallKeyDown, false);
+        }
+
+        // Handle the end call button
+        //
+        function onEndCallKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.md b/docs/en/3.4.0/cordova/events/events.md
new file mode 100644
index 0000000..ed7984c
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.md
@@ -0,0 +1,47 @@
+---
+  license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Events
+
+> Cordova lifecycle events.
+
+## Event Types
+
+- deviceready
+- pause
+- resume
+- backbutton
+- menubutton
+- searchbutton
+- startcallbutton
+- endcallbutton
+- volumedownbutton
+- volumeupbutton
+
+## Events added by [org.apache.cordova.battery-status](https://github.com/apache/cordova-plugin-battery-status/blob/master/doc/index.md)
+
+- batterycritical
+- batterylow
+- batterystatus
+
+## Events added by [org.apache.cordova.network-information](https://github.com/apache/cordova-plugin-network-information/blob/master/doc/index.md)
+
+- online
+- offline
+
diff --git a/docs/en/3.4.0/cordova/events/events.menubutton.md b/docs/en/3.4.0/cordova/events/events.menubutton.md
new file mode 100644
index 0000000..2d3006a
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.menubutton.md
@@ -0,0 +1,80 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# menubutton
+
+The event fires when the user presses the menu button.
+
+    document.addEventListener("menubutton", yourCallbackFunction, false);
+
+## Details
+
+Applying an event handler overrides the default menu button behavior.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("menubutton", onMenuKeyDown, false);
+
+    function onMenuKeyDown() {
+        // Handle the back button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Menu Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("menubutton", onMenuKeyDown, false);
+        }
+
+        // Handle the menu button
+        //
+        function onMenuKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.pause.md b/docs/en/3.4.0/cordova/events/events.pause.md
new file mode 100644
index 0000000..dc6f4f0
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.pause.md
@@ -0,0 +1,101 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# pause
+
+The event fires when an application is put into the background.
+
+    document.addEventListener("pause", yourCallbackFunction, false);
+
+## Details
+
+The `pause` event fires when the native platform puts the application
+into the background, typically when the user switches to a different
+application.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("pause", onPause, false);
+
+    function onPause() {
+        // Handle the pause event
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Pause Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            document.addEventListener("pause", onPause, false);
+        }
+
+        // Handle the pause event
+        //
+        function onPause() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
+
+## iOS Quirks
+
+In the `pause` handler, any calls to the Cordova API or to native
+plugins that go through Objective-C do not work, along with any
+interactive calls, such as alerts or `console.log()`. They are only
+processed when the app resumes, on the next run loop.
+
+The iOS-specific `resign` event is available as an alternative to
+`pause`, and detects when users enable the __Lock__ button to lock the
+device with the app running in the foreground.  If the app (and
+device) is enabled for multi-tasking, this is paired with a subsequent
+`pause` event, but only under iOS 5. In effect, all locked apps in iOS
+5 that have multi-tasking enabled are pushed to the background.  For
+apps to remain running when locked under iOS 5, disable the app's
+multi-tasking by setting
+[UIApplicationExitsOnSuspend](http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html)
+to `YES`. To run when locked on iOS 4, this setting does not matter.
diff --git a/docs/en/3.4.0/cordova/events/events.resume.md b/docs/en/3.4.0/cordova/events/events.resume.md
new file mode 100644
index 0000000..4e38a7d
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.resume.md
@@ -0,0 +1,114 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# resume
+
+The event fires when an application is retrieved from the background.
+
+    document.addEventListener("resume", yourCallbackFunction, false);
+
+## Details
+
+The `resume` event fires when the native platform pulls the
+application out from the background.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+    document.addEventListener("resume", onResume, false);
+
+    function onResume() {
+        // Handle the resume event
+    }
+
+## Full Example
+
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <title>Resume Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            document.addEventListener("resume", onResume, false);
+        }
+
+        // Handle the resume event
+        //
+        function onResume() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
+
+## iOS Quirks
+
+Any interactive functions called from a `pause` event handler execute
+later when the app resumes, as signaled by the `resume` event. These
+include alerts, `console.log()`, and any calls from plugins or the
+Cordova API, which go through Objective-C.
+
+- __active__ event
+
+    The iOS-specific `active` event is available as an alternative to
+`resume`, and detects when users disable the __Lock__ button to unlock
+the device with the app running in the foreground.  If the app (and
+device) is enabled for multi-tasking, this is paired with a subsequent
+`resume` event, but only under iOS 5. In effect, all locked apps in
+iOS 5 that have multi-tasking enabled are pushed to the background.
+For apps to remain running when locked under iOS 5, disable the app's
+multi-tasking by setting [UIApplicationExitsOnSuspend](http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html)
+to `YES`. To run when locked on iOS 4, this setting does not matter.
+    
+- __resume__ event
+
+    When called from a `resume` event handler, interactive functions such
+as `alert()` need to be wrapped in a `setTimeout()` call with a
+timeout value of zero, or else the app hangs. For example:
+
+        document.addEventListener("resume", onResume, false);
+        function onResume() {
+           setTimeout(function() {
+                  // TODO: do your thing!
+                }, 0);
+        }
diff --git a/docs/en/3.4.0/cordova/events/events.searchbutton.md b/docs/en/3.4.0/cordova/events/events.searchbutton.md
new file mode 100644
index 0000000..bdde91e
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.searchbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# searchbutton
+
+The event fires when the user presses the search button on Android.
+
+    document.addEventListener("searchbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default search button behavior on Android
+you can register an event listener for the 'searchbutton' event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- Android
+
+## Quick Example
+
+    document.addEventListener("searchbutton", onSearchKeyDown, false);
+
+    function onSearchKeyDown() {
+        // Handle the search button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Search Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("searchbutton", onSearchKeyDown, false);
+        }
+
+        // Handle the search button
+        //
+        function onSearchKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.startcallbutton.md b/docs/en/3.4.0/cordova/events/events.startcallbutton.md
new file mode 100644
index 0000000..ec6f61f
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.startcallbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# startcallbutton
+
+The event fires when the user presses the start call button.
+
+    document.addEventListener("startcallbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default start call behavior you can
+register an event listener for the `startcallbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("startcallbutton", onStartCallKeyDown, false);
+
+    function onStartCallKeyDown() {
+        // Handle the start call button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Start Call Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("startcallbutton", onStartCallKeyDown, false);
+        }
+
+        // Handle the start call button
+        //
+        function onStartCallKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.volumedownbutton.md b/docs/en/3.4.0/cordova/events/events.volumedownbutton.md
new file mode 100644
index 0000000..fd3ff6c
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.volumedownbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# volumedownbutton
+
+The event fires when the user presses the volume down button.
+
+    document.addEventListener("volumedownbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default volume down behavior you can
+register an event listener for the `volumedownbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+
+    function onVolumeDownKeyDown() {
+        // Handle the volume down button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Volume Down Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+        }
+
+        // Handle the volume down button
+        //
+        function onVolumeDownKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/events/events.volumeupbutton.md b/docs/en/3.4.0/cordova/events/events.volumeupbutton.md
new file mode 100644
index 0000000..a17e63b
--- /dev/null
+++ b/docs/en/3.4.0/cordova/events/events.volumeupbutton.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# volumeupbutton
+
+The event fires when the user presses the volume up button.
+
+    document.addEventListener("volumeupbutton", yourCallbackFunction, false);
+
+## Details
+
+If you need to override the default volume up behavior you can
+register an event listener for the `volumeupbutton` event.
+
+Applications typically should use `document.addEventListener` to
+attach an event listener once the `deviceready` event fires.
+
+## Supported Platforms
+
+- BlackBerry 10
+
+## Quick Example
+
+    document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
+
+    function onVolumeUpKeyDown() {
+        // Handle the volume up button
+    }
+
+## Full Example
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+                          "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+      <head>
+        <title>Volume Up Button Example</title>
+
+        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+        <script type="text/javascript" charset="utf-8">
+
+        // Wait for device API libraries to load
+        //
+        function onLoad() {
+            document.addEventListener("deviceready", onDeviceReady, false);
+        }
+
+        // device APIs are available
+        //
+        function onDeviceReady() {
+            // Register the event listener
+            document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
+        }
+
+        // Handle the volume up button
+        //
+        function onVolumeUpKeyDown() {
+        }
+
+        </script>
+      </head>
+      <body onload="onLoad()">
+      </body>
+    </html>
diff --git a/docs/en/3.4.0/cordova/plugins/pluginapis.md b/docs/en/3.4.0/cordova/plugins/pluginapis.md
new file mode 100644
index 0000000..2073321
--- /dev/null
+++ b/docs/en/3.4.0/cordova/plugins/pluginapis.md
@@ -0,0 +1,80 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin APIs
+
+Cordova ships with a minimal set of APIs, and projects add what extra APIs they require through plugins.
+
+You can search through all existing plugins using the [Plugin Registry](http://plugins.cordova.io/).
+
+The traditional set of Cordova plugins are as follows:
+
+- [Battery Status](https://github.com/apache/cordova-plugin-battery-status/blob/dev/doc/index.md)
+> Monitor the status of the device's battery.
+
+- [Camera](https://github.com/apache/cordova-plugin-camera/blob/dev/doc/index.md)
+> Capture a photo using the device's camera.
+
+- [Contacts](https://github.com/apache/cordova-plugin-contacts/blob/dev/doc/index.md)
+> Work with the devices contact database.
+
+- [Device](https://github.com/apache/cordova-plugin-device/blob/dev/doc/index.md)
+> Gather device specific information.
+
+- [Device Motion (Accelerometer)](https://github.com/apache/cordova-plugin-device-motion/blob/dev/doc/index.md)
+> Tap into the device's motion sensor.
+
+- [Device Orientation (Compass)](https://github.com/apache/cordova-plugin-device-orientation/blob/dev/doc/index.md)
+> Obtain the direction that the device is pointing.
+
+- [Dialogs](https://github.com/apache/cordova-plugin-dialogs/blob/dev/doc/index.md)
+> Visual device notifications.
+
+- [FileSystem](https://github.com/apache/cordova-plugin-file/blob/dev/doc/index.md)
+> Hook into native file system through JavaScript.
+
+- [File Transfer](https://github.com/apache/cordova-plugin-file-transfer/blob/dev/doc/index.md)
+> Hook into native file system through JavaScript.
+
+- [Geolocation](https://github.com/apache/cordova-plugin-geolocation/blob/dev/doc/index.md)
+> Make your application location aware.
+
+- [Globalization](https://github.com/apache/cordova-plugin-globalization/blob/dev/doc/index.md)
+> Enable representation of objects specific to a locale.
+
+- [InAppBrowser](https://github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/index.md)
+> Launch URLs in another in-app browser instance.
+
+- [Media](https://github.com/apache/cordova-plugin-media/blob/dev/doc/index.md)
+> Record and play back audio files.
+
+- [Media Capture](https://github.com/apache/cordova-plugin-media-capture/blob/dev/doc/index.md)
+> Capture media files using device's media capture applications.
+
+- [Network Information (Connection)](https://github.com/apache/cordova-plugin-network-information/blob/dev/doc/index.md)
+> Quickly check the network state, and cellular network information.
+
+- [Splashscreen](https://github.com/apache/cordova-plugin-splashscreen/blob/dev/doc/index.md)
+> Show and hide the applications splash screen.
+
+- [Vibration](https://github.com/apache/cordova-plugin-vibration/blob/dev/doc/index.md)
+> An API to vibrate the device.
+
+Non-English translations of these plugin docs can be found by looking at older versions of the Cordova documentation. Use the drop-down menu at the very top-right of this site to switch versions.
+
diff --git a/docs/en/3.4.0/cordova/storage/storage.md b/docs/en/3.4.0/cordova/storage/storage.md
new file mode 100644
index 0000000..dac5c71
--- /dev/null
+++ b/docs/en/3.4.0/cordova/storage/storage.md
@@ -0,0 +1,70 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Storage
+
+> An overview of storage options for Cordova.
+
+Several storage APIs are available for Cordova applications. 
+See
+[html5rocks](http://www.html5rocks.com/en/features/storage).
+for a more complete overview and examples.
+
+## LocalStorage
+
+Also known as _web storage_, _simple storage_, or by its alternate
+_session storage_ interface, this API provides synchronous key/value
+pair storage, and is available in underlying WebView implementations.
+Refer to [the W3C spec](http://www.w3.org/TR/webstorage/) for details.
+
+__Windows Phone 7 Quirk__: Dot notation is _not_ available, so be sure
+to use `setItem` or `getItem` rather than access keys directly from
+the storage object, as in `window.localStorage.someKey`.
+
+## WebSQL
+
+This API is available in the underlying WebView.
+The [Web SQL Database Specification](http://dev.w3.org/html5/webdatabase/)
+offers more full-featured database tables accessed via SQL queries.
+
+The following platforms support WebSQL:
+
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+
+## IndexedDB
+
+This API is available in the underlying WebView.
+[Indexed DB](http://www.w3.org/TR/IndexedDB/) offers more features
+than LocalStorage but fewer than WebSQL.
+
+The following platforms support IndexedDB:
+
+- Windows Phone 8
+- BlackBerry 10
+
+## Plugin-Based Options
+
+In addition to the storage APIs listed above, the
+[File API](https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md)
+allows you to cache data on the local file system.  Other
+[Cordova plugins](http://plugins.cordova.io/) provide similar storage options.
+
diff --git a/docs/en/3.4.0/guide/appdev/privacy/index.md b/docs/en/3.4.0/guide/appdev/privacy/index.md
new file mode 100644
index 0000000..601ee38
--- /dev/null
+++ b/docs/en/3.4.0/guide/appdev/privacy/index.md
@@ -0,0 +1,117 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Privacy Guide
+
+Mobile privacy is a critical issue that every app developer must
+address. Your users expect that their private information will be
+collected and treated appropriately by your app. Also, there are an
+increasing number of jurisdictions that now have legal requirements
+regarding mobile privacy practices.
+
+This guide on mobile app privacy should be considered a _primer_
+addressing some the most significant issues. It outlines some broadly
+accepted best practices and provides references to other more detailed
+guides and references.
+
+* __Privacy Policy__: You app should include a privacy policy that
+  addresses topics such as what kind of information your app collects
+  from or about your users, how that information is used, with whom it
+  is shared, and how users can make privacy-related choices within the
+  app. To aid understanding, you should use plain language and avoid
+  technical jargon. You should make your privacy policy available for
+  users to review prior to download, such as in the app description in
+  the app marketplace. In addition, you should make your privacy
+  policy available within the app itself. The limited size of mobile
+  device displays creates challenges for displaying privacy policies
+  to users. Consider developing a _short form_ of the policy that
+  includes the most important information, and then provide a link to
+  the "long form" policy for those interested in more details. Several
+  groups are attempting to develop icon-based standards for
+  communicating privacy practices, which you may want to consider once
+  these standards mature.
+
+* __Collection of sensitive information__: An app's collection of
+  sensitive personal information raises important privacy concerns.
+  Examples of sensitive personal information include financial
+  information, health information, and information from or about
+  children. It also includes information gathered from certain sensors
+  and databases typically found on mobile devices and tablets, such as
+  geolocation information, contacts/phonebook, microphone/camera, and
+  stored pictures/videos. See the following documentation pages for
+  more information: [camera](cordova_camera_camera.md.html),
+  [capture](cordova_media_capture_capture.md.html),
+  [contacts](cordova_contacts_contacts.md.html), and
+  [geolocation](cordova_geolocation_geolocation.md.html). Generally,
+  you should obtain a user's express permission before collecting
+  sensitive information and, if possible, provide a control mechanism
+  that allows a user to easily change permissions. App operating
+  systems can help in some instances by presenting just-in-time dialog
+  boxes that ask for the user's permission before collection. In these
+  cases, be sure to take advantage of any opportunity to customize the
+  dialog box text to clarify how the app uses and, if applicable,
+  shares such information.
+
+* __Avoiding user surprise__: If your app collects or uses information
+  in a way that may be surprising to users in light of the primary
+  purpose of your app (for example, a music player that accesses
+  stored pictures), you should take similar steps as with the
+  collection of sensitive personal information. That is, you should
+  strongly consider the use of just-in-time dialog boxes to inform the
+  user about the collection or use of that information and, if
+  appropriate, provide a corresponding privacy control.
+
+* __Third party data collection or sharing__: If you app collects
+  information that is provided to another company--such as a social
+  networking platform or an ad network (for example, if your app
+  displays advertising)--you should inform your users of that
+  collection and sharing. At a minimum, your privacy policy should
+  describe the information collection and sharing and, if appropriate,
+  offer your users the ability to control or opt-out of such
+  collection or sharing.
+
+* __Collection limitation and security__: Your users entrust your app
+  with their information and they expect that you will take
+  appropriate security precautions to protect it. One of the best ways
+  to avoid security compromises of personal information is not to
+  collect the information in the first place unless your app has a
+  specific and legitimate business reason for the collection. For
+  information that does need to be collected, ensure that you provide
+  appropriate security controls to protect that information, whether
+  it is stored on the device or on your backend servers. You should
+  also develop an appropriate data retention policy that is
+  implemented within the app and on your backend servers.
+
+Following are some additional helpful mobile privacy guides for developers:
+
+* California Attorney General, [Privacy on the Go: Recommendations for the Mobile Ecosystem][1]
+
+* Center for Democracy & Technology, Future of Privacy Forum, [Best Practices for Mobile App Developers][2]
+
+* CTIA-The Wireless Association, [Best Practices and Guidelines for Location Based Services][3]
+
+* Federal Trade Commission, [Mobile Privacy Disclosures: Building Trust Through Transparency][4]
+
+* Future of Privacy Forum, [Application Privacy][5] Website
+
+[1]: http://oag.ca.gov/sites/all/files/pdfs/privacy/privacy_on_the_go.pdf
+[2]: http://www.futureofprivacy.org/wp-content/uploads/Best-Practices-for-Mobile-App-Developers_Final.pdf
+[3]: http://www.ctia.org/business_resources/wic/index.cfm/AID/11300
+[4]: http://www.ftc.gov/os/2013/02/130201mobileprivacyreport.pdf
+[5]: http://www.applicationprivacy.org
diff --git a/docs/en/3.4.0/guide/appdev/whitelist/index.md b/docs/en/3.4.0/guide/appdev/whitelist/index.md
new file mode 100644
index 0000000..4e5e484
--- /dev/null
+++ b/docs/en/3.4.0/guide/appdev/whitelist/index.md
@@ -0,0 +1,168 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Whitelist Guide
+
+Domain whitelisting is a security model that controls access to
+external domains over which you application has no control.  Cordova's
+default security policy allows access to any site. Before moving your
+application to production, you should formulate a whitelist and allow
+access to specific network domains and subdomains.
+
+Cordova adheres to the [W3C Widget Access][1] specification, which
+relies on the `<access>` element within the app's `config.xml` file to
+enable network access to specific domains. For projects that rely on
+the CLI workflow described in The Command-Line Interface, this file is
+located in the project's top-level directory. Otherwise for
+platform-specific development paths, locations are listed in the
+sections below. (See the various Platform Guides for more information
+on each platform.)
+
+The following examples demonstrate whitelist syntax:
+
+* Access to [google.com][2]:
+
+        <access origin="http://google.com" />
+
+* Access to the secure [google.com][3] (`https://`):
+
+        <access origin="https://google.com" />
+
+* Access to the subdomain [maps.google.com][4]:
+
+        <access origin="http://maps.google.com" />
+
+* Access to all the subdomains on [google.com][2], for example
+  [mail.google.com][5] and [docs.google.com][6]:
+
+        <access origin="http://*.google.com" />
+
+* Access to _all_ domains, for example, [google.com][2] and
+  [developer.mozilla.org][7]:
+
+        <access origin="*" />
+
+  This is the default value for newly created CLI projects.
+
+## Amazon Fire OS Whitelisting
+
+Platform-specific whitelisting rules are found in
+`res/xml/config.xml`.
+
+## Android Whitelisting
+
+Platform-specific whitelisting rules are found in
+`res/xml/config.xml`.
+
+__NOTE__: On Android 2.3 and before, domain whitelisting only works
+for `href` hyperlinks, not referenced resources such as images and
+scripts. Take steps to avoid scripts from being injected into the
+application.
+
+Navigating to non-whitelisted domains via `href` hyperlink causes the
+page to open in the default browser rather than within the
+application.  (Compare this to iOS's behavior noted below.)
+
+## iOS Whitelisting
+
+The platform's whitelisting rules are found in the named application
+directory's `config.xml` file.
+
+Origins specified without a protocol, such as `www.apache.org` rather
+than `http://www.apache.org`, default to all of the `http`, `https`,
+`ftp`, and `ftps` schemes.
+
+Wildcards on the iOS platform are more flexible than in the [W3C
+Widget Access][1] specification.  For example, the following accesses
+all subdomains and top-level domains such as `.com` and `.net`:
+
+        <access origin="*.google.*" />
+
+Unlike the Android platform noted above, navigating to non-whitelisted
+domains via `href` hyperlink on iOS prevents the page from opening at
+all.
+
+## BlackBerry 10 Whitelisting
+
+The whitelisting rules are found in `www/config.xml`.
+
+BlackBerry 10's use of wildcards differs from other platforms in two
+ways:
+
+* Any content accessed by `XMLHttpRequest` must be declared
+  explicitly. Setting `origin="*"` does not work in this case.
+  Alternatively, all web security may be disabled using the
+  `WebSecurity` preference described in BlackBerry Configuration:
+ 
+        <preference name="websecurity" value="disable" />
+
+* As an alternative to setting `*.domain`, set an additional
+  `subdomains` attribute to `true`. It should be set to `false` by
+  default. For example, the following allows access to `google.com`,
+  `maps.google.com`, and `docs.google.com`:
+
+        <access origin="http://google.com" subdomains="true" />
+
+  The following narrows access to `google.com`:
+
+        <access origin="http://google.com" subdomains="false" />
+
+  Specify access to all domains, including the local `file://`
+  protocol:
+
+    <access origin="*" subdomains="true" />
+
+(For more information on support, see BlackBerry's documentation on the
+[access element][8].)
+
+## iOS Changes in 3.1.0
+
+Prior to version 3.1.0, Cordova-iOS included some non-standard extensions to the domain whitelisting scheme supported by other Cordova platforms. As of 3.1.0, the iOS whitelist now conforms to the resource whitelist syntax described at the top of this document. If you upgrade from pre-3.1.0, and you were using these extensions, you may have to change your `config.xml` file in order to continue whitelisting the same set of resources as before.
+
+Specifically, these patterns need to be updated:
+
+- `apache.org` (no protocol): This would previously match `http`, `https`, `ftp`, and `ftps` protocols. Change to "`*://apache.org/*`" to include all protocols, or include a line for each protocol you need to support.
+
+- `http://apache.*` (wildcard at end of domain): This would previously match all top-level-domains, including all possible two-letter TLDs (but not useful domains like .co.uk). Include a line for each TLD which you actually control, and need to whitelist.
+
+- `h*t*://ap*he.o*g` (wildcards for random missing letters): These are no longer supported; change to include a line for each domain and protocol that you actually need to whitelist.
+
+## Windows Phone Whitelisting
+
+The whitelisting rules for Windows Phone 7 and 8 are found in the
+app's `config.xml` file.
+
+## Tizen Whitelisting
+
+Whitelisting rules are found in the app's `config.xml` file. The
+platform relies on the same `subdomains` attribute as the BlackBerry
+platform.
+(For more information on support, see Tizen's documentation on the
+[access element][9].)
+
+[1]: http://www.w3.org/TR/widgets-access/
+[2]: http://google.com
+[3]: https://google.com
+[4]: http://maps.google.com
+[5]: http://mail.google.com
+[6]: http://docs.google.com
+[7]: http://developer.mozilla.org
+[8]: https://developer.blackberry.com/html5/documentation/ww_developing/Access_element_834677_11.html
+[9]: https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.web.appprogramming%2Fhtml%2Fide_sdk_tools%2Fconfig_editor_w3celements.htm
+
diff --git a/docs/en/3.4.0/guide/cli/index.md b/docs/en/3.4.0/guide/cli/index.md
new file mode 100644
index 0000000..ac02a64
--- /dev/null
+++ b/docs/en/3.4.0/guide/cli/index.md
@@ -0,0 +1,497 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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 Command-Line Interface
+
+This guide shows you how to create applications and deploy them to
+various native mobile platforms using the `cordova` command-line
+interface (CLI). This tool allows you to create new projects, build
+them on different platforms, and run on real devices or within emulators. The CLI
+is the main tool to use for the cross-platform workflow (See the Overview for a description
+of the various workflows.)  However, you can also use the CLI to initialize project code, after
+which you use various platforms' SDKs and shell tools for continued development.
+
+## Prerequisites
+
+Before running any command-line tools, you need to install SDKs for
+each platform you wish to target.
+(See the Platform Guides for more details.)
+
+To add support or rebuild a project for any platform, you need to run
+the command-line interface from the same machine that supports the
+platform's SDK. The CLI supports the following combinations:
+
+* iOS             (Mac)
+* Amazon Fire OS  (Mac, Linux, Windows)
+* Android         (Mac, Linux)
+* BlackBerry 10   (Mac, Linux, Windows)
+* Windows Phone 7 (Windows)
+* Windows Phone 8 (Windows)
+* Windows 8       (Windows)
+* Firefox OS      (Mac, Linux, Windows)
+
+On the Mac, the command-line is available via the _Terminal_
+application. On the PC, it's available as _Command Prompt_ under
+_Accessories_.
+
+The more likely it is that you run the CLI from different machines,
+the more it makes sense to maintain a remote source code repository,
+whose assets you pull down to local working directories.
+
+To install the `cordova` command-line tool, follow these steps:
+
+1. Download and install [Node.js](http://nodejs.org/). Following
+   installation, you should be able to invoke `node` or `npm` on your
+   command line. 
+
+1. Install the `cordova` utility. In Unix, prefixing the additional
+   `sudo` command may be necessary to install development utilities in
+   otherwise restricted directories:
+
+        $ sudo npm install -g cordova
+
+   The installation log may produce errors for any uninstalled
+   platform SDKs.  Following installation, you should be able to run
+   `cordova` on the command line.
+
+   **NOTE**: The `-g` flag above tells npm to install cordova globally. 
+   You may need to add the npm directory to your PATH in order to invoke
+   globally installed npm modules. On Windows, npm can usually be found at
+   `C:\Users\username\AppData\Roaming\npm` and on Unix at
+   `/usr/local/share/npm`.
+   
+## Create the App
+
+Go to the directory where you maintain your source code, and run a
+command such as the following:
+
+        $ cordova create hello com.example.hello HelloWorld
+
+It may take some time for the command to complete, so be patient. Running
+the command with the ` -d` option displays information about its progress.
+
+The first argument _hello_ specifies a directory to be generated
+for your project. This directory should not already exist, Cordova will
+create it for you. Its `www` subdirectory houses your application's
+home page, along with various resources under `css`, `js`, and `img`,
+which follow common web development file-naming conventions. The
+`config.xml` file contains important metadata needed to generate and
+distribute the application.
+
+The second argument `com.example.hello`
+provides your project with a reverse domain-style identifier. This argument
+is optional, but only if you also omit the third argument, since the arguments
+are positional. You can edit
+this value later in the `config.xml` file, but do be aware that there may
+be code generated outside of `config.xml` using this value, such as Java
+package names. The default value is `io.cordova.hellocordova`, but it is
+recommended that you select an appropriate value.
+
+The third argument `HelloWorld` provides the application's display title.
+This argument is optional. You can edit this value later in the `config.xml`
+file, but do be aware that there may be code generated outside of `config.xml`
+using this value, such as Java class names. The default value is `HelloCordova`,
+but it is recommended that you select an appropriate value.
+
+## Add Platforms
+
+All subsequent commands need to be run within the project's directory,
+or any subdirectories within its scope:
+
+        $ cd hello
+
+Before you can build the project, you need to specify a set of target
+platforms. Your ability to run these commands depends on whether your
+machine supports each SDK, and whether you have already installed each
+SDK.  Run any of these from a Mac:
+
+        $ cordova platform add ios
+        $ cordova platform add amazon-fireos
+        $ cordova platform add android
+        $ cordova platform add blackberry10
+        $ cordova platform add firefoxos
+
+Run any of these from a Windows machine, where _wp_ refers to
+different versions of the Windows Phone operating system:
+
+        $ cordova platform add wp7
+        $ cordova platform add wp8
+        $ cordova platform add windows8
+        $ cordova platform add amazon-fireos
+        $ cordova platform add android
+        $ cordova platform add blackberry10
+        $ cordova platform add firefoxos
+
+Run this to check your current set of platforms:
+
+        $ cordova platforms ls
+
+(Note the `platform` and `platforms` commands are synonymous.)
+
+Run either of the following synonymous commands to remove a platform:
+
+        $ cordova platform remove blackberry10
+        $ cordova platform rm amazon-fireos
+        $ cordova platform rm android
+
+Running commands to add or remove platforms affects the contents of
+the project's _platforms_ directory, where each specified platform
+appears as a subdirectory. The _www_ source directory is reproduced
+within each platform's subdirectory, appearing for example in
+`platforms/ios/www` or `platforms/android/assets/www`. Because the CLI
+constantly copies over files from the source _www_ folder, you should only
+edit these files and not the ones located under the _platforms_ subdirectories.
+If you use version control software, you should add this source _www_ folder, 
+along with the _merges_ folder, to your version control system. (More information
+about the _merges_ folder can be found in the Customize Each Platform section below.)
+
+**WARNING**: When using the CLI to build your application, you are strongly discouraged
+from editing any files in the `/platforms/` folder unless you know what you are doing
+or are specifically told otherwise in documentation. This is because the files in the 
+`/platforms/` directory will be overwritten on prepare or plugin reinstallation.
+
+If you wish at this point, you can use an SDK such as Eclipse or Xcode
+to open the project you created. You will need to open the derivative set of assets
+from the `/platforms/` directory to develop with an SDK. This is because
+the SDK specific metadata files are stored within the appropriate `/platform/` subdirectory.
+(See the Platform Guides for information on how to develop applications within each IDE.)
+Use this approach if you simply want to initialize a project using the CLI and 
+then switch to an SDK for native work.
+
+Read on if you wish to use the cross-platform workflow approach (the CLI) for the entire
+development cycle.
+
+## Build the App
+
+By default, the `cordova create` script generates a skeletal web-based
+application whose home page is the project's `www/index.html` file.
+Edit this application however you want, but any initialization should
+be specified as part of the `deviceready` event handler, referenced by
+default from `www/js/index.js`.
+
+Run the following command to iteratively build the project:
+
+        $ cordova build
+
+This generates platform-specific code within the project's `platforms`
+subdirectory.  You can optionally limit the scope of each build to
+specific platforms:
+
+        $ cordova build ios
+
+The `cordova build` command is a shorthand for the following, which in
+this example is also targeted to a single platform:
+
+        $ cordova prepare ios
+        $ cordova compile ios
+
+In this case, once you run `prepare`, you can use Apple's Xcode SDK as
+an alternative to modify and compile the platform-specific code that
+Cordova generates within `platforms/ios`. You can use the same
+approach with other platforms' SDKs.
+
+## Test the App on an Emulator or Device
+
+SDKs for mobile platforms often come bundled with emulators that
+execute a device image, so that you can launch the app from the home
+screen and see how it interacts with many platform features.  Run a
+command such as the following to rebuild the app and view it within a
+specific platform's emulator:
+
+        $ cordova emulate android
+
+Some mobile platforms emulate a particular device by default, such as
+the iPhone for iOS projects. For other platforms, you may need to
+first associate a device with an emulator.
+
+Note: Emulator support is currently not available for Amazon Fire OS
+
+(See the Platform Guides for details.)
+For example, you may first run the `android` command to launch the
+Android SDK, then run a particular device image, which launches it
+according to its default behavior:
+
+![](img/guide/cli/android_emulate_init.png)
+
+Following up with the `cordova emulate` command refreshes the emulator
+image to display the latest application, which is now available for
+launch from the home screen:
+
+![](img/guide/cli/android_emulate_install.png)
+
+Alternately, you can plug the handset into your computer and test the
+app directly:
+
+        $ cordova run android
+
+Before running this command, you need to set up the device for
+testing, following procedures that vary for each platform. In
+Android and Amazon Fire OS devices, you would have to enable a __USB debugging__ option on
+the device, and perhaps add a USB driver depending on your development
+environmnent.
+See Platform Guides for details on each platform's requirements.
+
+## Add Plugin Features
+
+When you build and view a new project, the default application that
+appears doesn't do very much. You can modify the app in many ways to
+take advantage of standard web technologies, but for the app to
+communicate closely with various device-level features, you need to
+add plugins that provide access to core Cordova APIs.
+
+A _plugin_ is a bit of add-on code that provides an interface to
+native components. You can design your own plugin interface, for
+example when designing a hybrid app that mixes a Cordova WebView with
+native components. (See Embedding WebViews and Plugin Development
+Guide for details.)  More commonly, you would add a plugin to enable
+one of Cordova's basic device-level features
+detailed in the API Reference. A list of these plugins, including
+additional plugins provided by the community, can be found at
+[plugins.cordova.io](http://plugins.cordova.io/). You can use
+the CLI to search for plugins from this registry. For example,
+searching for `bar` and `code` produces a single result that matches
+both terms as case-insensitive substrings:
+
+        $ cordova plugin search bar code
+
+        com.phonegap.plugins.barcodescanner - Scans Barcodes
+
+Searching for only the `bar` term yields and additional result:
+
+        org.apache.cordova.statusbar - Cordova StatusBar Plugin
+
+The `cordova plugin add` command requires you to specify the
+repository for the plugin code.  Please note that when you follow the 
+Web Project Dev workflow and use the CLI, the CLI will take care of adding
+the plugin code to the appropriate place for each platform. (If you are following the
+Native Project Dev Workflow, you will have to add plugins using Plugman (guide link here),
+multiple times for each platform.)
+
+Here are examples of how you might use the CLI to add features to the app:
+
+* Basic device information (Device API):
+
+        $ cordova plugin add org.apache.cordova.device
+
+* Network Connection and Battery Events:
+
+        $ cordova plugin add org.apache.cordova.network-information
+        $ cordova plugin add org.apache.cordova.battery-status
+
+* Accelerometer, Compass, and Geolocation:
+
+        $ cordova plugin add org.apache.cordova.device-motion
+        $ cordova plugin add org.apache.cordova.device-orientation
+        $ cordova plugin add org.apache.cordova.geolocation
+
+* Camera, Media playback and Capture:
+
+        $ cordova plugin add org.apache.cordova.camera
+        $ cordova plugin add org.apache.cordova.media-capture
+        $ cordova plugin add org.apache.cordova.media
+
+* Access files on device or network (File API):
+
+        $ cordova plugin add org.apache.cordova.file
+        $ cordova plugin add org.apache.cordova.file-transfer
+
+* Notification via dialog box or vibration:
+
+        $ cordova plugin add org.apache.cordova.dialogs
+        $ cordova plugin add org.apache.cordova.vibration
+
+* Contacts:
+
+        $ cordova plugin add org.apache.cordova.contacts
+
+* Globalization:
+
+        $ cordova plugin add org.apache.cordova.globalization
+
+* Splashscreen:
+
+        $ cordova plugin add org.apache.cordova.splashscreen
+
+* Open new browser windows (InAppBrowser):
+
+        $ cordova plugin add org.apache.cordova.inappbrowser
+
+* Debug console:
+
+        $ cordova plugin add org.apache.cordova.console
+
+Use `plugin ls` (or `plugin list`, or `plugin` by itself) to view
+currently installed plugins. Each displays by its identifier:
+
+        $ cordova plugin ls    # or 'plugin list'
+        [ 'org.apache.cordova.console' ]
+
+To remove a plugin, refer to it by the same identifier that appears in
+the listing. For example, here is how you would remove support for a
+debug console from a release version:
+
+        $ cordova plugin rm org.apache.cordova.console
+        $ cordova plugin remove org.apache.cordova.console    # same
+
+You can batch-remove or add plugins by specifying more than one
+argument for each command:
+
+        $ cordova plugin add org.apache.cordova.console org.apache.cordova.device
+
+## Advanced Plugin Options
+
+When adding a plugin, several options allow you to specify from where
+to fetch the plugin. The examples above use a well-known
+`registry.cordova.io` registry, and the plugin is specified by the
+`id`:
+
+        $ cordova plugin add org.apache.cordova.console
+
+The `id` may also include the plugin's version number, appended after
+an `@` character. The `latest` version is an alias for the most recent
+version. For example:
+
+        $ cordova plugin add org.apache.cordova.console@latest
+        $ cordova plugin add org.apache.cordova.console@0.2.1
+
+If the plugin is not registered at `registry.cordova.io` but is located in
+another git repository, you can specify an alternate URL:
+
+        $ cordova plugin add https://github.com/apache/cordova-plugin-console.git
+
+The git example above fetches the plugin from the end of the master
+branch, but an alternate git-ref such as a tag or branch can be
+appended after a `#` character:
+
+        $ cordova plugin add https://github.com/apache/cordova-plugin-console.git#r0.2.0
+
+If the plugin (and its `plugin.xml` file) is in a subdirectory within
+the git repo, you can specify it with a `:` character. Note that the
+`#` character is still needed:
+
+        $ cordova plugin add https://github.com/someone/aplugin.git#:/my/sub/dir
+
+You can also combine both the git-ref and the subdirectory:
+
+        $ cordova plugin add https://github.com/someone/aplugin.git#r0.0.1:/my/sub/dir
+
+Alternately, specify a local path to the plugin directory that
+contains the `plugin.xml` file:
+
+        $ cordova plugin add ../my_plugin_dir
+
+## Using _merges_ to Customize Each Platform
+
+While Cordova allows you to easily deploy an app for many different
+platforms, sometimes you need to add customizations.  In that case,
+you don't want to modify the source files in various `www` directories
+within the top-level `platforms` directory, because they're regularly
+replaced with the top-level `www` directory's cross-platform source.
+
+Instead, the top-level `merges` directory offers a place to specify
+assets to deploy on specific platforms. Each platform-specific
+subdirectory within `merges` mirrors the directory structure of the
+`www` source tree, allowing you to override or add files as needed.
+For example, here is how you might uses `merges` to boost the default
+font size for Android and Amazon Fire OS devices:
+
+* Edit the `www/index.html` file, adding a link to an additional CSS
+  file, `overrides.css` in this case:
+
+        <link rel="stylesheet" type="text/css" href="css/overrides.css" />
+
+* Optionally create an empty `www/css/overrides.css` file, which would
+  apply for all non-Android builds, preventing a missing-file error.
+
+* Create a `css` subdirectory within `merges/android`, then add a
+  corresponding `overrides.css` file. Specify CSS that overrides the
+  12-point default font size specified within `www/css/index.css`, for
+  example:
+
+        body { font-size:14px; }
+
+When you rebuild the project, the Android version features the custom
+font size, while others remain unchanged.
+
+You can also use `merges` to add files not present in the original
+`www` directory. For example, an app can incorporate a _back button_
+graphic into the iOS interface, stored in
+`merges/ios/img/back_button.png`, while the Android version can
+instead capture `backbutton` events from the corresponding hardware
+button.
+
+## Help Commands
+
+Cordova features a couple of global commands, which may help you if
+you get stuck or experience a problem.  The `help` command displays
+all available Cordova commands and their syntax:
+
+    $ cordova help
+    $ cordova        # same
+
+The `info` command produces a listing of potentially useful details,
+such as currently installed platforms and plugins, SDK versions for
+each platform, and versions of the CLI and `node.js`:
+
+    $ cordova info
+
+It both presents the information to screen and captures the output in
+a local `info.txt` file.
+
+__NOTE__: Currently, only details on iOS and Android platforms are
+available.
+
+## Updating Cordova and Your Project
+
+After installing the `cordova` utility, you can always update it to
+the latest version by running the following command:
+
+        $ sudo npm update -g cordova
+
+Use this syntax to install a specific version:
+
+        $ sudo npm install -g cordova@3.1.0-0.2.0
+
+Run `cordova -v` to see which version is currently running.  Run the `npm
+info` command for a longer listing that includes the current version
+along with other available version numbers:
+
+        $ npm info cordova
+
+Cordova 3.0 is the first version to support the command-line interface
+described in this section. If you are updating from a version prior to
+3.0, you need to create a new project as described above, then copy
+the older application's assets into the top-level `www` directory.
+Where applicable, further details about upgrading to 3.0 are available
+in the Platform Guides.  Once you upgrade to the `cordova`
+command-line interface and use `npm update` to stay current, the more
+time-consuming procedures described there are no longer relevant.
+
+Cordova 3.0+ may still require various changes to
+project-level directory structures and other dependencies. After you
+run the `npm` command above to update Cordova itself, you may need to
+ensure your project's resources conform to the latest version's
+requirements. Run a command such as the following for each platform
+you're building:
+
+        $ cordova platform update android
+        $ cordova platform update ios
+        ...etc.
+
diff --git a/docs/en/3.4.0/guide/hybrid/plugins/index.md b/docs/en/3.4.0/guide/hybrid/plugins/index.md
new file mode 100644
index 0000000..b8dd5ea
--- /dev/null
+++ b/docs/en/3.4.0/guide/hybrid/plugins/index.md
@@ -0,0 +1,211 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin Development Guide
+
+A _plugin_ is a package of injected code that allows the Cordova webview within
+which your app renders to communicate with the native platform on
+which it runs.  Plugins provide access to device and platform
+functionality that is ordinarily unavailable to web-based apps.  All
+the main Cordova API features are implemented as plugins, and many
+others are available that enable features such as bar code scanners,
+NFC communication, or to tailor calendar interfaces.
+
+Plugins comprise a single JavaScript interface along with
+corresponding native code libraries for each supported platform.  This
+section steps through a simple _echo_ plugin that passes a string from
+JavaScript to the native platform and back, one that you can use as a
+model to build far more complex features.  This section discusses the
+basic plugin structure and the outward-facing JavaScript interface.
+For each corresponding native interface, see the list at the end of
+this section.
+
+In addition to these instructions, when preparing to write a plugin it
+is best to look over
+[existing plugins](https://github.com/apache/cordova-android/tree/master/framework/src/org/apache/cordova)
+for guidance.
+
+## Building a Plugin
+
+Application developers use the CLI's `plugin add` command (discussed
+in The Command-Line Interface) to apply a plugin to a project. The
+argument to that command is the URL for a _git_ repository containing
+the plugin code.  This example implements Cordova's Device API:
+
+        $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
+
+The plugin repository must feature a top-level `plugin.xml` manifest
+file. There are many ways to configure this file, details for which
+are available in the Plugin Specification. This abbreviated version of
+the `Device` plugin provides a simple example to use as a model:
+
+        <?xml version="1.0" encoding="UTF-8"?>
+        <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+                id="org.apache.cordova.device" version="0.2.3">
+            <name>Device</name>
+            <description>Cordova Device Plugin</description>
+            <license>Apache 2.0</license>
+            <keywords>cordova,device</keywords>
+            <js-module src="www/device.js" name="device">
+                <clobbers target="device" />
+            </js-module>
+            <platform name="ios">
+                <config-file target="config.xml" parent="/*">
+                    <feature name="Device">
+                        <param name="ios-package" value="CDVDevice"/>
+                    </feature>
+                </config-file>
+                <header-file src="src/ios/CDVDevice.h" />
+                <source-file src="src/ios/CDVDevice.m" />
+            </platform>
+        </plugin>
+
+The top-level `plugin` tag's `id` attribute uses the same
+reverse-domain format to identify the plugin package as the apps to
+they're added.  The `js-module` tag specifies the path to the common
+JavaScript interface.  The `platform` tag specifies a corresponding
+set of native code, for the `ios` platform in this case.  The
+`config-file` tag encapsulates a `feature` tag that is injected into
+the platform-specific `config.xml` file to make the platform aware of
+the additional code library.  The `header-file` and `source-file` tags
+specify the path to the library's component files.
+
+## Validating a Plugin
+
+You can use the `plugman` utility to check whether the plugin installs
+correctly for each platform.  Install `plugman` with the following
+[node](http://nodejs.org/) command:
+
+        $ npm install -g plugman
+
+You need an valid app source directory, such as the top-level `www`
+directory included in a default CLI-generated project as described in
+The Command-Line Interface.  Make sure the app's `index.html` home
+page reference the name of the plugin's JavaScript interface, as if it
+were in the same source directory:
+
+        <script src="myplugin.js"></script>
+
+Then run a command such as the following to test whether iOS
+dependencies load properly:
+
+        $ plugman -platform ios /path/to/my/project/www /path/to/my/plugin
+
+For details on `plugman` options, see Using Plugman to Manage Plugins.
+For information on how to actually _debug_ plugins, see each
+platform's native interface listed at the bottom of this page.
+
+## The JavaScript Interface
+
+The JavaScript provides the front-facing interface, making it perhaps
+the most important part of the plugin.  You can structure your
+plugin's JavaScript however you like, but you need to call
+`cordova.exec` to communicate with the native platform, using the
+following syntax:
+
+        cordova.exec(function(winParam) {},
+                     function(error) {},
+                     "service",
+                     "action",
+                     ["firstArgument", "secondArgument", 42, false]);
+
+Here is how each parameter works:
+
+- `function(winParam) {}`: A success callback function. Assuming your
+  `exec` call completes successfully, this function executes along
+  with any parameters you pass to it.
+
+- `function(error) {}`: An error callback function. If the operation
+  does not complete successfully, this function executes with an
+  optional error parameter.
+
+- `"service"`: The service name to call on the native side. This
+  corresponds to a native class, for which more information is
+  available in the native guides listed below.
+
+- `"action"`: The action name to call on the native side. This
+  generally corresponds to the native class method. See the native
+  guides listed below.
+
+- `[/* arguments */]`: An array of arguments to pass into the native
+  environment.
+
+## Sample JavaScript
+
+This example shows one way to implement the plugin's JavaScript
+interface:
+
+        window.echo = function(str, callback) {
+            cordova.exec(callback, function(err) {
+                callback('Nothing to echo.');
+            }, "Echo", "echo", [str]);
+        };
+
+In this example, the plugin attaches itself to the `window` object as
+the `echo` function, which plugin users would call as follows:
+
+        window.echo("echome", function(echoValue) {
+            alert(echoValue == "echome"); // should alert true.
+        });
+
+Look at the last three arguments to the `cordova.exec` function. The
+first calls the `Echo` _service_, a class name. The second requests
+the `echo` _action_, a method within that class. The third is an array
+of arguments containing the echo string, which is the `window.echo`
+function's the first parameter.
+
+The success callback passed into `exec` is simply a reference to the
+callback function `window.echo` takes. If the native platform fires
+the error callback, it simply calls the success callback and passes it
+a default string.
+
+## Native Interfaces
+
+Once you define JavaScript for your plugin, you need to complement it
+with at least one native implementation. Details for each platform are
+listed below, and each builds on the simple Echo Plugin example above:
+
+- Amazon Fire OS Plugins
+- Android Plugins
+- iOS Plugins
+- BlackBerry 10 Plugins
+- Windows Phone Plugins
+
+The Tizen platform does not support plugins.
+
+## Publishing Plugins
+
+Once you develop your plugin, you may want to publish and share it
+with the community. You can publish your plugin to the cordova
+registry (based on [`npmjs`](https://github.com/isaacs/npmjs.org)) or
+to any other `npmjs`-based registry. Other developers can install it
+automatically using either `plugman` or the Cordova CLI.  (For details
+on each development path, see Using Plugman to Manage Plugins and The
+Command-Line Interface.)
+
+To publish a plugin you need to use the `plugman` tool and go through
+the following steps:
+
+    $ plugman adduser # that is if you don't have an account yet
+    $ plugman publish /path/to/your/plugin
+    
+That is it!
+
+Running `plugman --help` lists other available registry-based
+commands.
diff --git a/docs/en/3.4.0/guide/hybrid/webviews/index.md b/docs/en/3.4.0/guide/hybrid/webviews/index.md
new file mode 100644
index 0000000..e08b25b
--- /dev/null
+++ b/docs/en/3.4.0/guide/hybrid/webviews/index.md
@@ -0,0 +1,36 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Embedding WebViews
+
+Cordova applications are ordinarily implemented as a browser-based
+_WebView_ within the native mobile platform. This section shows how,
+for supporting platforms, to create your own WebView components that
+make full use of Cordova APIs. You can then deploy these Cordova
+application components along with native components in a hybrid
+application.
+
+To deploy a WebView, you need to be familiar with each native
+programming environment. The following provides instructions for
+supported platforms:
+
+- Amazon Fire OS WebViews
+- Android WebViews
+- iOS WebViews
+
diff --git a/docs/en/3.4.0/guide/overview/index.md b/docs/en/3.4.0/guide/overview/index.md
new file mode 100644
index 0000000..2ceb5c8
--- /dev/null
+++ b/docs/en/3.4.0/guide/overview/index.md
@@ -0,0 +1,139 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+
+---
+
+# Overview
+
+Cordova is an open-source mobile development framework. It allows you
+to use standard web technologies such as HTML5, CSS3, and JavaScript
+for cross-platform development, avoiding each mobile platforms' native
+development language.  Applications execute within wrappers targeted
+to each platform, and rely on standards-compliant API bindings to
+access each device's sensors, data, and network status.
+
+Use Cordova if you are:
+
+* a mobile developer and want to extend an application across more
+  than one platform, without having to re-implement it with each
+  platform's language and tool set.
+
+* a web developer and want to deploy a web app that's packaged for
+  distribution in various app store portals.
+
+* a mobile developer interested in mixing native application
+  components with a _WebView_ (browser window) that can access
+  device-level APIs, or if you want to develop a plugin interface
+  between native and WebView components.
+
+## Basic Components
+
+Cordova applications rely on a common `config.xml` file that provides
+information about the app and specifies parameters affecting how it
+works, such as whether it responds to orientation shifts. This file
+adheres to the W3C's
+[Packaged Web App](http://www.w3.org/TR/widgets/),
+or _widget_, specification.
+
+The application itself is implemented as a web page, named
+_index.html_ by default, that references whatever CSS, JavaScript,
+images, media files, or other resources are necessary for it to run.
+The app executes as a _WebView_ within the native application wrapper,
+which you distribute to app stores.  For the web app to interact with
+various device features the way native apps do, it must also reference
+a `cordova.js` file, which provides API bindings.
+
+The Cordova-enabled WebView may provide the application with its
+entire user interface. It can also be a component within a larger,
+hybrid application that mixes the WebView with native application
+components.  Cordova provides a _plugin_ interface for these
+components to communicate with each other.
+
+## Development Paths
+
+As of version 3.0, you can use two basic workflows to create
+a mobile application. While you can accomplish the same
+thing using both workflows, certain tasks are better suited to using one workflow 
+over the other. For this reason, you should understand both workflows so
+that you can use the best tool for the best situation.
+
+The two main workflows that are supported are the _Web Project Dev_ workflow and the _Native Platform Dev_ workflow.
+
+### Web Project Dev
+
+You can think of the first workflow as the _Web Project Dev_ workflow. You should use
+this workflow when you want to create a Cordova application that runs on 
+as many mobile operating systems as possible with as little platform-specific
+development work as possible. This workflow came into existence with Cordova 3.0
+and the creation of the Cordova _Command-line Interface_ (CLI). The CLI abstracts
+away a lot of the functionality of lower-level shell scripts that take care of the
+details involved with building your app, such as copying your web assets into 
+the correct folders for each mobile platform, making platform specific configuration
+changes, or running specific build scripts to generate application binaries. You can read 
+more about the _Web Project Dev_ workflow in The Command-line Interface. Please note
+that often when people speak of the "CLI," they are talking about this _Web Project Dev_
+workflow.
+
+### Native Platform Dev
+
+The second workflow can be thought of as a _Native Platform Dev_ workflow. You should use it
+when you want to focus on building an application for a single platform and are 
+interested in changing the lower-level platform details. While you can still use this workflow
+to build cross-platform apps, the lack of tools to abstract away the various build steps will
+make it more difficult. For example, you will have to use Plugman to
+install the same plugin once for each platform that you want to support. The 
+benefit to using this _Native Platform Dev_ workflow is that it gives you access to the lower-level
+shell scripts to build and test the application, so if you are hacking on the native 
+side of things, this workflow is the most efficient way to test your changes. This workflow
+is also appropriate if you want to use the CordovaWebView as a small part in a larger native
+application (See the Embedding WebViews guide.)  You can read about this workflow in the different
+Shell Tool guides, for instance, Android Shell Tool Guide and iOS Shell Tool Guide.
+
+When first starting out, it might be easiest to use the _Web Project Dev_ workflow
+to create an application. (To install the CLI, see The Command-line Interface.)
+Depending on the set of platforms you wish to target, you can rely on
+the CLI for progressively greater shares of the development cycle:
+
+* In the most basic scenario, you can use the CLI simply to create a
+  new project that is populated with default configuration for you to
+  modify.
+
+* For many mobile platforms, you can also use the CLI to set up
+  additional project files required to compile within each SDK.  For
+  this to work, you must install each targeted platform's SDK.
+  (See the Platform Guides for instructions.)
+  As indicated in the Platform Support table, you may need to
+  run the CLI on different operating systems depending on the targeted
+  platform.
+
+* For supporting platforms, the CLI can compile executable
+  applications and run them in an SDK-based device emulator.
+  For comprehensive testing, you can also generate application files
+  and install them directly on a device.
+
+At any point in the development cycle, you can switch to using more of the _Native Platform
+Dev_ workflow. The platform-specific SDK tools provided may provide a richer set of
+options. (See the Platform Guides for details about each platform's SDK tool set.)
+
+An SDK environment is more appropriate if you want implement a hybrid
+app that mixes web-based and native application components.
+You may use the command-line utility to initially generate the app, or
+iteratively thereafter to feed updated code to SDK tools.  You may
+also build the app's configuration file yourself.
+(See The config.xml File for details.)
+
diff --git a/docs/en/3.4.0/guide/platforms/amazonfireos/config.md b/docs/en/3.4.0/guide/platforms/amazonfireos/config.md
new file mode 100644
index 0000000..436d292
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/amazonfireos/config.md
@@ -0,0 +1,66 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to  Amazon Fire OS builds. See The
+config.xml File for information on global configuration options.
+
+- `KeepRunning` (boolean, defaults to `true`): Determines whether the
+  application stays running in the background even after a `pause`
+  event fires.
+
+        <preference name="KeepRunning" value="false"/>
+
+- `ErrorUrl`: Specifies an error page that displays in response to
+  standard HTTP errors in the 400-500 range. Place the specified file
+  in the top-level directory containing the home page and other web
+  assets.
+
+        <preference name="ErrorUrl" value="error.html"/>
+
+- `LoadingDialog`: Display a native dialog when loading the app. The
+  value's format is _Title, Message_
+
+        <preference name="LoadingDialog" value="Please wait, the app is loading"/>
+
+- `LoadingPageDialog`: Display a native dialog when loading sub-pages
+  within an app. The value's format is _Title, Message_
+
+        <preference name="LoadingPageDialog" value="Please wait, the data is loading"/>
+
+- `LoadUrlTimeoutValue` (number, default is `20000`): When loading a
+  page, the amount of time to wait before throwing a timeout error.
+  This example specifies 10 seconds rather than 20:
+
+        <preference name="LoadUrlTimeoutValue" value="10000"/>
+
+- `SplashScreen`: The name of the file minus its extension in the
+  `res/drawable` directory.  Various assets must share this common
+  name in various subdirectories.
+
+        <preference name="SplashScreen" value="splash"/>
+
+- `SplashScreenDelay` (number, defaults to `5000`): The amount of
+  time the splash screen image displays.
+
+        <preference name="SplashScreenDelay" value="10000"/>
+
diff --git a/docs/en/3.4.0/guide/platforms/amazonfireos/index.md b/docs/en/3.4.0/guide/platforms/amazonfireos/index.md
new file mode 100644
index 0000000..f4b81ac
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/amazonfireos/index.md
@@ -0,0 +1,145 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Amazon Fire OS devices, such as the Kindle Fire HDX.
+
+See the following for more detailed platform-specific information:
+
+* Amazon Fire OS Configuration
+* Amazon Fire OS WebViews
+* Amazon Fire OS Plugins
+
+## Requirements and Support
+
+Developing Cordova apps for Amazon Fire OS requires the Android SDK and the Amazon WebView SDK. Check the requirements for these SDKs at the links below:
+
+* [Android SDK System](http://developer.android.com/sdk/)
+
+* [Amazon WebView SDK](https://developer.amazon.com/sdk/fire/IntegratingAWV.html#installawv)
+
+## Installation
+
+
+### Android SDK
+
+Install the Android SDK from
+[developer.android.com/sdk](http://developer.android.com/sdk/).  You
+may be presented with a choice of where to install the SDK, otherwise
+move the downloaded `adt-bundle` tree to wherever you store
+development tools.
+
+For Cordova command-line tools to work, you need to include the SDK's
+`tools` and `platform-tools` directories in your PATH environment.
+
+On Mac, Linux or other Unix-like platforms, you can use a text editor to create or modify the
+`~/.bash_profile` file, adding a line such as the following, depending
+on where the SDK installs:
+
+    export PATH=${PATH}:/Development/adt-bundle/sdk/platform-tools:/Development/adt-bundle/sdk/tools
+
+This exposes SDK tools in newly opened terminal windows. Otherwise run
+this to make them available in the current session:
+
+    $ source ~/.bash_profile
+
+To modify the PATH environment on Windows 7:
+
+* Click on the __Start__ menu in the lower-left corner of the desktop,
+  right-click on __Computer__, then click __Properties__.
+
+* Click __Advanced System Settings__ in the column on the left.
+
+* In the resulting dialog box, press __Environment Variables__.
+
+* Select the __PATH__ variable and press __Edit__.
+
+* Append the following to the PATH based on where you installed the
+  SDK, for example:
+
+        ;C:\Development\adt-bundle\sdk\platform-tools;C:\Development\adt-bundle\sdk\tools
+
+* Save the value and close both dialog boxes.
+
+You may also need to enable Java and Ant. Open a command prompt and
+type `java`, and also type `ant`. Append to the PATH whichever fail to
+run:
+
+    ;%JAVA_HOME%\bin;%ANT_HOME%\bin
+
+### Amazon WebView SDK
+
+Download the Amazon WebView SDK from the [Amazon Developer Portal](https://developer.amazon.com/sdk/fire/IntegratingAWV.html#installawv).
+
+* Create a `libs/` folder in `~/.cordova/lib/amazon-fireos/cordova/3.1.0/` folder.
+* Add the `awv_interface.jar` from the downloaded SDK to  `~/.cordova/lib/amazon-fireos/cordova/3.1.0/libs/`
+
+
+## Open a Project in the SDK
+
+Use the `cordova` utility to set up a new project, as described in The
+Cordova The Command-line Interface. For example, in a source-code directory:
+
+    $ cordova create hello com.example.hello "HelloWorld"
+    $ cd hello
+    $ cordova platform add amazon-fireos
+    $ cordova build
+
+Once created, you can use the Eclipse that comes along with the Android SDK to modify it:
+
+* Launch the __Eclipse__ application.
+
+* Select the __New Project__ menu item.
+
+* Choose __Android Project from Existing Code__ from the resulting dialog box, and press __Next__:
+    ![](img/guide/platforms//eclipse_new_project.png)
+
+* Navigate to `hello`, or whichever directory you created for the project, then to the `platforms/amazon-fireos` subdirectory.
+
+* Press __Finish__.
+
+Once the Eclipse window opens, a red __X__ may appear to indicate
+unresolved problems. If so, follow these additional steps:
+
+* Right-click on the project directory.
+
+* In the resulting __Properties__ dialog, select __Android__ from the navigation pane.
+
+* For the project build target, select the highest Android API level you have installed.
+
+* Click __OK__.
+
+* Select __Clean__ from the __Project__ menu. This should correct all the errors in the project.
+
+## Deploy to Device
+
+To push an app directly to the device, make sure USB debugging is enabled on your device as described on the
+[Android Developer Site](http://developer.android.com/tools/device.html),
+and use a mini USB cable to plug it into your system.
+
+You can push the app to the device from the command line:
+
+    $ cordova run amazon-fireos
+
+Alternately within Eclipse, right-click the project and choose __Run
+As &rarr; Android Application__.
+
+__Note__: Currently, testing via an emulator is not supported for Amazon WebView based apps.
diff --git a/docs/en/3.4.0/guide/platforms/amazonfireos/plugin.md b/docs/en/3.4.0/guide/platforms/amazonfireos/plugin.md
new file mode 100644
index 0000000..3fc5ca9
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/amazonfireos/plugin.md
@@ -0,0 +1,100 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS Plugins
+
+Follow the instructions provided in the Android Plugins Guide for an overview of developing custom plugins.
+
+## Echo Amazon Fire OS Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+    </platform>
+
+Then add the following to the
+`src/org/apache/cordova/plugin/Echo.java` file:
+
+    package org.apache.cordova.plugin;
+
+    import org.apache.cordova.CordovaPlugin;
+    import org.apache.cordova.CallbackContext;
+
+    import org.json.JSONArray;
+    import org.json.JSONException;
+    import org.json.JSONObject;
+
+    /**
+     * This class echoes a string called from JavaScript.
+     */
+    public class Echo extends CordovaPlugin {
+
+        @Override
+        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+            if (action.equals("echo")) {
+                String message = args.getString(0);
+                this.echo(message, callbackContext);
+                return true;
+            }
+            return false;
+        }
+
+        private void echo(String message, CallbackContext callbackContext) {
+            if (message != null && message.length() > 0) {
+                callbackContext.success(message);
+            } else {
+                callbackContext.error("Expected one non-empty string argument.");
+            }
+        }
+    }
+
+If you want to reuse Android Plugin code for the Amazon Fire OS platform then modify the plugin.xml to point to the `android` specific source file. For example,
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+        <source-file src="src/android/Echo.java" target-dir="src/org/apache/cordova/plugin" />
+    </platform>
+
+If you want to write a customized plugin for the Amazon Fire OS platform then create a folder named `amazon` under your plugin src/ folder and modify the plugin.xml to point to the `amazon` specific source file. For example,
+
+    <platform name="amazon-fireos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Echo">
+                <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+            </feature>
+        </config-file>
+        <source-file src="src/amazon/Echo.java" target-dir="src/org/apache/cordova/plugin" />
+    </platform>
+
+## Using Amazon WebView in your plugin
+
+Cordova for Amazon Fire OS makes use of custom Amazon WebView that is built on the open-source Chromium project. It is GPU accelerated and optimized for fluid performance on Kindle Fire.
+
+To understand how to best use Amazon WebView in your project, check out the [Amazon Developer Portal](https://developer.amazon.com/sdk/fire/IntegratingAWV.html).
diff --git a/docs/en/3.4.0/guide/platforms/amazonfireos/webview.md b/docs/en/3.4.0/guide/platforms/amazonfireos/webview.md
new file mode 100644
index 0000000..87fda43
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/amazonfireos/webview.md
@@ -0,0 +1,113 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Amazon Fire OS WebViews
+
+Beginning with 3.0.0, you can use Cordova as a component in Amazon Fire OS applications. Amazon Fire OS refers to this component as `CordovaWebView`. `CordovaWebView` extends Amazon WebView that is built on the open source Chromium Project. By leveraging this feature, your web apps can utilize the latest HTML5 web standards running in a modern web runtime engine.
+
+## Prerequisites
+
+* Cordova 3.0.0 or greater
+
+* Android SDK updated to the latest SDK
+
+* Amazon WebView SDK
+
+## Guide to using CordovaWebView in a Amazon Fire OS Project
+
+1. Download and expand the [Amazon WebView SDK](https://developer.amazon.com/sdk/fire/IntegratingAWV.html#installawv) , then copy the awv_interface.jar into `/framework/libs` directory. Create a libs/ folder if it doesn't exist.
+
+2. `cd` into `/framework` and run `ant jar` to build the cordova jar. It creates the .jar file formed as `cordova-3.4.0.jar` in the `/framework` directory.
+
+3. Edit your application's `main.xml` file (under `/res/layout`) to look like the following, with the `layout_height`, `layout_width` and `id` modified to suit your application:
+
+        <org.apache.cordova.CordovaWebView
+            android:id="@+id/tutorialView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+4. Modify your activity so that it implements the `CordovaInterface`.  You should implement the included methods.  You may wish to copy them from `/framework/src/org/apache/cordova/CordovaActivity.java`, or implement them on your own.  The code fragment below shows a basic application that uses the interface. Note how the referenced view id matches the `id` attribute specified in the XML fragment shown above:
+
+        public class CordovaViewTestActivity extends Activity implements CordovaInterface {
+            CordovaWebView cwv;
+            /* Called when the activity is first created. */
+            @Override
+            public void onCreate(Bundle savedInstanceState) {
+                super.onCreate(savedInstanceState);
+                setContentView(R.layout.main);
+                cwv = (CordovaWebView) findViewById(R.id.tutorialView);
+                Config.init(this);
+                cwv.loadUrl(Config.getStartUrl());
+            }
+
+If you use the camera, you should also implement this:
+
+        @Override
+        public void setActivityResultCallback(CordovaPlugin plugin) {
+            this.activityResultCallback = plugin;
+        }
+        /**
+         * Launch an activity for which you would like a result when it finished. When this activity exits,
+         * your onActivityResult() method is called.
+         *
+         * @param command           The command object
+         * @param intent            The intent to start
+         * @param requestCode       The request code that is passed to callback to identify the activity
+         */
+        public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
+            this.activityResultCallback = command;
+            this.activityResultKeepRunning = this.keepRunning;
+
+            // If multitasking turned on, then disable it for activities that return results
+            if (command != null) {
+                this.keepRunning = false;
+            }
+
+            // Start activity
+            super.startActivityForResult(intent, requestCode);
+        }
+
+        @Override
+        /**
+         * Called when an activity you launched exits, giving you the requestCode you started it with,
+         * the resultCode it returned, and any additional data from it.
+         *
+         * @param requestCode       The request code originally supplied to startActivityForResult(),
+         *                          allowing you to identify who this result came from.
+         * @param resultCode        The integer result code returned by the child activity through its setResult().
+         * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
+         */
+        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+            super.onActivityResult(requestCode, resultCode, intent);
+            CordovaPlugin callback = this.activityResultCallback;
+            if (callback != null) {
+                callback.onActivityResult(requestCode, resultCode, intent);
+            }
+        }
+
+Finally, remember to add the thread pool, otherwise the plugins have no threads to run on:
+
+        @Override
+        public ExecutorService getThreadPool() {
+            return threadPool;
+        }
+
+6. Copy your application's HTML and JavaScript files to your Amazon Fire OS project's `/assets/www` directory.
+
+7. Copy `config.xml` from `/framework/res/xml` to your project's `/res/xml` directory.
diff --git a/docs/en/3.4.0/guide/platforms/android/config.md b/docs/en/3.4.0/guide/platforms/android/config.md
new file mode 100644
index 0000000..fdf1744
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/config.md
@@ -0,0 +1,93 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Android Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to Android builds. See The
+config.xml File for information on global configuration options.
+
+- `KeepRunning` (boolean, defaults to `true`): Determines whether the
+  application stays running in the background even after a `pause`
+  event fires. Note: setting this to false will not kill the app after
+  a pause event, it will only halt execution of code in the cordova
+  webview while the app is in the background.
+
+        <preference name="KeepRunning" value="false"/>
+
+- `LoadUrlTimeoutValue` (number in milliseconds, default to `20000`,
+  20 seconds): When loading a page, the amount of time to wait before throwing
+  a timeout error. This example specifies 10 seconds rather than 20:
+
+        <preference name="LoadUrlTimeoutValue" value="10000"/>
+
+- `SplashScreen` (string, defaults to `splash`): The name of the file minus
+  its extension in the `res/drawable` directory.  Various assets must share
+  this common name in various subdirectories.
+
+        <preference name="SplashScreen" value="mySplash"/>
+
+- `SplashScreenDelay` (number in milliseconds, defaults to `3000`): The amount
+  of time the splash screen image displays.
+
+        <preference name="SplashScreenDelay" value="10000"/>
+
+- `InAppBrowserStorageEnabled` (boolean, defaults to `true`): Controls
+  whether pages opened within an InAppBrowser can access the same
+  localStorage and WebSQL storage as pages opened with the default
+  browser.
+
+        <preference name="InAppBrowserStorageEnabled" value="true"/>
+
+- `LoadingDialog` (string, defaults to `null`): If set, displays a dialog with
+  the specified title and message, and a spinner, when loading the first
+  page of an application. The title and message are separated by a comma
+  in this value string, and that comma is removed before the dialog is
+  displayed.
+
+        <preference name="LoadingDialog" value="My Title,My Message"/>
+
+- `LoadingPageDialog` (string, defaults to `null`): The same as `LoadingDialog`,
+  but for loading every page after the first page in the application.
+
+        <preference name="LoadingPageDialog" value="My Title,My Message"/>
+
+- `ErrorUrl` (URL, defaults to `null`):
+  If set, will display the referenced page upon an error in the application
+  instead of a dialog with the title "Application Error".
+
+        <preference name="ErrorUrl" value="myErrorPage.html"/>
+
+- `ShowTitle` (boolean, defaults to `false`): Show the title at the top
+  of the screen.
+
+        <preference name="ShowTitle" value="true"/>
+
+- `LogLevel` (string, defaults to `ERROR`): Sets the minimum log level
+  through which log messages from your application will be filtered. Valid
+  values are `ERROR`, `WARN`, `INFO`, `DEBUG`, and `VERBOSE`.
+
+        <preference name="LogLevel" value="VERBOSE"/>
+
+- `SetFullscreen` (boolean, defaults to `false`): Same as the `Fullscreen`
+  parameter in the global configuration of this xml file. This Android-specific
+  element is deprecated in favor of the global `Fullscreen` element, and will
+  be removed in a future version.
+
diff --git a/docs/en/3.4.0/guide/platforms/android/index.md b/docs/en/3.4.0/guide/platforms/android/index.md
new file mode 100644
index 0000000..1bb1ec1
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/index.md
@@ -0,0 +1,244 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Android devices. It walks you through the process
+of installing the Android SDK, opening an Android project in Eclipse SDK, 
+and deploying to an emulator or device. You will need to follow this guide 
+to at least Install the Android SDK, regardless of which workflow you
+are following. (Both the _Web Project Dev_ and _Native Platform Dev_ workflows
+require the Android SDK to be installed and accessible via your PATH.)
+
+See the following for more detailed platform-specific information:
+
+* Android Configuration
+* Android WebViews
+* Android Plugins
+* Upgrading Android
+* Android Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+## Requirements and Support
+
+See the [System Requirements](http://developer.android.com/sdk/index.html)
+for the Android SDK.
+
+Cordova supports Android 2.2, 2.3, and 4.x.  As a general rule,
+platforms are deprecated as they dip below 5% on Google's
+[distribution dashboard](http://developer.android.com/about/dashboards/index.html).
+
+<!--
+NOTE, doc said:
+- Android 2.1 (Deprecated May 2013)
+- Android 3.x (Deprecated May 2013)
+-->
+
+Developers should use the `cordova` utility in conjunction with
+the Android SDK.  See The Command-Line Interface for
+information how to install it, add projects, then build and deploy a
+project.
+
+Install the Android SDK from
+[developer.android.com/sdk](http://developer.android.com/sdk/). The android sdk
+is distributed as an 'adt-bundle-<os>-<arch>-<ver>' file.
+On windows, the adt-bundle is packaged with an installer.
+On OSX and Linux, simply unpack the 'adt-bundle' in the location you store development tools. 
+[More detailed information on Android SDK setup can be found here](http://developer.android.com/sdk/installing/bundle.html)
+
+
+For Cordova command-line tools to work, you need to include the SDK's
+`tools` and `platform-tools` directories in your PATH environment.  On
+Mac, you can use a text editor to create or modify the
+`~/.bash_profile` file, adding a line such as the following, depending
+on where the SDK installs:
+
+    export PATH=${PATH}:/Development/adt-bundle/sdk/platform-tools:/Development/adt-bundle/sdk/tools
+
+This exposes SDK tools in newly opened terminal windows. Otherwise run
+this to make them available in the current session:
+
+    $ source ~/.bash_profile
+
+To modify the PATH environment on Windows 7:
+
+* Click on the __Start__ menu in the lower-left corner of the desktop,
+  right-click on __Computer__, then click __Properties__.
+
+* Click __Advanced System Settings__ in the column on the left.
+
+* In the resulting dialog box, press __Environment Variables__.
+
+* Select the __PATH__ variable and press __Edit__.
+
+* Append the following to the PATH based on where you installed the
+  SDK, for example:
+
+        ;C:\Development\adt-bundle\sdk\platform-tools;C:\Development\adt-bundle\sdk\tools
+
+* Save the value and close both dialog boxes.
+
+You may also need to enable Java and Ant. Open a command prompt and
+type `java`, and also type `ant`. Append to the PATH whichever fail to
+run:
+
+        ;%JAVA_HOME%\bin;%ANT_HOME%\bin
+
+## Open a Project in the SDK
+
+Use the `cordova` utility to set up a new project, as described in The
+Cordova The Command-Line Interface. For example, in a source-code directory:
+
+        $ cordova create hello com.example.hello "HelloWorld"
+        $ cd hello
+        $ cordova platform add android
+        $ cordova build
+
+Once created, you can use the Eclipse that comes along with the Android SDK to modify it:
+
+* Launch the __Eclipse__ application.
+
+* Select the __New Project__ menu item.
+
+* Choose __Android Project from Existing Code__ from the resulting dialog box, and press __Next__:
+    ![](img/guide/platforms/android/eclipse_new_project.png)
+
+* Navigate to `hello`, or whichever directory you created for the project, then to the `platforms/android` subdirectory.
+
+* Make sure both `hello` and `hello-CordovaLib` projects are selected to be imported. The `hello-CordovaLib` project is needed as of Cordova 3.3.0 because Cordova is now used as an Android Library instead of a .jar file.
+
+* Press __Finish__.
+
+Once the Eclipse window opens, a red __X__ may appear to indicate
+unresolved problems. If so, follow these additional steps:
+
+* Right-click on the project directory.
+
+* In the resulting __Properties__ dialog, select __Android__ from the navigation pane.
+
+* For the project build target, select the highest Android API level you have installed.
+
+* Click __OK__.
+
+* Select __Clean__ from the __Project__ menu. This should correct all the errors in the project.
+
+## Deploy to Emulator
+
+You can use the `cordova` utility to run an app in an emulator, or you
+can run it within the SDK.  Either way, the SDK must first be
+configured to display at least one device. To do so, use the Android
+SDK Manager, a Java application that runs separately from Eclipse.
+There are two ways to open it:
+
+* Run `android` on the command line.
+
+* From within Eclipse, press this toolbar icon:
+
+  ![](img/guide/platforms/android/eclipse_android_sdk_button.png)
+
+Once open, the Android SDK Manager displays various runtime libraries:
+
+![](img/guide/platforms/android/asdk_window.png)
+
+Choose __Tools &rarr; Manage AVDs__ (Android Virtual Devices), then
+choose any item from __Device Definitions__ in the resulting dialog
+box:
+
+![](img/guide/platforms/android/asdk_device.png)
+
+Press __Create AVD__, optionally modifying the name, then press __OK__
+to accept the changes:
+
+![](img/guide/platforms/android/asdk_newAVD.png)
+
+The AVD then appears in the __Android Virtual Devices__ list:
+
+![](img/guide/platforms/android/asdk_avds.png)
+
+To open the emulator as a separate application, select the AVD and
+press __Start__. It launches much as it would on the device, with
+additional controls available for hardware buttons:
+
+![](img/guide/platforms/android/asdk_emulator.png)
+
+At this point you can use the `cordova` utility to deploy the
+application to the emulator from the command line:
+
+        $ cordova emulate android
+
+If instead you work within Eclipse, right-click the project and
+choose __Run As &rarr; Android Application__. You may be asked to
+specify an AVD if none are already open.
+
+For a faster experience, you can use the `Virtual Machine Acceleration` to improve 
+the execution speed.
+Many modern CPUs provide extensions to execute Virtual Machines more efficiently.
+Before attempting to use this type of acceleration, you need to determine if your 
+current development system's CPU, supports one the following virtualization technologies:
+
+* __Intel Virtualization Technology__ (VT-x, vmx) &rarr; [Intel VT-x supported processor list](http://ark.intel.com/products/virtualizationtechnology)
+* __AMD Virtualization__ (AMD-V, SVM), only supported for Linux (Since May 2006, all CPUs AMD include AMD-V, except Sempron).
+
+Another way to find out if your Intel processor supports VT-x Technology, it's by executing the 
+`Intel Processor Identification Utility`, for `Windows`you can download it from the Intel [Download Center](https://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=1881&DwnldID=7838),
+or you can use the [booteable utility](https://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=1881&DwnldID=7840&lang=eng), which is `OS Independent`.
+
+After install and execute the `Intel Processor Identification Utility` over Windows, you will get the following window, 
+in order to check if your CPU supports the Virtualization Technologies:
+
+![](img/guide/platforms/android/intel_pid_util_620px.png)
+
+In order to speed up the emulator, you need to download and install one or more `Intel x86 Atom` System Images, 
+as well as the `Intel Hardware Accelerated Execution Manager (HAXM)`.
+
+Open your Android SDK Manager, and select the `Intel x86 Atom` System Image, for whichever version that you want to test. Then go to `Extras` 
+and select `Intel x86 Emulator Accelerator (HAXM)`, and install those packages:
+
+![](img/guide/platforms/android/asdk_man_intel_image_haxm.png)
+
+After download, run the Intel installer, which is available within your
+Android SDK at `extras/intel/Hardware_Accelerated_Execution_Manager`. 
+__Note__:`If you have any problems installing the package, you can find more information and step by step guidance check this` 
+[Intel Article](http://software.intel.com/en-us/android/articles/speeding-up-the-android-emulator-on-intel-architecture).
+
+Once installed, in order to test it, create new a AVD  with the `CPU/ABI` set to an `Intel (Atom) x86`  Image:
+
+![](img/guide/platforms/android/asdk_new_and_dev_intel.png)
+
+If you are using `Linux-based system`, follow the instructions in the [Android Developer Site](http://developer.android.com/tools/devices/emulator.html#vm-linux).
+
+When starting the emulator, ensure there are no error messages indicating a failure to load HAXM modules.
+
+## Deploy to Device
+
+To push an app directly to the device, make sure USB debugging is
+enabled on your device as described on the
+[Android Developer Site](http://developer.android.com/tools/device.html),
+and use a mini USB cable to plug it into your system.
+
+You can push the app to the device from the command line:
+
+        $ cordova run android
+
+Alternately within Eclipse, right-click the project and choose __Run
+As &rarr; Android Application__.
diff --git a/docs/en/3.4.0/guide/platforms/android/plugin.md b/docs/en/3.4.0/guide/platforms/android/plugin.md
new file mode 100644
index 0000000..55e0fe1
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/plugin.md
@@ -0,0 +1,240 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# Android Plugins
+
+This section provides details for how to implement native plugin code
+on the Android platform. Before reading this, see Application Plugins
+for an overview of the plugin's structure and its common JavaScript
+interface. This section continues to demonstrate the sample _echo_
+plugin that communicates from the Cordova webview to the native
+platform and back.  For another sample, see also the comments in
+[CordovaPlugin.java](https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaPlugin.java).
+
+Android plugins are based on Cordova-Android, which consists of an
+Android WebView with hooks attached to it.  Plugins are represented as
+class mappings in the `config.xml` file.  A plugin consists of at
+least one Java class that extends the `CordovaPlugin` class,
+overriding one of its `execute` methods. As best practice, the plugin
+should also handle `pause` and `resume` events, along with any message
+passing between plugins.  Plugins with long-running requests,
+background activity such as media playback, listeners, or internal
+state should implement the `onReset()` method as well. It executes
+when the `WebView` navigates to a new page or refreshes, which reloads
+the JavaScript.
+
+## Plugin Class Mapping
+
+The plugin's JavaScript interface uses the `cordova.exec` method as
+follows:
+
+        exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This marshals a request from the WebView to the Android native side,
+effectively calling the `action` method on the `service` class, with
+additional arguments passed in the `args` array.
+
+Whether you distribute a plugin as Java file or as a _jar_ file of its
+own, the plugin must be specified in your Cordova-Android
+application's `res/xml/config.xml` file. See Application Plugins for
+more information on how to use the `plugin.xml` file to inject this
+`feature` element:
+
+        <feature name="<service_name>">
+            <param name="android-package" value="<full_name_including_namespace>" />
+        </feature>
+
+The service name matches the one used in the JavaScript `exec` call.
+The value is the Java class's fully qualified namespace identifier.
+Otherwise, the plugin may compile but still be unavailable to Cordova.
+
+## Plugin Initialization and Lifetime
+
+One instance of a plugin object is created for the life of each
+`WebView`. Plugins are not instantiated until they are first
+referenced by a call from JavaScript, unless `<param>` with an `onload`
+`name` attribute is set to `"true"` in `config.xml`. E.g.:
+
+    <feature name="Echo">
+        <param name="android-package" value="<full_name_including_namespace>" />
+        <param name="onload" value="true" />
+    </feature>
+
+Plugins should use the `initialize` method for their start-up logic.
+
+    @override
+    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
+        super.initialize(cordova, webView);
+        // your init code here
+    }
+
+## Writing an Android Java Plugin
+
+A JavaScript call fires off a plugin request to the native side, and
+the corresponding Java plugin is mapped properly in the `config.xml`
+file, but what does the final Android Java Plugin class look like?
+Whatever is dispatched to the plugin with JavaScript's `exec` function
+is passed into the plugin class's `execute` method. Most `execute`
+implementations look like this:
+
+        @Override
+        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                this.beep(args.getLong(0));
+                callbackContext.success();
+                return true;
+            }
+            return false;  // Returning false results in a "MethodNotFound" error.
+        }
+
+The JavaScript `exec` function's `action` parameter corresponds to a
+private class method to dispatch with optional parameters.
+
+When catching exceptions and returning errors, it's important for the
+sake of clarity that errors returned to JavaScript match Java's
+exception names as much as possible.
+
+## Threading
+
+The plugin's JavaScript does _not_ run in the main thread of the
+`WebView` interface; instead, it runs on the `WebCore` thread, as
+does the `execute` method.  If you need to interact with the user
+interface, you should use the following variation:
+
+        @Override
+        public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                final long duration = args.getLong(0);
+                cordova.getActivity().runOnUiThread(new Runnable() {
+                    public void run() {
+                        ...
+                        callbackContext.success(); // Thread-safe.
+                    }
+                });
+                return true;
+            }
+            return false;
+        }
+
+Use the following if you do not need to run on the main interface's
+thread, but do not want to block the `WebCore` thread either:
+
+        @Override
+        public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+            if ("beep".equals(action)) {
+                final long duration = args.getLong(0);
+                cordova.getThreadPool().execute(new Runnable() {
+                    public void run() {
+                        ...
+                        callbackContext.success(); // Thread-safe.
+                    }
+                });
+                return true;
+            }
+            return false;
+        }
+
+## Echo Android Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+        <platform name="android">
+            <config-file target="config.xml" parent="/*">
+                <feature name="Echo">
+                    <param name="android-package" value="org.apache.cordova.plugin.Echo"/>
+                </feature>
+            </config-file>
+        </platform>
+
+Then add the following to the
+`src/org/apache/cordova/plugin/Echo.java` file:
+
+        package org.apache.cordova.plugin;
+
+        import org.apache.cordova.CordovaPlugin;
+        import org.apache.cordova.CallbackContext;
+
+        import org.json.JSONArray;
+        import org.json.JSONException;
+        import org.json.JSONObject;
+
+        /**
+         * This class echoes a string called from JavaScript.
+         */
+        public class Echo extends CordovaPlugin {
+
+            @Override
+            public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+                if (action.equals("echo")) {
+                    String message = args.getString(0);
+                    this.echo(message, callbackContext);
+                    return true;
+                }
+                return false;
+            }
+
+            private void echo(String message, CallbackContext callbackContext) {
+                if (message != null && message.length() > 0) {
+                    callbackContext.success(message);
+                } else {
+                    callbackContext.error("Expected one non-empty string argument.");
+                }
+            }
+        }
+
+The necessary imports at the top of the file extends the class from
+`CordovaPlugin`, whose `execute()` method it overrides to receive
+messages from `exec()`.  The `execute()` method first tests the value
+of `action`, for which in this case there is only one valid `echo`
+value.  Any other action returns `false` and results in an
+`INVALID_ACTION` error, which translates to an error callback invoked
+on the JavaScript side.
+
+Next, the method retrieves the echo string using the `args` object's
+`getString` method, specifying the first parameter passed to the
+method.  After the value is passed to a private `echo` method, it is
+parameter-checked to make sure it is not `null` or an empty string, in
+which case `callbackContext.error()` invokes JavaScript's error
+callback.  If the various checks pass, the `callbackContext.success()`
+passes the original `message` string back to JavaScript's success
+callback as a parameter.
+
+## Android Integration
+
+Android features an `Intent` system that allows processes to
+communicate with each other.  Plugins have access to a
+`CordovaInterface` object, which can access the Android `Activity`
+that runs the application.  This is the `Context` required to launch a
+new Android `Intent`.  The `CordovaInterface` allows plugins to start
+an `Activity` for a result, and to set the callback plugin for when
+the `Intent` returns to the application.
+
+As of Cordova 2.0, Plugins can no longer directly access the
+`Context`, and the legacy `ctx` member is deprecated. All `ctx`
+methods exist on the `Context`, so both `getContext()` and
+`getActivity()` can return the required object.
+
+## Debugging Android Plugins
+
+Eclipse allows you to debug plugins as Java source included in the
+project.  Only the latest version of the Android Developer Tools
+allows you to attach source code to _JAR_ dependencies, so this
+feature is not yet fully supported.
diff --git a/docs/en/3.4.0/guide/platforms/android/tools.md b/docs/en/3.4.0/guide/platforms/android/tools.md
new file mode 100644
index 0000000..e624089
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/tools.md
@@ -0,0 +1,85 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android Command-line Tools
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for an overview.
+
+## Create a Project
+
+Run the `create` command, specifying the existing path to the project,
+the reverse-domain-style package identifier, and the app's display
+name.  Here is the syntax for both Mac and Windows:
+
+    $ /path/to/cordova-android/bin/create /path/to/project com.example.project_name ProjectName
+    $ C:\path\to\cordova-android\bin\create.bat C:\path\to\project com.example.project_name ProjectName
+
+## Build
+
+This cleans then builds a project.
+
+Debug, on Mac or Windows:
+
+    $ /path/to/project/cordova/build --debug
+    $ C:\path\to\project\cordova\build.bat --debug
+
+Release, on Mac or Windows:
+
+    $ /path/to/project/cordova/build --release
+    $ C:\path\to\project\cordova\build.bat --release
+
+## Run the App
+
+The `run` command accepts the following _optional_ parameters:
+
+* Target specification. This includes `--emulator`, `--device`, or `--target=<targetID>`.
+
+* Build specification. This includes `--debug`, `--release`, or `--nobuild`.
+
+    $ /path/to/project/cordova/run [Target] [Build]
+    $ C:\path\to\project\cordova\run.bat [Target] [Build]
+
+Make sure you create at least one Android Virtual Device, otherwise
+you're prompted to do so with the `android` command.  If more than one
+AVD is available as a target, you're prompted to select one. By
+default the `run` command detects a connected device, or a currently
+running emulator if no device is found.
+
+## Logging
+
+    $ /path/to/project/cordova/log
+    $ C:\path\to\project\cordova\log.bat
+
+### Cleaning
+
+    $ /path/to/project/cordova/clean
+    $ C:\path\to\project\cordova\clean.bat
diff --git a/docs/en/3.4.0/guide/platforms/android/upgrading.md b/docs/en/3.4.0/guide/platforms/android/upgrading.md
new file mode 100644
index 0000000..2509ba3
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/upgrading.md
@@ -0,0 +1,454 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Android
+
+This guide shows how to modify Android projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrading to 3.3.0 from 3.2.0
+
+Follow the same instructions as for `3.2.0`.
+
+Starting with 3.3.0, the Cordova runtime is now compiled as an Android Library
+instead of a Jar. This should have no effect for command-line usage, but IDE
+users will need to import the newly added `MyProject-CordovaLib` project into
+their workspace.
+
+## Upgrading to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+
+**WARNING:**  Starting on Android 4.4, creating a file input element with type="file" will not open the file picker dialog.
+This is a regression with Chromium on Android and the problem can be reproduced in the standalone Chrome browser on Android (see http://code.google.com/p/android/issues/detail?id=62220)  The suggested workaround is to use the FileTransfer and File plugins for Android 4.4. You can listen for an onClick event from the input type="file" and then pop up a file picker UI. In order to tie the form data with the upload, you can use JavaScript to attach form values to the multi-part POST request that FileTransfer makes. This bug still exists as of Android 4.4.2
+
+
+## Upgrading to 3.1.0 from 3.0.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update android`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+        
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms the cordova project, for example: `cordova
+   platform add android`.
+
+3. Copy the contents of your project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy any native assets from your old project into the appropriate
+   directories under `platforms/android`: this directory is where your
+   native cordova-android project exists.
+
+5. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+## Upgrade to 3.0.0 from 2.9.0
+
+1. Create a new Apache Cordova Android project.
+
+2. Copy the contents of your `www` directory to the new project.
+
+3. Copy any native Android assets from your `res` directory to the new project.
+
+4. Copy over any plugins you installed from the `src` subdirectories into the new project.
+
+5. Make sure to upgrade any deprecated `<plugin>` references from your old `config.xml` file to the new `<feature>` specification.
+
+6. Update any references to the `org.apache.cordova.api` package to be `org.apache.cordova`.
+
+   __NOTE__: all core APIs have been removed and must be installed as plugins. Please see the Using Plugman to Manage Plugins Guide for details.
+
+## Upgrade to 2.9.0 from 2.8.0
+
+1. Run `bin/update <project_path>`.
+
+## Upgrade to 2.8.0 from 2.7.0
+
+1. Remove `cordova-2.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+<!-- SS Eclipse -->
+
+4. Copy the new `cordova.js` into your project.
+
+5. Update your HTML to use the new `cordova.js` file.
+
+6. Copy the `res/xml/config.xml` file to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.7.0 from 2.6.0
+
+1. Remove `cordova-2.6.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.7.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.7.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.7.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.6.0 from 2.5.0
+
+1. Remove `cordova-2.5.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.6.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+Run `bin/update <project>` with the project path listed in the Cordova Source directory.
+
+## Upgrade to 2.5.0 from 2.4.0
+
+1. Remove `cordova-2.4.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.5.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Update `framework/res/xml/config.xml` to have similar settings as it did previously.
+
+8. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.4.0 from 2.3.0
+
+1. Remove `cordova-2.3.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.4.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.4.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.3.0 from 2.2.0
+
+1. Remove `cordova-2.2.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.3.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.3.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.2.0 from 2.1.0
+
+1. Remove `cordova-2.1.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.2.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.2.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.1.0 from 2.0.0
+
+1. Remove `cordova-2.0.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.1.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.1.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+7. Copy files from `bin/templates/cordova` to the project's `cordova` directory.
+
+## Upgrade to 2.0.0 from 1.9.0
+
+1. Remove `cordova-1.9.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-2.0.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-2.0.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+6. Copy the `res/xml/config.xml` to match `framework/res/xml/config.xml`.
+
+In the 2.0.0 release, the `config.xml` file combines and replaces
+`cordova.xml` and `plugins.xml`.  The old files are deprecated, and
+while they still work in 2.0.0, will stop working in a future release.
+
+## Upgrade to 1.9.0 from 1.8.1
+
+1. Remove `cordova-1.8.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.9.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.9.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.9.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+Due to the introduction of the `CordovaWebView` in the 1.9.0 release,
+third-party plugins may not work.  These plugins need to get a context
+from the `CordovaInterface` using `getContext()` or `getActivity()`.
+If you are not an experienced Android developer, please contact the
+plugin maintainer and add this task to their bug tracker.
+
+## Upgrade to 1.8.0 from 1.8.0
+
+1. Remove `cordova-1.8.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.1.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.1.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.1.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.8.0 from 1.7.0
+
+1. Remove `cordova-1.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.8.0 from 1.7.0
+
+1. Remove `cordova-1.7.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.8.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.7.0 from 1.6.1
+
+1. Remove `cordova-1.6.1.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.7.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.7.0.js` into your project.
+
+5. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.6.1 from 1.6.0
+
+1. Remove `cordova-1.6.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.6.1.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.6.1.js` into your project.
+
+5. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.6.0 from 1.5.0
+
+1. Remove `cordova-1.5.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.6.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.6.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Replace `res/xml/phonegap.xml` with `res/xml/cordova.xml` to match `framework/res/xml/cordova.xml`.
+
+## Upgrade to 1.5.0 from 1.4.0
+
+1. Remove `phonegap-1.4.0.jar` from the project's `libs` directory.
+
+2. Add `cordova-1.5.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `cordova-1.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-1.5.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Replace `res/xml/phonegap.xml` with `res/xml/cordova.xml` to match `framework/res/xml/cordova.xml`.
+
+## Upgrade to 1.4.0 from 1.3.0
+
+1. Remove `phonegap-1.3.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.4.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.4.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.4.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.3.0 from 1.2.0
+
+1. Remove `phonegap-1.2.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.3.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.3.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.2.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.2.0 from 1.1.0
+
+1. Remove `phonegap-1.1.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.2.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.2.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.2.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+7. Update `res/xml/phonegap.xml` to match `framework/res/xml/phonegap.xml`.
+
+## Upgrade to 1.1.0 from 1.0.0
+
+1. Remove `phonegap-1.0.0.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.1.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.1.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.1.0.js` file.
+
+6. Update `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
+## Upgrade to 1.0.0 from 0.9.6
+
+1. Remove `phonegap-0.9.6.jar` from the project's `libs` directory.
+
+2. Add `phonegap-1.0.0.jar` to the project's `libs` directory.
+
+3. If you use Eclipse, please refresh your Eclipse project and do a clean.
+
+4. Copy the new `phonegap-1.0.0.js` into your project.
+
+5. Update your HTML to use the new `phonegap-1.0.0.js` file.
+
+6. Add the `res/xml/plugins.xml` to match `framework/res/xml/plugins.xml`.
+
diff --git a/docs/en/3.4.0/guide/platforms/android/webview.md b/docs/en/3.4.0/guide/platforms/android/webview.md
new file mode 100644
index 0000000..bb3a713
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/android/webview.md
@@ -0,0 +1,131 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Android WebViews
+
+This section shows how to embed a Cordova-enabled WebView component
+within a larger Android application. For details on how these
+components can communicate with each other, see Application Plugins.
+
+If you're unfamiliar with Android, you should first familiarize
+yourself with the Android Platform Guide and have the latest Android
+SDK installed before you attempt the more unusual development option
+of embedding a WebView.  Starting with Cordova 1.9, the Android
+platform relies on a `CordovaWebView` component, which builds on a
+legacy `CordovaActivity` component that pre-dates the 1.9 release.
+
+1. To follow these instructions, make sure you have the latest Cordova
+   distribution. Download it from
+   [cordova.apache.org](http://cordova.apache.org) and unzip its
+   Android package.
+
+1. Navigate to the Android package's `/framework` directory and run
+   `ant jar`. It creates the Cordova `.jar` file, formed as
+   `/framework/cordova-3.4.0.jar`.
+
+1. Copy the `.jar` file into the Android project's `/libs` directory.
+
+1. Add the following to the application's `/res/xml/main.xml` file,
+   with the `layout_height`, `layout_width` and `id` modified to suit
+   the application:
+
+        <org.apache.cordova.CordovaWebView
+            android:id="@+id/tutorialView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+1. Modify the activity so that it implements the `CordovaInterface`.
+   It should implement the included methods.  You may wish to copy
+   them from `/framework/src/org/apache/cordova/CordovaActivity.java`,
+   or else implement them on your own.  The following code fragment
+   shows a basic application that relies on the interface. Note how
+   the referenced view id matches the `id` attribute specified in the
+   XML fragment shown above:
+
+        public class CordovaViewTestActivity extends Activity implements CordovaInterface {
+            CordovaWebView cwv;
+            /* Called when the activity is first created. */
+            @Override
+            public void onCreate(Bundle savedInstanceState) {
+                super.onCreate(savedInstanceState);
+                setContentView(R.layout.main);
+                cwv = (CordovaWebView) findViewById(R.id.tutorialView);
+                Config.init(this);
+                cwv.loadUrl(Config.getStartUrl());
+            }
+
+1. If the application needs to use the camera, implement the
+   following:
+
+        @Override
+        public void setActivityResultCallback(CordovaPlugin plugin) {
+            this.activityResultCallback = plugin;
+        }
+        /**
+         * Launch an activity for which you would like a result when it finished. When this activity exits,
+         * your onActivityResult() method is called.
+         *
+         * @param command           The command object
+         * @param intent            The intent to start
+         * @param requestCode       The request code that is passed to callback to identify the activity
+         */
+        public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
+            this.activityResultCallback = command;
+            this.activityResultKeepRunning = this.keepRunning;
+            
+            // If multitasking turned on, then disable it for activities that return results
+            if (command != null) {
+                this.keepRunning = false;
+            }
+        
+            // Start activity
+            super.startActivityForResult(intent, requestCode);
+        }   
+    
+        @Override
+        /**
+         * Called when an activity you launched exits, giving you the requestCode you started it with,
+         * the resultCode it returned, and any additional data from it.
+         *
+         * @param requestCode       The request code originally supplied to startActivityForResult(),
+         *                          allowing you to identify who this result came from.
+         * @param resultCode        The integer result code returned by the child activity through its setResult().
+         * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
+         */
+        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+            super.onActivityResult(requestCode, resultCode, intent);
+            CordovaPlugin callback = this.activityResultCallback;
+            if (callback != null) {
+                callback.onActivityResult(requestCode, resultCode, intent);
+            }
+        }
+
+1. Finally, remember to add the thread pool, otherwise plugins
+   have no threads on which to run:
+
+        @Override
+        public ExecutorService getThreadPool() {
+            return threadPool;
+        }
+
+1. Copy the application's HTML and JavaScript files to the Android
+   project's `/assets/www` directory.
+
+1. Copy the `config.xml` file from `/framework/res/xml` to the
+   project's `/res/xml` directory.
diff --git a/docs/en/3.4.0/guide/platforms/blackberry10/config.md b/docs/en/3.4.0/guide/platforms/blackberry10/config.md
new file mode 100644
index 0000000..0749eb6
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/blackberry10/config.md
@@ -0,0 +1,51 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to BlackBerry 10 builds. See The
+config.xml File for information on global configuration options.
+
+- `ChildBrowser` (`disable` or the default `enable`): Disables child
+  browser windows. By default, apps launch a secondary browser window
+  to display resources accessed via `window.open()` or by specifying a
+  `_blank` anchor target. Specify `disable` to override this default
+  behavior.
+
+        <preference name="ChildBrowser" value="disable"/>
+
+- `PopupBlocker` (`enable` or the default `disable`): Enables the
+  popup blocker, which prevents calls to `window.open()`. By default,
+  popups display in a child browser window. Setting the preference to
+  `enable` prevents it from displaying at all.
+
+        <preference name="PopupBlocker" value="enable"/>
+
+- `WebSecurity` (`disable` or the default `enable`): Set to `disable`
+  to override web security settings, allowing access to remote content
+  from unknown sources. This preference is intended as a development
+  convenience only, so remove it before packaging your app for
+  distribution.  For the released app, all URIs should be known and
+  whitelisted using the `<access>` element, described in the Domain
+  Whitelist Guide.
+
+        <preference name="WebSecurity" value="disable"/>
+
diff --git a/docs/en/3.4.0/guide/platforms/blackberry10/index.md b/docs/en/3.4.0/guide/platforms/blackberry10/index.md
new file mode 100644
index 0000000..5e6bed7
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/blackberry10/index.md
@@ -0,0 +1,199 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Platform Guide
+
+This guide shows how to set up your development environment to build
+and deploy Cordova apps for BlackBerry 10 devices.  For previous
+versions of BlackBerry, you need to use a different set of
+command-line tools, described in BlackBerry Platform Guide.
+
+## Requirements
+
+The development environment is available on Windows, Mac and Linux.
+
+Developers should use the `cordova` utility in conjunction with the
+Blackberry Native SDK.  See The Command-Line Interface for information
+how to install `cordova`, add projects, then build and deploy for each
+platform.
+
+Blackberry 10 Device Simulator:
+
+	* `Processor:`Intel dual core 2.0 GHz/AMD Athlon 4200+ or higher
+	* `Disk space: 10 GB`
+	* `RAM Memory: 4 GB`
+	* `Virtualization:
+		* __Intel Virtualization Technology__ (VT, VT-x, vmx) &rarr; [Intel VT-x supported processor list](http://ark.intel.com/products/virtualizationtechnology)
+		* __AMD Virtualization__ (AMD-V, SVM) (Since May 2006, all CPUs AMD include AMD-V, except Sempron).
+	
+More information about requirements: [BB10 Simulator requeriments](http://developer.blackberry.com/devzone/develop/simulator/simulator_systemrequirements.html).
+
+## Install the BlackBerry Native SDK
+
+In order to get the BlackBerry Native SDK, download and install the IDE for Blackberry available from
+[developer.blackberry.com](http://developer.blackberry.com/native/download/), then using the IDE, install the Blackberry Native SDK.
+Following installation, you need to add its command-line tools to your
+system path.
+
+On Windows:
+
+* Go to __My Computer &rarr; Properties &rarr; Advanced &rarr; Environment Variables__.
+
+* Append the Native SDK's install directory to the PATH, for example:
+
+    ;C:\bbndk\host_10_2_0_132\darwin\x86\usr\bin\
+
+On Mac and Linux:
+
+* Edit the `~/.bash_profile` file, adding a line such as the
+  following, depending on where the Native SDK was installed:
+
+    $ export PATH=${PATH}:/Applications/Momentics.app/host_10_2_0_15/darwin/x86/usr/bin/
+
+* Run the following to apply the change in the current session:
+
+    $ source ~/.bash_profile
+
+If you got any environmental problem, using the Native SDK from the command line, execute the appropriate file for your platform, located within the installation path:
+
+	* On Windows:
+		$ `\bbndk\bbndk-env_xx_xx_xx_xxxx.bat`
+
+	* On Linux &rarr; Installed as root user:
+		$ `./opt/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+		
+	* On Linux &rarr; Installed as non-root user:
+		$ `./home/username/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+	
+	* On Mac:
+		$ `/Developer/SDKs/bbndk/bbndk-env_xx_xx_xx_xxxx.sh`
+
+	
+## Set up for Signing
+
+If you wish to test on a device or distribute apps through BlackBerry
+World, your system must be setup for code signing.
+
+To obtain a signing key, go to the [BlackBerry Keys Order Form] (https://www.blackberry.com/SignedKeys/codesigning.html).
+
+Select the first checkbox: "for BlackBerry10 apps developed using BlackBerry
+NDK" and then sign in or create a BBID.
+
+Enter a password and click "Get Token" to download bbidtoken.csk. Save this
+file to the default location for your OS which will be displayed on the
+download page.
+
+The final step is to generate a signing certificate:
+
+    $ blackberry-keytool -genkeypair -storepass <password> -author 'Your Name’
+
+## Create a Project
+
+Use the `cordova` utility to set up a new project, as described in The
+Command-Line Interface. For example, in a source-code directory:
+
+    $ cordova create hello com.example.hello
+    $ cd hello
+    $ cordova platform add blackberry10
+    $ cordova build
+
+## Deploy to Emulator
+
+If you wish to run a device emulator, download and install the
+BlackBerry 10 Simulator.
+
+* [Download](http://developer.blackberry.com/native/download/)
+* [Getting Started](http://developer.blackberry.com/devzone/develop/simulator/blackberry_10_simulator_start.html)
+
+Before testing an app on either an emulator or a device, you need to
+enable development mode.
+
+Launch the emulator image, then choose __Settings__ from the home screen:
+
+![](img/guide/platforms/blackberry10/bb_home.png)
+
+Navigate to the __Security and Privacy &rarr; Development Mode__
+section and enable the option:
+
+![](img/guide/platforms/blackberry10/bb_devel.png)
+
+Then, run the `emulate` command to view the app:
+
+    $ cordova emulate blackberry10 --devicepass <password>
+
+## Deploy to Device
+
+To deploy to a device, make sure it is plugged into your computer and
+development mode is enabled.
+
+Then, run the `run` command to view the app:
+
+    $ cordova run blackberry10 --devicepass <password>
+
+If a debug token is not yet set up for the device, an error message
+prompts you to provide the password you defined when configuring your
+computer to sign applications.
+
+    $ cordova run blackberry10 --devicepass <password> --keystorepass <signing password>
+
+## Debugging with WebInspector
+
+When debugging on the device or an emulator, you may run WebInspector
+remotely to view the application's internal state.  A prompt displays
+the URL that allows you to connect to your app with a standard web
+browser.  For more information, see
+[Debugging using WebInspector](http://developer.blackberry.com/html5/documentation/web_inspector_overview_1553586_11.html).
+
+## Building a Release Version
+
+By default, running the `cordova build` command creates an unsigned
+_.bar_ package file suitable for testing on a device or simulator.
+
+Use `--release` to create a release version suitable for distribution
+through BlackBerry World.
+
+    $ cordova build --release --keystorepass <signing password>
+
+The `--keystorepass` option specifies the password you defined when
+configuring your computer to sign applications.
+
+
+## Deploy to Other Locations
+
+The instructions above assume a device is plugged in via USB or a
+simulator is running on the local machine. It is also possible to
+deploy to other locations.
+
+An additional set of command-line utilities are included when you set
+up the BlackBerry 10 platform for your project.  The following
+command, in this case invoked from the project top-level directory,
+associates a target named _emu_ with an IP address.
+
+* On Windows:
+
+    $ platforms\blackberry10\cordova\target.bat add emu 192.168.2.24 -t simulator
+
+* On Mac/Linux:
+
+    $ platforms/blackberry10/cordova/target add emu 192.168.2.24 -t simulator
+
+Once the target is defined, you can provide it to the run command using
+`--target`:
+
+    $ cordova run blackberry10 --target=emu
diff --git a/docs/en/3.4.0/guide/platforms/blackberry10/plugin.md b/docs/en/3.4.0/guide/platforms/blackberry10/plugin.md
new file mode 100644
index 0000000..8dd06be
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/blackberry10/plugin.md
@@ -0,0 +1,255 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Plugins
+
+This section provides details for how to implement native plugin code
+on the BlackBerry 10 platform. Before reading this, see Application
+Plugins for an overview of the plugin's structure and its common
+JavaScript interface. This section continues to demonstrate the sample
+_echo_ plugin that communicates from the Cordova webview to the native
+platform and back.
+
+The Echo plugin basically returns whatever string the `window.echo`
+function sends from JavaScript:
+
+        window.echo = function(str, callback) {
+            cordova.exec(callback, function(err) {
+                callback('Nothing to echo.');
+            }, "Echo", "echo", [str]);
+        };
+
+A Cordova plugin for BlackBerry 10 contains both JavaScript and native
+code, which communicate with each other through a framework provided
+by JNEXT. Every plugin must also include a `plugin.xml` file.
+
+## Creating the Native Class
+
+To create the native portion of your plugin, open the BlackBerry 10
+NDK IDE and select __File &rarr; New &rarr; BlackBerry Project &rarr;
+Native Extension &rarr; BlackBerry 10__. Enter the desired
+project name and location, then press __Finish__.
+
+The project created by the IDE contains sample code for a memory
+plugin. You may replace or modify these files to implement your own
+functionality:
+
+- `*name*_js.hpp`: C++ header for the JNEXT code.
+
+- `*name*_js.cpp`: C++ code for JNEXT.
+
+The native interface for the JNEXT extension can be viewed in the
+plugin header file located in the project's public directory. It also
+features constants and utility functions available from within native
+code. The plugin must be derived from `JSExt`, which is defined in
+`plugin.h`. That is, you must implement the following class:
+
+        class JSExt
+        {
+        public:
+            virtual ~JSExt() {};
+            virtual string InvokeMethod( const string& strCommand ) = 0;
+            virtual bool CanDelete( void ) = 0;
+        private:
+            std::string m_id;
+        };
+
+The extension should include the `plugin.h` header file. In the `Echo`
+example, you use `JSExt` as follows in the `echo_js.hpp` file:
+
+        #include "../public/plugin.h"
+        #include <string>
+
+        #ifndef ECHO_JS_H_
+        #define ECHO_JS_H_
+
+        class Echo : public JSExt
+        {
+        public:
+            explicit Echo(const std::string& id);
+            virtual ~Echo();
+            virtual std::string InvokeMethod(const std::string& command);
+            virtual bool CanDelete();
+        private:
+            std::string m_id;
+        };
+
+        #endif // ECHO_JS_H_
+
+The `m_id` attribute contains the `JNEXT` id for the object, which is
+passed to the class as an argument to the constructor. It is needed
+for the native side to trigger events on the JavaScript side.  The
+`CanDelete` method determines whether the native object can be
+deleted.  The `InvokeMethod` function is called as a result from a
+request from JavaScript to invoke a method of this particular
+object. The only argument to this function is a string passed from
+JavaScript that this method parses to determine which of the native
+object's methods should execute.  These methods are implemented in
+`echo_js.cpp`. Here is the `InvokeMethod` function for the `Echo`
+example:
+
+        string Echo::InvokeMethod(const string& command) {
+
+            //parse command and args from string
+            int index = command.find_first_of(" ");
+            string strCommand = command.substr(0, index);
+            string strValue = command.substr(index + 1, command.length());
+
+            // Determine which function should be executed
+            if (strCommand == "echo") {
+                return strValue;
+            } else {
+                return "Unsupported Method";
+            }
+        }
+
+The native plugin must also implement the following callback
+functions:
+
+- `extern char* onGetObjList( void );`
+
+- `extern JSExt* onCreateObject( const string& strClassName, const string& strObjId );`
+
+The `onGetObjList` function returns a comma-separated list of classes
+supported by JNEXT. JNEXT uses this function to determine the set of
+classes that JNEXT can instantiate. The `Echo` plugin implements the
+following in `echo_js.cpp`:
+
+        char* onGetObjList() {
+            static char name[] = "Echo";
+            return name;
+        }
+
+The `onCreateObject ` function takes two parameters. The first is the
+name of the requested class to be created from the JavaScript side,
+with valid names as those returned in `onGetObjList`. The second
+parameter is the class's unique object id. This method returns a
+pointer to the created plugin object. The `Echo` plugin implements the
+following in `echo_js.cpp`:
+
+        JSExt* onCreateObject(const string& className, const string& id) {
+            if (className == "Echo") {
+                return new Echo(id);
+            }
+            return NULL;
+        }
+
+## Creating the Plugin's JavaScript
+
+The plugin must contain the following JavaScript files:
+
+- `client.js`: This is considered the client side and contains the API
+  available to a Cordova application. The API in `client.js` calls
+  makes calls to `index.js`. The API in `client.js` also connects
+  callback functions to the events that fire the callbacks.
+
+- `index.js`: Cordova loads `index.js` and makes it accessible through
+  the cordova.exec bridge. The `client.js` file makes calls to the API
+  in the `index.js` file, which in turn makes call to JNEXT to
+  communicate with the native side.
+
+The client and server side (`client.js` and `index.js`) interacts
+through the `Cordova.exec` function. The `client.js` needs to invoke
+the `exec` function and provide the necessary arguments. The `Echo`
+plugin implements the following in the `client.js` file:
+
+        var service = "org.apache.cordova.blackberry.echo",
+            exec = cordova.require("cordova/exec");
+
+        module.exports = {
+            echo: function (data, success, fail) {
+                exec(success, fail, service, "echo", { data: data });
+            }
+        };
+
+The `index.js` component uses JNEXT to interact with the native
+side. Attaching a constructor function named `Echo` to JNEXT allows
+you to perform the following key operations using the `init` function:
+
+- Specify the required module exported by the native side. The name of
+  the required module must match the name of a shared library file
+  (`.so` file):
+
+        JNEXT.require("libecho")
+
+- Create an object by using an acquired module and save the ID that's
+  returned by the call:
+
+        self.m_id = JNEXT.createObject("libecho.Echo");
+
+  When the application calls the `echo` function in `client.js`, that
+  call in turn calls the `echo` function in `index.js`, where the
+  `PluginResult` object sends data as a response back to `client.js`.
+  Since the `args` argument passed into the functions was converted by
+  `JSON.stringfy()` and encoded as a `URIcomponent`, you must call the
+  following:
+
+        data = JSON.parse(decodeURIComponent(args.data));
+
+You can now send the data back, as in the following:
+
+        module.exports = {
+            echo: function (success, fail, args, env) {
+                var result = new PluginResult(args, env),
+                data = JSON.parse(decodeURIComponent(args.data)),
+                response = echo.getInstance().echo(data);
+                result.ok(response, false);
+            }
+        };
+
+## Plugin Architecture
+
+You can place the plugin's artifacts, including the `plugin.xml` file,
+the JavaScript and C++ source files, and the `.so` binary files within
+any directory structure, as long as you correctly specify the file
+locations in the `plugin.xml` file. Here is a typical structure:
+
+***project_directory*** (>plugin.xml)
+
+- **www** (>client.js)
+- **src**
+  - **blackberry10** (>index.js, **native** >*.cpp, *.hpp)
+  - **device** (>*binary file* *.so)
+  - **simulator** (>*binary file* *.so)
+
+The list shows the hierarchical relationship among the top-level
+folders. The parenthesis shows the contents of a given directory. All
+directory names appear in bold text. File names are preceded by the `>`
+sign.
+
+## The _plugin.xml_ file
+
+The `plugin.xml` file contains the extension's namespace and other
+metadata. Set up the `Echo` plugin as follows:
+
+        <plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
+            id="org.apache.cordova.blackberry.echo"
+            version="1.0.0">
+            <js-module src="www/client.js">
+                <merges target="navigator" />
+            </js-module>
+            <platform name="blackberry10">
+                <source-file src="src/blackberry10/index.js" />
+                <lib-file src="src/blackberry10/native/device/libecho.so" arch="device" />
+                <lib-file src="src/blackberry10/native/simulator/libecho.so" arch="simulator" />
+                <config-file target="www/config.xml" parent="/widget">
+                    <feature name="org.apache.cordova.blackberry.echo" value="org.apache.cordova.blackberry.echo" />
+                </config-file>
+            </platform>
+        </plugin>
diff --git a/docs/en/3.4.0/guide/platforms/blackberry10/tools.md b/docs/en/3.4.0/guide/platforms/blackberry10/tools.md
new file mode 100644
index 0000000..5c364b5
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/blackberry10/tools.md
@@ -0,0 +1,178 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# BlackBerry 10 Command-line Tools
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for an overview.
+
+If you need help with any command listed below, type the command along
+with the `-h` or `-help` arguments, which are supported by all
+commands and which provide descriptions for each of the available
+arguments.
+
+## Create an App
+
+The `create` command creates a new project:
+
+    bin/create <path-to-project> <project-package> <project-name>
+
+where
+
+- `<path-to-project>` specifies the directory you want the project created in
+
+- `<project-package>` specifies a reverse domain style identifier
+
+- `<project-name>` specifies the apps display name
+
+__NOTE__: the `create` command bootstraps dependency installation
+through the `npm install` command. Depending on the installation
+directory and system permissions, this may require administrator
+privileges.  If there's problem on OSX/Linux, run `sudo npm install`
+before using the `create` command. On Windows, run `npm install` in a
+command-line utility opened with administrator privileges.
+
+## Create a Target
+
+The `target` command allows you to manage the emulator or BlackBerry
+devices that you use to test your app. You can add or remove a target,
+or set a target as the default target.
+
+### Add a Target
+
+    <path-to-project>/cordova/target add <name> <ip-address> [-t | --type <device | simulator>] [-p | --password <password>] [--pin <device-pin>]
+
+where
+
+- `<name>` specifies a unique name for the target.
+
+- `<ip-address>` specifies the ip address of the BlackBerry device or
+  simulator.
+
+- `-p | --password <password>` specifies the password for the device or
+  emulator. This is required only if the device or emulator is
+  password protected.
+
+- `--pin <device-pin>` specifies the PIN of the BlackBerry device,
+  which identifies that device as a valid host for the debug
+  token. This argument is required only when creating a debug
+  token.
+
+### Remove a Target
+
+    <path-to-project>/cordova/target remove <name>
+
+### Set a Target as the Default
+
+    <path-to-project>/cordova/target default <name>
+
+## Build the App
+
+The `build` command builds the project as a .bar file. You can build
+your app in either release mode (which produces a signed .bar file) or
+in debug mode (which produces an unsigned .bar file).
+
+### Build the App in Release Mode
+
+    <path-to-project>/cordova/build release [-k | --keystorepass <password>] [-b | --buildId <number>] [-p | --params <params-JSON-file>]
+
+where
+
+-   `-k | --keystorepass <password>`  specifies the password you defined when you configured your computer to sign applications.
+
+-   `-b | --buildId <number>`  specifies the build version number of your application. Typically, this number should be incremented from the previous signed version. This argument is optional.
+
+-   `-p | --params <params-JSON-file>`  specifies a JSON file containing additional parameters to pass to downstream tools. This argument is optional.
+
+### Build the Project in Debug Mode
+
+    <path-to-project>/cordova/build debug [<target>] [-k | --keystorepass <password>] [-p | --params <params-JSON-file>]  [-ll | --loglevel <error|warn|verbose>]
+
+where
+
+- `<target>` specifies the name of a previously added target. If
+  `<target>` is not specified, the default target is used, if one has
+  been created. This argument is only required if you want the script
+  to deploy your app to a BlackBerry device or emulator and you have
+  not created a default target. Additionally, if `<target>` is a
+  device, then that device must be connected to your computer by USB
+  connection or be connected to the same Wi-Fi network as your
+  computer.
+
+- `-k | --keystorepass <password>` specifies the password you defined
+  when you configured your computer to sign applications. This
+  password is also used to create your debug token. This argument is
+  only required if you want the script to create and install the debug
+  token for you.
+
+- `-p | --params <params-JSON-file>` specifies a JSON file containing
+  additional parameters to pass to downstream tools.
+
+- `-ll | --loglevel <level>` specifies the log level. The log level may
+  be one of `error`, `warn`, or `verbose`.
+
+If you have previously defined a default target (and previously
+installed a debug token, if that target is a BlackBerry device), you
+can run the script with no arguments, and the script packages your
+app and deploys it to the default target. For example:
+
+    <path-to-project>/cordova/build debug
+
+## Run the App
+
+The `run` command deploys the app's most recent build on the specified
+BlackBerry device or an emulator. To deploy your app, you need to
+specify a target for the device or emulator:
+
+    <path-to-project>/cordova/run <target>
+
+...where `<target> `specifies the name of a previously added target.
+If `<target>` is a device, then it must be connected to your computer
+via USB cable, or else over the same Wi-Fi network as your computer.
+
+## Handle Plugins
+
+The `target` command allows you to add and remove plugins.  To fetch a
+locally hosted plugin:
+
+    <path-to-project>/cordova/plugin fetch <path-to-plugin>
+
+View a list of installed plugins:
+
+    <path-to-project>/cordova/plugin ls
+
+Add a plugin:
+
+    <path-to-project>/cordova/plugin add <name>
+
+Remove a plugin:
+
+    <path-to-project>/cordova/plugin rm <name>
diff --git a/docs/en/3.4.0/guide/platforms/blackberry10/upgrading.md b/docs/en/3.4.0/guide/platforms/blackberry10/upgrading.md
new file mode 100644
index 0000000..1e96f67
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/blackberry10/upgrading.md
@@ -0,0 +1,490 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading BlackBerry 10
+
+This guide shows how to modify BlackBerry projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrading to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update blackberry`
+        
+For projects not created with the cordova CLI, run:
+
+        bin/update <project_path>
+
+## Upgrade to 3.1.0 from 3.0.0
+
+1. Create a new Apache Cordova 3.1.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add blackberry10`.
+
+3. Copy the contents of the original project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.)
+
+5. Copy the `config.xml` file into the `www` directory, and remove any
+   plugin definitions. You need to modify settings here rather than
+   within the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only plugins marked 3.0.0 and above are compatible with the CLI.
+
+7. Build and test.
+
+Please note that the CLI supports the BlackBerry10 platform exclusively. For PlayBook and BBOS, please see Cordova version 2.9.0 and below.
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add blackberry10`.
+
+3. Copy the contents of the original project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.)
+
+5. Copy the `config.xml` file into the `www` directory, and remove any
+   plugin definitions. You need to modify settings here rather than
+   within the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+7. Build and test.
+
+## Upgrading 2.8.0 Projects to 2.9.0
+
+For BlackBerry 10:
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Command-line Tools. This becomes the home of your updated project.
+
+5. Copy your projects source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+For BlackBerryOS/Playbook:
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.9.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into your `www` directory, and delete your `www/cordova.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.7.0 Projects to 2.8.0
+
+BlackBerry 10 uses the new CLI tooling and manages core APIs as plugins. The instructions migrate your project to a new project, rather than updating an existing project, due to the complexity of updating an old project.
+Also note that the cordova js script file is now called 'cordova.js' and no longer contains a version string.
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Command-line Tools. This becomes the home of your updated project.
+
+5. Copy your projects source from the old project's `/www` directory to the new project's `/www` directory.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+For BlackBerryOS/Playbook:
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.8.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` file from the new project into your `www` directory, and delete your `www/cordova.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrading 2.6.0 Projects to 2.7.0
+
+1. Download and extract the Cordova 2.7.0 source to a permanent directory location on your hard drive, for example to `~/Cordova-2.7.0`.
+
+2. Quit any running SDK tools: Eclipse, Momentics and the like.
+
+3. Navigate to the directory where you put the downloaded source above, using a unix like terminal: Terminal.app, Bash, Cygwin, etc.
+
+4. Create a new project, as described in BlackBerry Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.7.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.6.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file.
+
+7. Copy the `native` directory from the new project into the existing project, overwriting the old `native` directory.
+
+8. Copy the `lib` directory from the new project into the existing project, overwriting the old `lib` directory.
+
+9. Copy the `cordova` directory from the new project into the existing project, overwriting the old `cordova` directory.
+
+## Upgrade to 2.6.0 from 2.5.0
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.6.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.6.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.6.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.6.0/lib/blackberry` directory.
+
+Updating the example/ directory or migrating an existing project:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.6.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+## Upgrade to 2.5.0 from 2.4.0
+
+Updating the PhoneGap download directory:
+
+It is recommended that you download a fresh copy of the entire directory.
+
+However, here are the new parts needed for the piecemeal update:
+
+1. Update the cordova.blackberry.js file in the `Phonegap-2.5.0/lib/blackberry/javascript` directory.
+
+2. Update the `ext`, `ext-air`, and `ext-qnx` in the `Phonegap-2.5.0/lib/blackberry/framework` directory.
+
+3. Update the `build.xml` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+4. Update the `Phonegap-2.5.0/lib/blackberry/bin` directory.
+
+5. Update the `VERSION` file in the `Phonegap-2.5.0/lib/blackberry` directory.
+
+Updating the example/ directory or migrating an existing project:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Update the contents of the `ext-qnx/` directory.
+
+4. Copy the new `cordova-2.5.0.js` into your project.
+
+5. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+## Upgrade to 2.4.0 from 2.3.0
+
+Updating just the `www` directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.4.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.3.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.3.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.3.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.3.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.3.0/` directory to `cordova.2.4.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+8. Open the `www/` directory and update your HTML to use the new `cordova-2.4.0.js` file.
+
+## Upgrade to 2.3.0 from 2.2.0
+
+Updating just the `www` directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.3.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.2.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.2.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.2.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.2.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.2.0/` directory to `cordova.2.3.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+8. Open the `www/` directory and update your HTML to use the new `cordova-2.3.0.js` file.
+
+## Upgrade to 2.2.0 from 2.1.0
+
+Updating just the www directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.2.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+    - If BlackBerry 10, then update the .js file in the `qnx/` directory.
+
+5. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.1.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.1.0/ext-air/` directory.
+
+4. Update the contents of the `cordova.2.1.0/ext-qnx/` directory.
+
+5. Update the .js file in the `cordova.2.1.0/javascript/` directory.
+
+6. Open the `sample/lib/` directory and rename the `cordova.2.1.0/` directory to `cordova.2.2.0/`.
+
+7. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+8. Open the `www/` directory and update your HTML to use the new `cordova-2.2.0.js` file.
+
+## Upgrade to 2.1.0 from 2.0.0
+
+Updating just the `www` directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.1.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.2.0.0/ext/` directory.
+
+3. Update the contents of the `cordova.2.0.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.2.0.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.2.0.0/` directory to `cordova.2.1.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+7. Open the `www/` directory and update your HTML to use the new `cordova-2.1.0.js` file.
+
+## Upgrade to 2.0.0 from 1.9.0
+
+Updating just the `www` directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-2.0.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+6. Update your `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.9.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.9.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.9.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.9.0/` directory to `cordova.2.0.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+7. Open the `www/` directory and update your HTML to use the new `cordova-2.0.0.js` file.
+
+8. Open the `www/` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+- To upgrade to 1.8.0, please go from 1.7.0
+
+## Upgrade to 1.8.0 from 1.7.0
+
+Updating just the `www` directory:
+
+1. Open your `www/` directory, which contains your app.
+
+2. Remove and update the .jar file in the `ext/` directory.
+
+3. Update the contents of the `ext-air/` directory.
+
+4. Copy the new `cordova-1.8.0.js` into your project.
+    - If playbook, then update the .js file in the `playbook/` directory.
+
+5. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+6. Update your `www/plugins.xml` file. Two plugins changed their
+   namespace/service label. Change the old entries for the Capture and
+   Contact plugins from:
+
+        <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+        <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+        <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+        <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
+Updating the sample directory (i.e., updating using the ant tools):
+
+1. Open the `sample/lib/` directory.
+
+2. Update the .jar file in the `cordova.1.7.0/ext/` directory.
+
+3. Update the contents of the `cordova.1.7.0/ext-air/` directory.
+
+4. Update the .js file in the `cordova.1.7.0/javascript/` directory.
+
+5. Open the `sample/lib/` directory and rename the `cordova.1.7.0/` directory to `cordova.1.8.0/`.
+
+6. Type `ant blackberry build` or `ant playbook build` to update the `www/` directory with updated Cordova.
+
+7. Open the `www/` directory and update your HTML to use the new `cordova-1.8.0.js` file.
+
+8. Open the `www/` directory and update the `plugins.xml` file. Two plugins
+   changed their namespace/service label. Change the old entries for the
+   Capture and Contact plugins from:
+
+         <plugin name="Capture" value="org.apache.cordova.media.MediaCapture"/>
+         <plugin name="Contact" value="org.apache.cordova.pim.Contact"/>
+
+   To:
+
+         <plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
+         <plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
+
diff --git a/docs/en/3.4.0/guide/platforms/firefoxos/index.md b/docs/en/3.4.0/guide/platforms/firefoxos/index.md
new file mode 100644
index 0000000..84cb148
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/firefoxos/index.md
@@ -0,0 +1,87 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Firefox OS Platform Guide
+
+This guide describes how to set up your development environment to
+create Cordova apps for Firefox OS devices, then test and publish those apps.
+
+## Requirements and Support
+
+Firefox OS apps are basically just web apps, with the addition of a manifest.webapp file that defines metadata about the app and allows it to be installed on Firefox OS devices. Any platform that Cordova supports can be used.To find out more about building web apps, consult the [App Center](https://developer.mozilla.org/en-US/Apps) on [MDN](https://developer.mozilla.org/en-US/).
+
+## Installation and Environment Setup
+
+First install [Node.js](http://nodejs.org/), then install the Cordova package like so:
+
+  	$ npm install -g cordova
+
+Next, create a sample Cordova app then navigate into the newly created directory:
+
+  	$ cordova create test-app
+  	$ cd test-app
+
+Add Firefox OS as a supported platform to the app with the following:
+
+  	$ cordova platform add firefoxos
+
+This creates a Firefox OS app in platforms/firefoxos/www directory, which currently looks the same except that it has a Firefox manifest file (manifest.webapp) inside the www directory.
+
+##Developing your app
+
+At this point you are ready to go — change the code inside test-app/www to whatever you want your app to be. You can add [supported plugins]() to the app using "cordova plugin add", for example:
+
+	cordova plugin add org.apache.cordova.device
+	cordova plugin add org.apache.cordova.vibration
+
+You also need to add a custom manifest.webapp file into your test-app/www directory, which should include at least the following:
+
+  	{ 
+    	"launch_path":"/index.html",
+    	"installs_allowed_from":["*"],
+    	"version":"0.0.1",
+    	"name":"My app",
+    	"pkgName":"io.cordova.hellocordova",
+    	"icons": {
+      		"128": "/img/logo.png"
+    	}
+  	}
+
+For more information about Firefox App manifests, read [App manifest](https://developer.mozilla.org/en-US/Apps/Developing/Manifest) on MDN.
+
+When your app code is written, deploy your changes to the Firefox OS app you've added to your project with
+
+  	$ cordova prepare
+  	
+Note that a build step (i.e. cordova build) is not required when deploying to the Firefox OS platform, as Firefox OS apps are HTML-based, and therefore not compiled. 
+
+##Testing and Debugging
+
+The app can be tested using the Firefox OS [App Manager](https://developer.mozilla.org/en-US/Firefox_OS/Using_the_App_Manager).
+
+When you have connected the App Manager to your test device/simulator, select the "Add Packaged App" option, then make sure you point to the test-app/platforms/firefoxos/www/ directory to include the App in the Manager interface.
+
+For here you can install the app on your test device/simulator (with the "Update" button). Using the "Debug" button you can then debug the app and edit its code live. 
+
+Note: Before attempting to publish your app you should consider validating it using the [App validator](https://marketplace.firefox.com/developers/validator).
+
+##Publishing your app on the Firefox Marketplace
+
+You can submit your app to the Firefox Marketplace, or publish it yourself. Visit the [Firefox Marketplace Zone](https://developer.mozilla.org/en-US/Marketplace) on MDN to find out more about how to do this; [App publishing options](https://developer.mozilla.org/en-US/Marketplace/Publishing/Publish_options) is the best place to start.
+
diff --git a/docs/en/3.4.0/guide/platforms/index.md b/docs/en/3.4.0/guide/platforms/index.md
new file mode 100644
index 0000000..3ad781c
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/index.md
@@ -0,0 +1,98 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Platform Guides
+
+Before developing for any of the platforms listed below, install
+cordova's command-line interface (CLI).
+(For details, see The Command-Line Interface.)
+
+To develop Cordova applications, you must install SDKs for each mobile
+platform you are targeting. This installation is necessary regardless
+of whether you do the majority of your work in the SDK or use the CLI
+for your build cycle.
+
+Each _Platform Guide_ listed below tells you what you need to know to
+set up each platform's development environment: where to obtain the
+SDK, how to set up device emulators, how to connect devices for direct
+testing, and how to manage signing key requirements.  Additional
+guides provide information on each platform's unique set of
+configuration options, instructions to add plugins, how to upgrade
+each platform, and platform-specific command-line tools that serve as
+a lower-level alternative to the `cordova` command-line utility.
+
+## Amazon Fire OS
+
+* Amazon Fire OS Platform Guide
+* Amazon Fire OS Configuration
+* Amazon Fire OS WebViews
+* Amazon Fire OS Plugins
+
+## Android
+
+* Android Platform Guide
+* Android Configuration
+* Android WebViews
+* Android Plugins
+* Android Command-line Tools
+* Upgrading Android
+
+## BlackBerry 10
+
+* BlackBerry 10 Platform Guide
+* BlackBerry 10 Configuration
+* BlackBerry 10 Plugins
+* BlackBerry 10 Command-line Tools
+* Upgrading BlackBerry 10
+
+## Firefox OS
+
+* Firefox OS Platform Guide
+
+## iOS
+
+* iOS Platform Guide
+* iOS Configuration
+* iOS WebViews
+* iOS Plugins
+* iOS Command-line Tools
+* Upgrading iOS
+
+## Ubuntu
+
+* Ubuntu Platform Guide
+
+## Windows Phone
+
+* Windows Phone 8 Platform Guide
+* Windows Phone 7 Platform Guide
+* Windows Phone Configuration
+* Windows Phone Command-line Tools
+* Upgrading Windows Phone
+
+## Windows 8
+
+* Windows 8 Platform Guide
+* Windows 8 Command-line Tools
+* Upgrading Windows 8
+
+## Tizen
+
+* Tizen Platform Guide
+
diff --git a/docs/en/3.4.0/guide/platforms/ios/config.md b/docs/en/3.4.0/guide/platforms/ios/config.md
new file mode 100644
index 0000000..860221f
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/config.md
@@ -0,0 +1,113 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Configuration
+
+The `config.xml` file controls an app's basic settings that apply
+across each application and CordovaWebView instance. This section
+details preferences that only apply to iOS builds. See The config.xml
+File for information on global configuration options.
+
+- `EnableViewportScale` (boolean, defaults to `false`): Set to `true`
+  to allow a viewport meta tag to either disable or restrict the range
+  of user scaling, which is enabled by default.
+
+        <preference name="EnableViewportScale" value="true"/>
+
+  Place a viewport such as the following in the HTML to disable
+  scaling and fit content flexibly within the rendering WebView:
+
+        <meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' />
+
+- `MediaPlaybackRequiresUserAction` (boolean, defaults to `false`):
+  Set to `true` to prevent HTML5 videos or audios from playing
+  automatically with the `autoplay` attribute or via JavaScript.
+
+        <preference name="MediaPlaybackRequiresUserAction" value="true"/>
+
+- `AllowInlineMediaPlayback` (boolean, defaults to `false`): Set to
+  `true` to allow HTML5 media playback to appear _inline_ within the
+  screen layout, using browser-supplied controls rather than native
+  controls. For this to work, add the `webkit-playsinline` attribute
+  to any `<video>` elements.
+
+        <preference name="AllowInlineMediaPlayback" value="true"/>
+
+- `BackupWebStorage` (string, either `none`, `local`, or the default
+  `cloud`): Set to `cloud` to allow web storage data to backup via
+  iCloud. Set to `local` to allow only local backups via iTunes
+  sync. Set to `none` prevent web storage backups.
+
+        <preference name="BackupWebStorage" value="local"/>
+
+- `TopActivityIndicator` (string, defaults to `gray`): Controls the
+  appearance of the small spinning icon in the status bar that
+  indicates significant processor activity.  Valid values are
+  `whiteLarge`, `white`, and `gray`.
+
+        <preference name="TopActivityIndicator" value="white"/>
+
+- `KeyboardDisplayRequiresUserAction` (boolean, defaults to `true`):
+  Set to `false` to allow the keyboard to appear when calling
+  `focus()` on form inputs.
+
+        <preference name="KeyboardDisplayRequiresUserAction" value="false"/>
+
+- `SuppressesIncrementalRendering` (boolean, defaults to `false`): Set
+  to `true` to wait until all content has been received before it
+  renders to the screen.
+
+        <preference name="SuppressesIncrementalRendering" value="true"/>
+
+- `GapBetweenPages` (float, defaults to `0`): The size of the gap, in points, between pages.
+
+        <preference name="GapBetweenPages" value="0"/>
+
+- `PageLength` (float, defaults to `0`): The size of each page, in points, in the 
+  direction that the pages flow. When PaginationMode is right to left or left to right, 
+  this property represents the width of each page. When PaginationMode is topToBottom 
+  or bottomToTop, this property represents the height of each page. The default value 
+  is 0, which means the layout uses the size of the viewport to determine the dimensions
+  of the page.
+
+        <preference name="PageLength" value="0"/>
+
+- `PaginationBreakingMode` (string, defaults to `page`): Valid values are `page` and 
+  `column`.The manner in which column- or page-breaking occurs. This property 
+  determines whether certain CSS properties regarding column- and page-breaking are 
+  honored or ignored. When this property is set to `column`,  the content respects
+  the CSS properties related to column-breaking in place of page-breaking.
+
+        <preference name="PaginationBreakingMode" value="page"/>
+
+- `PaginationMode` (string, defaults to `unpaginated`): Valid values are `unpaginated`,
+  `leftToRight`, `topToBottom`, `bottomToTop`, and `rightToLeft`. This property determines 
+  whether content in the web view is broken up into pages that fill the view one screen 
+  at a time, or shown as one long scrolling view. If set to a paginated form, this 
+  property toggles a paginated layout on the content, causing the web view to use the 
+  values of PageLength and GapBetweenPages to relayout its content.
+
+        <preference name="PaginationMode" value="unpaginated"/>
+
+- `UIWebViewDecelerationSpeed` (string, defaults to `normal`): Valid values are `normal`,
+  `fast`. This property controls the deceleration speed of momentum scrolling. `normal` is
+  the default speed for most native apps, and `fast` is the default for Mobile Safari.
+
+        <preference name="UIWebViewDecelerationSpeed" value="fast" />
+
diff --git a/docs/en/3.4.0/guide/platforms/ios/index.md b/docs/en/3.4.0/guide/platforms/ios/index.md
new file mode 100644
index 0000000..f9553ce
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/index.md
@@ -0,0 +1,231 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for iOS devices such as iPhone and iPad. See the
+following for more detailed platform-specific information:
+
+* iOS Configuration
+* Upgrading iOS
+* iOS WebViews
+* iOS Plugins
+* iOS Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+## Requirements and Support
+
+Apple® tools required to build iOS applications run only on the OS X
+operating system on Intel-based Macs. Xcode® 4.5 (the minimum required
+version) runs only on OS X version 10.7 (Lion) or greater, and
+includes the iOS 6 SDK (Software Development Kit).  To submit apps to
+the Apple App Storeâ„  requires the latest versions of the Apple tools.
+
+You can test many of the Cordova features using the iOS emulator
+installed with the iOS SDK and Xcode, but you need an actual device to
+fully test all of the app's device features before submitting to the
+App Store.  The device must have at least iOS 5.x installed, the
+minimum iOS version supported as of Cordova 2.3.  Supporting devices
+include all iPad® models, iPhone® 3GS and above, and iPod® Touch 3rd
+Generation or later. To install apps onto a device, you must also be a
+member of Apple's
+[iOS Developer Program](https://developer.apple.com/programs/ios/),
+which costs $99 per year. This guide shows how to deploy apps to the
+iOS emulator, for which you don't need to register with the developer
+program.
+
+## Install the SDK
+
+There are two ways to download Xcode:
+
+* from the [App Store](https://itunes.apple.com/us/app/xcode/id497799835?mt=12),
+  available by searching for "Xcode" in the __App Store__ application.
+
+* from [Apple Developer Downloads](https://developer.apple.com/downloads/index.action),
+  which requires registration as an Apple Developer.
+
+Once Xcode is installed, several command-line tools need to be enabled
+for Cordova to run. From the __Xcode__ menu, select __Preferences__,
+then the __Downloads__ tab. From the __Components__ panel, press the
+__Install__ button next to the __Command Line Tools__ listing.
+
+## Open a Project in the SDK
+
+Use the `cordova` utility to set up a new project, as described in The
+Cordova The Command-Line Interface. For example, in a source-code directory:
+
+        $ cordova create hello com.example.hello "HelloWorld"
+        $ cd hello
+        $ cordova platform add ios
+        $ cordova prepare              # or "cordova build"
+
+Once created, you can open it from within Xcode. Double-click to open
+the `hello/platforms/ios/hello.xcodeproj` file.  The screen should
+look like this:
+
+![](img/guide/platforms/ios/helloworld_project.png)
+
+## Deploy to Emulator
+
+To preview the app in the iOS emulator:
+
+1. Make sure the _.xcodeproj_ file is selected in the left panel.
+
+2. Select the __hello__ app in the panel immediately to the right.
+
+3. Select the intended device from the toolbar's __Scheme__ menu, such
+   as the iPhone 6.0 Simulator as highlighted here:
+
+   ![](img/guide/platforms/ios/select_xcode_scheme.png)
+
+4. Press the __Run__ button that appears in the same toolbar to the
+   left of the __Scheme__. That builds, deploys and runs the
+   application in the emulator. A separate emulator application opens
+   to display the app:
+
+   ![](img/guide/platforms/ios/HelloWorldStandard.png)
+
+   Only one emulator may run at a time, so if you want to test the app
+   in a different emulator, you need to quit the emulator application
+   and run a different target within Xcode.
+
+Xcode comes bundled with emulators for the latest versions of iPhone
+and iPad. Older versions may be available from the __Xcode &rarr;
+Preferences &rarr; Downloads &rarr; Components__ panel.
+
+## Deploy to Device
+
+For details about various requirements to deploy to a device, refer
+to the _Configuring Development and Distribution Assets_ section of
+Apple's
+[Tools Workflow Guide for iOS](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/00-About_the_iOS_Application_Development_Workflow/introduction.html#//apple_ref/doc/uid/TP40007959).
+Briefly, you need to do the following before deploying:
+
+1. Join the Apple iOS Developer Program.
+
+2. Create a _Provisioning Profile_ within the
+   [iOS Provisioning Portal](https://developer.apple.com/ios/manage/overview/index.action).
+   You can use its _Development Provisioning Assistant_ to create and
+   install the profile and certificate Xcode requires.
+
+3. Verify that the _Code Signing_ section's _Code Signing Identity_
+   within the project settings is set to your provisioning profile
+   name.
+
+To deploy to the device:
+
+1. Use the USB cable to plug the device into your Mac.
+
+2. Select the name of the project in the Xcode window's __Scheme__
+   drop-down list.
+
+3. Select your device from the __Device__ drop-down list. If it is
+   plugged in via USB but still does not appear, press the
+   __Organizer__ button to resolve any errors.
+
+4. Press the __Run__ button to build, deploy and run the application
+   on your device.
+
+## Common Problems
+
+__Deprecation Warnings__: When an application programming interface
+(API) is changed or replaced by another API, it is marked as
+_deprecated_.  The API still works in the near term, but is eventually
+removed.  Some of these deprecated interfaces are reflected in Apache
+Cordova, and Xcode issues warnings about them when you build and
+deploy an application.
+
+Xcode's warning about the `invokeString` method concerns functionality
+that launches an app from a custom URL. While the mechanism to load
+from a custom URL has changed, this code is still present to provide
+backwards functionality for apps created with older versions of
+Cordova.  The sample app does not use this functionality, so these
+warnings can be ignored.  To prevent these warnings from appearing,
+remove the code that references the deprecated invokeString API:
+
+* Edit the _Classes/MainViewController.m_ file, surround the following
+  block of code with `/*` and `*/` comments as shown below, then type
+  __Command-s__ to save the file:
+
+        (void)webViewDidFinishLoad:(UIWebView*)theWebView
+        {
+        // only valid if ___PROJECTNAME__-Info.plist specifies a protocol to handle
+        /*
+        if (self.invokeString) {
+          // this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready
+          NSLog(@"DEPRECATED: window.invokeString - use the window.handleOpenURL(url) function instead, which is always called when the app is launched through a custom scheme url.");
+          NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString];
+          [theWebView stringByEvaluatingJavaScriptFromString:jsString];
+        }
+        */
+        // Black base color for background matches the native apps
+        theWebView.backgroundColor = [UIColor blackColor];
+
+        return [super webViewDidFinishLoad:theWebView];
+        }
+
+* Edit the _Classes/AppViewDelegate.m_ file, comment out the following
+  line by inserting a double slash as shown below, then type
+  __Command-s__ to save the file:
+
+        //self.viewController.invokeString = invokeString;
+
+* Press __Command-b__ to rebuild the project and eliminate the warnings.
+
+<!-- Does this fix only last until the next "cordova prepare"? -->
+
+__Missing Headers__: Compilation errors relating to missing headers
+result from problems with the build location, and can be fixed 
+via Xcode preferences:
+
+1. Select __Xcode &rarr; Preferences &rarr; Locations__.
+
+2. In the __Derived Data__ section, press the __Advanced__ button and
+   select __Unique__ as the __Build Location__ as shown here:
+
+   ![](img/guide/platforms/ios/xcode_build_location.png)
+
+This is the default setting for a new Xcode install, but it may be set
+differently following an upgrade from an older version of Xcode.
+
+For further information, consult Apple's documentation:
+
+*  [Start Developing iOS Apps Today](http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/index.html#//apple_ref/doc/uid/TP40011343) provides a quick overview of steps for developing iOS Apps.
+
+* [Member Center home page](https://developer.apple.com/membercenter/index.action)
+   provides links to several iOS technical resources including
+   technical resources, the provisioning portal, distribution guides
+   and community forums.
+
+* [Tools Workflow Guide for iOS](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/00-About_the_iOS_Application_Development_Workflow/introduction.html#//apple_ref/doc/uid/TP40007959)
+
+* [Xcode 4 User Guide](http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/000-About_Xcode/about.html#//apple_ref/doc/uid/TP40010215)
+
+* [Session Videos](https://developer.apple.com/videos/wwdc/2012/) from
+  the Apple World Wide Developer Conference 2012 (WWDC2012)
+
+* The [xcode-select command](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html),
+  which helps specify the correct version of Xcode if more than one is installed.
+
+(Mac®, OS X®, Apple®, Xcode®, App Storeâ„ , iPad®, iPhone®, iPod® and  Finder® are Trademarks of Apple Inc.)
+
diff --git a/docs/en/3.4.0/guide/platforms/ios/plugin.md b/docs/en/3.4.0/guide/platforms/ios/plugin.md
new file mode 100644
index 0000000..d91018b
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/plugin.md
@@ -0,0 +1,246 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you 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.
+---
+
+# iOS Plugins
+
+This section provides details for how to implement native plugin code
+on the iOS platform. Before reading this, see Application Plugins for
+an overview of the plugin's structure and its common JavaScript
+interface. This section continues to demonstrate the sample _echo_
+plugin that communicates from the Cordova webview to the native
+platform and back.
+
+An iOS plugin is implemented as an Objective-C class that extends the
+`CDVPlugin` class.  For JavaScript's `exec` method's `service`
+parameter to map to an Objective-C class, each plugin class must be
+registered as a `<feature>` tag in the named application directory's
+`config.xml` file.
+
+## Plugin Class Mapping
+
+The JavaScript portion of a plugin uses the `cordova.exec` method as
+follows:
+
+        exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This marshals a request from the `UIWebView` to the iOS native side,
+effectively calling the `action` method on the `service` class, with
+the arguments passed in the `args` array.
+
+Specify the plugin as a `<feature>` tag in your Cordova-iOS
+application's project's `config.xml` file, using the `plugin.xml` file
+to inject this markup automatically, as described in Application
+Plugins:
+
+        <feature name="LocalStorage">
+            <param name="ios-package" value="CDVLocalStorage" />
+        </feature>
+
+The feature's `name` attribute should match what you specify as the
+JavaScript `exec` call's `service` parameter. The `value` attribute
+should match the name of the plugin's Objective-C class. The `<param>`
+element's `name` should always be `ios-package`.  If you do not follow
+these guidelines, the plugin may compile, but Cordova may still not be
+able to access it.
+
+## Plugin Initialization and Lifetime
+
+One instance of a plugin object is created for the life of each
+`UIWebView`. Plugins are ordinarily instantiated when first referenced
+by a call from JavaScript. Otherwise they can be instantiated by
+setting a `param` named `onload` to `true` in the `config.xml` file:
+
+        <feature name="Echo">
+            <param name="ios-package" value="Echo" />
+            <param name="onload" value="true" />
+        </feature>
+
+There is _no_ designated initializer for plugins. Instead, plugins
+should use the `pluginInitialize` method for their startup logic.
+
+Plugins with long-running requests, background activity such as media
+playback, listeners, or that maintain internal state should implement
+the `onReset` method to clean up those activities. The method runs
+when the `UIWebView` navigates to a new page or refreshes, which
+reloads the JavaScript.
+
+## Writing an iOS Cordova Plugin
+
+A JavaScript call fires off a plugin request to the native side, and
+the corresponding iOS Objective-C plugin is mapped properly in the
+`config.xml` file, but what does the final iOS Objective-C plugin
+class look like?  Whatever is dispatched to the plugin with
+JavaScript's `exec` function is passed into the corresponding plugin
+class's `action` method. A plugin method has this signature:
+
+        - (void)myMethod:(CDVInvokedUrlCommand*)command
+        {
+            CDVPluginResult* pluginResult = nil;
+            NSString* myarg = [command.arguments objectAtIndex:0];
+
+            if (myarg != nil) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+            } else {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];
+            }
+            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+        }
+
+For more details, see
+ `[CDVInvokedUrlCommand.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h)`,
+ `[CDVPluginResult.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h)`,
+and
+ `[CDVCommandDelegate.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h)`.
+
+## iOS CDVPluginResult Message Types
+
+You can use `CDVPluginResult` to return a variety of result types back to
+the JavaScript callbacks, using class methods that follow this pattern:
+
+        + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAs...
+
+You can create `String`, `Int`, `Double`, `Bool`, `Array`,
+`Dictionary`, `ArrayBuffer`, and `Multipart` types. You can also leave
+out any arguments to send a status, or return an error, or even choose
+not to send any plugin result, in which case neither callback fires.
+
+Note the following for complex return values:
+
+- `messageAsArrayBuffer` expects `NSData*` and converts to an
+  `ArrayBuffer` in the JavaScript callback. Likewise, any
+  `ArrayBuffer` the JavaScript sends to a plugin are converted to
+  `NSData*`.
+
+- `messageAsMultipart` expects an `NSArray*` containing any of the
+  other supported types, and sends the entire array as the `arguments`
+  to your JavaScript callback.  This way, all of the arguments are
+  serialized or deserialized as necessary, so it is safe to return
+  `NSData*` as multipart, but not as `Array`/`Dictionary`.
+
+## Echo iOS Plugin Example
+
+To match the JavaScript interface's _echo_ feature described in
+Application Plugins, use the `plugin.xml` to inject a `feature`
+specification to the local platform's `config.xml` file:
+
+        <platform name="ios">
+            <config-file target="config.xml" parent="/*">
+                <feature name="Echo">
+                    <param name="ios-package" value="Echo" />
+                </feature>
+            </config-file>
+        </platform>
+
+
+Then we would add the following `Echo.h` and `Echo.m` files to the
+`Plugins` folder within the Cordova-iOS application directory:
+
+        /********* Echo.h Cordova Plugin Header *******/
+
+        #import <Cordova/CDV.h>
+
+        @interface Echo : CDVPlugin
+
+        - (void)echo:(CDVInvokedUrlCommand*)command;
+
+        @end
+
+        /********* Echo.m Cordova Plugin Implementation *******/
+
+        #import "Echo.h"
+        #import <Cordova/CDV.h>
+
+        @implementation Echo
+
+        - (void)echo:(CDVInvokedUrlCommand*)command
+        {
+            CDVPluginResult* pluginResult = nil;
+            NSString* echo = [command.arguments objectAtIndex:0];
+
+            if (echo != nil && [echo length] > 0) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
+            } else {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
+            }
+
+            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+        }
+
+        @end
+
+The necessary imports at the top of the file extends the class from
+`CDVPlugin`.  In this case, the plugin only supports a single `echo`
+action. It obtains the echo string by calling the `objectAtIndex`
+method get the first parameter of the `arguments` array, which
+corresponds to the arguments passed in by the JavaScript `exec()`
+function.
+
+It checks the parameter to make sure it is not `nil` or an empty
+string, returning a `PluginResult` with an `ERROR` status if so.  If
+the parameter passes the check, it returns a `PluginResult` with an
+`OK` status, passing in the original `echo` string.  Finally, it sends
+the result to `self.commandDelegate`, which executes the `exec`
+method's success or failure callbacks on the JavaScript side. If the
+success callback is called, it passes in the `echo` parameter.
+
+## iOS Integration
+
+The `CDVPlugin` class features other methods that your plugin can
+override.  For example, you can capture the `pause`, `resume`, app
+terminate and `handleOpenURL` events. See the
+[CDVPlugin.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h)
+and
+[CDVPlugin.m](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m)
+class for guidance.
+
+## Threading
+
+Plugin methods ordinarily execute in the same thread as the main
+interface. If your plugin requires a great deal of processing or
+requires a blocking call, you should use a background thread. For
+example:
+
+        - (void)myPluginMethod:(CDVInvokedUrlCommand*)command
+        {
+            // Check command.arguments here.
+            [self.commandDelegate runInBackground:^{
+                NSString* payload = nil;
+                // Some blocking logic...
+                CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
+                // The sendPluginResult method is thread-safe.
+                [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+            }];
+        }
+
+## Debugging iOS Plugins
+
+To debug on the Objective-C side, you need Xcode's built-in debugger.
+For JavaScript, on iOS 5.0 you can use [Weinre, an Apache Cordova
+Project](https://github.com/apache/cordova-weinre) or [iWebInspector,
+a third-party utility](http://www.iwebinspector.com/).  For iOS 6, you
+can attach Safari 6.0 to your app running within the iOS 6 Simulator.
+
+## Common Pitfalls
+
+- Don't forget to add your plugin's mapping to `config.xml`. If you
+  forget, an error is logged in the Xcode console.
+
+- Don't forget to add any hosts you connect to in the whitelist, as
+  described in Domain Whitelist Guide. If you forget, an error is
+  logged in the Xcode console.
diff --git a/docs/en/3.4.0/guide/platforms/ios/tools.md b/docs/en/3.4.0/guide/platforms/ios/tools.md
new file mode 100644
index 0000000..a132c3a
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/tools.md
@@ -0,0 +1,63 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS Command-line Tools
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+The iOS command-line tools are built upon shell scripts and rely on
+Xcode command-line tools such as `xcode-select` and `xcodebuild`.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for an overview.
+
+## Create a Project
+
+Run the `create` command, specifying the existing path to the project,
+the reverse-domain-style package identifier, and the app's display
+name.
+
+    $ ./path/to/cordova-ios/bin/create /path/to/my_new_project com.example.project_name ProjectName
+
+## Build a Project
+
+    $ /path/to/my_new_project/cordova/build
+
+## Run App on an Emulator
+
+    $ /path/to/my_new_project/cordova/run
+
+## Releasing
+
+    $ /path/to/my_new_project/cordova/release
+
+## Logging
+
+    $ /path/to/my_new_project/cordova/log
+
diff --git a/docs/en/3.4.0/guide/platforms/ios/upgrading.md b/docs/en/3.4.0/guide/platforms/ios/upgrading.md
new file mode 100644
index 0000000..306534d
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/upgrading.md
@@ -0,0 +1,788 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading iOS
+
+This guide shows how to modify iOS projects to upgrade from older
+versions of Cordova.  Most of these instructions apply to projects
+created with an older set of command-line tools that precede the
+`cordova` CLI utility. See The Command-Line Interface for information
+how to update the version of the CLI.
+
+__NOTE__: Xcode 5 is required. Currently, to submit to the
+Apple App Store, you should use the latest shipped version of the iOS SDK, which is iOS 7 and this is included only with Xcode 5.
+
+## Upgrading 3.3.0 Projects to 3.4.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+
+## Upgrading 3.2.0 Projects to 3.3.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+
+## Upgrading 3.1.0 Projects to 3.2.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+        
+
+## Upgrading 3.0.0 Projects to 3.1.0
+
+For non-CLI projects, run:
+
+        bin/update path/to/project
+        
+For CLI projects:
+
+1. Update the `cordova` CLI version. See The Command-Line Interface.
+
+2. Run `cordova platform update ios`
+        
+iOS 7 Issues:
+
+1. Remove `width=device-width, height=device-height` from the
+   `index.html` file's `viewport` `meta` tag. (See [the relevant
+   bug](https://issues.apache.org/jira/browse/CB-4323).)
+
+2. Update your media, media-capture and splashscreen core plugins for
+   iOS 7 support.
+
+Xcode 5 Issues:
+
+1. Update your Project Settings if Xcode 5 prompts you to do so (in the Issues Navigator).
+
+2. Update your __Compiler for C/C++/Objective-C__ setting, under the
+   __Build Settings__ tab, __Build Options__ section. Choose __Default
+   compiler (Apple LLVM 5.0)__.
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add ios`.
+
+3. Copy the contents of the project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`Resources`, etc.), making sure to add any
+   new files to the `.xcodeproj` project. The iOS project builds
+   inside the `platforms\ios` directory.
+
+5. Copy your `config.xml` into the `www` directory, and remove any plugin
+   definitions. Modify settings here instead of the platform directory.
+
+6. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+7. Build and test.
+
+## Upgrading 2.9.0 Projects to 3.0.0
+
+1. Download and extract the Cordova 3.0.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-3.0.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into your `www` directory, and delete your `www/cordova.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+__NOTE__: Starting with Cordova 3.0.0, plugins are not pre-installed,
+and you need to use the `plugman` command-line utility to install them
+yourself. See Using Plugman to Manage Plugins.
+
+## Upgrading 2.8.0 Projects to 2.9.0
+
+1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.9.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into your `www` directory, and delete your `www/cordova.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.7.0 Projects to 2.8.0
+
+1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.8.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into your `www` directory, and delete your `www/cordova-2.7.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file.
+
+7. Update any `<plugin>` tags in the `config.xml` file to `<feature>` tags. Note that existing `<plugin>` tags still work, but are deprecated. You can copy this information in the `config.xml` file for a new project. For example:
+
+        <plugins>
+            <plugin name="LocalStorage" value="CDVLocalStorage" />
+            <!-- other plugins -->
+        </plugins>
+        
+        <!-- change to: (note that a <feature> tag is on the same level as <plugins> -->
+        <feature name="LocalStorage">
+    	    <param name="ios-package" value="CDVLocalStorage" />
+    	</feature>
+    	<!-- other <feature> tags -->
+        
+
+8. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+9. Add these two frameworks to your project:
+        
+        OpenAL
+        ImageIO
+
+10. Update your project's target __Build Settings__. Under __Linking &rarr; Other Linker Flags__, edit __"-Obj-C"__ to be __"-ObjC"__.
+
+11. Update your project's target __Build Settings__. Under __Linking &rarr; Other Linker Flags__, change __"-all\_load"__ to be `-force\_load ${BUILT\_PRODUCTS\_DIR}/libCordova.a`. You would only need to do this if you have the problem defined in [this issue.](https://issues.apache.org/jira/browse/CB-3458).
+
+## Upgrading 2.6.0 Projects to 2.7.0
+
+1. Download and extract the Cordova 2.7.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.7.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. you need the assets from this new project.
+
+5. Copy the `www/cordova-2.7.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.6.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file.
+
+7. Update (or replace, if you never changed the file) your `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=5c05ac80e056753c0e8736f887ba9f28d5b0774c;hp=623ad8ec3c46f656ea18c6c3a190d650dd64e479;hb=c6e71147386d4ad94b07428952d1aae0a9cbf3f5;hpb=c017fda8af00375a453cf27cfc488647972e9a23)).
+
+8. In your `config.xml` file, [remove this line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=537705d76a5ef6bc5e57a8ebfcab78c02bb4110b;hp=8889726d9a8f8c530fe1371c56d858c34552992a;hb=064239b7b5fa9a867144cf1ee8b2fb798ce1f988;hpb=c9f233250d4b800f3412eeded811daaafb17b2cc).
+
+9. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.5.0 Projects to 2.6.0
+
+1. Download and extract the Cordova 2.6.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.6.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the project's `www/cordova-2.6.0.js` file into your `www` directory, and delete your `www/cordova-2.5.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (along with any other files that reference the script) to refer to the new `cordova-2.6.0.js` file.
+
+7. Update (or replace, if you never changed the file) your `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=124a56bb4f361e95616f44d6d6f5a96ffa439b60;hp=318f79326176be8f16ebc93bad85dd745f4205b6;hb=a28c7712810a63396e9f32fa4eb94fe3f8b93985;hpb=36acdf55e4cab52802d73764c8a4b5b42cf18ef9)).
+
+8. In your `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=1555b5e81de326a07efe0bccaa5f5e2326b07a9a;hp=0652d60f8d35ac13c825c572dca6ed01fea4a540;hb=95f16a6dc252db0299b8e2bb53797995b1e39aa1;hpb=a2de90b8f5f5f68bd9520bcbbb9afa3ac409b96d).
+
+9. In your `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=d307827b7e67301171a913417fb10003d43ce39d;hp=04260aa9786d6d74ab20a07c86d7e8b34e31968c;hb=97b89edfae3527828c0ca6bb2f6d58d9ded95188;hpb=942d33c8e7174a5766029ea1232ba2e0df745c3f).
+
+10. In your `config.xml` file, [UIWebViewBounce has been changed to DisallowOverscroll, and default values are different](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=8889726d9a8f8c530fe1371c56d858c34552992a;hp=d307827b7e67301171a913417fb10003d43ce39d;hb=57982de638a4dce6ae130a26662591741b065f00;hpb=ec411f18309d577b4debefd9a2f085ba719701d5).
+
+10. In your `config.xml` file, the `EnableLocation` preference has been deprecated.
+
+11. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.4.0 Projects to 2.5.0
+
+1. Download and extract the Cordova 2.5.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.5.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.5.0.js` file from the new project into your `www` directory and delete your `www/cordova-2.4.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.5.0.js` file.
+
+7. Update (or replace, if you never changed the file) your `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=318f79326176be8f16ebc93bad85dd745f4205b6;hp=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hb=4001ae13fcb1fcbe73168327630fbc0ce44703d0;hpb=299a324e8c30065fc4511c1fe59c6515d4842f09)).
+
+8. In your `config.xml` file, [add these new lines](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=903944c4b1e58575295c820e154be2f5f09e6314;hp=721c734120b13004a4a543ee25f4287e541f34be;hb=ae467249b4a256bd31ee89aea7a06f4f2316b8ac;hpb=9e39f7ef8096fb15b38121ab0e245a3a958d9cbb).
+
+9. In your `config.xml` file, [edit the root element, change it from cordova to widget](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=64e71636f5dd79fa0978a97b9ff5aa3860a493f5;hp=d8579352dfb21c14e5748e09b2cf3f4396450163;hb=0e711f8d09377a7ac10ff6be4ec17d22cdbee88d;hpb=57c3c082ed9be41c0588d0d63a1d2bfcd2ed878c).
+
+10. In your `config.xml` file, [remove the OpenAllWhitelistURLsInWebView preference](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=721c734120b13004a4a543ee25f4287e541f34be;hp=7d67508b70914aa921a16e79f79c00512502a8b6;hb=187bf21b308551bfb4b98b1a5e11edf04f699791;hpb=03b8854bdf039bcefbe0212db937abd81ac675e4).
+
+11. Delete your `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.5.0, this has updated scripts.
+
+12. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+## Upgrading 2.3.0 Projects to 2.4.0
+
+1. Download and extract the Cordova 2.4.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.4.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.4.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.3.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.4.0.js` file.
+
+7. Update (or replace, if you never changed the files) your `MainViewController.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/MainViewController.m;h=5f9eeac15c2437cd02a6eb5835b48374e9b94100;hp=89da1082d06ba5e5d0dffc5b2e75a3a06d5c2aa6;hb=b4a2e4ae0445ba7aec788090dce9b822d67edfd8;hpb=a484850f4610e73c7b20cd429a7794ba829ec997)).
+
+8. Update (or replace, if you never changed the file) your `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hp=1ca3dafeb354c4442b7e149da4f281675aa6b740;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d)).
+
+9. In your `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=7d67508b70914aa921a16e79f79c00512502a8b6;hp=337d38da6f40c7432b0bce05aa3281d797eec40a;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d).
+
+10. Delete your `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.4.0, this has fixed scripts.
+
+11. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+12. Add AssetsLibrary.framework as a resource to your project.  (See [Apple's documentation](https://developer.apple.com/library/ios/#recipes/xcode_help-project_editor/Articles/AddingaLibrarytoaTarget.html) for instructions on how to do so.).
+
+## Upgrading 2.2.0 Projects to 2.3.0
+
+1. Download and extract the Cordova 2.3.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.3.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.3.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.2.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.3.0.js` file.
+
+7. Update (or replace, if you never changed the file) your `MainViewController.m` according to the one from the new project.
+
+8. Delete your `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.3.0, this has new scripts.
+
+9. Delete your `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory.
+
+10. Convert your `Cordova.plist` file to `config.xml`, by running the script `bin/cordova\_plist\_to\_config\_xml` on your project file.
+
+11. Add the InAppBrowser plugin to your `config.xml`, by adding this tag under `<cordova><plugins>`:
+
+        <plugin name="InAppBrowser" value="CDVInAppBrowser" />
+
+12. Note that Objective-C plugins are _not_ whitelisted anymore. To whitelist your connections with the app whitelist, you need to set the `User-Agent` header of the connection to the same user-agent as the main Cordova WebView.
+You can get this by accessing the `userAgent` property off the main view-controller. The main view-controller (`CDVViewController`) also has a `URLisAllowed` method for you to check whether a URL passes the whitelist.
+
+13. Device API changes:
+    - For iOS, device.platform used to return `iPhone`, `iPad` or `iPod Touch`; now it returns (correctly) `iOS`.
+    - For iOS, device.name (now deprecated for all platforms) used to return the name of the user’s device (e.g. ‘Shazron’s iPhone 5′); now it returns what device.platform used to return: `iPhone`, `iPad` or `iPod Touch`.
+    - For all platforms, there is a new property called device.model; this returns the specific device model, e.g. `iPad2,5` (for other platforms, this returns what device.name used to return).
+
+## Upgrading 2.1.0 Projects to 2.2.0
+
+1. Download and extract the Cordova 2.2.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.2.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+4. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+5. Copy the `www/cordova-2.2.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.1.0.js` file.
+
+6. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.2.0.js` file.
+
+7. Update (or replace, if you never changed the file) your `MainViewController.m` according to the one from the new project:
+    - Updated &rarr; viewWillAppear
+
+8. Copy the `cordova` directory from the new project into your project's root directory. In 2.2.0, this has an updated 'emulate' script.
+
+9. Next, update your `CordovaLib` sub-project reference. Beginning with Cordova 2.1.0, we are not using the CORDOVALIB Xcode variable anymore when referencing where `CordovaLib` resides, the reference is an absolute file reference now.
+    1. Launch Terminal.app
+    2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory
+    3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file:
+
+        `update_cordova_subproject path/to/your/project/xcodeproj`
+
+__NOTE__: In 2.2.0, the `bin/create` script copy in the `CordovaLib` sub-project into your project. To have the same kind of setup, just copy in the right `CordovaLib` into your project directory, and update the `CordovaLib` sub-project location (relative to the project) in the Xcode File Inspector.
+
+## Upgrading 2.0.0 Projects to 2.1.0
+
+With Cordova 2.1.0, `CordovaLib` has been upgraded to use __Automatic Reference Counting (ARC)__. You don't need to upgrade to __ARC__ to use CordovaLib, but if you want to upgrade your project to use __ARC__, please use the Xcode migration wizard from the menu: __Edit &rarr; Refactor &rarr; Convert to Objective-C ARC...__, de-select libCordova.a, then run the wizard to completion.
+
+1. Download and extract the Cordova 2.1.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.1.0`.
+
+2. Quit Xcode if it is running.
+
+3. Using Terminal.app, navigate to the directory where you put the downloaded source above.
+
+5. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+6. Copy the `www/cordova-2.1.0.js` file from the new project into your `www` directory, and delete your `www/cordova-2.0.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.1.0.js` file.
+
+8. Update (or replace, if you never changed the file) your `AppDelegate.m` according to the one from the new project:
+    - Edited &rarr; application:didFinishLaunchingWithOptions:
+	- Added  &rarr; application:supportedInterfaceOrientationsForWindow:
+
+9. Update (or replace, if you never changed the file) your `MainViewController.m` according to the one from the new project:
+    - Added &rarr; viewWillAppear
+
+10. Copy the `cordova` directory from the new project into your project's root directory. In 2.1.0, this has the updated scripts to support paths with spaces.
+
+11. Remove the `VERSION` file reference from your project (_not_ the one in `CordovaLib`).
+
+12. Next, update your `CordovaLib` sub-project reference. Beginning with Cordova 2.1.0, we are not using the CORDOVALIB Xcode variable anymore when referencing where `CordovaLib` resides, the reference is an absolute file reference now.
+    1. Launch Terminal.app
+    2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory
+    3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file:
+
+        `update_cordova_subproject path/to/your/project/xcodeproj`
+
+## Upgrading 1.9.0 Projects to 2.0.0
+
+1. Install Cordova 2.0.0.
+
+2. Create a new project, as described in iOS Command-line Tools. You need the assets from this new project.
+
+3. Copy the `www/cordova-2.0.0.js` file from the new project into your `www` directory, and delete your `www/cordova-1.9.0.js` file.
+
+4. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.0.0.js` file.
+
+5. Copy the `cordova` directory from the new project into your project's root directory (if you want the project command-line tools).
+
+6. Add a new entry under `Plugins` in your `Cordova.plist` file, under
+   the __Supporting Files__ group. The key is `Device` and the value
+   is `CDVDevice`.
+
+7. Remove `Cordova.framework`.
+
+8. Remove `verify.sh` from the __Supporting Files__ group.
+
+9. Select the project icon in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab.
+
+10. Search for __Preprocessor Macros__, then remove all __CORDOVA_FRAMEWORK=1__ values.
+
+11. Locate the `CordovaLib` directory that was installed in your hard-drive under your home folder's `Documents` subdirectory.
+
+12. Locate the `CordovaLib.xcodeproj` file in the `CordovaLib` directory, then drag and drop the file into your project. It should appear as a sub-project.
+
+13. Build your project, you should get some errors relating to `#import` directives.
+
+14. For the `#import` errors, change any quote-based imports in this style:
+
+        #import "CDV.h"
+
+    to this brackets-based style:
+
+        #import <Cordova/CDV.h>
+
+    and remove any `#ifdef` wrappers around any Cordova imports, they are not needed anymore (the imports are now unified)
+
+15. Build your project again, and it should not have any `#import` errors.
+
+16. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Phases__ tab.
+
+17. Expand the __Target Dependencies__ phase, then select the __+__ button.
+
+18. Select the `CordovaLib` target, then select the __Add__ button.
+
+19. Expand the first __Link Binary with Libraries__ phase (it should already contain a bunch of frameworks), then select the __+__ button.
+
+20. Select the `libCordova.a` static library, then select the __Add__ button.
+
+21. Delete the __Run Script__ phase.
+
+22. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab.
+
+23. Search for __Other Linker Flags__, and add the values __-force_load__ and __-Obj-C__.
+
+24. Expand the `CordovaLib` sub-project.
+
+25. Locate the `VERSION` file, drag it into your main project (we want to create a link to it, not a copy).
+
+26. Select the __Create groups for any added folders__ radio button, then select the __Finish__ button.
+
+27. Select the `VERSION` file that you just dragged in a previous step.
+
+28. Type the __Option-Command-1__ key combination to show the __File Inspector__ (or menuitem __View &rarr; Utilities &rarr; Show File Inspector__).
+
+29. Choose __Relative to CORDOVALIB__ in the __File Inspector__ for the drop-down menu for __Location__.
+
+30. Set the Xcode preference __Xcode Preferences &rarr; Locations &rarr; Derived Data &rarr; Advanced...__ to __Unique__, so that the unified headers can be found.
+
+31. Select the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab.
+
+32. Search for __Header Search Paths__. For that setting, append these three values, including quotes:
+
+        "$(TARGET_BUILD_DIR)/usr/local/lib/include"
+
+        "$(OBJROOT)/UninstalledProducts/include"
+
+        "$(BUILT_PRODUCTS_DIR)"
+
+33. Search for __Other Linker Flags__. For that setting, append this value:
+
+        -weak_framework CoreFoundation
+
+34. Build your project, it should compile and link with __no issues__.
+
+35. Select your project from the __Scheme__ drop-down, and then select __iPhone 5.1 Simulator__.
+
+36. Select the __Run__ button.
+
+__NOTE__: If your project is not working as expected in the Simulator, please take a note of any errors in the console log in Xcode for clues.
+
+## Upgrading 1.8.x Projects to 1.9.0
+
+1. Install Cordova 1.9.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.9.0.js` file from the new project into your `www` directory, and delete your `www/cordova-1.8.x.js` file.
+
+4. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.9.0.js` file.
+
+__NOTE__: 1.9.0 supports the new `BackupWebStorage` boolean `Cordova.plist` setting. It's enabled by default, so set it to
+`false` to disable it, especially on iOS 6. See [Release Notes: Safari and UIKit Section](https://developer.apple.com/library/prerelease/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html)
+
+## Upgrading 1.7.0 Projects to 1.8.x
+
+1. Install Cordova 1.8.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.8.0.js` file from the new project into your `www` directory, and delete your `www/cordova-1.7.x.js` file.
+
+4. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.8.0.js` file.
+
+If you intend on using the Capture API, you will need the new __iPad retina-display__ assets:
+
+1.  Copy the `Resources/Capture.bundle` item from the new project into your project directory, over-writing your existing `Resources/Capture.bundle` item.
+
+2.  In your project, select the `Capture.bundle` item into your Project Navigator in Xcode, type the __Delete__ key, then select __Remove Reference__ from the resulting dialog.
+
+3.  Drag the new `Capture.bundle` from Step 1 above into your Project Navigator in Xcode, then select the __Create groups for any added folders__ radio button.
+
+## Upgrading 1.6.x Projects to 1.7.0
+
+1. Install Cordova 1.7.0.
+
+2. Create a new project. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.7.0.js` file from the new project into your `www` directory, and delete your `www/cordova-1.6.0.js` file.
+
+4. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.7.0.js` file.
+
+## Upgrading 1.5.0 Projects to 1.6.x
+
+1. Install Cordova 1.6.1.
+
+2. Make a backup of `AppDelegate.m`, `AppDelegate.h`, `MainViewController.m`, `MainViewController.h`, and `Cordova.plist` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.5.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        Cordova.plist
+
+5. Add all the new `MainViewController` and `AppDelegate` files into your Xcode project.
+
+6. Copy the `www/cordova-1.6.1.js` file from the new project into your `www` directory, and delete your `www/cordova-1.5.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.6.1.js` file.
+
+8. Add the new `Cordova.plist` file into your project. This is
+   necessary because the core plugin service names must change to
+   match the ones from Android and BlackBerry, for a unified Cordova
+   JavaScript file (`cordova-js`).
+
+9. Integrate any settings, __Plugins__ and __ExternalHosts__ entries that you had in your __backed-up Cordova.plist__ into the new `Cordova.plist`.
+
+10. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new `AppDelegate` files. Any `UIWebViewDelegate` or `CDVCommandDelegate` code in `AppDelegate.m` needs to go into `MainViewController.m` now (see commented-out sections in that file).
+
+11. Integrate any project-specific code that you have in your backed-up `MainViewController.h` and `MainViewController.m` into the new MainViewController files.
+
+12. Click on the project icon in the Project Navigator, select your __Project__, then select the __Build Settings__ tab.
+
+13. Enter __Compiler for C/C++/Objective-C__ in the search field.
+
+14. Select the __Apple LLVM Compiler 3.1__ value.
+
+## Upgrading 1.4.x Projects to 1.5.0
+
+1. Install Cordova 1.5.0.
+
+2. Create a new project and run it once. You will need some of the assets from this new project.
+
+3. Copy the `www/cordova-1.5.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-1.4.x.js` file.
+
+4. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new Cordova `cordova-1.5.0.js` file.
+
+5. Find `PhoneGap.framework` in your Project Navigator, select it.
+
+6. Type the __Delete__ key and delete the `PhoneGap.framework` reference in the Project Navigator.
+
+7. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected.
+
+8. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet).
+
+9. Enter `/Users/Shared/Cordova/Frameworks/Cordova.framework` in the __Go to the folder:__ sheet and then press the __Go__ button.
+
+10. Press the __Add__ button in the __Add Files...__ sheet.
+
+11. Select `Cordova.framework` in the Project Navigator.
+
+12. Type the __Option-Command-1__ key combination to show the __File Inspector__.
+
+13. Choose __Absolute Path__ in the __File Inspector__ for the drop-down menu for __Location__.
+
+14. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected.
+
+15. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet).
+
+16. Enter `~/Documents/CordovaLib/Classes/deprecated` in the __Go to the folder:__ sheet and then press the __Go__ button.
+
+17. Press the __Add__ button in the __Add Files...__ sheet.
+
+18. In your `AppDelegate.h`, `AppDelegate.m`, and `MainViewController.h` files, replace the whole `#ifdef PHONEGAP_FRAMEWORK` block with:
+
+        #import "CDVDeprecated.h"
+
+19. Click on the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab.
+
+20. Search for __Framework Search Paths__.
+
+21. Replace the existing value with `/Users/Shared/Cordova/Frameworks`.
+
+22. Search for __Preprocessor Macros__.
+
+23. For the first (combined) value, replace the value with __CORDOVA_FRAMEWORK=YES__.
+
+24. Select the __Build Phases__ tab.
+
+25. Expand __Run Script__.
+
+26. Replace any occurrences of __PhoneGap__ with __Cordova__.
+
+27. Find your `PhoneGap.plist` file in the Project Navigator, and click on the filename once to enter name edit mode.
+
+28. Rename `PhoneGap.plist` to `Cordova.plist`.
+
+29. Right-click on `Cordova.plist` and choose __Open As &rarr; Source Code__.
+
+30. Press __Option-Command-F__, choose __Replace__ from the drop-down on the top left of the Source window.
+
+31. Enter `com.phonegap` for the Find string, and `org.apache.cordova`
+    for the Replace string, then press the __Replace All__ button.
+
+32. Enter __PG__ for the Find string, and __CDV__ for the Replace
+    string, then press the __Replace All__ button.
+
+33. Press __Command-B__ to build. You still have deprecations
+    that you can get rid of in the future (see `CDVDeprecated.h`. For
+    example, replace classes in your code that use PG* to CDV*).
+
+## Upgrading 1.4.0 Projects to 1.4.1
+
+1. Install Cordova 1.4.1.
+
+2. Make a backup of `MainViewController.m`.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy the `MainViewController.m` file from the new project into your 1.4.0-based project directory on disk, replacing the old file (backup your files first from step 2 above).
+
+5. Add the `MainViewController.m` file into your Xcode project.
+
+6. Integrate any project-specific code that you have in your backed-up `MainViewController.m` into the new file.
+
+7. Updating the `phonegap-1.4.0.js` file is optional, nothing has changed in the JavaScript between 1.4.0 and 1.4.1.
+
+## Upgrading 1.3.0 Projects to 1.4.0
+
+1. Install Cordova 1.4.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.3.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.4.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-1.3.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.4.0.js` file.
+
+8. Add a new entry under `Plugins` in your `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.2.0 Projects to 1.3.0
+
+1. Install Cordova 1.3.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.2.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.3.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-1.2.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.3.0.js` file.
+
+8. Add a new entry under `Plugins` in your `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.1.0 Projects to 1.2.0
+
+1. Install Cordova 1.2.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.1.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.2.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-1.1.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.2.0.js` file.
+
+8. Add a new entry under `Plugins` in your `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 1.0.0 Projects to 1.1.0
+
+1. Install Cordova 1.1.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 1.0.0-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.1.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-1.0.0.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.1.0.js` file.
+
+8. Add a new entry under `Plugins` in your `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
+
+## Upgrading 0.9.6 Projects to 1.0.0
+
+1. Install Cordova 1.0.0.
+
+2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project.
+
+3. Create a new project. You will need some of the assets from this new project.
+
+4. Copy these files from the new project into your 0.9.6-based project directory on disk, replacing any old files (backup your files first from step 2 above):
+
+        AppDelegate.h
+        AppDelegate.m
+        MainViewController.h
+        MainViewController.m
+        MainViewController.xib
+
+5. Add all the `MainViewController` files into your Xcode project.
+
+6. Copy the `www/phonegap-1.0.0.js` file from the new project into your `www` directory, and delete your `www/phonegap-0.9.6.js` file.
+
+7. Update the Cordova script reference in your `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.0.0.js` file.
+
+8. Add a new entry under `Plugins` in your `PhoneGap.plist` file. The
+   key is `com.phonegap.battery` and the value is `PGBattery`.
+
+9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files.
diff --git a/docs/en/3.4.0/guide/platforms/ios/webview.md b/docs/en/3.4.0/guide/platforms/ios/webview.md
new file mode 100644
index 0000000..f99ba1a
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ios/webview.md
@@ -0,0 +1,185 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# iOS WebViews
+
+This section shows how to embed a Cordova-enabled WebView component
+within a larger iOS application. For details on how these components
+can communicate with each other, see Application Plugins.
+
+Support for iOS WebViews started with Cordova version 1.4, using a
+`Cleaver` component for which the Xcode template serves as a reference
+implementation.  Cordova 2.0 and later versions only support the
+subproject-based Cleaver implementation.
+
+These instructions require at least Cordova 2.3 and Xcode 4.5, along
+with a `config.xml` file from a newly created iOS project. You can use
+the procedure in The Command-Line Interface to create a new project,
+then obtain the `config.xml` file from within the named application's
+subdirectory within `platforms/ios`.
+
+To follow these instructions, make sure you have the latest Cordova
+distribution. Download it from
+[cordova.apache.org](http://cordova.apache.org) and unzip its iOS
+package.
+
+## Adding Cleaver to the Xcode Project (CordovaLib Sub-Project)
+
+1. Quit Xcode if it is running.
+
+1. Open a terminal and navigate to the source directory for Cordova
+   iOS.
+
+1. Copy the `config.xml` file described above into the project
+   directory.
+
+1. Open Xcode and use the Finder to copy the `config.xml` file into
+   its __Project Navigator__ window.
+
+1. Choose __Create groups for any added folders__ and press
+   __Finish__.
+
+1. Use the Finder to copy the `CordovaLib/CordovaLib.xcodeproj` file
+   into Xcode's __Project Navigator__
+
+1. Select `CordovaLib.xcodeproj` within the __Project Navigator__.
+
+1. Type the __Option-Command-1__ key combination to show the __File
+   Inspector__.
+
+1. Choose __Relative to Group__ in the __File Inspector__ for the
+   drop-down menu for __Location__.
+
+1. Select the __project icon__ in the __Project Navigator__, select
+   the __Target__, then select the __Build Settings__ tab.
+
+1. Add `-force_load` and `-Obj-C` for the __Other Linker Flags__ value.
+
+1. Click on the __project icon__ in the Project Navigator, select the
+   __Target__, then select the __Build Phases__ tab.
+
+1. Expand __Link Binaries with Libraries__.
+
+1. Select the __+__ button, and add the following __frameworks__.
+   Optionally within the __Project Navigator__, move them under the
+   __Frameworks__ group:
+
+        AddressBook.framework
+        AddressBookUI.framework
+        AudioToolbox.framework
+        AVFoundation.framework
+        CoreLocation.framework
+        MediaPlayer.framework
+        QuartzCore.framework
+        SystemConfiguration.framework
+        MobileCoreServices.framework
+        CoreMedia.framework
+
+1. Expand __Target Dependencies__, the top box with that label if
+   there's more than one box.
+
+1. Select the __+__ button, and add the `CordovaLib` build product.
+
+1. Expand __Link Binaries with Libraries__, the top box with that label
+  if there's more than one box.
+
+1. Select the __+__ button, and add `libCordova.a`.
+
+1. Set the __Xcode Preferences &rarr; Locations &rarr; Derived Data
+   &rarr; Advanced...__ to __Unique__.
+
+1. Select the __project icon__ in the Project Navigator, select your
+   __Target__, then select the __Build Settings__ tab.
+
+1. Search for __Header Search Paths__. For that setting, add these
+   three values below, including the quotes:
+
+        "$(TARGET_BUILD_DIR)/usr/local/lib/include"        
+        "$(OBJROOT)/UninstalledProducts/include"
+        "$(BUILT_PRODUCTS_DIR)"
+
+    As of Cordova 2.1.0, `CordovaLib` has been upgraded to use
+    __Automatic Reference Counting (ARC)__. You don't need to upgrade
+    to __ARC__ to use `CordovaLib`, but if you want to upgrade your
+    project to use __ARC__, you should use the Xcode migration wizard
+    from the __Edit &rarr; Refactor &rarr; Convert to Objective-C
+    ARC...__ menu, __de-select libCordova.a__, then run the wizard to
+    completion.
+
+## Using CDVViewController
+
+1. Add the following header:
+
+        #import <Cordova/CDVViewController.h>
+
+1. Instantiate a new `CDVViewController` and retain it somewhere,
+   e.g., to a class property:
+
+        CDVViewController* viewController = [CDVViewController new];
+
+1. Optionally, set the `wwwFolderName` property, which defaults to `www`:
+
+        viewController.wwwFolderName = @"myfolder";
+
+1. Optionally, set the start page in the `config.xml` file's
+   `<content>` tag, either a local file:
+
+        <content src="index.html" />
+
+    ...or a remote site:
+
+        <content src="http://apache.org" />
+
+1. Optionally, set the `useSplashScreen` property, which defaults to
+   `NO`:
+
+        viewController.useSplashScreen = YES;
+
+1. Set the __view frame__. Always set this as the last property:
+
+        viewController.view.frame = CGRectMake(0, 0, 320, 480);
+
+1. Add Cleaver to the view:
+
+        [myView addSubview:viewController.view];
+
+## Adding HTML, CSS and JavaScript Assets
+
+1. Create a new directory within the project, `www` for example.
+
+1. Place HTML, CSS and JavaScript assets into this directory.
+
+1. Use the Finder to copy the directory into Xcode's __Project
+   Navigator__ window.
+
+1. Select __Create folder references for any added folders__.
+
+1. Set the appropriate `wwwFolderName` and `startPage` properties for
+   the directory you initially created, or use the defaults (specified
+   in the previous section) when instantiating the
+   `CDVViewController`.
+
+        /*
+         if you created a folder called 'myfolder' and
+         you want the file 'mypage.html' in it to be
+         the startPage
+        */
+        viewController.wwwFolderName = @"myfolder";
+        viewController.startPage = @"mypage.html"
+
diff --git a/docs/en/3.4.0/guide/platforms/tizen/index.md b/docs/en/3.4.0/guide/platforms/tizen/index.md
new file mode 100644
index 0000000..537f4e0
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/tizen/index.md
@@ -0,0 +1,116 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Tizen Platform Guide
+
+This guide describes how to set up your SDK development environment to
+deploy Cordova apps for devices running the Tizen operating system.
+
+## Requirements and Support
+
+The Tizen SDK requires Linux Ubuntu 10.04/10.10/11.04/11.10 (32-bit),
+or Windows XP SP3/7 (32-bit).
+
+Developers should use the `cordova` utility in conjunction with
+the Tizen SDK.  See The Command-Line Interface for information
+how to install it, add projects, then build and deploy a project.
+
+## Install the SDK
+
+Download the Tizen SDK from
+[tizen.org](https://developer.tizen.org/sdk).
+
+<!--
+
+- (optional) Install Tizen Cordova template projects: copy the
+  `/templates` directory content into the Tizen Eclipse IDE web
+  templates directory (e.g.:
+  `/home/my_username/tizen-sdk/IDE/Templates/web`).
+
+- __Method #2: Use Tizen Eclipse IDE Cordova Tizen project templates__
+    - Launch Tizen Eclipse IDE
+    - Select  __File &rarr; New &rarr; Tizen Web Project__
+    - Select __User Template__ and __User defined__ items
+    - Select one of the Tizen Cordova template (e.g.: __CordovaBasicTemplate__)
+    - Fill the __Project name__ and its target __Location__
+
+    ![](img/guide/platforms/tizen/project_template.png)
+
+    - Click __Finish__
+
+    ![](img/guide/platforms/tizen/project_explorer.png)
+
+    - Your project should now appear in the __Project Explorer__ view
+
+-->
+
+## Open a Project in the SDK
+
+1. Launch the Tizen Eclipse IDE.
+
+2. Select __File &rarr; Import &rarr; Tizen Web Project__:
+
+   ![](img/guide/platforms/tizen/import_project.png)
+
+3. Press __Next__.
+
+4. Make sure __Select root directory__ is checked.
+
+5. Make sure __Copy projects into workspace__ is checked.
+
+6. Press __Browse__ and select the Cordova Tizen `samples` project directory (such as `/cordova-basic`):
+
+   ![](img/guide/platforms/tizen/import_widget.png)
+
+7. Press __Finish__. Your project should now be imported and appear in
+   the __Project Explorer__ view:
+
+   ![](img/guide/platforms/tizen/project_explorer.png)
+
+To rebuild the project, right-click in the __Project Explorer__ view
+and Select __Build Project__:
+
+![](img/guide/platforms/tizen/build_project.png)
+
+A widget package file such as _hello.wgt_ should generate in the
+project's root directory.
+
+## Deploy to Emulator
+
+Right-click the project in the __Project Explorer__ view and select
+__Run As &rarr; Tizen Web Simulator Application__:
+
+![](img/guide/platforms/tizen/runas_web_sim_app.png)
+
+## Deploy to Device
+
+* Make sure that the target device is properly launched, connected and
+  configured. Its __Date and Time__ settings must be set correctly.
+
+* Use the __Connection Explorer__ view to select the application
+  deployment target: __Window &rarr; Show View &rarr; Connection
+  Explorer__.
+
+  ![](img/guide/platforms/tizen/connection_explorer.png)
+
+* Right-click the project in the __Project Explorer__ view, then
+  select __Run As & rarr; Tizen Web Application__:
+
+  ![](img/guide/platforms/tizen/runas_web_app.png)
+
diff --git a/docs/en/3.4.0/guide/platforms/ubuntu/index.md b/docs/en/3.4.0/guide/platforms/ubuntu/index.md
new file mode 100644
index 0000000..e3f4c2b
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/ubuntu/index.md
@@ -0,0 +1,97 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Ubuntu Platform Guide
+
+## Initial Release
+
+Welcome to the initial release of Ubuntu platform support in Cordova. With this
+release, the focus is developing on an Ubuntu system and using the Cordova Web
+Project Dev Workflow. This includes adding the Ubuntu platform to your project,
+adding standard Cordova plugins, and, of course, building and running apps for
+the Ubuntu platform.
+
+### Ubuntu SDK
+
+You may also want to install the Ubuntu QtCreator development environment. See
+[developer.ubuntu.com](http://developer.ubuntu.com) for more info. (The
+QtCreator SDK is not required to add Ubuntu platform support to your Cordova
+app.)
+
+### Ubuntu Runtime Platforms
+
+Ubuntu is well-known for its Desktop environment (for laptops, PCs and such).
+Ubuntu Touch extends the Ubuntu OS onto phones and tablets. Ubuntu runtime
+platforms have varying CPU architectures (x86, armhf, etc.). App and plugin
+code must be compiled appropriately. Support for this broad area is rapidly
+evolving in the Ubuntu.
+
+### Latest Information
+
+For the latest information on Cordova app support for Ubuntu runtime platforms,
+see [wiki.ubuntu.com/Cordova](http://wiki.ubuntu.com/Cordova).
+
+## Development Platform Requirements
+
+For this initial release, the development platform should be an Ubuntu Desktop.
+Ubuntu 13.10 (codename ‘saucy’) or later is required to enjoy the full set of
+supported capabilities.
+
+You can install Cordova on non-Ubuntu systems (using npm), but important
+capabilities are only provided through Ubuntu debian packages at this time.
+
+## Cordova Installation
+
+Add the Ubuntu Cordova
+[Personal Package Archive](https://launchpad.net/~cordova-ubuntu/+archive/ppa)
+to your Ubuntu system:
+
+    $ sudo add-apt-repository ppa:cordova-ubuntu/ppa
+    $ sudo apt-get update
+
+Install cordova-cli package (and its dependencies):
+
+    $ sudo apt-get install cordova-cli
+
+## Project Workflow
+
+### Create a project
+
+    $ cordova create project1 REVERSEDNSNAME.project1 project1
+
+### Move into the Project Directory
+
+    $ cd project1
+
+### Add the Ubuntu Platform
+
+    $ cordova platform add ubuntu
+
+### Build for Ubuntu
+
+    $ cordova build ubuntu
+
+### Run the App
+
+    $ cordova run ubuntu
+
+### Add the Battery Status Plugin
+
+    $ cordova plugin add org.apache.cordova.battery-status
+
diff --git a/docs/en/3.4.0/guide/platforms/win8/index.md b/docs/en/3.4.0/guide/platforms/win8/index.md
new file mode 100644
index 0000000..fcd4bc8
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/win8/index.md
@@ -0,0 +1,124 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows 8 Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Windows 8. See the following for more
+detailed platform-specific information:
+
+* Upgrading Windows 8
+* Windows 8 Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+Microsoft deprecated the name _Metro-style apps_ in Windows 8 and
+Windows RT. MSDN now refers to this type of app as a _Windows Store_
+app, and this guide follows that convention. Also, in this guide
+_Windows 8_ signifies both Windows 8 and Windows RT.
+
+## Requirements
+
+- Windows 8
+
+- Visual Studio 2012 Professional or better, or Visual Studio 2012 Express for Windows 8
+
+Follow the instructions at
+[windowsstore.com](http://www.windowsstore.com/)
+to submit your app to Windows Store.
+
+## Install SDK and Cordova
+
+Set up your preferred variant of Visual Studio 2012. All of the
+product's paid versions (Professional, etc.) let you build Windows
+Store apps. You need __Express for Windows 8__ to build Windows Store
+apps using the
+[Express editions](http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products).
+
+Download and extract the latest copy of
+[Cordova](http://phonegap.com/download).
+These instructions apply to the `lib\windows-8` subdirectory.
+
+## Set up a New Project
+
+You can already build Windows 8 apps using the _HTML/JavaScript track_
+available in Windows Store apps. Use Cordova in Windows Store apps to
+expose the same APIs as on other Cordova-supported platforms.
+
+- Open Visual Studio 2012 and choose __New Project__.
+
+- Select __Installed &rarr; Template &rarr; Other Languages &rarr;
+  JavaScript &rarr; Windows Store__ from the tree, and then __Blank
+  App__ from the projects list. Enter whatever project name you like,
+  such as `CordovaWin8Foo` as in this example:
+
+    ![](img/guide/platforms/win8/wsnewproject.png)
+
+- Microsoft continues to use `default.html` as the default home page,
+  but most web developers use `index.html`. It's a good idea to do so,
+  at least to match other platforms you're likely working on.  To fix
+  this, in __Solution Explorer__ rename the `default.html` file to
+  `index.html`. Then double-click the `package.appxmanifest` file and
+  change the __Start page__ value to `index.html`:
+
+        ![](img/guide/platforms/win8/wschangemanifest.png)
+
+- To include `cordova.js` in your project, right-click on the `js`
+  directory in __Solution Explorer__ and select __Add &rarr; New
+  Item__. Locate the `cordova.js` file in the `lib\windows-8`
+  directory.
+
+- Edit the code for `index.html`. Add a reference to `cordova.js`. You
+  can do this manually, or by dragging the file from __Solution
+  Explorer__. Add the following other dependencies to the app's home page:
+
+            <!-- WinJS references -->
+            <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" />
+            <script src="//Microsoft.WinJS.1.0/js/base.js"></script>
+            <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>
+
+            <!-- Cordova -->
+            <script src="/js/cordova.js"></script>
+
+            <!-- CordovaWin8Foo references -->
+            <link href="/css/default.css" rel="stylesheet" />
+            <script src="/js/default.js"></script>
+
+- Add a `deviceready` handler to demonstrate Cordova is working:
+
+        <body>
+            <p>Content goes here</p>
+            <script type="text/javascript">
+                console.log("Subscribing...");
+                document.addEventListener("deviceready", function () {
+                    navigator.notification.alert("The device is ready!");
+                });
+            </script>
+        </body>
+
+## Test the Project
+
+Run the project from Visual Studio. You'll see the message box appear:
+
+        ![](img/guide/platforms/win8/wsalert.png)
+
+That's it. You're now ready to build Windows Store apps with Cordova.
+
diff --git a/docs/en/3.4.0/guide/platforms/win8/tools.md b/docs/en/3.4.0/guide/platforms/win8/tools.md
new file mode 100644
index 0000000..d6b1a1b
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/win8/tools.md
@@ -0,0 +1,50 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows 8 Command-line Tools
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for an overview.
+
+## Windows 8
+
+The Windows 8 command-line tools only support creating new projects.
+Commands must be run from a cmd or powershell prompt.
+
+## Create a Project
+
+Run the `create` command with the following parameters:
+
+* Path to your new Cordova Windows 8 project
+
+* Package Name, following reverse-domain style convention. This becomes the default Namespace.
+
+* Project name
diff --git a/docs/en/3.4.0/guide/platforms/win8/upgrading.md b/docs/en/3.4.0/guide/platforms/win8/upgrading.md
new file mode 100644
index 0000000..86d7c3b
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/win8/upgrading.md
@@ -0,0 +1,61 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Windows 8
+
+This guide shows how to modify Windows 8 projects to upgrade from older versions of Cordova.
+Most of these instructions apply to projects created with an older set
+of command-line tools that precede the `cordova` CLI utility. See The Command-Line Interface for information how to update the
+version of the CLI.
+
+## Upgrade to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update windows8`.
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to 3.1.0
+
+Cordova CLI support for Windows 8 was introduced in Cordova 3.1.0. To upgrade, we suggest creating a new Cordova CLI project and moving over all necessary assets.  
+
+## Upgrade to 2.9.0 from 2.8.0
+
+The following commands should be done from within Visual Studio to be sure that the any project references are updated/deleted.
+
+1. Remove `cordova-2.8.0.js` from the project's `www` directory.
+
+2. Add `cordova.js` file from the source to the project's `www` directory. (Note that the file no longer contains a version number in the filename.)
+
+3. Build and test!
+
+## Upgrade to 2.8.0 from 2.7.0
+
+The following commands should be done from within Visual Studio to be sure that the any project references are updated/deleted.
+
+1. Remove `cordova-2.7.0.js` from the project's `www` directory. 
+
+2. Add `cordova.js` file from the source to the project's `www` directory. (Note that the file no longer contains a version number in the filename.)
+
+3. Build and test!
diff --git a/docs/en/3.4.0/guide/platforms/wp7/index.md b/docs/en/3.4.0/guide/platforms/wp7/index.md
new file mode 100644
index 0000000..6bca35b
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/wp7/index.md
@@ -0,0 +1,131 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone 7 Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Windows Phone 7 devices.  Apps also run on
+Windows Phone 8 devices using the same APIs, but version 7 lacks some
+of IE10's advanced features available on Windows Phone 8. Windows
+Phone 8 apps do _not_ run on Windows Phone 7 devices.
+
+See the following for more detailed platform-specific information that
+applies to both versions:
+
+* Upgrading Windows Phone
+* Windows Phone Plugins
+* Windows Phone Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+## System Requirements
+
+Use Windows 7 or Windows 8 (Pro) or Windows Vista with SP2.  The
+64-bit version (x64) of Windows is required for the SDK.  The Pro
+version is recommended for running a device emulator.
+
+Register and pay for a [Windows Phone Dev
+Center](http://dev.windowsphone.com/en-us/publish) account if you want
+to install an app on a real device or submit it to Market Place.
+
+__NOTE__: Running the SDK in Virtual Machine may present challenges.
+Read [Windows Phone on a Mac](http://aka.ms/BuildaWP8apponaMac) for
+insights on developing solutions.
+
+## Install SDK and Cordova
+
+Download and install the [Windows Phone
+SDK](http://www.microsoft.com/en-us/download/details.aspx?id=27570).
+
+Download and extract the latest copy of
+[Cordova](http://cordova.apache.org/#download). You need to work in the
+`lib\windows-phone-8\wp7` subdirectory, `lib\windows-phone-8\wp8`
+contains the Windows Phone 8 version of Cordova.
+
+Copy the `CordovaWP7_x_x_x.zip` file to the `\My Documents\Visual
+Studio 2012\Templates\ProjectTemplates\` directory.
+
+## Building the Template
+
+__NOTE__: Skip this step if the `lib\windows-phone` directory already
+contains a `CordovaWP7_x_x_x.zip` file.
+
+To simplify development, Cordova bundles a script to build Visual
+Studio templates. These allow you to rapidly generate Cordova apps,
+and you can modify them if necessary.  The steps below show how to
+generate it.
+
+### Run the Batch File to Create and Install the Templates
+
+The root of the repo contains a `createTemplates.bat` file.
+Double-clicking this file generates two `.zip` files:
+`CordovaWP7_x_x_x.zip` and `CordovaWP8_x_x_x.zip`, where _3.4.0_ is
+the current version number. To use these files easily in Visual
+Studio, copy them to the `My Documents\Visual Studio
+2012\Templates\ProjectTemplates\` subdirectory. You are then able to
+create new __Apache Cordova Windows Phone_ apps from Visual Studio's
+__File &rarr; New Project__ menu.
+
+If you run the batch file from the command line, you can also call
+with a parameter to install automatically:
+
+        >createTemplates.bat -install
+
+## Set up a New Project
+
+- Open Visual Studio Express for Windows Phone and choose __New
+  Project__.
+
+- Select __CordovaWP7__. The version number displays in the template
+  description.
+
+- Give the project a name, and select __OK__.
+
+## Review the Project Structure
+
+The `www` directory features `html`, `js`, and `css` subdirectories
+and any other resources your app requires.
+Any additional content needs to be a part of the Visual Studio
+project, and it must be set as content.
+
+The following sample structure represents a 2.3.0 project, but may
+vary depending on installed version:
+
+![](img/guide/platforms/wp8/projectStructure.png)
+
+## Build the Project for the Device
+
+Before testing your application on a device, the device must be
+registered. Consult
+[Microsoft's documentation](http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402565(v=vs.105).aspx)
+for details on how to deploy and test on Windows Phone 7. These are
+the basic steps:
+
+- Make sure your phone is connected, and the screen is unlocked.
+
+- In Visual Studio, select __Device__ from the drop-down menu at the top.
+
+- Press the green __play__ button next to the main drop-down menu to
+  start debugging, or else type __F5__.
+
+![](img/guide/platforms/wp7/wpd.png)
+
+At this point, you're done.
diff --git a/docs/en/3.4.0/guide/platforms/wp8/index.md b/docs/en/3.4.0/guide/platforms/wp8/index.md
new file mode 100644
index 0000000..0eb107f
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/wp8/index.md
@@ -0,0 +1,162 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone 8 Platform Guide
+
+This guide shows how to set up your SDK development environment to
+deploy Cordova apps for Windows Phone 8 devices. If you want to target
+both 7.5 and 8 devices, develop for Windows Phone 7 instead as
+detailed in the Windows Phone 7 Platform Guide.  Version 7 does not
+have all the advanced features included in Internet Explorer 10, but
+implements the same set of APIs. Windows Phone 8 apps do _not_ run on
+Windows Phone 7 devices.
+
+See the following for more detailed platform-specific information that
+applies to both versions:
+
+- Upgrading Windows Phone
+- Windows Phone Plugins
+- Windows Phone Command-line Tools
+
+The command-line tools above refer to versions prior to Cordova 3.0.
+See The Command-Line Interface for information about the
+current interface.
+
+## System Requirements
+
+- Operating System:
+    - Windows 8 or Windows 8 Pro
+        - The 64-bit version (x64) of Windows is required for the SDK.
+        - The Pro version is recommended so you can run a device emulator.
+
+- Hardware:
+    - 6.5 GB of free hard disk space
+    - 4 GB RAM
+    - 64-bit (x64) CPU
+
+- Windows Phone 8 Emulator
+    - The phone emulator uses Hyper-V, so this list includes those pre-requisites.
+    - Windows 8 Pro 64-bit edition or greater
+    - Requires a processor that supports virtualization and [Second Level Address Translation (SLAT)](http://en.wikipedia.org/wiki/Second_Level_Address_Translation)
+        - See the [list of Intel processors that support VT-x (virtualization) and EPT (SLAT)](http://ark.intel.com/Products/VirtualizationTechnology)
+    - Enable the virtualization capability (i.e., VT-x on Intel) in your BIOS settings, as usually this is disabled by default.
+
+- SDK and IDE (Visual Studio)
+    - Visual Studio 2012 Professional, Premium, or Ultimate. Note that Visual Studio Express for Windows Phone (included in the SDK) is not recommended because you can not build the template (see below) with VS Express, as it does not have the __Export Template__ functionality, which is only in VS Pro or higher.
+
+- Register and pay for a [Windows Phone Dev Center](http://dev.windowsphone.com/en-us/publish) account if you want to install your app on a real device or submit it to Market Place.
+
+__NOTE__: Running the SDK in Virtual Machine might present some challenges. You can read this blog post that gives insight on the solutions to develop for [Windows Phone on a Mac](http://aka.ms/BuildaWP8apponaMac).
+
+## Install SDK and Cordova
+
+Download and install [Windows Phone
+SDK](http://www.microsoft.com/en-us/download/details.aspx?id=35471).
+
+Download and extract the latest copy of
+[Cordova](http://phonegap.com/download). The `lib\windows-phone-8\wp8`
+subdirectory is where you need to do your work.
+
+Copy the `CordovaWP8_x_x_x.zip` file to the `\My Documents\Visual
+Studio 2012\Templates\ProjectTemplates\` directory.
+
+## Building the Template
+
+__NOTE__: Skip this step if the `lib\windows-phone` directory already
+contains a `CordovaWP8_x_x_x.zip` file.
+
+To simplify development, Cordova bundles a script to build Visual
+Studio templates. These allow you to rapidly generate Cordova apps,
+and you can modify them if necessary.  The steps below show how to
+generate it.
+
+### Run the Batch File to Create and Install the Templates
+
+The repo's root directory contains a `createTemplates.bat` file.
+Double-click this to generate two `.zip` files: `CordovaWP7_x_x_x.zip`
+and `CordovaWP8_x_x_x.zip`, where _3.4.0_ is the current version
+number. To use these files easily in Visual Studio, copy them to `My
+Documents\Visual Studio 2012\Templates\ProjectTemplates\`. You are
+then able to create new Apache Cordova Windows Phone apps from the
+__Visual Studio File &rarr; New Project__ menu.
+
+If you run the batch file from the command line, you can also call it
+with a parameter to install automatically:
+
+        >createTemplates.bat -install
+
+## Set up a New Project
+
+Open Visual Studio Express for Windows Phone and choose __New
+Project__.
+
+Select __CordovaWP8__. The version number is displayed in the
+template description.
+
+Give the project a name, and select __OK__.
+
+![](img/guide/platforms/wp8/StandAloneTemplate.png)
+
+## Review the Project Structure
+
+The `www` directory features `html`, `js`, and `css` subdirectories
+and any other resources your app requires.
+Any additional content needs to be a part of the Visual Studio
+project, and it must be set as content.
+
+The following sample structure represents a 2.3.0 project, but may
+vary depending on the installed version:
+
+![](img/guide/platforms/wp8/projectStructure.png)
+
+## Build and Deploy to Emulator
+
+Make sure __Windows Phone Emulator__ is selected in the main drop-down menu.
+
+Then press the green __play__ button next to the drop-down menu to
+start debugging, or type __F5__.
+
+![](img/guide/platforms/wp8/BuildEmulator.png)
+
+## Build the Project for the Device
+
+Before testing your application on a device, the device must be
+registered. Consult
+[Microsoft's documentation](http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402565(v=vs.105).aspx)
+for details on how to deploy and test on Windows Phone 8. These are
+the basic steps:
+
+- Make sure your phone is connected, and the screen is unlocked.
+
+- In Visual Studio, select __Device__ from the drop-down menu at the top.
+
+- Press the green __play__ button next to the main drop-down menu to
+  start debugging, or else type __F5__.
+
+![](img/guide/platforms/wp7/wpd.png)
+
+At this point, you're done.
+
+## Further Reading
+
+The Windows Phone Developer Blog provides
+[helpful details](http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx)
+on differences between IE10 and WebKit browsers, and how to support
+both.
+
diff --git a/docs/en/3.4.0/guide/platforms/wp8/plugin.md b/docs/en/3.4.0/guide/platforms/wp8/plugin.md
new file mode 100644
index 0000000..194f682
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/wp8/plugin.md
@@ -0,0 +1,224 @@
+--
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone Plugins
+
+This section provides details for how to implement native plugin code
+on the Windows Phone platform. Before reading this, see Application
+Plugins for an overview of the plugin's structure and its common
+JavaScript interface. This section continues to demonstrate the sample
+_echo_ plugin that communicates from the Cordova webview to the native
+platform and back.
+
+Writing a plugin for Cordova on Windows Phone requires a basic
+understanding of Cordova's architecture. Cordova-WP7 consists of a
+`WebBrowser` that hosts the application's JavaScript code and manages
+native API calls. You can extend a C# `BaseCommand` class
+(`WP7CordovaClassLib.Cordova.Commands.BaseCommand`), which comes with
+most of the functionality you need:
+
+1. Select your project, and right-click to choose __Add &rarr; New
+   Item...__ If you wish, you can add it to the `Plugins` folder.
+
+2. Select __Class__ and name it `Echo.cs`.  This class name must
+   _exactly_ match what you call specify as the service in the
+   `cordova.exec()` call on the JavaScript side.
+
+3. Include the base classes implementation:
+
+        using WPCordovaClassLib.Cordova;
+        using WPCordovaClassLib.Cordova.Commands;
+        using WPCordovaClassLib.Cordova.JSON;
+
+4. Extend your class from `BaseCommand`:
+
+        public class Echo : BaseCommand
+        {
+            // ...
+        }
+
+5. Add an `echo` method that is callable from JavaScript:
+
+        public class Echo : BaseCommand
+        {
+            public void echo(string options)
+            {
+                // all JS callable plugin methods MUST have this signature!
+                // public, returning void, 1 argument that is a string
+            }
+        }
+
+See the
+[BaseCommand.cs](https://github.com/apache/cordova-wp7/blob/master/templates/standalone/cordovalib/Commands/BaseCommand.cs)
+class for methods available for the plugin to override.  For example,
+the plugin can capture 'pause' and 'resume' events.
+
+## Namespaces
+
+The default namespace for unqualified commands is:
+
+        namespace Cordova.Extension.Commands
+        {
+            // ...
+        }
+
+If you want to specify your own namespace, you need to make a fully
+qualified call to `cordova.exec`. For example, if you want to define
+your C# class like this:
+
+        namespace com.mydomain.cordovaExtensions
+        {
+            public class Echo : BaseCommand
+            {
+                // ...
+            }
+        }
+
+The JavaScript would need to call `exec` like this:
+
+        cordova.exec(win, fail, "com.mydomain.cordovaExtensions.Echo", ...);
+
+## Interpreting Arguments in C#
+
+In the example discussed in Application Plugins, the data your plugin
+receives is a string, but what if you want to pass an array of
+strings?  Suppose the JavaScript `cordova.exec` call is specified like
+this:
+
+        cordova.exec(win, fail, "Echo", "echo", ["input string"]);
+
+The value of `options` string passed to the `Echo.echo` method is
+JSON:
+
+        "[\"input string\"]"
+
+All JavaScript `exec` arguments are JSON-encoded before being passed
+into C#, and so need to be decoded:
+
+        string optVal = JsonHelper.Deserialize<string[]>(options)[0];
+        // optVal now has the value of "input string"
+
+## Passing Results from C# to JavaScript
+
+The `BaseCommand` class provides methods to pass data to JavaScript
+callback handlers.  If you simply want to signal success with no
+accompanying result, you can simply call:
+
+        DispatchCommandResult();
+        // calls back with an empty plugin result, considered a success callback
+
+To pass data back, you need to call `DispatchCommandResult`
+differently:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Everything went as planned, this is a result that is passed to the success handler."));
+
+Use an encoded JSON string to pass structured object data back to
+JavaScript:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "{result:\"super awesome!\"}"));
+
+To signal an error, call `DispatchCommandResult` with a `PluginResult`
+object whose status is `ERROR`:
+
+        DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Echo signaled an error"));
+
+## Handling Serialization Errors
+
+When interpreting your arguments, `try`/`catch` blocks help screen out
+bad input. This pattern appears throughout the Cordova C# code:
+
+        string optVal = null;
+
+        try
+        {
+            optVal = JsonHelper.Deserialize<string[]>(options)[0];
+        }
+        catch(Exception)
+        {
+            // simply catch the exception, we handle null values and exceptions together
+        }
+
+        if (optVal == null)
+        {
+            DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+        }
+        else
+        {
+            // ... continue on to do our work
+        }
+
+## Plugin XML
+
+The following shows how to use the `plugin.xml` file to specify a
+plugin's source files on the Windows Phone platform.  See Application
+Plugins for an overview, and Plugin Specification for details on
+available options.
+
+- The `<source-file>` element defines all plugin resources, such
+  as _.cs_, _.xaml_, _.xaml.cs_, and _.dll_ files, and image assets.
+
+- The `<config-file>` element defines elements to inject into a
+  configuration file. This example adds a plugin to the platform's
+  `config.xml` file:
+
+        <config-file target="config.xml" parent="/*">
+            <feature name="PluginName">
+                <param name="wp-package" value="PluginName"/>
+            </feature>
+        </config-file>
+
+  This example adds the contacts capability to the `WMAppManifest.xml`
+  file:
+
+        <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
+            <Capability Name="ID_CAP_CONTACTS" />
+        </config-file>
+
+## Debugging Plugins
+
+Use Visual Studio's debugger to debug a plugin's C# component. You can
+set a break point at any of the methods exposed by your class.
+
+JavaScript is more difficult to debug on Windows Phone. You need to
+use `console.log` to output the plugin's state, or to inform
+yourself of errors.
+
+## Common Pitfalls
+
+- Be careful not to pass arguments from JavaScript to the native side
+  that are difficult to deserialize as JSON. Most device platforms
+  expect the argument passed to `cordova.exec()` to be an array, such
+  as the following:
+
+        cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", 54, {literal:'trouble'}]);
+
+  This may result in an overly complex string value for C# to decode:
+
+        "[\"this is a string\", 54, { literal:'trouble' }]"
+
+  Instead, consider converting _all_ parameters to strings before
+  calling `exec()`, and decoding each separately:
+
+        cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", "54", "{literal:'trouble'}"]);
+        string[] optValues = JsonHelper.Deserialize<string[]>(options);
+
+- It is usually better to check parameters in JavaScript before
+  calling `exec()`. Doing so allows you to re-use more code and pull
+  unnecessary functionality from the plugin's various native
+  implementations.
diff --git a/docs/en/3.4.0/guide/platforms/wp8/tools.md b/docs/en/3.4.0/guide/platforms/wp8/tools.md
new file mode 100644
index 0000000..3d4c811
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/wp8/tools.md
@@ -0,0 +1,113 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Windows Phone Command-line Tools
+
+The `cordova` command-line utility is a high-level tool that allows
+you to build applications across several platforms at once. An older
+version of the Cordova framework provides sets of command-line tools
+specific to each platform. To use them as an alternative to the CLI,
+you need to download this version of Cordova from
+[cordova.apache.org](http://cordova.apache.org). The download contains
+separate archives for each platform. Expand the platform you wish to
+target. The tools described here are typically available in the
+top-level `bin` directory, otherwise consult the __README__ file for
+more detailed directions.
+
+For information on the low-level command-line interface that enables
+plugins, see Using Plugman to Manage Plugins. See Application Plugins
+for an overview.
+
+## Windows Phone
+
+The Windows Phone command-line tools support creating, building, and
+running new projects. Commands must be run from a cmd or powershell
+prompt.
+
+The WP8 repo now includes code for building both WP7 + WP8 apps.  The
+repo has subdirectories for each: `wp7/` and `wp8/`.
+
+## Create a Project
+
+There are 2 ways to go about creating a new Apache Cordova WP7 or WP8 application.
+
+### Run the Batch File to Create and Install the Templates
+
+- The root of the repo contains a `createTemplates.bat` file.
+  Double-clicking it generates two `.zip` files:
+  `CordovaWP7_x_x_x.zip` and `CordovaWP8_x_x_x.zip`, where _3.4.0_
+  represents the current version number. To easily use these files in
+  Visual Studio, copy them to `My Documents\Visual Studio
+  2012\Templates\ProjectTemplates\`. You are then able to create
+  new Apache Cordova Windows Phone apps from Visual Studio's
+  __File &rarr; New Project__ menu.
+
+- If you run the batch file from the command line, you can also call with a parameter to install automatically
+
+Run the script :
+
+    >createTemplates.bat -install
+
+### Use the Create Scripts on the Command Line
+
+Run the `create` command, specifying the existing path to the project,
+the reverse-domain-style package identifier, and the app's display
+name.  Here is the syntax for both Windows Phone 7 and 8:
+
+    >.\wp7\bin\create PathToNewProject [ PackageName ] [ AppName ]
+    >.\wp8\bin\create PathToNewProject [ PackageName ] [ AppName ]
+
+    >PathToNewProject : The path to where you wish to create the project
+    >PackageName      : The namespace for the project (default is Cordova.Example)
+    >AppName          : The name of the application (default is CordovaWP8AppProj or CordovaWP7AppProj)
+
+    >examples:
+    >.\wp7\bin\create C:\path\to\my_new_project
+    >.\wp8\bin\create C:\path\to\my_new_project io.cordova.example CordovaWP8App
+
+Launch Visual Studio and open Solution file (.sln) in (C:\path\to\my_new_project)
+
+Build and Run it
+
+## Building the Project (Clean, then Build)
+
+* Debug
+
+    $ C:\path\to\my_new_project\cordova\build --debug
+
+* Release
+
+    $ C:\path\to\my_new_project\cordova\build --release
+
+## Running the App
+
+Run the 'run' command with the following *optional* parameters
+
+* Target specification. This includes `--emulator`, `--device`, or `--target=<targetID>`.
+
+* Build specification. This includes `--debug`, `--release`, or `--nobuild`.
+
+    $ C:\path\to\my_new_project\cordova\run [Target] [Build]
+
+By default the `run` command is called with `--emulator --debug` if flags are not provided.
+
+## Cleaning
+
+    $ C:\path\to\my_new_project\cordova\clean
+
diff --git a/docs/en/3.4.0/guide/platforms/wp8/upgrading.md b/docs/en/3.4.0/guide/platforms/wp8/upgrading.md
new file mode 100644
index 0000000..3c5a1f3
--- /dev/null
+++ b/docs/en/3.4.0/guide/platforms/wp8/upgrading.md
@@ -0,0 +1,435 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Upgrading Windows Phone
+
+This guide shows how to modify Windows Phone projects, both versions 7
+and 8, to upgrade from older versions of Cordova.  Most of these
+instructions apply to projects created with an older set of
+command-line tools that precede the `cordova` CLI utility. See The
+Command-Line Interface for information how to update the version of
+the CLI.  The following section shows how to upgrade from non-CLI
+projects.
+
+## Upgrade to 3.2.0 from 3.1.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update wp8` (or `wp7`, per the platforms you added to your project).
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to 3.1.0 from 3.0.0
+
+For projects that were created with the cordova CLI: 
+
+1. Update the `cordova` CLI version. See The Command-Line Interface. 
+
+2. Run `cordova platform update wp8` (or `wp7`, per the platforms you added to your project).
+        
+For projects not created with the cordova CLI, run:
+
+        bin\update <project_path>
+
+## Upgrade to the CLI (3.0.0) from 2.9.0
+
+1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as
+   described in The Command-Line Interface.
+
+2. Add your platforms to the cordova project, for example: `cordova
+   platform add wp7 wp8`.
+
+3. Copy the contents of the project's `www` directory to the `www` directory
+   at the root of the cordova project you just created.
+
+4. Copy or overwrite any native assets from your original project
+   (`SplashScreen`, `ApplicationIcon`, etc.), making sure to add any
+   new files to the `.csproj` file. The windows phone project builds
+   inside the `platforms\wp7` or `platforms\wp8` directory.
+
+5. Use the cordova CLI tool to install any plugins you need. Note that
+   the CLI handles all core APIs as plugins, so they may need to be
+   added. Only 3.0.0 plugins are compatible with the CLI.
+
+6. Build and test.
+
+## Upgrade to 3.0.0 (non-CLI) from 2.9.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 3.0.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Copy and overwrite any splash screen, or icon images.
+
+4. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project. 
+
+5. Build and test.
+
+__NOTE__: all core APIs are removed from Cordova version 3.0, and must
+be installed separately as plugins.  For more information on how to
+re-enable these features in a non-CLI workflow, see Using Plugman to
+Manage Plugins.
+
+## Upgrade to 2.9.0 from 2.8.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.9.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update the name of `cordova.js` in the HTML tag if it's still using cordova-VERSION.js (should be just `cordova.js`).
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the .csproj file.
+
+6. Build and test.
+
+## Upgrade to 2.8.0 from 2.7.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.8.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova.js` file. (Note the lack of a version number in the filename.)
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.7.0 from 2.6.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.7.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.7.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.6.0 from 2.5.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.6.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.6.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.5.0 from 2.4.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.5.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.5.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.4.0 from 2.3.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 or WP8 2.4.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.4.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.3.0 from 2.2.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 2.3.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.3.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.2.0 from 2.1.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 2.2.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.2.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.1.0 from 2.0.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 2.1.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.1.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 2.0.0 from 1.9.0
+
+There have been considerable changes to the WP7 project structure in Apache Cordova 2.0.0 which make this upgrade a little more involved that the others. Essentially this is not an upgrade but creation of a new project and copy over of existing source files.
+
+In Visual Studio's Solution Explorer window:
+
+1. Create a new Apache Cordova WP7 2.0 Project.
+
+2. Copy the contents of your `www` directory to the new project, and be sure these items are added to the VS project.
+
+3. Update your HTML to use the new `cordova-2.0.0.js` file.
+
+4. Copy and overwrite any splash screen, or icon images.
+
+5. Copy over any plugins from the `plugins` directory to the new project and ensure that they are also added to the VS project.
+
+6. Build and test.
+
+## Upgrade to 1.9.0 from 1.8.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.9.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.9.0.js` file.
+
+## Upgrade to 1.8.0 from 1.7.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.8.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.8.0.js` file.
+
+## Upgrade to 1.7.0 from 1.6.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.7.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.7.0.js` file.
+
+## Upgrade to 1.6.1 from 1.6.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.6.1.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.6.1.js` file.
+
+## Upgrade to 1.6.0 from 1.5.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.6.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.6.0.js` file.
+
+## Upgrade to 1.5.0 from 1.4.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.5.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.5.0.js` file.
+
+## Upgrade to 1.4.0 from 1.3.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.4.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.4.0.js` file.
+
+## Upgrade to 1.3.0 from 1.2.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.3.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.3.0.js` file.
+
+## Upgrade to 1.2.0 from 1.1.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: You can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.2.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.2.0.js` file.
+
+## Upgrade to 1.1.0 from 1.0.0
+
+In Visual Studio's Solution Explorer window:
+
+1. Delete `GapLib/WP7CordovaClassLib.dll` from your project.
+
+2. Remove the reference to `WP7CordovaClassLib` in the __References__ directory.
+
+3. Right-click on __References__ and select __Add Reference__.
+
+4. Navigate to the new distribution and add the `WP7CordovaClassLib.dll` file.
+
+    __NOTE__: you can view the DLL's version by right-clicking on the reference, and selecting __Properties__.
+
+5. Copy the new `cordova-1.1.0.js` into your project. (Be sure it is marked as Content.)
+
+6. Update your HTML to use the new `cordova-1.1.0.js` file.
diff --git a/docs/en/3.4.0/guide/support/index.md b/docs/en/3.4.0/guide/support/index.md
new file mode 100644
index 0000000..ce03743
--- /dev/null
+++ b/docs/en/3.4.0/guide/support/index.md
@@ -0,0 +1,324 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+
+---
+
+# Platform Support
+
+The following shows the set of development tools and device APIs
+available for each mobile platform. (Column headers display the
+CLI's shorthand stubs.)
+
+<!-- START HTML -->
+
+<table class="compat" width="100%">
+
+<thead>
+    <tr>
+        <th></td>
+        <th><tt>amazon-fireos</tt></th>
+        <th><tt>android</tt></th>
+        <th><tt>blackberry10</tt></th>
+        <th><tt>Firefox OS</tt></th>
+        <th><tt>ios</tt></th>
+        <th><tt>Ubuntu</tt></th>
+        <th><tt>wp7</tt> (Windows<br/>Phone 7)</th>
+        <th><tt>wp8</tt> (Windows<br/>Phone 8)</th>
+        <th><tt>win8</tt><br/>(Windows 8)</th>
+<!--        <th><tt>firefoxos</tt></th> -->
+        <th><tt>tizen</tt></th>
+    </tr>
+
+</thead>
+
+<tbody>
+    <tr>
+        <th><a href="guide_cli_index.md.html">cordova<br/>CLI</a></th>
+        <td data-col="amazon-fireos" class="y">Mac, Windows, Linux</td>
+        <td data-col="android"    class="y">Mac, Windows, Linux</td>
+        <td data-col="blackberry10" class="y">Mac, Windows</td>
+        <td data-col="firefoxos" class="y">Mac, Windows, Linux</td>
+        <td data-col="ios"        class="y">Mac</td>
+        <td data-col="ubuntu"        class="y">Ubuntu</td>
+        <td data-col="winphone7"  class="y">Windows</td>
+        <td data-col="winphone8"  class="y">Windows</td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="guide_hybrid_webviews_index.md.html">Embedded<br/>WebView</a></th>
+        <td data-col="amazon-fireos" class="y"><a href="guide_platforms_amazonfireos_webview.md.html">(see details)</a></td>
+        <td data-col="android"    class="y"><a href="guide_platforms_android_webview.md.html">(see details)</a></td>
+        <td data-col="blackberry10" class="n"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"><a href="guide_platforms_ios_webview.md.html">(see details)</a></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="n"></td>
+        <td data-col="winphone8"  class="n"></td>
+        <td data-col="win8"       class="n"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="guide_hybrid_plugins_index.md.html">Plug-in<br/>Interface</a></th>
+         <td data-col="amazon-fireos" class="y"><a href="guide_guide_platforms_amazonfireos_plugin.md.html">(see details)</a></td>
+        <td data-col="android"    class="y"><a href="guide_guide_platforms_android_plugin.md.html">(see details)</a></td>
+        <td data-col="blackberry10" class="y"><a href="guide_guide_platforms_blackberry10_plugin.md.html">(see details)</a></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"><a href="guide_guide_platforms_ios_plugin.md.html">(see details)</a></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"><a href="guide_guide_platforms_wp8_plugin.md.html">(see details)</a></td>
+        <td data-col="winphone8"  class="y"><a href="guide_guide_platforms_wp8_plugin.md.html">(see details)</a></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th></th>
+        <th colspan="20">Platform APIs</th>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_accelerometer_accelerometer.md.html">Accelerometer</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_camera_camera.md.html">Camera</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_media_capture_capture.md.html">Capture</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="n"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_compass_compass.md.html">Compass</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y">(3GS+)</td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_connection_connection.md.html">Connection</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_contacts_contacts.md.html">Contacts</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="n"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_device_device.md.html">Device</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_events_events.md.html">Events</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_file_file.md.html">File</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_geolocation_geolocation.md.html">Geolocation</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="y"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_globalization_globalization.md.html">Globalization</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="n"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="n"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_inappbrowser_inappbrowser.md.html">InAppBrowser</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="p">uses iframe</td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_media_media.md.html">Media</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_notification_notification.md.html">Notification</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_splashscreen_splashscreen.md.html">Splashscreen</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y"></td>
+        <td data-col="winphone8"  class="y"></td>
+        <td data-col="win8"       class="y"></td>
+        <td data-col="tizen"       class="n"></td>
+    </tr>
+
+    <tr>
+        <th><a href="cordova_storage_storage.md.html">Storage</a></th>
+        <td data-col="amazon-fireos" class="y"></td>
+        <td data-col="android"    class="y"></td>
+        <td data-col="blackberry10" class="y"></td>
+        <td data-col="firefoxos" class="n"></td>
+        <td data-col="ios"        class="y"></td>
+        <td data-col="ubuntu"        class="y"></td>
+        <td data-col="winphone7"  class="y">localStorage &amp; indexedDB</td>
+        <td data-col="winphone8"  class="y">localStorage &amp; indexedDB</td>
+        <td data-col="win8"       class="y">localStorage &amp; indexedDB</td>
+        <td data-col="tizen"       class="y"></td>
+    </tr>
+
+</tbody>
+</table>
+
+<!-- END HTML -->
diff --git a/docs/en/3.4.0/index.md b/docs/en/3.4.0/index.md
new file mode 100644
index 0000000..c65a5b5
--- /dev/null
+++ b/docs/en/3.4.0/index.md
@@ -0,0 +1,90 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+<div id="home">
+
+    <h1>Guides</h1>
+    <ul>
+        <li>
+            <h2>Overview</h2>
+            <span>Start here if you are new to Cordova.</span>
+        </li>
+        <li>
+            <h2>Platform Support</h2>
+            <span>Compatibility table for all major features.</span>
+        </li>
+        <li>
+            <h2>The Command-Line Interface</h2>
+            <span>Create, build, and deploy from the command-line.</span>
+        </li>
+        <li>
+            <h2>Platform Guides</h2>
+            <span>Set up each SDK and update projects</span>
+        </li>
+        <li>
+         <h2>Using Plugman to Manage Plugins</h2>
+            <span>Using Plugman to manage Plugins without the CLI</span>
+        </li>
+        <li>
+            <h2>The config.xml File</h2>
+            <span>Customize the features of your app.</span>
+        </li>
+        <li>
+            <h2>Icons and Splash Screens</h2>
+            <span>Customize the app's displaying images.</span>
+        </li>
+        <li>
+            <h2>Embedding WebViews</h2>
+            <span>Implement the Cordova WebView in your project.</span>
+        </li>
+        <li>
+            <h2>Plugin Development Guide</h2>
+            <span>Develop your first plugin.</span>
+        </li>
+        <li>
+            <h2>Privacy Guide</h2>
+            <span>Learn about important mobile privacy issues.</span>
+        </li>
+        <li>
+            <h2>Whitelist Guide</h2>
+            <span>Grant an application access to external resources.</span>
+        </li>
+        <li>
+            <h2>Storage</h2>
+            <span>An overview of native storage options.</span>
+        </li>
+        <li>
+            <h2><a href="_index.html">Keyword Index</a></h2>
+            <span>Full index of the documentation.</span>
+        </li>
+    </ul>
+
+    <h1>API Reference</h1>
+    <ul>
+        <li>
+            <h2>Events</h2>
+            <span>Hook into native events through JavaScript.</span>
+        </li>
+        <li>
+            <h2>Plugin APIs</h2>
+            <span>Discover what plugins Cordova are available to using in your project.</span>
+        </li>
+    </ul>
+
+</div>
diff --git a/docs/en/3.4.0/plugin_ref/plugman.md b/docs/en/3.4.0/plugin_ref/plugman.md
new file mode 100644
index 0000000..b8d0776
--- /dev/null
+++ b/docs/en/3.4.0/plugin_ref/plugman.md
@@ -0,0 +1,193 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Using Plugman to Manage Plugins
+
+From version 3.0 onward, Cordova implements all device APIs as
+plugins, and leaves them disabled by default. It also supports two
+different ways to add and remove plugins. The first is by using the
+`cordova` CLI described in The Command-Line Interface. The second is
+by using a lower-level
+[Plugman](https://github.com/apache/cordova-plugman/)
+command-line interface ("Native platform dev" workflow.) The main difference between these two development
+paths is that Plugman can only add plugins to one platform at a time, whereas the CLI will add plugins
+to all of the platforms that you are targeting.  Because of this, it makes more sense to use Plugman when
+you are working closely with a single platform, hence the "Native Platform Dev" name of the workflow. 
+
+For more information on Plugman, especially if you are interested in consuming Plugman as a node module 
+or hacking on the Plugman code, see [the README file in its repository](https://github.com/apache/cordova-plugman/blob/master/README.md).
+
+## Installing Plugman
+
+To install plugman, you must have [node](http://nodejs.org/) installed
+on your machine. Then you can run the following command from anywhere in your environment to install plugman globally, so that it
+is available from any directory on your machine:
+
+    $ npm install -g plugman
+
+You must have also have `git` on your `PATH` to be able to install plugins directly from remote git URLs.
+
+**TIP:** If you find that after installing plugman with npm you are still unable to run any `plugman` commands, make sure that you have
+added the `/npm/` directory into your `PATH`. 
+
+**NOTE:** You can skip this step if you don't want to pollute your global npm namespace by installing Plugman globally. If this is the case, then
+when you create a Cordova project with the shell tools, there will be a `node_modules` directory inside your project which contains Plugman. 
+Since you did not install globally, you will have to invoke node for every Plugman command, for example `node ./node_modules/plugman/main.js -version`.
+The rest of this guide assumes you have installed Plugman globally, meaning you can invoke it with just `plugman`. 
+
+## Create a Cordova Project
+
+Before you can use Plugman, you must create a Cordova project.  You can do this with either the Command-line Interface or with
+the lower level shell scripts. Instructions for using the shell scripts to create your project are located in the various "Command-line Tools" guides
+listed on the Platform Guides page. 
+
+## Adding a Plugin
+
+Once you have installed Plugman and have created a Cordova project, you can start adding plugins to the platform with:
+
+    $ plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]
+
+Using minimum parameters, this command installs a plugin into a cordova project. You must specify a platform and cordova project location for that platform. You also must specify a plugin, with the different `--plugin` parameter forms being:
+
+  * `name`: The directory name where the plugin contents exist. This must be an existing directory under the `--plugins_dir` path (see below for more info) or a plugin in the Cordova registry.
+  * `url`: A URL starting with https:// or git://, pointing to a valid git repository that is clonable and contains a `plugin.xml` file. The contents of this repository would be copied into the `--plugins_dir`.
+  * `path`: A path to a directory containing a valid plugin which includes a `plugin.xml` file. This path's contents will be copied into the `--plugins_dir`.
+  
+Other parameters: 
+
+* `--plugins_dir` defaults to `<project>/cordova/plugins`, but can be any directory containing a subdirectory for each fetched plugin.
+* `--www` defaults to the project's `www` folder location, but can be any directory that is to be used as cordova project application web assets.
+* `--variable` allows to specify certain variables at install time, necessary for certain plugins requiring API keys or other custom, user-defined parameters. Please see the [plugin specification](plugin_spec.md) for more information.
+
+## Remove a Plugin
+
+To uninstall a plugin, you simply pass the `--uninstall` flag and provide the plugin ID.
+
+    $ plugman --uninstall --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
+
+
+## Help Commands
+
+Plugman features a global help command which may help you if you get stuck or are experiencing problems. It will display
+a list of all available Plugman commands and their syntax:
+
+    plugman -help
+    plugman  # same as above
+
+   **NOTE**: `plugman -help` may show some additional registry-related commands. These commands are for plugin developers and may not be implemented on third-party plugin registries.
+
+
+You can also append the `--debug|-d` flag to any Plugman command to run that command in verbose mode, which will display
+any internal debugging messages as they are emitted and may help you track down problems like missing files. 
+
+    # Adding Android battery-status plugin to "myProject":
+    plugman -d --platform android --project myProject --plugin org.apache.cordova.battery-status
+
+Finally, you can use the `--version|-v` flag to see which version of Plugman you are using.
+
+    plugman -v
+    
+## Registry Actions
+
+There are a number of plugman commands that can be used for interacting with the [Plugin registry](http://plugins.cordova.io).
+Please note that these registry commands are specific to the _plugins.cordova.io_ plugin registry and may not be implemented by
+third-party plugin registries.
+
+### Searching for a Plugin
+
+You can use Plugman to search the [Plugin registry](http://plugins.cordova.io) for plugin id's that match the given space separated list of keywords.
+
+    plugman search <plugin keywords>
+
+### Changing the Plugin Registry
+
+You can get or set the URL of the current plugin registry that plugman is using. Generally you should leave this set at http://registry.cordova.io unless you want to use a third party plugin registry.
+
+    plugman config set registry <url-to-registry>
+    plugman config get registry
+
+### Get Plugin Information
+
+You can get information about any specific plugin stored in the plugin repository with:
+
+    plugman info <id>
+
+This will contact the plugin registry and fetch information such as the plugin's version number. 
+
+## Installing Core Plugins
+
+The examples below show how to add plugins as needed so that any
+Cordova APIs you use in your project still work after you upgrade to
+version 3.0.  For each command, you need to select the target
+platform, and reference the platform's project directory.
+
+* cordova-plugin-battery-status
+
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.battery-status
+
+* cordova-plugin-camera
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.camera
+    
+* cordova-plugin-console
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.console
+
+* cordova-plugin-contacts
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.contacts
+    
+* cordova-plugin-device
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.device
+
+* cordova-plugin-device-motion (accelerometer)
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.device-motion
+
+* cordova-plugin-device-orientation (compass)
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.device-orientation
+
+* cordova-plugin-dialogs
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.dialogs
+
+* cordova-plugin-file
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.file
+
+* cordova-plugin-file-transfer
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.file-transfer
+
+* cordova-plugin-geolocation
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.geolocation
+
+* cordova-plugin-globalization
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.globalization
+
+* cordova-plugin-inappbrowser
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.inappbrowser
+
+* cordova-plugin-media
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.media
+
+* cordova-plugin-media-capture
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.media-capture
+
+* cordova-plugin-network-information
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.network-information
+
+* cordova-plugin-splashscreen
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.splashscreen
+
+* cordova-plugin-vibration
+    plugman --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin org.apache.cordova.vibration
diff --git a/docs/en/3.4.0/plugin_ref/spec.md b/docs/en/3.4.0/plugin_ref/spec.md
new file mode 100644
index 0000000..55eba0d
--- /dev/null
+++ b/docs/en/3.4.0/plugin_ref/spec.md
@@ -0,0 +1,586 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you 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.
+---
+
+# Plugin Specification
+
+The `plugin.xml` file is an XML document in the `plugins` namespace:
+`http://apache.org/cordova/ns/plugins/1.0`. It contains a top-level
+`plugin` element that defines the plugin, and children that define the
+structure of the plugin.
+
+A sample plugin element:
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        id="com.alunny.foo"
+        version="1.0.2">
+
+## _plugin_ Element
+
+The `plugin` element is the plugin manifest's top-level element. It
+features the following attributes:
+
+* `xmlns` (required):
+  The plugin namespace, `http://apache.org/cordova/ns/plugins/1.0`. If
+  the document contains XML from other namespaces, such as tags to be
+  added to the `AndroidManifest.xml` file, those namespaces should
+  also be included in the top-level element.
+
+* `id` (required):
+  A reverse-domain style identifier for the plugin, such as
+  `com.alunny.foo`
+
+* `version` (required):
+  A version number for the plugin, that matches the following
+  major-minor-patch style regular expression:
+
+        ^\d+[.]\d+[.]\d+$
+
+## _engines_ and _engine_ Elements
+
+The child elements of the `<engines>` element specify versions of
+Apache Cordova-based frameworks that this plugin supports. An example:
+
+    <engines>
+        <engine name="cordova" version="1.7.0" />
+        <engine name="cordova" version="1.8.1" />
+        <engine name="worklight" version="1.0.0" platform="android" scriptSrc="worklight_version"/>
+    </engines>
+
+Similar to the `<plugin>` element's `version` attribute, the specified
+version string should match a major-minor-patch string conforming to
+the regular expression:
+
+        ^\d+[.]\d+[.]\d+$
+
+Engine elements may also specify fuzzy matches to avoid repetition,
+and to reduce maintenance when the underlying platform is updated.
+Tools should support a minimum of `>`, `>=`, `<` and `<=`, for
+example:
+
+    <engines>
+        <engine name="cordova" version=">=1.7.0" />
+        <engine name="cordova" version="<1.8.1" />
+    </engines>
+
+The `<engine>` tags also has default support for all of the main platforms Cordova exists on. 
+Specifying the `cordova` engine tag means that all versions of Cordova on any platform must
+satisfy the engine version attribute. You may also list specific platforms and their versions
+in order to override the catch-all `cordova` engine:
+
+    <engines>
+        <engine name="cordova" version=">=1.7.0" />
+        <engine name="cordova-android" version=">=1.8.0" />
+        <engine name="cordova-ios" version=">=1.7.1" />
+    </engines>
+
+Here's a list of the default engines that the '<engine>' tag supports:
+* 'cordova' 
+* 'cordova-plugman' 
+* 'cordova-amazon-fireos'
+* 'cordova-android'
+* 'cordova-ios'
+* 'cordova-blackberry10' 
+* 'cordova-wp7'
+* 'cordova-wp8'
+* 'cordova-windows8'  
+* 'android-sdk' // returns the highest Android api level installed
+* 'apple-xcode' // returns the xcode version 
+* 'apple-ios' // returns the highest iOS version installed
+* 'apple-osx' // returns the OSX version
+* 'blackberry-ndk' // returns the native blackberry SDK version
+        
+Specifying custom Apache Cordova-based frameworks should be listed under the engine tag like so:
+
+    <engines>
+        <engine name="my_custom_framework" version="1.0.0" platform="android" scriptSrc="path_to_my_custom_framework_version"/>
+        <engine name="another_framework" version=">0.2.0" platform="ios|android" scriptSrc="path_to_another_framework_version"/>
+        <engine name="even_more_framework" version=">=2.2.0" platform="*" scriptSrc="path_to_even_more_framework_version"/>
+    </engines>
+
+A custom Apache Cordova-based framework requires that an engine element includes the following attributes: 
+`name`, `version`, `scriptSrc`, and `platform`. 
+
+* `name` (required): A human-readable name for your custom framework. 
+
+* `version` (required): The version that your framework must have in order to install.
+
+* `scriptSrc` (required): The script file that tells plugman what version of the custom framework is. 
+Ideally, this file should be within the top level directory of your plugin directory.
+
+* `platform` (required): Which platforms that your framework supports. You may use the wildcard `*`
+to say supported for all platforms, specify multiple with a pipe character like `android|ios|blackberry10` 
+or just a single platform like `android`.
+
+plugman aborts with a non-zero code for any plugin whose target
+project does not meet the engine's constraints.
+
+If no `<engine>` tags are specified, plugman attempts to install into
+the specified cordova project directory blindly.
+
+## _name_ Element
+
+A human-readable name for the plugin, whose text content contains the
+name of the plugin. For example:
+
+    <name>Foo</name>
+
+This element does not (yet) handle localization.
+
+## _description_ Element
+
+A human-readable description for the plugin. The text content of the element contains
+the description of the plugin. An example:
+
+    <description>Foo plugin description</description>
+
+This element does not (yet) handle localization.
+
+## _author_ Element
+
+Plugin author name. The text content of the element contains
+the name of the plugin author. An example:
+
+    <author>Foo plugin description</author>
+
+## _keywords_ Element
+
+Plugin keywords. The text content of the element contains comma separated keywords to describe the plugin. An example:
+
+    <keywords>foo,bar</keywords>
+
+## _license_ Element
+
+Plugin license. The text content of the element contains the plugin license. An example:
+
+    <license>Apache 2.0 License</license>
+
+## _asset_ Element
+
+One or more elements listing the files or directories to be copied
+into a Cordova app's `www` directory. Examples:
+
+    <!-- a single file, to be copied in the root directory -->
+    <asset src="www/foo.js" target="foo.js" />
+    <!-- a directory, also to be copied in the root directory -->
+    <asset src="www/foo" target="foo" />
+
+All `<asset>` tags require both `src` and `target` attributes.
+Web-only plugins contains mostly `<asset>` elements. Any `<asset>`
+elements that are nested within `<platform>` elements specify
+platform-specific web assets, as described below. Attributes include:
+
+* `src` (required): 
+  Where the file or directory is located in the plugin package,
+  relative to the `plugin.xml` document.  If a file does not exist at
+  the specified `src` location, plugman stops and reverses the
+  installation process, issues a notification about the conflict, and
+  exits with a non-zero code.
+
+* `target` (required):
+
+  Where the file or directory should be located in the Cordova app,
+  relative to the `www` directory.
+  Assets can be targeted to subdirectories, for example:
+
+    <asset src="www/new-foo.js" target="js/experimental/foo.js" />
+
+  creates the `js/experimental` directory within the `www` directory,
+  unless already present, then copies the `new-foo.js` file and
+  renames it `foo.js`.  If a file already exists at the target
+  location, plugman stops and reverses the installation process,
+  issues a notification about the conflict, and exits with a non-zero
+  code.
+
+## _js-module_ Element
+
+Most plugins include one or more JavaScript files.  Each `<js-module>`
+tag corresponds to a JavaScript file, and prevents the plugin's users
+from having to add a `<script>` tag for each file.  While `<asset>`
+tags simply copy a file from the plugin subdirectory into `www`,
+`<js-module>` tags are much more sophisticated. They look like this:
+
+    <js-module src="socket.js" name="Socket">
+        <clobbers target="chrome.socket" />
+    </js-module>
+
+When installing a plugin with the example above, `socket.js` is copied
+to `www/plugins/my.plugin.id/socket.js`, and added as an entry to
+`www/cordova_plugins.js`. At load time, code in `cordova.js` uses XHR
+to read each file and inject a `<script>` tag into HTML. It adds a
+mapping to clobber or merge as appropriate, as described below.
+
+_Do not_ wrap the file with `cordova.define`, as it is added
+automatically. The module is wrapped in a closure, with `module`,
+`exports`, and `require` in scope, as is normal for AMD modules.
+
+Details for the `<js-module>` tag:
+
+* The `src` references a file in the plugin directory relative to the
+  `plugin.xml` file.
+
+* The `name` provides the last part of the module name. It can
+  generally be whatever you like, and it only matters if you want to
+  use `cordova.require` to import other parts of your plugins in your
+  JavaScript code. The module name for a `<js-module>` is your
+  plugin's `id` followed by the value of `name`. For the example
+  above, with an `id` of `chrome.socket`, the module name is
+  `chrome.socket.Socket`.
+
+* Three tags are allowed within `<js-module>`:
+
+    - `<clobbers target="some.value"/>` indicates that the
+      `module.exports` is inserted into the `window` object as
+      `window.some.value`. You can have as many `<clobbers>` as you
+      like. Any object not available on `window` is created.
+
+    - `<merges target="some.value"/>` indicates that the module
+      should be merged with any existing value at `window.some.value`.
+      If any key already exists, the module's version overrides the
+      original. You can have as many `<merges>` as you like. Any
+      object not available on `window` is created.
+
+    - `<runs/>` means that your code should be specified with
+      `cordova.require`, but not installed on the `window`
+      object. This is useful when initializing the module, attaching
+      event handlers or otherwise. You can only have up to one
+      `<runs/>` tag. Note that including a `<runs/>` with
+      `<clobbers/>` or `<merges/>` is redundant, since they also
+      `cordova.require` your module.
+
+    - An empty `<js-module>` still loads and can be accessed in other
+      modules via `cordova.require`.
+
+If `src` does not resolve to an existing file, plugman stops and
+reverses the installation, issues a notification of the problem, and
+exits with a non-zero code.
+
+Nesting `<js-module>` elements within `<platform>` declares
+platform-specific JavaScript module bindings.
+
+## _dependency_ Element
+
+The `<dependency>` tag allows you to specify other plugins on which the
+current plugin depends. While future versions will access them from
+plugin repositories, in the short term plugins are directly referenced
+as URLs by `<dependency>` tags. They are formatted as follows:
+
+    <dependency id="com.plugin.id" url="https://github.com/myuser/someplugin" commit="428931ada3891801" subdir="some/path/here" />
+
+* `id`: provides the ID of the plugin. It should be globally unique,
+  and expressed in reverse-domain style. While neither of these
+  restrictions is currently enforced, they may be in the future.
+
+* `url`: A URL for the plugin. This should reference a git repository,
+  which plugman attempts to clone.
+
+* `commit`: This is any git reference understood by `git checkout`: a
+  branch or tag name (e.g., `master`, `0.3.1`), or a commit hash (e.g.,
+  `975ddb228af811dd8bb37ed1dfd092a3d05295f9`).
+
+* `subdir`: Specifies that the targeted plugin dependency exists as a
+  subdirectory of the git repository. This is helpful because it
+  allows the repository to contain several related plugins, each
+  specified individually.
+
+In the future, version constraints will be introduced, and a plugin
+repository will exist to support fetching by name instead of explicit
+URLs.
+
+### Relative Dependency Paths
+
+If you set the `url` of a `<dependency>` tag to `"."` and provide a
+`subdir`, the dependent plugin is installed from the same local or
+remote git repository as the parent plugin that specifies the
+`<dependency>` tag.
+
+Note that the `subdir` always specifies a path relative to the _root_
+of the git repository, not the parent plugin. This is true even if you
+installed the plugin with a local path directly to it. Plugman finds
+the root of the git repository and then finds the other plugin from
+there.
+
+## _platform_ Element
+
+The `<platform>` tag identifies platforms that have associated native
+code or require modifications to their configuration files. Tools
+using this specification can identify supported platforms and install
+the code into Cordova projects.
+
+Plugins without `<platform>` tags are assumed to be JavaScript-only,
+and therefore installable on any and all platforms.
+
+A sample platform tag:
+
+    <platform name="android">
+        <!-- android-specific elements -->
+    </platform>
+    <platform name="ios">
+        <!-- ios-specific elements -->
+    </platform>
+
+The required `name` attribute identifies a platform as supported,
+associating the element's children with that platform.
+
+Platform names should be lowercase. Platform names, as arbitrarily
+chosen, are listed:
+
+* amazon-fireos
+* android
+* blackberry10
+* ios
+* wp7
+* wp8
+
+## _source-file_ Element
+
+The `<source-file>` element identifies executable source code that
+should be installed into a project. Examples:
+
+    <!-- android -->
+    <source-file src="src/android/Foo.java"
+                    target-dir="src/com/alunny/foo" />
+    <!-- ios -->
+    <source-file src="src/ios/CDVFoo.m" />
+    <source-file src="src/ios/someLib.a" framework="true" />
+    <source-file src="src/ios/someLib.a" compiler-flags="-fno-objc-arc" />
+
+It supports the following attributes:
+
+* `src` (required):
+  Location of the file relative to `plugin.xml`.  If the `src` file
+  can't be found, plugman stops and reverses the installation, issues
+  a notification about the problem, and exits with a non-zero code.
+
+* `target-dir`:
+  A directory into which the files should be copied, relative to the
+  root of the Cordova project.  In practice, this is most important
+  for Java-based platforms, where a file in the `com.alunny.foo`
+  package must be located within the `com/alunny/foo` directory. For
+  platforms where the source directory is not important, this
+  attribute should be omitted.
+
+  As with assets, if the `target` of a `source-file` would overwrite
+  an existing file, plugman stops and reverses the installation,
+  issues a notification about the problem, and exits with a non-zero
+  code.
+
+* `framework` (iOS only):
+  If set to `true`, also adds the specified file as a framework to the
+  project.
+
+* `compiler-flags` (iOS only):
+  If set, assigns the specified compiler flags for the particular
+  source file.
+
+## _config-file_ Element
+
+Identifies an XML-based configuration file to be modified, where in
+that document the modification should take place, and what should be
+modified.
+
+Two file types that have been tested for modification with this
+element are `xml` and `plist` files.
+
+The `config-file` element only allows you to append new children to an
+XML document tree. The children are XML literals to be inserted in the
+target document.
+
+Example for XML:
+
+    <config-file target="AndroidManifest.xml" parent="/manifest/application">
+        <activity android:name="com.foo.Foo" android:label="@string/app_name">
+            <intent-filter>
+            </intent-filter>
+        </activity>
+    </config-file>
+
+Example for `plist`:
+
+    <config-file target="*-Info.plist" parent="CFBundleURLTypes">
+        <array>
+            <dict>
+                <key>PackageName</key>
+                <string>$PACKAGE_NAME</string>
+            </dict>
+        </array>
+    </config-file>
+
+It supports the following attributes:
+
+* `target`:
+
+  The file to be modified, and the path relative to the root of the
+  Cordova project.
+
+  The target can include wildcard (`*`) elements. In this case,
+  plugman recursively searches through the project directory structure
+  and uses the first match.
+
+  On iOS, the location of configuration files relative to the project
+  directory root is not known, so specifying a target of `config.xml`
+  resolves to `cordova-ios-project/MyAppName/config.xml`.
+
+  If the specified file does not exist, the tool ignores the
+  configuration change and continues installation.
+
+* `parent`: An XPath selector referencing the parent of the elements
+  to be added to the config file. If you use absolute selectors, you
+  can use a wildcard (`*`) to specify the root element,
+  e.g., `/*/plugins`.
+
+  For `plist` files, the `parent` determines under what parent key the
+  specified XML should be inserted.
+
+  If the selector does not resolve to a child of the specified
+  document, the tool stops and reverses the installation process,
+  issues a warning, and exits with a non-zero code.
+
+## _plugins-plist_ Element
+
+This is _outdated_ as it only applies to cordova-ios 2.2.0 and
+below. Use the `<config-file>` tag for newer versions of Cordova.
+
+Example:
+
+    <config-file target="config.xml" parent="/widget/plugins">
+        <feature name="ChildBrowser">
+            <param name="ios-package" value="ChildBrowserCommand"/>
+        </feature>
+    </config-file>
+
+Specifies a key and value to append to the correct `AppInfo.plist`
+file in an iOS Cordova project. For example:
+
+    <plugins-plist key="Foo" string="CDVFoo" />
+
+## _resource-file_ and _header-file_ Elements
+
+Like source files, but specifically for platforms such as iOS that
+distinguish between source files, headers, and resources. iOS Examples:
+
+    <resource-file src="CDVFoo.bundle" />
+    <resource-file src="CDVFooViewController.xib" />
+    <header-file src="CDVFoo.h" />
+
+Android example:
+
+    <resource-file src="FooPluginStrings.xml" target="res/values/FooPluginStrings.xml" />
+
+## _lib-file_ Element
+
+Like source, resource, and header files, but specifically for
+platforms such as BlackBerry 10 that use user-generated libraries.
+Examples:
+
+    <lib-file src="src/BlackBerry10/native/device/libfoo.so" arch="device" />
+    <lib-file src="src/BlackBerry10/native/simulator/libfoo.so" arch="simulator" />
+
+Supported attributes:
+
+* `src` (required):
+  The location of the file relative to `plugin.xml`.
+  If `src` can't be found, plugman stops and reverses the
+  installation, issues a warning about the problem, and exits with a
+  non-zero code.
+
+* `arch`: The architecture for which the `.so` file has been built,
+  either `device` or `simulator`.
+
+## _framework_ Element
+
+Identifies a framework (usually part of the OS/platform) on which the plugin depends.
+
+Examples:
+
+    <framework src="libsqlite3.dylib" />
+    <framework src="social.framework" weak="true" />
+    <framework src="relative/path/to/my.framework" custom="true" />
+
+The `src` attribute identifies the framework, which plugman attempts
+to add to the Cordova project, in the correct fashion for a given
+platform.
+
+The optional `weak` attribute is a boolean indicating whether the
+framework should be weakly linked. The default is `false`.
+
+The optional `custom` attribute is a boolean indicating whether the framework is one that is included as part of your plugin files (thus it is not a system framework). The default is `false`.
+
+## _info_ Element
+
+Additional information provided to users. This is useful when you
+require extra steps that can't be easily automated or are beyond
+plugman's scope.  Examples:
+
+    <info>
+    You need to install __Google Play Services__ from the `Android Extras` section using the Android SDK manager (run `android`).
+
+    You need to add the following line to your `local.properties`
+        
+    android.library.reference.1=PATH_TO_ANDROID_SDK/sdk/extras/google/google_play_services/libproject/google-play-services_lib
+    </info>
+
+## Variables
+
+In certain cases, a plugin may need to make configuration changes
+dependent on the target application. For example, to register for C2DM
+on Android, an app whose package id is `com.alunny.message` would
+require a permission such as:
+
+    <uses-permission
+    android:name="com.alunny.message.permission.C2D_MESSAGE"/>
+
+In such cases where the content inserted from the `plugin.xml` file is
+not known ahead of time, variables can be indicated by a dollar-sign
+followed by a series of capital letters, digits, or underscores. For
+the above example, the `plugin.xml` file would include this tag:
+
+    <uses-permission
+    android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"/>
+
+plugman replaces variable references with the specified value, or the
+empty string if not found. The value of the variable reference may be
+detected (in this case, from the `AndroidManifest.xml` file) or
+specified by the user of the tool; the exact process is dependent on
+the particular tool.
+
+plugman can request users to specify a plugin's required
+variables. For example, API keys for C2M and Google Maps can be
+specified as a command-line argument:
+
+    plugman --platform android --project /path/to/project --plugin name|git-url|path --variable API_KEY=!@CFATGWE%^WGSFDGSDFW$%^#$%YTHGsdfhsfhyer56734
+
+To make the variable mandatory, the `<platform>` tag needs to contain
+a `<preference>` tag. For example:
+
+    <preference name="API_KEY" />
+
+plugman checks that these required preferences are passed in.  If not,
+it should warn the user how to pass the variable in and exit with a
+non-zero code.
+
+Certain variable names should be reserved, as listed below.
+
+## $PACKAGE_NAME
+
+The reverse-domain style unique identifier for the package,
+corresponding to the `CFBundleIdentifier` on iOS or the `package`
+attribute of the top-level `manifest` element in an
+`AndroidManifest.xml` file.