Browse Source

Test and fix Java to IANA country code mapping.

master
Reece H. Dunn 10 years ago
parent
commit
328f4cfdc9

+ 8
- 0
android/eSpeakTests/src/com/reecedunn/espeak/test/SpeechSynthesisTest.java View File

} }
} }


public void testJavaToIanaCountryCode()
{
for (VoiceData.Voice data : VoiceData.voices)
{
assertThat(SpeechSynthesis.getIanaCountryCode(data.javaCountry), is(data.ianaCountry));
}
}

public void testAddedVoices() public void testAddedVoices()
{ {
getVoices(); // Ensure that the voice data has been populated. getVoices(); // Ensure that the voice data has been populated.

+ 8
- 3
android/src/com/reecedunn/espeak/SpeechSynthesis.java View File

final Configuration config = context.getResources().getConfiguration(); final Configuration config = context.getResources().getConfiguration();


final String language = getIanaLanguageCode(locale.getLanguage()); final String language = getIanaLanguageCode(locale.getLanguage());
final String country = getIanaLocaleCode(locale.getCountry(), mJavaToIanaCountryCode); final String country = getIanaCountryCode(locale.getCountry());
config.locale = new Locale(language, country, locale.getVariant()); config.locale = new Locale(language, country, locale.getVariant());


Resources res = new Resources(context.getAssets(), metrics, config); Resources res = new Resources(context.getAssets(), metrics, config);
return getIanaLocaleCode(code, mJavaToIanaLanguageCode); return getIanaLocaleCode(code, mJavaToIanaLanguageCode);
} }


public static String getIanaCountryCode(String code) {
return getIanaLocaleCode(code, mJavaToIanaCountryCode);
}

private static String getIanaLocaleCode(String code, final Map<String, String> javaToIana) { private static String getIanaLocaleCode(String code, final Map<String, String> javaToIana) {
final String iana = javaToIana.get(code); final String iana = javaToIana.get(code);
if (iana != null) { if (iana != null) {
mJavaToIanaLanguageCode.put("vie", "vi"); mJavaToIanaLanguageCode.put("vie", "vi");
mJavaToIanaLanguageCode.put("zho", "zh"); mJavaToIanaLanguageCode.put("zho", "zh");


mJavaToIanaCountryCode.put("JAM", "JM");
mJavaToIanaCountryCode.put("MEX", "MX");
mJavaToIanaCountryCode.put("BEL", "BE"); mJavaToIanaCountryCode.put("BEL", "BE");
mJavaToIanaCountryCode.put("BRA", "BR"); mJavaToIanaCountryCode.put("BRA", "BR");
mJavaToIanaCountryCode.put("FRA", "FR"); mJavaToIanaCountryCode.put("FRA", "FR");
mJavaToIanaCountryCode.put("GBR", "GB"); mJavaToIanaCountryCode.put("GBR", "GB");
mJavaToIanaCountryCode.put("HKG", "HK");
mJavaToIanaCountryCode.put("JAM", "JM");
mJavaToIanaCountryCode.put("MEX", "MX");
mJavaToIanaCountryCode.put("PRT", "PT"); mJavaToIanaCountryCode.put("PRT", "PT");
mJavaToIanaCountryCode.put("USA", "US"); mJavaToIanaCountryCode.put("USA", "US");
mJavaToIanaCountryCode.put("VNM", "VN"); mJavaToIanaCountryCode.put("VNM", "VN");

Loading…
Cancel
Save