void transParseInterp(String langlocale, String format, String interrupts, ArrayList<SS_log> log, ArrayList<SS_playlist> pl, ArrayList<SS_arglist> argsx, String transcount)
  {
	read.lock();
	try
	  {
		SS_translation trans = find_translation(langlocale, format);
                if (trans != null)
       	          {
			System.out.println("== Found translation!");
       	                if (transcount != null && !transcount.isEmpty() )
                          {
				if (transcount.matches("^[0-9]+$"))
				  {
					String z = trans.get_by_number(Integer.parseInt(transcount));
					System.out.println("== Mapped " + transcount + " [" + format + "] to " +  z);
					format = z;
		        	  }
			  }
			else
			  {
				System.out.println("== Argument null or empty-- get first translation");
				String z = trans.get_by_number(0);
				if (z != null && z.length() > 0)
				  {
					System.out.println("== Replaced " + transcount + " with " + z);
					format = z;
				  }
			  }
		   }      
		else
		   {
			// System.out.println("== No matching translation found!");
		   }
		byte[] bts = null;
		try 
		  {
			bts = format.getBytes("UTF-8");
		  }
		catch (UnsupportedEncodingException uexc)
		  {
			System.out.print("UnsupportedEncoding="+uexc+"\n");
		  }

		/* Here we go! */

		SS_format form = parse_format(bts, log);
		if (form==null) System.out.print("**parse_format returns null!**\n");
		// System.out.println("parser has "+ form.elements.size() + " elements.");
		form.interpret_sentence(this, argsx, pl, log, interrupts, langlocale);
	  }
	finally
	  {
		read.unlock();
	  }
  }