Translations editor android studio

Локализация. חתול מדען (хатуль мадан) — кот учёный

В статье, посвященной ресурсам, мы уже затрагивали эту тему с теоретической точки зрения. Разберем теперь практическую часть. Мы уже умеем пользоваться строковыми ресурсами и меняли строчки, например, Hello, World на Здравствуй, Мир! Но на самом деле это не совсем правильный подход. Для профессионально написанного приложения лучше использовать другой подход. А именно, локализацию.

Что это значит? Мы не будем менять строчку Hello, World, которая будет считаться строкой по умолчанию, а создадим новый локализованный ресурс. Это даст нам дополнительное преимущество, если пользователь запустит приложение на телефоне с английской локалью, то он увидит текст на знакомом ему языке. Если приложение запустит русский пользователь, то он увидит текст на русском языке. Согласитесь — очень удобно.

Напишем приложение, которое будет поддерживать английскую и русскую локализации. По умолчанию будет использоваться английская локализация. В этом случае, если на телефоне не будет найден нужный локализованный ресурс, то будет применяться английский вариант.

Чтобы не усложнять материал, воспользуемся стандартным приложением, который мы изучали в самом начале. Создадим новый проект «LocaleApp», но на этот раз мы не будем трогать файл strings.xml в каталоге res/values.

Для русской локализации необходимо создать новый подкаталог values-ru в том же каталоге res. Если вы планируете создавать локализацию только для русского языка, то название каталога не трудно запомнить и вы можете создать папку вручную через res | New | Directory. Но вряд ли вы запомните названия других папок. Поэтому покажу способ создания с помощью мастера студии.

Щёлкаем правой кнопкой мыши на папке res и выбираем New | Android resource directory. В диалоговом окне в левой части Available qualifiers: выбираем пункт Locale и переносим его в правую часть Chosen qualifiers: с помощью кнопки с двумя стрелками вправо. В появившейся третьей колонке выбираем нужные языки, например, русский. Вы увидите, что в поле Directory name автоматически появится нужное название папки. Дополнительно вы можете указать и регион в колонке Specific Region Only

В режиме Android вы можете не увидеть созданную папку, поэтому временно переключитесь в режим Project. Скопируйте файл res/values/strings.xml и вставьте его в новую папку. Можете вернуться в прежний режим. Если папка не пуста, то она уже видна.

Изменим его содержание.

В английской версии им соответствуют ресурсы

Запустим приложение и увидим, что текст выводится на русском, если у вас на эмуляторе или реальном устройстве выбраны русские настройки.

Как перейти на американскую локаль? Идём в Настройки→Язык и клавиатура→Выбрать язык. Выбираем английский язык English (United States). Снова запускаем приложение в эмуляторе или на телефоне. Теперь наше приложение будет выглядеть так:

Ресурсы из каталога res/values считаются ресурсами по умолчанию. Они отображаются в том случае, когда система не найдёт ресурсы для текущей локали устройства. В нашем случае, при выборе любого языка, кроме русского будет использоваться res/values. Если мы захотим разделить англичан и американцев, тогда придётся создавать два каталога: res/values-en-rUK и res/values-en-rUS. Обратите внимание, что перед кодом второй части ставится буква ‘r’. Иными словами, мы определяем не только язык, но и регион.

Читайте также:  Андроид смартфон что отключить

Проведем несколько экспериментов. Удалим из файла res/values-ru/strings.xml строковый ресурс hello_world с текстом Здравствуй, Мир!. Сохраним изменения и запустим проект на устройстве с русским языком. Платформа заменила отсутствующий в локализации ресурс дефолтным английским.

Продолжим опыты и поступим наоборот — удалим теперь ресурс из файла res/values/strings.xml. На устройстве выберем какой-нибудь другой язык, например, итальянский. В этом случае вы увидите что-то непонятное, скорее всего вы получите сообщение об ошибке.

Отсюда можно сделать вывод, что вам необходимо следить за ресурсами по умолчанию. Старайтесь проконтролировать, чтобы ваше приложение всегда содержало все необходимые ресурсы по умолчанию, а уже потом можете начинать локализацию приложения. Для этого вам достаточно будет скопировать файл в новый подкаталог и отредактировать его.

