如何在Google Translate ML Kit中获取已下载语言名称列表?
获取已下载翻译模型的语言名称列表
你当前获取已下载模型的代码如下:
modelManager.getDownloadedModels(TranslateRemoteModel.class).addOnSuccessListener(new OnSuccessListener<Set<TranslateRemoteModel>>() { @Override public void onSuccess(Set<TranslateRemoteModel> translateRemoteModels) { Log.d("TAG56565", "onSuccess: " + translateRemoteModels.toString()); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { } });
要提取已下载的语言名称列表,可在onSuccess回调中遍历返回的模型集合,通过模型对象获取语言代码后转换为对应名称:
modelManager.getDownloadedModels(TranslateRemoteModel.class).addOnSuccessListener(new OnSuccessListener<Set<TranslateRemoteModel>>() { @Override public void onSuccess(Set<TranslateRemoteModel> translateRemoteModels) { List<String> downloadedLangNames = new ArrayList<>(); for (TranslateRemoteModel model : translateRemoteModels) { // 获取模型对应的语言代码(如"en"、"zh") String langCode = model.getLanguage(); // 将语言代码转换为本地易读的语言名称 Locale locale = new Locale(langCode); String langName = locale.getDisplayName(Locale.getDefault()); downloadedLangNames.add(langName); } // 此时downloadedLangNames即为已下载的语言名称列表 Log.d("TAG", "已下载语言列表: " + downloadedLangNames.toString()); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { e.printStackTrace(); } });
补充说明
TranslateRemoteModel.getLanguage()是Google ML Kit翻译模型类的标准方法,用于获取模型对应的目标语言代码。Locale.getDisplayName(Locale.getDefault())会以当前系统语言显示名称(比如系统为中文时,"en"会显示为"英语"),若需要固定显示语言,可替换为指定Locale(如Locale.CHINESE)。
内容的提问来源于stack exchange,提问作者IT Student
相关产品推荐
相关产品推荐

