docs: public BaseDatabase makeDBLocale(Record record, BaseDatabase databaseLocale)
      {
          String strLanguage = DBConstants.BLANK;
          if (record.getRecordOwner() != null) if (record.getRecordOwner().getTask() != null)
          {
              strLanguage = record.getRecordOwner().getTask().getProperty(DBParams.LANGUAGE);
              if ((strLanguage == null) || (strLanguage.length() == 0))
                  strLanguage = record.getRecordOwner().getTask().getApplication().getLanguage(true);
          }
          if ((strLanguage == null) || (strLanguage.length() == 0))
              strLanguage = ENGLISH;
          String strCurrentLanguage = ENGLISH;
          if (databaseLocale != null)
          {   // Unlikely, but if locale changes, need to change locale database
              strCurrentLanguage = ENGLISH;
              if (databaseLocale.getProperties() != null)
                  strCurrentLanguage = (String)databaseLocale.getProperties().get(DBParams.LANGUAGE);
              if ((strCurrentLanguage == null) || (strCurrentLanguage.length() == 0))
                  strCurrentLanguage = ENGLISH;
              if (!strCurrentLanguage.equalsIgnoreCase(strLanguage))
              {
                  if (databaseLocale != this)
                      databaseLocale.free();
                  databaseLocale = null;
              }
          }
          if (databaseLocale == null)
          { // First time
              if (strLanguage != null)
                  if (strLanguage.length() > 0) 
                      if (!ENGLISH.equals(strLanguage))
              {
                  String strLocaleDBName = record.getDatabaseName() + "_" + strLanguage;
                  if (!strLocaleDBName.equals(this.getDatabaseName(false)))
                  {	// Must create the locale database manually
                  	Object strOldCreate = this.getProperties().get(DBConstants.CREATE_DB_IF_NOT_FOUND);
                  	if (this.getProperty("createLocaleDatabase") == null)
                  	{
                  		if ((strLanguage.length() == 2) || (strLanguage.length() == 5))		// Don't create database for locales (es or en_EN) only for special locales
                  			this.getProperties().put(DBConstants.CREATE_DB_IF_NOT_FOUND, DBConstants.FALSE);
                  	}
                      databaseLocale = (BaseDatabase)m_databaseOwner.getDatabase(strLocaleDBName, record.getDatabaseType() & DBConstants.TABLE_MASK, this.getProperties());
                      if (databaseLocale != null)
                      {
                      	databaseLocale.setProperty(DBParams.LANGUAGE, strLanguage);
                      	databaseLocale.setProperty(SQLParams.NO_NULL_FIELD_SUPPORT, DBConstants.TRUE);	// Since null means use data from main record
                      }
                      if (strOldCreate == null)
                      	this.getProperties().remove(DBConstants.CREATE_DB_IF_NOT_FOUND);
                      else
                      	this.getProperties().put(DBConstants.CREATE_DB_IF_NOT_FOUND, strOldCreate);
                  }
              }
          }
          if (databaseLocale == null)
              databaseLocale = this;    // If not found the first time through, don't keep looking.
          return databaseLocale;
      }