На самом деле локализовать можно не только строковые ресурсы. В разных странах принято рисовать какой-нибудь объект в соответствии со своими традициями, например, изображение почтового ящика. В этом случае вы можете создать каталог /res/drawable-de, в котором будут находиться изображения, предназначенные для немцев.

В коде вы обращаетесь к нужным ресурсам следующим образом:

Система сама подставит нужную строку. Явно указать, что хочется использовать ресурс на конкретном языке, у вас не получится.

Спустя продолжительное время один из читателей подсказал, как всё-таки задействовать локальный ресурс. Объяснять код не буду, сами поймёте, когда наберётесь опыта.

Просмотр и создание локализованных строк в режиме дизайна

Чтобы увидеть, как меняется текст в различных локализованных версиях вашего приложения, необязательно запускать приложение в эмуляторе. Можно в студии на панели инструментов щёлкнуть на значке глобуса и выбрать из выпадающего списка нужный вам пункт (он появится после того, как вы создадите необходимые локализованные ресурсы), и все локализованные строчки сразу поменяются на экране активности.

Можно сразу создать локализованный файл через удобный мастер. Там же в меню есть пункт Edit Translations. , который выводит диалоговое окно со списком уже имеющихся строковых ресурсов из вашей программы (раньше). Вам нужно выбрать язык для перевода, а затем заполнить в таблице нужную колонку.

После того, как вы завершите перевод всех ресурсов, нажимаете на кнопку OK и у вас появится готовая папка с новым файлом strings.xml для выбранной локализации.

Сейчас в студии вместо диалогового окна выводится окно редактора, в котором можно редактировать текст.

Непереводимая игра слов с использованием местных идиоматических выражений

Если вы решили использовать локализацию на разных языках, то можете встретиться с одной проблемой. Предположим, вы перевели только несколько строковых ресурсов и в один прекрасный день решили выложить программу в магазин приложений. Android Studio при сборке подписанного приложения может заругаться, что вы перевели не все строки. Есть два способа обхода проблемы. Вы можете использовать атрибут translatable=»false», чтобы указать среде разработке, что данная строка не требует перевода:

В окне редактора это сделать проще через флажки в столбце Untranslatable.

Второй вариант — явно указать, что все строки в файле не нужно переводить с помощью tools:ignore=»MissingTranslation».

Есть ещё один вариант, когда непереводимые строки размещаются не в ресурсе strings.xml, а в другом файле под именем donottranslate.xml.

Когда вы исправите строковые ресурсы, то избавьтесь от ошибок через Project | Clean. и попытайтесь собрать приложение заново.

Поддержка письма справа налево

Арабы и некоторые другие народы используют непривычную для европейцев схему написания текстов справа налево. В Android 4.2 появилась поддержка данного режима. В блоге (англ.) Native RTL support in Android 4.2 рассказано о некоторых вещах по этой теме.

Теперь вы можете писать приложение для израильских военкоматов. Русские призывники в интервью офицерам душевного здоровья часто используют сочетание хатуль мадан (חתול מדען). Теперь вы знаете, как локализовать строки пушкинского стихотворения про кота учёного.

Читайте также:  Прошивка для android n8000

Несколько локалей

В Android 7.0 (API 24) пользователь может установить несколько локалей. В этом случае, если не будут найдены ресурсы для первой локали, то будут искаться ресурсы для второй локали. Таким образом, если француз знает два языка, например, французский и испанский, а в приложение не поддерживает французского, но поддерживает испанский, то пользователь увидит текст на испанском, а не на английском.

Источник

How To Translate Apps In Android Studio

Translating your Android app not only improves your overall user experience but may also increase your downloads. Learn how to localize your app within Android Studio, the official Android IDE from Google.

Let’s guide you through the steps to show you how to create a multilingual Android app with Android Studio.

Localizing your Android app may boost sales, increase conversion rate and improve the overall user experience.

Getting Started

Android Studio is the official Android IDE being developed by Google.

If this is your first Android Studio project: simply install Android Studio, create a new project from the “Blank Activity” template and drag some UI widgets to the blank canvas space. We used this little example view (to the right) that we will be using for this post.

