<?xml version="1.0" encoding="utf-8"?>
<!--
 Copyright 2010-2014, Google Inc.
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:

     * Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above
 copyright notice, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the
 distribution.
     * Neither the name of Google Inc. nor the names of its
 contributors may be used to endorse or promote products derived from
 this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!--
This file contains strings, which are untranslatable and differ from the OSS
version.
-->
<resources>
    <string name="pref_about_terms_of_service_url">http://code.google.com/p/mozc/</string>
    <string name="pref_about_privacy_policy_url">http://code.google.com/p/mozc/</string>
    <!--
    MiniBrowser can access only the url which matches below pattern.
    This restriction is introduced in order not to show unexpected website in "EULA" activity.
    By default no restriction is applied in order to avoid from breaking existing implemntation.
    -->
    <string name="pref_url_restriction_regex">.*</string>
    <string name="user_dictionary_tool_export_provider_name">org.mozc.android.inputmethod.japanese.userdictionary.UserDictionaryExportProvider</string>

    <!--
      If you developer want to activate usage stats collection feature, turn the property on
      and change the URL in usage_stats/upload_util.cc.
      However usually you don't need the feature so please keep this false as long as possible.
    -->
    <bool name="sending_information_features_enabled">false</bool>

</resources>

