Error message & blank display while ZH-cn locale in ai2

本文介绍如何在AppInventor中修改登录功能,以支持多语言环境。通过编辑源码中的两个关键文件,可以实现登录界面和错误信息的多语言显示,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

需要修改源码2个文件:

1.appinventor-sources\appinventor\appengine\war\login.jsp

<center><p><a href="/login/sendlink"  style="text-decoration:none;">${passwordclickhereLabel}</a></p></center>

修改为:

<center><p><a href="/login/sendlink?locale=<%= locale %>"  style="text-decoration:none;">${passwordclickhereLabel}</a></p></center>

2.appinventor-sources\appinventor\appengine\src\com\google\appinventor\server\LoginServlet.java

1.修改调用 fail(),大概有11处。

 fail(req, resp, ************);

修改为:

 fail(req, resp, locale,**********);

 2.修改 fail()函数,1处

private void fail(HttpServletRequest req, HttpServletResponse resp, String error) throws IOException {
    resp.sendRedirect("/login/?error=" + sanitizer.sanitize(error));
    return;
  }

修改为:

 private void fail(HttpServletRequest req, HttpServletResponse resp,String locale, String error) throws IOException {
    resp.sendRedirect("/login/?locale="+ locale +"&error=" + URLEncoder.encode(sanitizer.sanitize(error)));
    return;
  }

3.修改sendlink页面

 } else if (page.equals("sendlink")) {
      out = setCookieOutput(userInfo, resp);
      out.println("<head><title>" + bundle.getString("requestreset") + "</title></head>\n");
      out.println("<body>\n");
      out.println("<h1>" + bundle.getString("requestlink") + "</h1>\n");
      out.println("<p>" + bundle.getString("requestinstructions") + "</p>\n");
      out.println("<form method=POST action=\"" + req.getRequestURI() + "\">\n");
      out.println(bundle.getString("enteremailaddress") + ":&nbsp;<input type=text name=email value=\"\" size=\"35\"><br />\n");
      out.println("<p></p>");
      out.println("<input type=submit value=\"" + bundle.getString("sendlink") + "\" style=\"font-size: 300%;\">\n");
      out.println("</form>\n");
      return;
    }

替换为:

  } else if (page.equals("sendlink")) {
      out = setCookieOutput(userInfo, resp);
      out.println("<head><title>" + bundle.getString("requestreset") + "</title></head>\n");
      out.println("<body>\n");
      out.println("<h1>" + bundle.getString("requestlink") + "</h1>\n");
      out.println("<p>" + bundle.getString("requestinstructions") + "</p>\n");
      out.println("<form method=POST action=\"" + req.getRequestURI() +  "\">\n");
      out.println(bundle.getString("enteremailaddress") + ":&nbsp;<input type=text name=email value=\"\" size=\"35\"><br />\n");
      out.println("<p><input type=hidden name=locale value=\""+ locale + "\"></p>");
      out.println("<input type=submit value=\"" + bundle.getString("sendlink") + "\" style=\"font-size: 300%;\">\n");
      out.println("</form>\n");
      return;
    }

4.linksent加上语言

resp.sendRedirect("/login/linksent/");

替换为:

resp.sendRedirect("/login/linksent/?locale=" + locale);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值