2015-03-13 3 views
1

Я видел много приложений, которые будут запрашивать языковые настройки при первом открытии приложения, он будет загружать определенный язык в любое время. Но в моем случае мне нужно поддерживать разные языки одновременно, у пользователя может быть больше 2 и он должен поддерживать метаданные из 4-х языков (английский, корейский, японский, китайский) в одно и то же время. Как-то я получаю метаданные с сервера или на local song.so я использую что-то подобное для корейского языка. (в этом случае она не будет поддерживать, китайский)Поддержка нескольких языков одновременно?

String songnametemp = json.getString(0)//from server 

String songname=`songnametemp.getBytes("iso-8859-1"), "euc-kr")`//changing to korean 
TextView songtext=(TextView)findViewbyID(R.id.song); 
songtext.setText(songname) 

проблема заключается в том, что я не могу жесткий код для каждого языка, я не знаю, на каком языке (META-DATA) песни воспроизводятся с сервер. есть ли лучший способ сделать это?

+0

Я не совсем понимаю вашу проблему .. Вы хотите определить язык из строки? (liek songnameTemp) – stinepike

+0

@StinePike Нет, я хочу поддерживать большинство возможных языков. – Asthme

+0

Это не должно быть проблемой, просто установите любой текст, который вы получаете с сервера, в свой «TextView», и все должно быть в порядке. – JonasCz

ответ

2

В моем устройстве lollipop он поддерживает корейский язык и язык хинди, но мой кикат не поддерживает оба. Я думаю, что каждая новая версия поддерживает больше языков. В Windows это обрабатывается системной библиотекой под названием Uniscribe, в системах Apple ATSUI и системами Linux Pango. Android основан на Linux , но, к сожалению, Google, похоже, удалил части для обработки сложных скриптов. (Довольно странное решение, так как большинство устройств Android предназначены для связи, включая текст.) Сложные сценарии отлично работают на других мобильных устройствах с использованием операционной системы на базе Linux, такой как Nokia N9 и N900. .in android. Нет способа определить, какой язык Unicode у вас есть метаданные, если вы знаете язык, который вы можете кодировать на конкретный язык, как то, что вы делали выше. Или вы можете дать настройке предпочтение «выбрать язык» при первом запуске приложения. Но если вы хотите поддерживать весь язык одновременно. Вы должны кодировать только на сервере, поэтому вы можете одновременно поддерживать все языки.

0

Я не очень хорошо понимаю, что вы пытаетесь сделать, но для поддержки многоязычности в android для - статические значения, используйте только значения «values-en», «values-ar» - значения сервера , чтобы ваши веб-сервисы обрабатывать языку «example.com/en/getdata» «example.com/ar/getdata» и ваши ценности добавить ссылку в качестве языка

1

Когда я бегу в этом вопросе и иметь контроль данные, хранящиеся на сервере, я конвертирую все в Юникод, например UTF-8, перед хранением. Таким образом, преобразование выполняется только один раз, и нет необходимости, чтобы нисходящие приложения обрабатывали что-либо, кроме UTF-8. Важным преимуществом является использование вами нескольких языков вместе, которые теперь могут быть прозрачными.