I am writing an app in which I have to support all Indian languages and for that I am looking for some third party library (free or paid)
I googled many times for the same but I did not get any decent option (library)
I just got use strings.xml for (English, Hindi) in their respective folders.
But I have seen in Whatsapp there is a multilanguage option, which supports almost all major indian languages
For an Example : If I do select Hindi language, so it translates complete app in Hindi language only
Same kind of functionality, I need in my app, like in drop down, If user do tap on any of the Indian language, my app has to converted in same one only (Like: Hindi, Telugu, Marathi, Gujarati and others)
What would be the best way of doing this and getting it done?
It depends what do you mean by "support"
Android supports all Indic languages. But it is not localized in all them.
Because of that, some of them cannot be selected from Settings.
But if you can provide string.xml files for all of them, and put them in the proper values-xy folder.
Possible problems:
How to select a language that the OS does not support? Have your own language selection. Once a locale is selected, call Locale.setDefault (to change the formatters), and change the resource loading configuration (Set Locale programmatically)
You see squares. This means missing fonts. Android has fonts for all the Indic scripts. But older phones might miss some. And OEMs might remove some to reduce size. So you can embed the proper Noto fonts in your application and use them (https://www.google.com/get/noto/). Use styles, and have language specific style sheets.
Keyboard missing. Install one. Here is the Google one: https://play.google.com/store/apps/details?id=com.google.android.apps.inputmethod.hindi. But there are also third party ones, for instance https://play.google.com/store/apps/details?id=org.smc.inputmethod.indic
Related
i am using arabic characters for the first time in my app
this is how they should look like :
But this is how they end up :
things i tried:
changed the phone language to arabic.
i chose this font :Arabic type settings. i found in the fonts list
things works well for windows, its only in Android i get the problem.
i believe i am missing something because i never used arabic in apps before.
i appreciate your help.
Fire Monkey does not support right-to-left languages like Arabic. Unfortunately your chosen framework is not capable of meeting your needs. You will need to find a different tool to write your app.
I need to add a new locale to Android OS. I, with my team, will
translate all the apps provided by Android OS (e.g. Calculator) to
that language. It is based on Arabic script and is RTL. I have
reviewed how other apps are translated into Arabic on
android.googlesource.com
Android OS has already been translated into many languages. I saw that in source code where for each app a new strings.xml file is created for a new language,
for example
https://android.googlesource.com/platform/packages/apps/Calculator/+/master/res/values-ur-rPK/
I have few questions:
How would I make sure that this new language appears in Settings ->
Language & Input -> Language?
Is it up to manufacturer to show or hide any language?
English is shortly written as en, Farsi is shortly written as fa.
Similarly, the language I want to add is Sindhi and is shortly written
as sd. Will Android know if I make folder like values-sd in res
folder?
Sindhi is language spoken in India and Pakistan. Urdu is also one
language spoken in both countries. However, the folder for Urdu was
named as vaues-ur-rPK. I know PK means Pakistan, but I don't know what
"r" stands for in rPK. Is there a naming conventions? Is it for right
to left languages? Folder for Farsi was not named this way?
If there is something else I should know about, kindly let me know. I
have read a lot on https://source.android.com and have answers to some
basic questions. I am confused about the above questions.
Note: I had asked my question on android google groups for developers. One group rejected my post from appearing in the group and in other group no one was interested in my questions. Therefore, I am asking here.
I'm currently working on an app, which will be used (hopefully) by various tourist to my city. as such, i would like to complement as many languages as i can, and i have the appropriate translators to do so. I've read and started to implement the various different resources in the res folder, i already have some translated, i have a folder for each language as described in the guide from google.
How do I make the app initiate as non-English language in my phone while testing? for example Spanish. every time i run it, it's always English, and i would like to see that the app also works in the other languages, but i can't find anywhere how to initiate it.
I realize I might be simply overlooking something basic.
Thanks.
The language of the app is based on the system language. You need to change the language in Settings -> Language & input.
Change phone language from Settings->Language & input
If you use a physico-chimiques devices you have to change the languages of your device
If you use a emulator I think you can set the language on the creation.
If your tester have a android with spanish language, the app will be automatically on spanish. (if you create a filé string.xml in a values-es folder)
My learning app requires displaying Korean, English and Chinese. One solution I have is to embed a Korean/English font and a Chinese font. Then put together a string with different TextFormats.
The thing is, I'm positive that IOS and Android devices should contain native Chinese, Korean and English fonts already, and I'd much rather refer to and use those fonts instead of packing them.
I tried detecting fonts by using Font.enumerateFonts(true), but when I use font.hasGlyphs('你'), I don't get a true, or anything, so I don't know how to choose the proper device font.
If that doesn't work, is there a font that contains all of those Characters? Or maybe a font-builder program that'd allow me to customize a font to include
This was something that I wrote sometime back
http://blogs.adobe.com/airodynamics/2012/08/21/supporting-languages-with-unicode-characters/
Hopefully it helps you
You can always know the name of font specific to the language. May be this http://support.apple.com/kb/HT5878.
Now based on the language you want to show just change the value of font in the statement format.font and the correct language should come up.
I just created a text page in my app and now i want to change language of this page dynamically
to Indian languages like Telugu, Tamil, Bengla, Guujrati and Punjabi.
I researched a lot, and got that there are only 2 methods to achieve this(please correct me if i am going wrong):-
1)Using localization of strings http://developer.android.com/guide/topics/resources/localization.html .
But in it problem is that, if android phone is supportable with these languages then it works
otherwise it show boxes in-place of fonts.
2)Using custom fonts to change language like
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Verdana.ttf");
tv.setTypeface(face);
But here's the problem is rendering. Fonts are not rendered properly.
Please suggest me, which option should i choose and how to overcome it's limitation.
I also want to mention that I want to support it on Android 2.3 and above.
Prior to Android 3, you need to use an appropriate font plus localisation to display characters from special scripts.
For Android 3+, using localisation most times is sufficient. Exceptions are Arabic, Hebrew, Indic scripts and a few others where you may need an appropriate font in addition to localisation to properly display these special characters in your Android app.
AFAIK, Verdana ONLY supports European Scripts such as Latin-1, Latin Extended-A, Latin Extended-B, Latin Extended Additional, Basic Greek and Cyrillic. Whereas Telugu, Tamil, Bengali, Gujarati are part of the South Asian Scripts - not sure about Punjabi (See Unicode Consortium for more info regarding Unicode scripts.) I guess you need to find an open-source font (so you don't have to pay loyalty when using proprietary fonts) that support the scripts you want to implement in your app.