rem: message = g_strdup_printf (_("A problem occured while loading a library or a decoder (%s)."), params);
add: message = g_strdup_printf (_("A problem occurred while loading a library or a decoder (%s)."), params);
context: xine_event_message (BaconVideoWidget *bvw, xine_ui_message_data_t *data){	char *message;	int num;	signal_data *sigdata;	const char *params;	message = NULL;	switch (data->type)	{	case XINE_MSG_NO_ERROR:		return;	case XINE_MSG_GENERAL_WARNING:		return;	case XINE_MSG_UNKNOWN_HOST:		num = BVW_ERROR_UNKNOWN_HOST;		message = g_strdup (_("The server you are trying to connect to is not known."));		break;	case XINE_MSG_UNKNOWN_DEVICE:		num = BVW_ERROR_INVALID_DEVICE;		message = g_strdup_printf (_("The device name you specified (%s) seems to be invalid."), (char *) data + data->parameters);		break;	case XINE_MSG_NETWORK_UNREACHABLE:		num = BVW_ERROR_NETWORK_UNREACHABLE;		message = g_strdup_printf (_("The server you are trying to connect to (%s) is unreachable."), (char *) data + data->parameters);		break;	case XINE_MSG_CONNECTION_REFUSED:		num = BVW_ERROR_CONNECTION_REFUSED;		message = g_strdup (_("The connection to this server was refused."));		break;	case XINE_MSG_FILE_NOT_FOUND:		num = BVW_ERROR_FILE_NOT_FOUND;		message = g_strdup (_("The specified movie could not be found."));		break;	case XINE_MSG_READ_ERROR:		if (g_str_has_prefix (bvw->priv->mrl, "dvd:") != FALSE)                {                        num = BVW_ERROR_DVD_ENCRYPTED;                        message = g_strdup (_("The source seems encrypted, and can't be read. Are you trying to play an encrypted DVD without libdvdcss?"));                } else {			num = BVW_ERROR_READ_ERROR;			message = g_strdup (_("The movie could not be read."));		}		break;	case XINE_MSG_LIBRARY_LOAD_ERROR:		params = (char *) data + data->parameters;		if (bacon_video_widget_plugin_exists (bvw, params) == FALSE)			return;		/* Only if the file could really not be loaded */		num = BVW_ERROR_PLUGIN_LOAD;		message = g_strdup_printf (_("A problem occured while loading a library or a decoder (%s)."), params);		break;	case XINE_MSG_ENCRYPTED_SOURCE:		if (g_str_has_prefix (bvw->priv->mrl, "dvd:") != FALSE)		{			num = BVW_ERROR_DVD_ENCRYPTED;			message = g_strdup (_("The source seems encrypted, and can't be read. Are you trying to play an encrypted DVD without libdvdcss?"));		} else {			num = BVW_ERROR_FILE_ENCRYPTED;			message = g_strdup (_("This file is encrypted and cannot be played back."));		}		break;	case XINE_MSG_SECURITY:		num = BVW_ERROR_GENERIC;		message = g_strdup (_("For security reasons, this movie can not be played back."));		break;	case XINE_MSG_AUDIO_OUT_UNAVAILABLE:		xine_stop (bvw->priv->stream);		num = BVW_ERROR_AUDIO_BUSY;		message = g_strdup (_("The audio device is busy. Is another application using it?"));		break;	case XINE_MSG_PERMISSION_ERROR:		num = BVW_ERROR_FILE_PERMISSION;		if (g_str_has_prefix (bvw->priv->mrl, "file:") != FALSE)			message = g_strdup (_("You are not allowed to open this file."));		else			message = g_strdup (_("The server refused access to this file or stream."));		break;/* FIXME missing stuff from libxine includes (<= 1.1.x) */#ifndef XINE_MSG_FILE_EMPTY#define XINE_MSG_FILE_EMPTY 13#endif	case XINE_MSG_FILE_EMPTY:		num = BVW_ERROR_EMPTY_FILE;		message  = g_strdup (_("The file you tried to play is an empty file."));		break;	default:		D("xine_event_message: unhandled error\ntype: %d", data->type);		return;	}	sigdata = g_new0 (signal_data, 1);	sigdata->signal = ERROR_ASYNC;	sigdata->msg = message;	sigdata->num = num;	g_async_queue_push (bvw->priv->queue, sigdata);	g_idle_add ((GSourceFunc) bacon_video_widget_idle_signal, bvw);}