rem: i18n("Save to file"), i18n("&Save"));
add: i18n("Save to File"), i18n("&Save"));
context: bool kBytesToFile(const char* aBuffer, int len,		   const QString &aFileName,		   bool aAskIfExists, bool aBackup, bool aVerbose){  QFile file(aFileName);  int writeLen, rc;  //assert(aFileName!=NULL);  if(aFileName.isEmpty())    return FALSE;  if (file.exists())  {    if (aAskIfExists)    {      QString str;      str = i18n("File %1 exists.\nDo you want to replace it?")		  .arg(aFileName);      rc = KMessageBox::warningContinueCancel(0,	   str, i18n("Save to file"), i18n("&Replace"));      if (rc != KMessageBox::Continue) return FALSE;    }    if (aBackup)    {      // make a backup copy      QString bakName = aFileName;      bakName += '~';      QFile::remove(bakName);      if( !QDir::current().rename(aFileName, bakName) )      {	// failed to rename file	if (!aVerbose) return FALSE;	rc = KMessageBox::warningContinueCancel(0,	     i18n("Failed to make a backup copy of %1.\nContinue anyway?")	     .arg(aFileName),             i18n("Save to file"), i18n("&Save"));	if (rc != KMessageBox::Continue) return FALSE;      }    }  }  if (!file.open(IO_Raw|IO_WriteOnly|IO_Truncate))  {    if (aVerbose) switch(file.status())    {    case IO_WriteError:      msgDialog(i18n("Could not write to file:\n%1").arg(aFileName));      break;    case IO_OpenError:      msgDialog(i18n("Could not open file for writing:\n%1")		.arg(aFileName));      break;    default:      msgDialog(i18n("Error while writing file:\n%1").arg(aFileName));    }    return FALSE;  }  writeLen = file.writeBlock(aBuffer, len);  if (writeLen < 0)  {    msgDialog(i18n("Could not write to file:\n%1").arg(aFileName));    return FALSE;  }  else if (writeLen < len)  {    QString msg = i18n("Could only write %1 bytes of %2.")		.arg(writeLen).arg(len);    msgDialog(msg);    return FALSE;  }  return TRUE;}