code: @SuppressWarnings("unchecked")
      public Translator<V> getTranslatedValue(Object src, Locale loc, Translator<?> curr) {
          if( curr != null ) {
              Map<Locale,Object> map = (Map<Locale, Object>)curr.toMap();
              Object ob = getValue(src);
              
              map.put(loc, ob);
              return new Translator(map);
          }
          else {
              return new Translator<V>(loc, getValue(src));
          }
      }
docs: Provides a {@link Translator} instance for the requested value. This method is
  generally called to turn an arbitrary object into a multi-lingual instance of
  of the variable. Basically, when the system is trying to convert arbitrary
  data&mdash;such as user input or values from a persistence engine&mdash;into
  proper values for this type, it will call either this method or {@link #getValue(Object)}.
  Which method is called is dependent on whether this data type is multi-lingual.
  If the data type is multi-lingual, this method is called. This method will, in turn,
  call {@link #getValue(Object)} and wrap it in a {@link Translator}.
  @param src the raw data to be converted
  @param loc the locale associated with this value
  @param curr any current values for other languages
  @return a combined multi-lingual value