By default, UI widgets store their label in hard-coded strings. If you hover your cursor over a UI widget, Android Studio shows a tooltip that offers to move this hard-coded string to a resource file named strings.xml.

Go ahead, follow the tooltip and move all your translatable strings to the strings.xml resource file.

Translating With The Android Studio Translation Editor

In your projects file navigator, expand the newly created values directory, right-click the strings.xml file to open the Translation Editor.

In the Translation Editor, click the globe-icon to add a new language file, in our example we will add ‘de’ (German) and ‘es”(Spanish).

You may need to close and re-open the Translation Editor tab after adding a new language if it does not show up immediately.

You can now start translating your strings. If a string is not translated in a locale, the app will automatically fall back to the value in the default strings.xml – usually the English language file will be used as a default language.

With an elaborate copywriting process you might want to separate the developer locale used for development (maybe containing placeholder copy) and the English, edited and proof-read language version.

And voila: you’re done! There is no extra code for language selection needed. Android will select the right locale based on the device language if it is available in your published application.

Explore why app translation can be key to your global business expansion and follow our best practices.

Getting Professional Translation And Sharing String Files With Translators

If you want to take localization one step further, check out Phrase, a service that helps you manage your translation process online. You can even order professional translations with the click of a button.

The Phrase Android Studio Plugin integrates seamlessly with Android Studio and the Translation Editor. Install the Plugin, then navigate to File -> Settings -> IDE Settings -> Phrase and enter the Auth Token for your project. On the main menu bar, you can now push and pull locales from Phrase.

Читайте также:  Галерея для андроид сони

Further Reading

Be sure to subscribe and receive all updates from the Phrase blog straight to your inbox. You’ll receive localization best practices, about cultural aspects of breaking into new markets, guides and tutorials for optimizing software translation and other industry insights and information. Don’t miss out!

Источник

Start Translating Apps in Android Studio Today

Translating your Android app not only improves your overall user experience but may also increase your downloads. Learn how to translate apps in Android Studio, the official Android IDE from Google.

Let’s guide you through the steps to show you how to create a multilingual Android app with Android Studio. Localizing your Android app may boost sales, increase conversion rate and improve the overall user experience.

Getting Started

Android Studio is the official Android IDE developed by Google.

If this is your first Android Studio project: simply install Android Studio, create a new project from the “Blank Activity” template and drag some UI widgets to the blank canvas space. We used this little example view (below) that we will be using for this post.

By default, UI widgets store their label in hard-coded strings. If you hover your cursor over a UI widget, Android Studio will show a tooltip that offers to move this hard-coded string to a resource file named strings.xml.

Go ahead, follow the tooltip and move all your translatable strings to the strings.xml resource file.

Translating With The Android Studio Translation Editor

In your projects file navigator, expand the newly created values directory, right-click the strings.xml file to open the Translation Editor.

In the Translation Editor, click the globe-icon to add a new language file, in our example we will add ‘de’ (German) and ‘es‘(Spanish). We also want to add the region locale ‘de-at‘ for Austria, which can’t be created with the editor. As a result we need to create the directory ‘values-de-rAT‘ in the resources folder and create a strings.xml.

You may need to close and re-open the Translation Editor tab after adding a new language if it does not show up immediately.

You can now start translating your strings. If a string is not translated in a locale, the app will automatically revert to the most similar translation. E.g if a translation is missing in the Austrian localization, it will use the German translation and if it’s missing there, too, the default language will be used – which usually is the english language file.

And voila: you’re done! There is no extra code for language selection needed. Android will select the right locale based on the device language if it is available in your published application.

Getting Professional Translation And Sharing String Files With Translators

If you want to take localization one step further, check out Phrase, our service that helps you manage your translation process online. You can even order professional translations with the click of a button.

The Phrase Android Studio Plugin integrates seamlessly with Android Studio and the Translation Editor. Install the Plugin, after restarting it should appear at the right toolbar of your IDE.

Next you can let the plugin create your Phrase configuration.
Just paste the access token and the plugin will guide you through the steps. After successfully initialisation you can now pull and push your locales.

Источник

Оцените статью