// Path: src/main/java/io/github/bonigarcia/dualsub/util/I18N.java
// public class I18N {
// 
// 	public static final String MESSAGES = "lang/messages";
// 
// 	public static final String HTML_INIT_TAG = "<html><font face='Lucid'>";
// 
// 	public static final String HTML_END_TAG = "</font></html>";
// 
// 	public enum Html {
// 		LINK, BOLD, MONOSPACE
// 	}
// 
// 	private static I18N singleton = null;
// 
// 	private Locale locale;
// 
// 	public I18N() {
// 		this.locale = Locale.getDefault();
// 	}
// 
// 	public static I18N getSingleton() {
// 		if (singleton == null) {
// 			singleton = new I18N();
// 		}
// 		return singleton;
// 	}
// 
// 	public static String getHtmlText(String key, Html html) {
// 		String out = HTML_INIT_TAG;
// 		switch (html) {
// 		case LINK:
// 			out += "<a href='#'>" + getText(key) + "</a>";
// 			break;
// 		case BOLD:
// 			out += "<b><u>" + getText(key) + "</u></b>";
// 			break;
// 		case MONOSPACE:
// 			out += "<pre>" + getText(key) + "</pre>";
// 			break;
// 		default:
// 			out += getText(key);
// 			break;
// 		}
// 		out += HTML_END_TAG;
// 		return out;
// 	}
// 
// 	public static String getHtmlText(String key) {
// 		return HTML_INIT_TAG + getText(key) + HTML_END_TAG;
// 	}
// 
// 	public static String getText(String key) {
// 		return ResourceBundle.getBundle(MESSAGES, getLocale()).getString(key);
// 	}
// 
// 	public static Locale getLocale() {
// 		return I18N.getSingleton().locale;
// 	}
// 
// 	public static void setLocale(String locale) {
// 		I18N.getSingleton().locale = new Locale(locale);
// 	}
// 
// 	public static void setLocale(Locale locale) {
// 		I18N.getSingleton().locale = locale;
// 	}
// 
// }


import io.github.bonigarcia.dualsub.util.I18N;
import java.io.File;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
				} else {
					dualSrt.addEntry(t, new Entry[] { subtitlesLeft.get(t),
							new Entry() });
				}
			}

			if (!subtitlesRight.isEmpty()) {
				for (String t : subtitlesRight.keySet()) {
					log.debug("Desynchronization on " + t + " "
							+ subtitlesRight.get(t).subtitleLines);
					dualSrt.processDesync(t, subtitlesRight.get(t));
				}
			}
		}

		return dualSrt;
	}

	public String getMergedFileName(Srt subs1, Srt subs2) {
		String mergedFileName = "";
		if (translate) {
			Srt srt = subs1.getFileName() == null ? subs2 : subs1;
			File file = new File(srt.getFileName());
			String fileName = file.getName();
			int i = fileName.lastIndexOf('.');
			i = i == -1 ? fileName.length() - 1 : i;
			String extension = fileName.substring(i);
			mergedFileName = getOutputFolder() + File.separator
					+ fileName.substring(0, i);
			if (merge) {
// Path: src/main/java/io/github/bonigarcia/dualsub/util/I18N.java
// public class I18N {
// 
// 	public static final String MESSAGES = "lang/messages";
// 
// 	public static final String HTML_INIT_TAG = "<html><font face='Lucid'>";
// 
// 	public static final String HTML_END_TAG = "</font></html>";
// 
// 	public enum Html {
// 		LINK, BOLD, MONOSPACE
// 	}
// 
// 	private static I18N singleton = null;
// 
// 	private Locale locale;
// 
// 	public I18N() {
// 		this.locale = Locale.getDefault();
// 	}
// 
// 	public static I18N getSingleton() {
// 		if (singleton == null) {
// 			singleton = new I18N();
// 		}
// 		return singleton;
// 	}
// 
// 	public static String getHtmlText(String key, Html html) {
// 		String out = HTML_INIT_TAG;
// 		switch (html) {
// 		case LINK:
// 			out += "<a href='#'>" + getText(key) + "</a>";
// 			break;
// 		case BOLD:
// 			out += "<b><u>" + getText(key) + "</u></b>";
// 			break;
// 		case MONOSPACE:
// 			out += "<pre>" + getText(key) + "</pre>";
// 			break;
// 		default:
// 			out += getText(key);
// 			break;
// 		}
// 		out += HTML_END_TAG;
// 		return out;
// 	}
// 
// 	public static String getHtmlText(String key) {
// 		return HTML_INIT_TAG + getText(key) + HTML_END_TAG;
// 	}
// 
// 	public static String getText(String key) {
// 		return ResourceBundle.getBundle(MESSAGES, getLocale()).getString(key);
// 	}
// 
// 	public static Locale getLocale() {
// 		return I18N.getSingleton().locale;
// 	}
// 
// 	public static void setLocale(String locale) {
// 		I18N.getSingleton().locale = new Locale(locale);
// 	}
// 
// 	public static void setLocale(Locale locale) {
// 		I18N.getSingleton().locale = locale;
// 	}
// 
// }


// Path: src/main/java/io/github/bonigarcia/dualsub/srt/Merger.java
import io.github.bonigarcia.dualsub.util.I18N;
import java.io.File;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

				} else {
					dualSrt.addEntry(t, new Entry[] { subtitlesLeft.get(t),
							new Entry() });
				}
			}

			if (!subtitlesRight.isEmpty()) {
				for (String t : subtitlesRight.keySet()) {
					log.debug("Desynchronization on " + t + " "
							+ subtitlesRight.get(t).subtitleLines);
					dualSrt.processDesync(t, subtitlesRight.get(t));
				}
			}
		}

		return dualSrt;
	}

	public String getMergedFileName(Srt subs1, Srt subs2) {
		String mergedFileName = "";
		if (translate) {
			Srt srt = subs1.getFileName() == null ? subs2 : subs1;
			File file = new File(srt.getFileName());
			String fileName = file.getName();
			int i = fileName.lastIndexOf('.');
			i = i == -1 ? fileName.length() - 1 : i;
			String extension = fileName.substring(i);
			mergedFileName = getOutputFolder() + File.separator
					+ fileName.substring(0, i);
			if (merge) {
				mergedFileName += " " + I18N.getText("Merger.merged.text");