diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
new file mode 100644
index 0000000..37a5ccc
--- /dev/null
+++ b/res/values-ja/strings.xml
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<!DOCTYPE resources [
+<!ENTITY about SYSTEM "about.xml">
+]>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <!-- The name of the application. -->
+  <!-- Displayed with a file picker to choose a file to upload -->
+  <!-- Toast to show the user after they try to open the file picker but no apps on the
+         system can provide a file [CHAR-LIMIT=NONE]-->
+  <!-- Name of menu item of a new tab.  Also used in the title bar when displaying a new tab -->
+  <!-- Crash tab View title -->
+  <!-- Crash tab button text -->
+  <!-- Crash tab View message -->
+  <!-- Name of menu item of a new incognito tab.  Also used in the
+         title bar when displaying a new tab [CHAR LIMIT=30] -->
+  <!-- Name of tab containing the user's most visited websites, organized by number of visits -->
+  <!-- Name of tab containing the user's saved pages, organized by time created [CHAR LIMIT=20] -->
+  <!-- Toast shown when a history item's star is clicked, converting it to a bookmark -->
+  <!-- Toast shown when a history item's star is clicked off, removing its bookmark -->
+  <!-- Sign-in dialog -->
+  <!-- This is used as the title of a dialog which is used to sign in to a secure site.
+            "%s1"is replaced with the host and "%s2" with realm -->
+  <!-- Prompt for an input box that allows the user to enter their login name -->
+  <!-- Prompt for an input box that allows the user to enter their password -->
+  <!-- The label on the "sign in" button -->
+  <!-- The name of the add bookmark page activity.-->
+  <!-- Label for a cancel button.  It is used for multiple cancel buttons in different contexts -->
+  <!-- Label for a confirm button.  Used in multiple contexts. -->
+  <!-- Message to be displayed if url character limit exceeds -->
+  <!-- Message to be displayed when google play store does not exist on the device -->
+  <!-- Menu item -->
+  <!-- Page Info dialog strings -->
+  <!-- Noun.  The url for the current page. Displayed on the Page Info
+            screen. -->
+  <!-- Title for an SSL error dialog  -->
+  <!-- Message in an SSL Error dialog -->
+  <!-- Message in an SSL Error dialog -->
+  <!-- Toast informing the user that loading has stopped for the current page. -->
+  <!-- Menu item to stop the current page from loading. -->
+  <!-- Menu item to reload or refresh the current page. -->
+  <!-- Menu item to go back to the previous page -->
+  <!-- Menu item to go to the next page (only useful if the user has previously hit back.) -->
+  <!-- Field label in Bookmark dialog box: refers to URL of the page to bookmark -->
+  <!-- Field label in Bookmark dialog box: refers to the account to save the bookmark to -->
+  <!-- Field label in Bookmark dialog box: refers to the folder in which to save the bookmark -->
+  <!-- Default name for a new folder and label for a button that allows the user to create a new folder
+         in the add bookmark dialog -->
+  <!-- Context menu item to edit a folder [CHAR LIMIT=50] -->
+  <!-- Context menu item to delete a folder [CHAR LIMIT=50] -->
+  <!-- Label stating that the currently open folder has no subfolders
+         in the add bookmark dialog [CHAR-LIMIT=none]-->
+  <!-- Menu item to save the newly created bookmark to the home screen. [CHAR-LIMIT=30]-->
+  <!-- Menu item to open a picker to determine which folder to save a bookmark in. [CHAR-LIMIT=30]-->
+  <!-- Field label in Bookmark dialog box: title that the user wishes to use for the bookmark -->
+  <!-- Menu item that opens a dialog to save a bookmark for the current page [CHAR LIMIT=30] -->
+  <!-- Also used as title for AddBookmarkPage -->
+  <!-- Title of the dialog to bookmark a page -->
+  <!-- Option on bookmark dialog to remove the bookmark [CHAR LIMIT=30] -->
+  <!-- Menu item on the bookmarks page, to edit an existing bookmark -->
+  <!-- Context menu item to create a shortcut to the bookmark on the desktop [CHAR LIMIT=50] -->
+  <!-- Menu item to remove the currently highlighted bookmark-->
+  <!-- Context menu item to remove a history item from bookmarks -->
+  <!-- Menu item to remove the currently highlighted history entry from the list of previously visited sites -->
+  <!-- Context menu item for setting the bookmark/history item as the homepage -->
+  <!-- Toast informing the user that their action to save a bookmark has succeeded -->
+  <!-- Toast informing the user that their action to save a bookmark did not succeed -->
+  <!-- Toast confirming that the homepage has been set -->
+  <!-- Error that appears in the title of Bookmark dialog when user selects OK with empty Name field -->
+  <!-- Error that appears in the title of Bookmark dialog when user selects OK with empty Location field -->
+  <!-- Error that appears in the title of Bookmark dialog when user selects OK with invalid URL -->
+  <!-- Error that appears in the Bookmark dialog when user selects OK with a URL of a type we cannot bookmark -->
+  <!-- Summary text under the New Bookmark item on the Bookmarks screen.
+            Tells the user that if they select this item, it will bring up a
+            dialog to bookmark the page that the browser is currently viewing,
+            though it is not currently being displayed, since they are viewing
+            the bookmarks screen. -->
+  <!-- Confirmation dialog message confirming that the user wishes to delete
+            the bookmark they selected for deletion -->
+  <!-- Confirmation dialog message confirming that the user wishes to delete
+               the folder they selected for deletion -->
+  <!-- Context menu item to open every bookmark in a folder in new tabs [CHAR LIMIT=50] -->
+  <!-- Displayed in title of chooser dialog for text sent to another app,e.g-send text via SMS or IM-->
+  <!-- Menu item to close all other tabs [CHAR LIMIT=40] -->
+  <!-- Menu item to open the bookmarks page and name of the Tab in the combo view -->
+  <!-- Secondary name for the Activity "BrowserBookmarksPage" -->
+  <!-- Title for the activity asking the user to select a bookmark [CHAR LIMIT=50] -->
+  <!-- Menu item to display the History of previously visited pages and the name of the combo view
+        Tab-->
+  <!-- Menu item -->
+  <!-- Menu item for saving link to homescreen -->
+  <!-- Menu item for saving a page for offline reading. This is a view-only snapshot of the page. [CHAR LIMIT=50] -->
+  <!-- Dialog message that is shown while saving a page for offline reading. [CHAR LIMIT=50] -->
+  <!-- Toast informing the user that saving the page for offline reading has failed. [CHAR LIMIT=50] -->
+  <!-- The number of bookmarks in a folder [CHAR LIMT=50] -->
+  <!-- No bookmarks in the folder [CHAR LIMIT=50] -->
+  <!-- Context Menu item open the currently selected link in the current
+            window.-->
+  <!-- Context Menu item to open the currently selected link in a new
+            window. -->
+  <!-- Context Menu item to open the currently selected link in a new
+         background window. [CHAR LIMIT=50] -->
+  <!-- Context Menu item to save the webpage referred to by this link to the
+            SD card (external storage) -->
+  <!-- Context Menu item to send the url of the selected link to someone else,
+            via Gmail or another app [CHAR LIMIT=50] -->
+  <!-- Context Menu item -->
+  <!-- Context Menu item to copy the url of the selected link to the
+            clipboard -->
+  <!-- Context Menu item to save the image to external storage -->
+  <!-- Context Menu item to view the image by itself in the browser -->
+  <!-- Context Menu item to set the image as the home screen wallpaper -->
+  <!-- Context Menu item to open the dialer app with the selected phone number
+            -->
+  <!-- Context Menu item to add the selected phone number to the address book.
+            -->
+  <!-- Context Menu item to send an email using the selected email address.-->
+  <!-- Context Menu item to show the currently selected address in the Maps
+            application -->
+  <!-- Title of the dialog used for selecting the application that should be
+            used for sharing a link (e.g. Gmail or another app). See also
+            contextmenu_sharelink above -->
+  <!-- Used as the title of dialogs in the Browser Settings confirming that
+            the user wants to clear (cache, history, or cookie data) -->
+  <!-- Part of a sentence that says "Replace <url of existing bookmark> with
+            <url of new bookmark>?" -->
+  <!-- Settings screen strings -->
+  <!-- Menu item to open the Settings screen -->
+  <!-- Settings screen, section title -->
+  <!-- Settings label -->
+  <!-- Settings label -->
+  <!-- Settings label -->
+  <!-- Settings label -->
+  <!-- Settings summary [CHAR LIMIT=50]-->
+  <!-- Settings label [CHAR LIMIT=50] -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings button label that to pick what to set the homepage to [CHAR LIMIT=40] -->
+  <!-- Settings screen & section title for "General settings". These include things like
+         configuring bookmark syncing to Google servers and form auto fill settings. [CHAR-LIMIT=32] -->
+  <!-- Settings category for autofill under general. [CHAR-LIMIT=50] -->
+  <!-- Checkbox setting for enabling/disabling power save mode feature -->
+  <!-- Settings summary for the powersave feature. -->
+  <!-- Checkbox setting for enabling/disabling night mode feature -->
+  <!-- Settings summary for the night mode feature. -->
+  <!-- Checkbox setting for enabling/disabling the form AutoFill feature [CHAR-LIMIT=32] -->
+  <!-- Settings summary for the form AutoFill feature. [CHAR-LIMIT=none] -->
+  <!-- Settings screen, section title [CHAR LIMIT=50] -->
+  <!-- Label for option that when clicked opens the AutoFill settings screen. Also used as the title of that AutoFill Settings screen. [CHAR-LIMIT=32] -->
+  <!-- Summary for the AutoFill Settings preference [CHAR-LIMIT=none] -->
+  <!-- Heading for the AutoFill profile editor to tell the user what AutoFill does and why they should fill out the profile. [CHAR-LIMIT=None] -->
+  <!-- String for the user's full name in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's e-mail address in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's company name in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the first line of the user's address in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String to suggest to the user the kind of data to be used for the first line of the address. CHAR-LIMIT=64] -->
+  <!-- String for the second line of the user's address in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String to suggest to the user the kind of data to be used for the second line of the address. CHAR-LIMIT=64] -->
+  <!-- String for the user's city or town in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's state or province or region in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's zip code in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's country in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String for the user's phone number in the AutoFill profile editor. [CHAR-LIMIT=32] -->
+  <!-- String to display in an error tooltip to inform the user the phone number they provided is not valid. [CHAR-LIMIT=32] -->
+  <!-- Button text to save the AutoFill profile [CHAR-LIMIT=20] -->
+  <!-- Toast message displayed when the profile has been successfully saved [CHAR-LIMIT=none] -->
+  <!-- Toast message displayed when the profile has been successfully deleted [CHAR-LIMIT=none] -->
+  <!-- Button text to delete all the AutoFill profile data [CHAR-LIMIT=20] -->
+  <!-- Text on toast shown to the user when power save mode is enabled or disabled -->
+  <!-- Text on a dialog shown to the user when they are prompted to set up the autofill feature [CHAR-LIMIT=NONE] -->
+  <!-- Toast message displayed when the user decides to not set up autofill at this time. We want to remind them that they can configure
+         it through the Browser Settings menu. [CHAR-LIMIT=NONE] -->
+  <!-- Text on a checkbox in the "setup autofill" dialog which is shown to the user when they are prompted to set up the autofill feature.
+         The checkbox allows them to specify they would like to disable the feature altogether [CHAR-LIMIT=NONE] -->
+  <!-- Settings screen, section title [CHAR-LIMIT=50] -->
+  <!-- Settings screen, section title [CHAR-LIMIT=50] -->
+  <!-- Popup dialog -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Confirmation dialog message -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings summary -->
+  <!-- Confirmation dialog message -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings label -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings label -->
+  <!-- Settings label -->
+  <!-- Settings Label -->
+  <!-- Settings label -->
+  <!-- Settings text size options - displays sample font size in settings -->
+  <!-- Label for minimum font size [CHAR LIMIT=30] -->
+  <!-- Label for the current minimum font size value [CHAR LIMIT=6] -->
+  <!-- Label for text scaling (percent) [CHAR LIMIT=30] -->
+  <!-- Label for whether or not to force-enable user scalablity (aka, zoom) [CHAR LIMIT=30] -->
+  <!-- Summary for whether or not to force-enable user scalablity (aka, zoom) [CHAR LIMIT=30] -->
+  <!-- Inverted screen category under accessibility settings [CHAR LIMIT=50] -->
+  <!-- Title for the inverted screen feature. This causes the screen to render with inverted colors (black becomes white and vice versa) [CHAR LIMIT=40] -->
+  <!-- Summary for the inverted screen feature. [CHAR LIMIT=120] -->
+  <!-- Title for the inverted screen contrast. Change the contrast value from 1.0 to 3.0. [CHAR LIMIT=30] -->
+  <!-- Settings screen, section title [CHAR LIMIT=50] -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Settings label -->
+  <!-- Settings summary -->
+  <!-- Confirmation dialog message -->
+  <!-- Title for a group of settings -->
+  <!-- Settings screen, setting option name -->
+  <!-- Colored statusbar -->
+  <!-- Title for accessibility settings [CHAR LIMIT=25] -->
+  <!-- LookLock -->
+  <!-- Font size settings category under accessibility settings [CHAR LIMIT=50] -->
+  <!-- Title for the fullscreen lab feature [CHAR LIMIT=40] -->
+  <!-- Summary for the fullscreen lab feature [CHAR LIMIT=120] -->
+  <!-- Title for search preloading [CHAR LIMIT=40] -->
+  <!-- Search preloading options [CHAR LIMIT=20] -->
+  <!-- Link prefetching options [CHAR LIMIT=20] -->
+  <!-- Summary for search preloading [CHAR LIMIT=80] -->
+  <!-- Title for link prefetching [CHAR LIMIT=40] -->
+  <!-- Summary for link prefetching [CHAR LIMIT=80] -->
+  <!-- Dialog box message -->
+  <!-- Menu item -->
+  <!-- Appears on History screen if no history is found -->
+  <!-- Displayed at the top of the bookmarks page.  When clicked, it bookmarks the page the browser is currently showing -->
+  <!-- Verb placed in front of a screenshot of a web page that, when clicked,
+            will add that page to bookmarks -->
+  <!-- This string is for the browser "Go To" UI. -->
+  <!-- This is the hint text shown in the Go To widget, before text is entered. -->
+  <!-- This string is for the browser "Go To" UI. -->
+  <!-- This is the button label in the "Go To" UI. -->
+  <!-- The string used to describe the browser as a searchable item within system search settings. -->
+  <!-- Label for a button to allow a particular popup window to open -->
+  <!-- Label for a button to disallow a particular popup from opening -->
+  <!-- Title for a dialog informing the user that they cannot open any more
+            windows because the limit has been reached. -->
+  <!-- Message in a dialog telling the user that they cannot open any more
+            windows because the limit has been reached. -->
+  <!-- Title for a dialog informing the user that they cannot open a subwindow
+            because only one can be open at a time. -->
+  <!-- Message for a dialog informing the user that they cannot open a
+            subwindow because only one can be open at a time. -->
+  <!-- Download History UI strings -->
+  <!-- Dialog title [CHAR LIMIT=25] -->
+  <!-- Dialog title -->
+  <!-- Dialog message [CHAR LIMIT=NONE] -->
+  <!-- Dialog message -->
+  <!-- Title for a dialog informing the user that the SD card used for
+            external storage is busy so they cannot download anything [CHAR LIMIT=25] -->
+  <!-- Title for a dialog informing the user that the SD card used for
+            external storage is busy so they cannot download anything -->
+  <!-- Message for a dialog informing the user that the SD card used for
+            external storage is busy so they cannot download anything.  Informs
+            the user how to enable SD card storage [CHAR LIMIT=NONE] -->
+  <!-- Message for a dialog informing the user that the SD card used for
+            external storage is busy so they cannot download anything.  Informs
+            the user how to enable SD card storage -->
+  <!-- Toast for a download which cannot begin because the URL is not http or https -->
+  <!-- Message in the list of items which have received download requests
+            telling their status.  This message states that the download has not
+            yet begun -->
+  <!-- The description of the suggestion that lets the user search the web for the query currently
+         in the text field. -->
+  <!-- HTML5 dialogs -->
+  <!-- Used as a status bar notification when the browser is running out of space trying to allocate or increase the database quota for an HTML5 databae or application cache. -->
+  <!-- Used in the Browser Settings -->
+  <!-- Confirmation dialog when the user ask to clear all data for an origin -->
+  <!-- String shown in a progress view while a video is loading, before it starts playing -->
+  <!-- Label for the menu item in the website settings activity used to clear data stored by all websites -->
+  <!-- Text in the progress dialog when we are setting an image as the home screen wallpaper. -->
+  <!-- The string that is displayed when there are no bookmarks to display.
+         This is centered in the middle of the screen [CHAR LIMIT=NONE] -->
+  <!-- The folder name for the special "Other Bookmarks" folder created by Chrome [CHAR LIMIT=24] -->
+  <!-- Description for a dialog asking the user what they want to do with their bookmarks when adding a sync account [CHAR-LIMIT=none] -->
+  <!-- Button allowing users to remove all of their existing bookmarks when setting up syncing with their bookmarks stored in Google Chrome [CHAR-LIMIT=64] -->
+  <!-- Url Selection Action Mode -->
+  <!-- Menu item to share URL selection [CHAR LIMIT=30] -->
+  <!-- Toast to inform the user that the maximum number of tabs has been
+         reached. [CHAR LIMIT=50] -->
+  <!-- Font size preview label in settings [CHAR LIMIT=30] -->
+  <!-- Name for the user's unsynced, local bookmarks [CHAR LIMIT=50] -->
+  <!-- allows the user to find on webpage [CHAR LIMIT=None] -->
+  <!-- Popup menu checkbox that allows the user to request the desktop version of a webpage [CHAR LIMIT=50] -->
+  <!-- Popup menu checkbox that loads the reader mode version of the current webpage -->
+  <!-- Preload permission label [CHAR LIMIT=40] -->
+  <!-- Empty text for the "saved pages" tab that is shown when no saved pages exist. [CHAR LIMIT=None] -->
+  <!-- Menu option to delete the currently selected saved page [CHAR LIMIT=50] -->
+  <!-- Popup menu option to load the live version of a saved page [CHAR LIMIT=20] -->
+  <!--  Accessibility content descriptions -->
+  <!-- Content description for back button [CHAR LIMIT=NONE] -->
+  <!-- Content description for forward button [CHAR LIMIT=NONE] -->
+  <!-- Content description for refresh button [CHAR LIMIT=NONE] -->
+  <!-- Content description for stop button [CHAR LIMIT=NONE] -->
+  <!-- Content description for add bookmark button [CHAR LIMIT=NONE] -->
+  <!-- Content description for search button [CHAR LIMIT=NONE] -->
+  <!-- Content description for voice search button [CHAR LIMIT=NONE] -->
+  <!-- Content description for close tab button [CHAR LIMIT=NONE] -->
+  <!-- Content description for new tab button [CHAR LIMIT=NONE] -->
+  <!-- Content description for new incognito tab button [CHAR LIMIT=NONE] -->
+  <!-- Content description for clear button [CHAR LIMIT=NONE] -->
+  <!-- Content description for tab switcher button [CHAR LIMIT=NONE] -->
+  <!-- Content description for incognito state [CHAR LIMIT=NONE] -->
+  <!-- Content description for frozen state [CHAR LIMIT=NONE] -->
+  <!-- Content description for tab switcher transition [CHAR LIMIT=NONE] -->
+  <!-- Content description for navigating up in the bookmark folder hierarchy [CHAR LIMIT=NONE] -->
+  <!--Add for Navigation Feature -->
+  <!-- Add for Carrier Feature.Content description for AV save/play prompt dialog -->
+  <!-- Add for Carrier Feature.Content description for exit menu item -->
+  <!-- Add for Carrier Feature.Content description for about menu item -->
+  <!-- Add for Unsupport Uploading Drm Files Feature -->
+  <!-- Add for exit prompt Feature -->
+  <!-- Add for download save path setting Feature -->
+  <!-- Toast message displayed when the full screen received message -->
+  <!-- Snapdragon Browser Additions -->
+  <!-- Toast message displayed when user attempts to modify a setting disabled by the administrator -->
+  <!-- My Navigation - Favorites + History + Saved -->
+  <!-- Place holder for SWE engine strings added to
+         'chrome/android/java/strings/android_chrome_strings.grd'. Follow
+         chromium android grd naming convention. Follow exact mapping rules from
+         grd to xml. All grd strings maps to xml name in lowercase with 'IDS_'
+         prefix being stripped. For more info check out chromium's
+         UI-localization page. -->
+  <!-- Geolocation infobar promt-->
+</resources>
