| page.title=Localization Checklist |
| page.metaDescription=Take advantage of the worldwide audience offered by Android and Google Play. Read this checklist to get an overview of how to deliver your product to markets around the world. |
| meta.tags="localizing, publishing, disttools" |
| page.tags="local, l10n, translation, language" |
| page.image=/distribute/images/localization-checklist.jpg |
| |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv" style="width:280px"> |
| <h2>Checklist</h2> |
| <ol> |
| <li><a href="#identify-languages">1. Identify target languages and locales</a></li> |
| <li><a href="#design">2. Design for localization</a></li> |
| <li><a href="#manage-strings">3. Manage strings for localization</a></li> |
| <li><a href="#translate-strings">4. Translate UI strings and other resources</a></li> |
| <li><a href="#test">5. Test your localized app</a></li> |
| <li><a href="#prepare-launch">6. Prepare for international launch</a></li> |
| <li><a href="#support-users">7. Support international users after launch</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| <div class="top-right-float" style="width:194px"> |
| <img src="{@docRoot}distribute/images/localization-checklist.jpg"> |
| </div> |
| |
| <p> |
| Android and Google Play offer you a worldwide audience for your apps, with an |
| addressable user base that's growing very rapidly in countries such as Japan, |
| Korea, India, Brazil, and Russia. We strongly encourage you to localize as it |
| can maximize your apps’ distribution potential resulting in ratings from |
| users around the world. |
| </p> |
| |
| <p> |
| Localization involves a variety of tasks throughout your app development |
| cycle, and advance planning is essential. This document helps you identify |
| key aspects of localization to get your app ready for a successful worldwide |
| launch on Google Play. |
| </p> |
| |
| <div class="headerLine"> |
| <h1 id="identify-languages"> |
| 1. Identify target languages and locales |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| A basic but important step in preparing for localization is identifying the |
| countries where you’ll distribute your apps and the languages spoken there. |
| Localizing your apps is particularly important in countries where there is a |
| large market opportunity and English or another international language is not |
| widely used. |
| </p> |
| |
| <p> |
| For international users, you can manage your apps in three main dimensions: |
| country, locale, and language. Of those, language is the key consideration |
| for localization (locale can also significant because of differences in |
| formats for dates, times, currencies, and similar information). Users control |
| both the language and locale used on their Android devices and in turn those |
| affect how your app is displayed. |
| </p> |
| |
| <p> |
| Typically, you would decide which countries to target first, based on overall |
| market size and opportunity, app category, competitive landscape, local |
| pricing and financial factors, and so on. Then, based on your country |
| targeting, you would determine the languages you need to support in your |
| apps. |
| </p> |
| |
| <p> |
| You may then decide to localize into some or all languages of the targeted |
| country. It might make sense to start with a major regional language and add |
| more languages as user base grows. |
| </p> |
| |
| <p> |
| Once you have identified your target languages, you can focus your |
| development, translation, testing, and marketing efforts to these markets. |
| </p> |
| |
| <h3 id="related-resources"> |
| Related Resources |
| </h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/toolsreference/localizationchecklist/identifylocales" |
| data-sortorder="-timestamp" data-cardsizes="9x3," data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="design"> |
| 2. Design for localization |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| After you've determined your target languages for localization, assess what |
| you'll need to do to support them in your apps and plan the work early. |
| Consider the vocabulary expansion, script requirements, character spacing and |
| wrapping constraints, left-to-right and right-to-left support, and other |
| potential factors in each language. |
| </p> |
| |
| <h4> |
| <strong>Design a single set of flexible layouts</strong> |
| </h4> |
| |
| <p> |
| As you create your layouts, make sure that any UI elements that hold text are |
| designed generously. It’s good to allow more space than necessary for your |
| language (up to 30% more is normal) to accommodate other languages. |
| </p> |
| |
| <p> |
| Also, elements should be able to expand horizontally or vertically to |
| accommodate variations in the width and height of UI strings or input text. |
| Your text strings shouldn’t overlap borders or the screen edge in any of your |
| target languages. |
| </p> |
| |
| <p> |
| If you design your UI carefully, you can typically use a single set of |
| layouts for all of the languages you support. See <a href= |
| "{@docRoot}training/basics/fragments/fragment-ui.html">Building a Flexible |
| UI</a> for more information. |
| </p> |
| |
| <h4> |
| <strong>Use alternative layouts where needed</strong> |
| </h4> |
| |
| <p> |
| In cases where your UI can't accommodate text in one of your target |
| languages, you can create an <a href= |
| "{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources"> |
| alternative layout</a> for that language only. Android makes it easy to |
| declare sets of layouts and other resources to load for specific languages, |
| locales, screen sizes, and so on, simply by tagging them with the appropriate |
| resource qualifiers. While the flexibility of alternative layouts exists it |
| can also make your apps harder to maintain over time. In general, using a |
| single, more flexible layout is preferred. |
| </p> |
| |
| <h4> |
| <strong>Support RTL layouts and text</strong> |
| </h4> |
| |
| <p> |
| If you’re distributing to countries where right-to-left (RTL) scripts are |
| used, you should consider implementing support for RTL layouts and text |
| display and editing, to the extent possible. |
| </p> |
| |
| <p> |
| Android 4.1 introduced limited support for bidirectional text, allowing apps |
| to display and edit text in both left-to-right (LTR) and right-to-left (RTL) |
| scripts. Android 4.2 added <a href= |
| "http://android-developers.blogspot.fr/2013/03/native-rtl-support-in-android-42.html"> |
| full native support for RTL layouts</a>, including layout mirroring, so that |
| you can deliver the same great app experiences to all of your users. |
| </p> |
| |
| <p> |
| At a minimum, for Android 4.2 users, it's simple to add basic RTL layout |
| mirroring, which goes a long way toward meeting the needs of RTL users. |
| </p> |
| |
| <h4> |
| <strong>Use system-provided formats for dates, times, numbers, and |
| currencies</strong> |
| </h4> |
| |
| <p> |
| Where your apps specify dates, times, numbers, currencies, and other entities |
| that can vary by locale, make sure to use the system-provided formats, rather |
| than app-specific formats. Keep in mind that not every locale uses the same |
| thousands separator, decimal separator, or percent sign. |
| </p> |
| |
| <p> |
| Android provides a variety of utilities for formatting and converting |
| patterns across locales, such as <a href= |
| "{@docRoot}reference/android/text/format/DateUtils.html">DateUtils</a> and |
| <a href="{@docRoot}reference/java/text/DateFormat.html">DateFormat</a> for |
| dates; <a href= |
| "{@docRoot}reference/java/lang/String.html#format(java.lang.String,%20java.lang.Object...)"> |
| String.format()</a> or <a href= |
| "{@docRoot}reference/java/text/DecimalFormat.html">DecimalFormat</a> for |
| numbers and currency; <a href= |
| "{@docRoot}reference/android/telephony/PhoneNumberUtils.html">PhoneNumberUtils</a> |
| for phone numbers; and others. |
| </p> |
| |
| <p> |
| Hardcoding your formats based on assumptions about the user's locale can |
| result in problems when the user changes to another locale. Using |
| system-provided formats and utilities is strongly encouraged. |
| </p> |
| |
| <h4> |
| <strong>Include a full set of default resources</strong> |
| </h4> |
| |
| <p> |
| Make sure that your apps can run properly regardless of language or locale by |
| providing a complete set of default resources. The app's default resources |
| are those that are <em>not marked</em> with any language or locale |
| qualifiers, for example those stored in res/drawable/ and res/values/. If |
| your apps attempt to load a resource that isn't available in the current |
| language or in the default set, they will crash. |
| </p> |
| |
| <p> |
| Whatever the default language you’re using in your apps, make sure that you |
| store the associated layouts, drawables, and strings in default resource |
| directories, without language or locale qualifiers. |
| </p> |
| |
| <h3> |
| Related resources |
| </h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/tools/loc/designforloc" data-sortorder="-timestamp" |
| data-cardsizes="9x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="manage-strings"> |
| 3. Manage strings for localization |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| It's important to manage your apps’ UI strings properly, so that you deliver |
| a great experience for users and make localization straightforward. |
| </p> |
| |
| <h4> |
| <strong>Move all strings into strings.xml</strong> |
| </h4> |
| |
| <p> |
| As you build your apps, remember not to hard code any string. Instead declare |
| <em>all</em> of your strings as resources in a default strings.xml file which |
| makes it easy to update and localize. Strings in strings.xml file can be |
| extracted, translated and integrated back into your app (with appropriate |
| qualifiers) without any changes to compiled code. |
| </p> |
| |
| <p> |
| If you generate images with text, put those strings in strings.xml as well, |
| and regenerate the images after translation. |
| </p> |
| |
| <h4> |
| <strong>Follow Android guidelines for UI strings</strong> |
| </h4> |
| |
| <p> |
| As you design and develop your UIs, make sure that you pay close attention to |
| <em>how</em> you talk to your user. In general, use a <a href= |
| "{@docRoot}design/style/writing.html">succinct and compressed style</a> that |
| is friendly but brief, and use a consistent style throughout your UIs. |
| </p> |
| |
| <p> |
| Make sure that you read and follow the Android Design recommendations for |
| <a href="{@docRoot}design/style/writing.html">writing style and word |
| choice</a>. Doing so will make your apps appear more polished to the user and |
| will help users understand your UI more quickly. |
| </p> |
| |
| <p> |
| Also, always use Android standard terminology wherever possible—such as |
| for UI elements such as "Action Bar," "Options Menu," "System Bar," |
| "Notifications," and so on. Using Android terms correctly and consistently |
| makes translation easier and results in a better end-product for users. |
| </p> |
| |
| <h4> |
| <strong>Provide sufficient context for declared strings</strong> |
| </h4> |
| |
| <p> |
| As you declare strings in your strings.xml file, make sure to describe the |
| context in which the string is used. This information will be invaluable to |
| translators and result in better quality translation and will also help you |
| manage your strings more effectively over time. |
| </p> |
| |
| <p> |
| Here's an example: |
| </p> |
| |
| <pre class="prettyprint"> |
| <!-- The action for submitting a form. This text is on a button that can fit 30 chars --> |
| <string name="login_submit_button">Sign in</string> |
| </pre> |
| <p> |
| Consider providing context information that may include: |
| </p> |
| |
| <ul> |
| <li> |
| <p> |
| What is this string for? When/where is it presented to the user? |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Where is this in the layout? For example, if it’s a button, translations |
| are less flexible than if it were a text box. |
| </p> |
| </li> |
| </ul> |
| |
| <h4> |
| <strong>Mark message parts that should not be translated</strong> |
| </h4> |
| |
| <p> |
| Often strings contain contain text that shouldn’t be translated to other |
| languages. Common examples might be a piece of code, a placeholder for a |
| value, a special symbol, or a name. As you prepare you strings for |
| translation, look for and mark text that should remain as-is, without |
| translation, so that translators don’t change it. |
| </p> |
| |
| <p> |
| To mark text that should not be translated, use an |
| <code><xliff:g></code> placeholder tag. Here's an example tag that |
| ensures the text "%1$s" will not be changed during translation (otherwise it |
| could break the message): |
| </p> |
| |
| <pre class="prettyprint"> |
| <string name="countdown"> |
| <xliff:g id="time" example="5 days>%1$s</xliff:g>until holiday |
| </string> |
| </pre> |
| <p> |
| When you declare a placeholder tag, always add an id attribute that explains |
| what the placeholder is for. If your apps will later replace the placeholder |
| value, be sure to provide an example attribute to clarify the expected use. |
| </p> |
| |
| <p> |
| Here are some more examples of placeholder tags: |
| </p> |
| |
| <pre> |
| <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> |
| |
| <!-- Example placeholder for a special unicode symbol --> |
| |
| <string name="star_rating">Check out our 5 |
| |
| <xliff:g id="star">\u2605</xliff:g> |
| |
| </string> |
| |
| <!-- Example placeholder for a for a URL --> |
| |
| <string name="app_homeurl"> |
| |
| Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g> |
| |
| </string> |
| |
| <!-- Example placeholder for a name --> |
| |
| <string name="prod_name"> |
| |
| Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g> |
| |
| </string> |
| |
| <!-- Example placeholder for a literal --> |
| |
| <string name="promo_message"> |
| |
| Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>” to get a discount. |
| |
| </string> |
| |
| ... |
| |
| </resources> |
| </pre> |
| <h3 class="clearfloat"> |
| Related resources |
| </h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/toolsreference/localizationchecklist/managestrings" |
| data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="translate-strings"> |
| 4. Translate UI strings and other resources |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| Translating your apps’ UI strings and resources to your target languages is |
| the key phase of localization, and it's the one that requires the most care |
| and planning. |
| </p> |
| |
| <p> |
| It is recommended to work with a professional translator (see <a href= |
| "#gp-trans">Purchase professional translations</a>) to ensure high quality |
| translations that enhance the value of your app. Machine translations, |
| although an option may not produce as good an experience for your users. |
| </p> |
| |
| <h4> |
| <strong>Prepare for translation</strong> |
| </h4> |
| |
| <p> |
| Translation output quality will depend in part on your input therefore make |
| sure that your strings.xml file is well organized, well commented, and |
| accurate. |
| </p> |
| |
| <p> |
| Here are some ways to prepare your strings for translation: |
| </p> |
| |
| <ul> |
| <li> |
| <p> |
| Make sure your strings are formatted correctly and consistently. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Follow the strings recommendations listed in <a href= |
| "#manage-strings">Manage strings for localization</a>, above. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Clean up the strings.xml file and remove unused strings. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Place comments in the file to identify the owner, origin, and the version |
| of the file, as well as any special instructions for translators. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Identify existing translations, if any, and include those in an outgoing |
| zip file or other package that you send to translators. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Identify drawables or other resources that require translation and |
| include them in the translators’ package. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Additionally, consider translating your apps’ store listing details |
| — app title and description, release notes, and so on — as |
| well as other international marketing materials. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Create a terminology list that explains the meaning and use of key terms |
| found in your product, your market, or the underlying technology. Add the |
| list to the translators’ package. |
| </p> |
| </li> |
| </ul> |
| |
| <h4> |
| <strong>Send your strings for translation</strong> |
| </h4> |
| |
| <p> |
| Early in the development cycle, contact professional translation vendors to |
| get an idea of cost and turnaround time. Make sure to include multiple |
| iterations in the cost. You can find translation vendors online or use |
| translation services available directly from Google Play Developer console |
| (see <a href="#gp-trans">Purchase professional translations</a>). |
| </p> |
| |
| <p> |
| When your translations are complete, take a preliminary look at the |
| translations. Check that all files were translated, check for potential |
| encoding issues, and make sure that declaration formats are intact. |
| </p> |
| |
| <p> |
| If everything looks good, carefully move the localized directories and files |
| back into your apps’ resources. Make sure to tag the directories with the |
| appropriate language and locale qualifiers so that they'll later be loaded |
| properly. |
| </p> |
| |
| <p> |
| After the translations are merged back into your app, start <a href= |
| "#test">testing the localized app</a>. |
| </p> |
| |
| <h4 id="gp-trans"> |
| <strong>Purchase professional translations through Google Play</strong> |
| </h4> |
| |
| <div class="sidebox-wrapper"> |
| <div class="sidebox"> |
| <h2> |
| App Translations Service |
| </h2> |
| |
| <p> |
| To make it easy to export your app's strings and import the finished |
| translations into your project, try the <a href= |
| "{@docRoot}sdk/installing/installing-adt.html#tmgr">ADT Translation |
| Manager Plugin</a>. |
| </p> |
| </div> |
| </div> |
| |
| <p> |
| Google Play App Translation Service can help you quickly find and purchase |
| translations of your app. In the Developer Console, you can browse a list of |
| third-party vendors who are pre-qualified by Google to offer high-quality |
| translation at competitive prices. You can upload the strings you want |
| translated, select the languages you want to translate into, and select your |
| translation vendor based on time and price. |
| </p> |
| |
| <p> |
| Once you've purchased translations, you'll receive an email from your vendor. |
| Your translations are a direct business agreement between you and your |
| vendor; you'll need to work directly with the vendor to manage the |
| translation process and deliverables and resolve any support issues. |
| </p> |
| |
| <div> |
| <img src="{@docRoot}images/gp-localization-trans-0.png" class="border-img"> |
| </div> |
| |
| <h3> |
| Related resources |
| </h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/toolsreference/localizationchecklist/translatestrings" |
| data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="test"> |
| 5. Test your localized app |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| Once you've received your translated strings and resources and moved them |
| back into your apps, you need to test the apps to make sure that they’re |
| ready for distribution to your international users. |
| </p> |
| |
| <p> |
| Manual testing can help you discover localization issues in your layouts and |
| strings that can affect user satisfaction and, ultimately, your apps' user |
| rating. |
| </p> |
| |
| <h4> |
| <strong>Set up a test environment</strong> |
| </h4> |
| |
| <p> |
| To test your localized app, you'll need to set up an environment consisting |
| of multiple devices (or virtual devices) and screen sizes, based on the |
| markets and form factors you’re targeting. Note that the range of devices in |
| specific regions might be different. If possible, match your test devices to |
| the actual devices likely to be available to users. |
| </p> |
| |
| <h4> |
| <strong>Look for common localization issues</strong> |
| </h4> |
| |
| <p> |
| On each test device, set the language or locale in Settings. Install and |
| launch the app and then navigate through all of the UI flows, dialogs, and |
| user interactions. Enter text in inputs. Some things to look for include: |
| </p> |
| |
| <ul> |
| <li> |
| <p> |
| Clipped text, or text that overlaps the edge of UI elements or the screen |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Poor line wrapping |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Incorrect word breaks or punctuation |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Incorrect alphabetical sorting |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Incorrect layout direction or text direction |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Untranslated text — if your default strings are displayed instead |
| of translated strings, then you may have overlooked those strings for |
| translation or marked the resources directory with an incorrect language |
| qualifier. |
| </p> |
| </li> |
| </ul> |
| |
| <p> |
| For cases where your strings have expanded in translation and no longer fit |
| your layouts, it's suggested you try to simplify your default text, simplify |
| your translated text, or adjust your default layouts. If none of those |
| resolves the issue, you can create a custom layout for the language. |
| </p> |
| |
| <h4> |
| <strong>Test for default resources</strong> |
| </h4> |
| |
| <p> |
| After you've tested your apps in all of your supported languages and locales, |
| make sure to test it again in an <em>unsupported language</em> and locale. |
| This’ll help you make sure that your apps includes a full set of default |
| strings and resources, so that your apps are usable to all users, regardless |
| of their preferred language. |
| </p> |
| |
| <h4> |
| <strong>Review with native-language speakers</strong> |
| </h4> |
| |
| <p> |
| During or after testing, it's recommended that you let native speakers review |
| your localized apps. One way to do that is through beta testing with regional |
| users — Google Play can help you do this. <!-- </p> |
| |
| <h3 class="clearfloat">Related resources</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" |
| data-query="collection:distribute/toolsreference/localizationchecklist/test" |
| data-sortOrder="-timestamp" |
| data-cardSizes="9x3,9x3,6x3,9x3,9x3,9x3" |
| data-maxResults="6"></div> --> |
| </p> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="prepare-launch"> |
| 6. Prepare for international launch |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| Getting your apps translated is a key part of localization, but to help your |
| product attract users and gain visibility, you should prepare for launch in |
| your target countries and create a broader launch and marketing plan for |
| international users. |
| </p> |
| |
| <h4> |
| <strong>Localize your Google Play listing</strong> |
| </h4> |
| |
| <div class="sidebox-wrapper" style="float:right;"> |
| <div class="sidebox"> |
| <h2> |
| Localize your Google Play listing |
| </h2> |
| |
| <p> |
| Google Play Store listing is the first impression international users |
| will have of your app. You should highlight what's great about your apps |
| to all of your users! Localize your listing in the Developer Console, |
| including: |
| </p> |
| |
| <ul> |
| <li>App title and description |
| </li> |
| |
| <li>App screenshots on phones and tablets |
| </li> |
| |
| <li>Promotional graphics and videos. |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| <p> |
| If you want your apps to be successful in international markets, it's |
| essential to localize your Google Play store listing. You can manage your |
| localized listing in the Developer Console. |
| </p> |
| |
| <p> |
| Well before launch, decide on your app title, description, promotional text, |
| marketing names and programs, and other text and images. Send your listing |
| text and images for translation early, so that you’ve them ready when beta |
| testing begins. When your translated text is available, you can add it |
| through the Developer Console. |
| </p> |
| |
| <div class="sidebox-wrapper" style="float:right;"> |
| <div class="sidebox"> |
| <h2> |
| Store listing translation in Google Play |
| </h2> |
| |
| <p> |
| You can use the App Translation service on Google Play to translate your |
| store listing. Prepare an XML file with your store listing information |
| and upload just as you would upload the strings.xml file (see <a href= |
| "#gp-trans">Purchase professional translations</a>) |
| </p> |
| </div> |
| </div> |
| |
| <p> |
| Also, since you've made the effort to create a great localized app, let users |
| know about it! Take screenshots of your UI in each language, for phones and |
| 7- and 10- inch tablets. You can upload screenshots to the Developer Console |
| for each language you support. These will be of great value to users browsing |
| your app listings in other languages. |
| </p> |
| |
| <p> |
| It's also essential to create localized versions of your promotional graphics |
| and videos. For example, your apps’ feature graphics might include text that |
| should be translated, for maximum effectiveness, or you might want to take a |
| different visual approach in one country than you do in another. You can |
| create different versions of your promotional graphics for each language and |
| upload them to the Developer Console. If you offer a promotional video, you |
| can create localized versions of it and then add a link to the correct |
| localized video for each language you support. |
| </p> |
| |
| <h4> |
| <strong>Plan a beta release in key countries</strong> |
| </h4> |
| |
| <div class="sidebox-wrapper" style="float:right;"> |
| <div class="sidebox"> |
| <h2> |
| Easy beta testing |
| </h2> |
| |
| <p> |
| Google Play now lets you set up groups of alpha and beta testers, |
| anywhere around the world. Check out this powerful feature next time you |
| sign in to the Developer Console. |
| </p> |
| </div> |
| </div> |
| |
| <p> |
| Before launching your apps, it's always valuable to get real-world feedback |
| from users — even more so when you are launching an app in a new |
| language, country, or region. In those cases, it's highly recommended that |
| you distribute a pre-release version of your apps to users across your key |
| markets and provide an easy means for them to provide feedback and report |
| bugs. |
| </p> |
| |
| <p> |
| Google Play can help you set up a beta program for your apps. After you sign |
| in to the Developer Console and upload your APK, you can set up groups of |
| users for alpha testing and beta testing the app. You can start with a small |
| group of alpha testers, then move to a larger group of beta testers. |
| </p> |
| |
| <p> |
| Once users are added, they access your app's store listing and install the |
| app. <strong>Users on alpha or beta versions cannot leave reviews or |
| ratings</strong>, so there is <strong>no risk to your rating</strong> on |
| Google Play, however it does mean you need to setup a mechanism for your |
| testers to provide you with feedback: consider creating a <a href= |
| "http://www.google.com/+/business/">Google+</a> page or <a href= |
| "https://groups.google.com/forum/#!overview">Google Groups</a>. |
| </p> |
| |
| <p> |
| The feedback you receive will help you adjust your UI, translations, and |
| store listing to ensure a great experience for users. |
| </p> |
| |
| <h4> |
| <strong>Plan for international marketing</strong> |
| </h4> |
| |
| <p> |
| For highest visibility across countries, consider an international marketing |
| or advertising campaign. The scope of the campaign will vary based on the |
| budget you can support, but in general it's cost-effective and productive to |
| do regional or country-specific marketing at launch and after. |
| </p> |
| |
| <h4> |
| <strong>Create localized Google Play badges</strong> |
| </h4> |
| |
| <p> |
| If you’re preparing international marketing, make sure to include a <a href= |
| "{@docRoot}distribute/tools/promote/badges.html">localized Google Play |
| badge</a> to tell users you're on Google Play. You can use the badge |
| generator to quickly build localized badges that you can use on websites or |
| marketing materials. High-resolution assets are also available. |
| </p> |
| |
| <h4> |
| <strong>Create Localized Device Art</strong> |
| </h4> |
| |
| <p> |
| If you feature product shots of your apps running on Android devices, make |
| sure that those shots look great and reflect the latest in Android devices. |
| To help you create high-quality marketing materials, use the drag-and-drop |
| <a href="{@docRoot}distribute/tools/promote/device-art.html">Device Art |
| Generator</a> to quickly frame your screenshot on a Nexus device. |
| </p> |
| |
| <h4> |
| <strong>Check your Optimization Tips</strong> |
| </h4> |
| |
| <p> |
| As you prepare for launch, make sure to sign into the Developer Console and |
| check your apps’ Optimization Tips. The Optimization Tips let you know when |
| you’re missing parts of your localized store listing and provide other |
| helpful reminders for a successful localized launch. |
| </p> |
| |
| <h3> |
| Related resources |
| </h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/toolsreference/localizationchecklist/preplaunch" |
| data-sortorder="-timestamp" data-cardsizes="9x3,9x3,6x3,9x3,9x3,9x3" |
| data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine clearfloat"> |
| <h1 id="support-users"> |
| 7. Support international users after launch |
| </h1> |
| |
| <hr> |
| </div> |
| |
| <p> |
| After you launch your apps internationally, you should be prepared to support |
| users in a variety of languages and time zones. The extent of your |
| international user support depends on your budget, but at a minimum you |
| should watch your ratings, reviews, and download stats carefully after |
| launch. |
| </p> |
| |
| <p> |
| Here are some suggestions: |
| </p> |
| |
| <ul> |
| <li> |
| <p> |
| Use the app stats in the Developer Console to compare your downloads, |
| installs, and uninstalls, and ratings across languages and |
| countries—If your downloads or ratings aren’t keeping up in |
| specific languages or countries, consider options for improving your |
| product or changing your marketing approach. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Check reviews regularly—Google Play translates all user reviews for |
| you, so you can stay in touch with how international users feel about |
| your apps, what features they like and what issues are affecting them. By |
| watching reviews, you can spot technical issues that may affect users in |
| a particular country, then fix and update your apps. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Respond to reviews if possible—It's good to engage with |
| international users in their language or a common language if possible. |
| If not, you can try using translation tools, although results may not be |
| predictable. If your apps gets very popular in a language, consider |
| getting support help from native-language speakers. |
| </p> |
| </li> |
| |
| <li> |
| <p> |
| Make sure there's a link to any support resources on your website. |
| Consider setting up language-specific user groups, Google+ communities, |
| or other support forums. |
| </p> |
| </li> |
| </ul> |
| |
| <p> |
| By following these practices for localizing your apps, promoting and |
| marketing to international users, and providing ongoing support, you can |
| attract many new users to your apps and maintain their loyalty. |
| </p> |
| |
| <p> |
| Make sure to read the <a href= |
| "{@docRoot}distribute/tools/launch-checklist.html">Launch Checklist</a> to |
| learn more about how to plan, build, and launch your app on Google Play. |
| </p> |
| <h3 class="clearfloat">Related resources</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" |
| data-query="collection:distribute/toolsreference/localizationchecklist/supportlaunch" |
| data-sortOrder="-timestamp" |
| data-cardSizes="9x3,9x3,6x3,9x3,9x3,9x3" |
| data-maxResults="6"></div> |
| |