Как да задам холандски език в Text-To-Speech?

Искам да задам холандски език в моя TTS обект. Следва кодът,

@Override
public void onInit(int status) 
{
    if ( status == TextToSpeech.SUCCESS ) 
    {
        int result = tts.setLanguage(Locale.getDefault());

        System.out.println ( "Result : " + result  + " " + Locale.getDefault().getLanguage() );

        if (result == TextToSpeech.LANG_MISSING_DATA
                || result == TextToSpeech.LANG_NOT_SUPPORTED) 
        {
            Toast.makeText( this , "Please Set your Language to English US.", Toast.LENGTH_LONG ).show();
        }
        else
        {
            tts.speak( "Hoe gaat het",TextToSpeech.QUEUE_FLUSH, null );
        }
    }
}

Следващият ред задава езика в TTS

int result = tts.setLanguage(Locale.getDefault());

Налични локали в локал.

въведете описание на изображението тук

Сега, ако езикът на моя телефон е холандски, тогава мога да задам езика на TTS като холандски език, но ако езикът на моя телефон не е холандски (напр. ако е английски), тогава няма опция за задаване на езика на TTS като холандски.

Може ли някой да ми помогне да настроя холандския език в TTS?


person user2060383    schedule 30.10.2014    source източник


Отговори (3)


Това трябва да работи

int result = tts.setLanguage(new Locale("nl_NL"));
person Hoan Nguyen    schedule 30.10.2014
comment
Защо, за бога, холандският има префикс de като в Deutschland вместо nl ?? - person Josh; 12.04.2016
comment
Само за хората, които търсят това, трябва да промените префикса de_NL на nl_NL, за да получите правилен нидерландски - person Carlo Matulessy; 03.10.2018

Задавате локал по подразбиране в setLocale. Това е причината за този проблем: Сега, ако езикът на моя телефон е холандски, тогава мога да задам езика на TTS като холандски език, но ако езикът на моя телефон не е холандски (напр. ако е английски), тогава няма опция за да зададете езика на TTS като холандски.

Вместо това трябва да използвате Locale, от който се нуждаете. Така че сменете

int result = tts.setLanguage(Locale.getDefault());

с

int result = tts.setLanguage(Locale.XYZ);  //XYZ is Locale you want.

Пример:

int result = tts.setLanguage(Locale.GERMAN);

Вижтедокументация, която включва налични локали, които можете да зададете. ХОЛАНДСКИ не се предлага там.

Въпреки че в тази статия се споменава, че ДЪТУЧКИ е наличен Локален. Може да не е за android, а за java, както е предложено тук

Надявам се това да помогне.

person MysticMagicϡ    schedule 30.10.2014
comment
Моля, проверете отново въпроса, добавих изображение на наличните опции в Locale. - person user2060383; 30.10.2014

за хинди-индия

newsReaderTTS.setLanguage(нов локал("hin", "IND", "variant"));

за английски САЩ

newsReaderTTS.setLanguage(нов локал("англ", "САЩ", "вариант"));

където newsreaderTTS е TTS.

person Vikas    schedule 21.04.2016