How to change the Survey Tool

After any change, notify Rick to rebuild, test, and post.


  1. To add a new test, look at /test/CheckCLDR.
  2. To add or modify new help text, change:
    3. Wiki text -, and so on.
  3. You can add more files with editable HTML messages in them, and read them in code with the function ExampleGenerator.getHelpHtml()
  4. Note: Steven/Mark to add keyed message after: [?]
    • For details and help on any item, zoom in by clicking on the status icon: [okay][ques][warn][stop] [squo], link for Help to (Mark)
    • See below

See also:


To modify converage goals, change the Locales.txt file. Only change your organization's goals.
  3. Unless we run into perf problem, keep separate coverage.
  4. Replace country-specific locales by language locales unless spelling is different.

General Instructions

Updating General instructions for users.

New Items

For a warning message on new items, change the regex in CheckNew


Enabling Templatization
  • call  ctx.includeFragment("dataitems_header.jsp")
  • can use  ctx.put("key", value)  and (from the JSP)   ctx.get("key")  to pass data to the JSP

Adding Unit Tests to the Survey Tool (advanced)
if you add a file such as "...cldr/tools/java/org/unicode/cldr/web/data/root/tmpl/r_unittest.jsp"   ( example contents below ) you can run it as: (for example)
Hello! Here are a bunch o' xpaths for null (de_CH):

NOTE: currently you have to make "getUserFile" public, like 4780 of 


<%@ include file="stcontext.jspf" %>
<%@ page import="org.unicode.cldr.util.*" %>
<%@ page import="org.unicode.cldr.test.*" %>
<%@ include file="report.jspf" %>

<% synchronized(ctx.session) {  /* protect the DB access */ %>

    // note: next function is private, need to make it public.
    SurveyMain.UserLocaleStuff uf =, (ctx.session==null)?null:ctx.session.user, ctx.locale);
    CLDRFile unresolvedFile = uf.cldrfile;
    CLDRFile resolvedFile = new CLDRFile(uf.dbSource,true);
    CLDRFile baselineFile =;
    CheckCLDR check = uf.getCheck(ctx);

Hello! Here are a bunch o' xpaths for <%= ctx.localeString() %>:
  <% for(java.util.Iterator iter = unresolvedFile.iterator();iter.hasNext();) { %>
        <%= (String) %>
  <% } %>

<% }/* end sync */ %>