移动端首页显示的这些块的内容是在java文件中实现的,因此要实现国际化,需要对相关的java文件进行设置
java文件实现国际化就java文件标准的,待办和提交所在的java文件是/BIZ/SA/task/logic/code/dsrc/TaskViewProcedure.java
具体设置如下:
1.创建不同语言的properties类型资源文件
如:中文的:taskViewProcedure_zh.properties
内容如下:
条未处理 = 条未处理 待办 = 待办 无 = 无 提交 = 提交
英文的:taskViewProcedure_enproperties
内容如下:
public static Map<String,String> getLanguageLabels(){ //获取当前的语言 String language[] = ContextHelper.getOperator().getLanguage().split("_"); Locale locale = new Locale(language[0], language[1]); //设置语言环境 String basename = "locals.taskViewProcedure";//语言资源文件的目录名和文件名(注意不要加后面的语言如_zh)的组合 ResourceBundle myResources = ResourceBundle.getBundle(basename,locale);//根据基名和语言环境加载对应的语言资源文件 //加载资源文件后, 程序就可以调用ResourceBundle实例对象的 getString方法获取指定的资源信息名称所对应的值。 String untreated = myResources.getString("条未处理"); String waiting = myResources.getString("待办"); String no = myResources.getString("无"); String submiting = myResources.getString("提交"); //把获取语言资源信息名称所对应的值放到map中 HashMap<String, String> result = new HashMap<String, String>(); result.put("untreated",untreated); result.put("waiting",waiting); result.put("no",no); result.put("submiting",submiting); return result; }
3.给需要国际化设置的地方赋值
修改/BIZ/SA/task/logic/code/dsrc/TaskViewProcedure.java中queryWaitMessage和querySubmitMessage方法的实现
如下修改的queryWaitMessage:
public static Map<String, Object> queryWaitMessage() { //从map中获取语言资源信息名称所对应的值 Map<String,String> labels = getLanguageLabels(); HashMap<String, Object> params = new HashMap<String, Object>(); params.put( "columns", "SA_Task,sAIActive,sAIID,sAIStatusID,sAIStatusName,sActive,sActivity,sActivityInTemplate,sActivityName,sActivityNames,sActualFinishTime,sActualStartTime,sCURL,sCatalogID,sCode,sContent,sCreateTime,sCreatorDeptID,sCreatorDeptName,sCreatorFID,sCreatorFName,sCreatorOgnID,sCreatorOgnName,sCreatorPersonID,sCreatorPersonName,sCreatorPosID,sCreatorPosName,sCustomerID,sCustomerName,sData1,sData2,sData3,sData4,sDistributeTime,sEBField51,sEBField52,sEBField53,sEBField54,sEDField21,sEDField22,sEDField23,sEDField24,sEIField41,sEIField42,sEIField43,sEIField44,sENField11,sENField12,sENField13,sENField14,sESField01,sESField02,sESField03,sESField04,sESField05,sESField06,sESField07,sESField08,sETField31,sETField32,sETField33,sETField34,sEURL,sEmergencyID,sEmergencyName,sExecuteMode,sExecuteMode2,sExecuteTime,sExecutorDeptID,sExecutorDeptName,sExecutorFID,sExecutorFName,sExecutorNames,sExecutorOgnID,sExecutorOgnName,sExecutorPersonID,sExecutorPersonName,sExecutorPosID,sExecutorPosName,sExpectFinishTime,sExpectStartTime,sFlowID,sFrontID,sHints,sImportanceID,sImportanceName,sKindID,sLastModifyTime,sLimitTime,sLock,sName,sParent,sPlanID,sPlanName,sPreemptMode,sProcess,sProcessName,sProcessTemplateID,sProcessTemplateID2,sProcessTemplateItemSequence,sProjectID,sProjectName,sRemark,sRemindMode,sResponsible,sSequence,sShortcut,sSourceID,sStatusID,sStatusName,sSummary,sTempPermissionID,sTypeID,sTypeName,sVariable,sWarningTime,sWithdraw,version"); params.put("limit", 1); params.put("offset", 0); params.put("orderBy", "sCreateTime DESC"); params.put("variables", new HashMap<String, Object>()); String executor = ActionUtils.getRequestContext().getActionContext().getExecutor(); if(Utils.isEmptyString(executor)) executor = "*"; Table data = (Table) ActionUtils.invokeAction( "/SA/task/taskView/taskViewProcess", "mainActivity", "queryWaitTask2Action", executor, params); if (data.size() > 0) { HashMap<String, Object> result = new HashMap<String, Object>(); Integer size = (Integer) data.getProperties().get( Table.PROP_DB_COUNT); if(size == null) size = 0; String subLabel = size + labels.get("untreated"); Row row = data.iterator().next(); result.put("fLabel", labels.get("waiting")); result.put("fSubLabel", subLabel);//TODO: how to i18n result.put("fContent", row.getString("sName")); result.put("fTag", ""); result.put("fDate", row.getDateTime("sCreateTime")); result.put("fCount", size); result.put("fProcess", "/SA/task/taskView/taskViewProcess"); result.put("fActivity", "mainActivity"); result.put("fUrl", "$UI/SA/task/taskView/waitActivity.a"); return result; }else{ HashMap<String, Object> result = new HashMap<String, Object>(); String subLabel = labels.get("no"); result.put("fLabel", labels.get("waiting")); result.put("fSubLabel", subLabel);//TODO: how to i18n result.put("fContent", ""); result.put("fTag", ""); result.put("fDate", null); result.put("fCount", 0); result.put("fProcess", "/SA/task/taskView/taskViewProcess"); result.put("fActivity", "mainActivity"); result.put("fUrl", "$UI/SA/task/taskView/waitActivity.a"); return result; } }
在修改平台默认带的文件时推荐用扩展空间修改,可以下载下面的SA_X资源解压放到BIZ下直接使用
SA_X
评一波