Developing your apps with User Interface in Android is easy, but your get to follow the guidelines.
- Don't hard code text. Use Resource (strings.xml).
- Avoid integrate text into picture (icon, banner, etc)
- Use short wording
The default language of the apps "Baby milkfeed counter" is English. That mean whatever you device language setting is, the apps will display UI in the English.
Let's focus on the field "Fed Today".
.
The below is a extract of the /res/layout/main.xml.
android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/fedToday" />
The above text "@string/fedToday" was a tag stored in /res/values/strings.xml. Text field stored in this file are default language in this app (i.e. English). Let see the extract content of this string.xml.
... ... Last feed time Last volume Since last feed Fed today Fed Yesterday ... ...
Rather than hard code the text "Fed Today" in /res/layout/main.xml , I store it as string in /res/values/strings.xml. In fact, you should store all the text that will display in UI in the strings.xml. To implement multilingual UI, I don't need to change other file, but just add another file, /res/value-<locale>/strings.xml.
For example, to implement the app's UI in Traditional Chinese, I just need to prepare another strings.xml, as in /res/values-zh-rTW/strings.xml.
... ... 上次餵哺時間 上次餵哺量 離上次餵哺 今日已餵 昨日已餵 ... ...
The process is completed. As you can see, the UI development did not involved any Java code, or even any file, just string.xml. To switch between go to the Android setting change the Language. launcher icon and UI textwill changed based on the device setting.
For every setting language, you get to prepare a separate /res/value-<locale>/strings.xml. if the device can find the its own language's string.xml, it uses the default one. Language and the strings.xml path mapping is as below.
Default | /res/value/strings.xml |
CANADA | /res/value-en-rCA/strings.xml |
CANADA-FRENCH | /res/value-fr-rCA/strings.xml |
CHINA | /res/value-zh-rCN/strings.xml |
CHINESE | /res/value-zh/strings.xml |
ENGLISH | /res/value-en/strings.xml |
FRANCE | /res/value-fr-rFR/strings.xml |
FRENCH | /res/value-fr/strings.xml |
GERMAN | /res/value-de/strings.xml |
GERMANY | /res/value-de-rDE/strings.xml |
ITALIAN | /res/value-it/strings.xml |
ITALY | /res/value-it-rIT/strings.xml |
JAPAN | /res/value-ja-rJP/strings.xml |
JAPANESE | /res/value-ja/strings.xml |
KOREA | /res/value-ko-rKR/strings.xml |
KOREAN | /res/value-ko/strings.xml |
PRC | /res/value-zh-rCN/strings.xml |
SIMPLIFIED-CHINESE | /res/value-zh-rCN/strings.xml |
TAIWAN | /res/value-zh-rTW/strings.xml |
TRADITIONAL-CHINESE | /res/value-zh-rTW/strings.xml |
UK | /res/value-en-rGB/strings.xml |
US | /res/value-en-rUS/strings.xml |
For more locale info for Android Development / SDK, check with the following
Supporting Different Languages
Localization
Locale
Hi there! If you are working on creating multilingual Android app, I recommend trying https://poeditor.com/. It has a simple UI and lots of useful features (API, translation memory, Gengo integration, automatic translation, WordPress plugin) that will simplify your workflow.
ReplyDeleteAndroid Application Development HongKong,
ReplyDeleteHire Best iOS App Developers HongKong,
Best Mobile App Development Services HongKong,
Custom iPhone App Development Services Hong Kong
outsourcingall.com "Nice and helpful information provided by you. Thanks Buddy
ReplyDeleteSeo training in bangladash
outsourcing training in dhaka
Best Website Development and Design Company in Bangladesh
graphic design training