private void init( File file )
  {
    fileRef = file ;

    String fileName = fileRef.getName() ;

    int i1 = fileName.indexOf( '_' ) ;
    int i2 = fileName.indexOf( '.', -1 ) ;

    prefix = "" ;
    suffix = "" ;

    // check the java style filename -> "name_language_country_variant.php"
    if ( i1 > 0 ) // has _ => filename with language extension
    {
      prefix = fileName.substring( 0, i1 ) ;
      if ( i2 > 0 )
      {
        suffix = fileName.substring( i2 ) ;
        version = fileName.substring( i1 + 1, i2 ) ;
      }
      else // no valid suffix
      {
        version = fileName.substring( i1 + 1 ) ;
      }
    }
    else // no _ => no language extension
    {
      version = "" ;
      if ( i2 > 0 ) // only . in filename => no language extension
      {
        prefix = fileName.substring( 0, i2 ) ;
        suffix = fileName.substring( i2 ) ;

        // prefix is iso code => file like "language.php"
        if (prefix.length() == 2)
        {
          // is it a iso code ?
          String dummy = TLanguageNames.runtime.getLanguageName(prefix) ;
          if (dummy.length() > 0)
          {
            lang = prefix ;
            prefix = "" ;
          }
        }
      }
      else // no _ and . => filename without fileextension like .php
      {
        prefix = fileName ;
      }
    }

    if ( version.length() > 0 )
    {
      // full structure "_languageID_countryID" = version

      i1 = version.indexOf( '_' ) ;
      if ( i1 > 1 ) // ignore any leading _
      {
        country = version.substring( i1 + 1 ) ;
        lang = version.substring( 0, i1 ) ;
        i1 = country.indexOf("_") ;
        if ( i1 > 1)  // variant available
        {
          String dummy = country ;
          country = dummy.substring(0, i1) ;
          variant = dummy.substring(i1+1) ;
        }
      }
      else
      {
        lang = version ;
      }
    }

  }