Merge branch 'subtree'
[fanfix.git] / src / be / nikiroo / fanfix / output / LaTeX.java
index a8d6d379b790d0e3d1900a7d3e8e7c8b239371d8..a406fc35fd425635baad02e6335de0cbaf0a9f61 100644 (file)
@@ -1,40 +1,39 @@
 package be.nikiroo.fanfix.output;
 
+import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 
 import be.nikiroo.fanfix.Instance;
 import be.nikiroo.fanfix.bundles.Config;
 import be.nikiroo.fanfix.bundles.StringId;
 import be.nikiroo.fanfix.data.Chapter;
 import be.nikiroo.fanfix.data.MetaData;
-import be.nikiroo.fanfix.data.Story;
 import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
+import be.nikiroo.fanfix.data.Story;
 
 class LaTeX extends BasicOutput {
-       protected FileWriter writer;
+       protected BufferedWriter writer;
        private boolean lastWasQuote = false;
 
        // quote chars
-       private char openQuote = Instance.getTrans().getChar(
-                       StringId.OPEN_SINGLE_QUOTE);
-       private char closeQuote = Instance.getTrans().getChar(
-                       StringId.CLOSE_SINGLE_QUOTE);
-       private char openDoubleQuote = Instance.getTrans().getChar(
-                       StringId.OPEN_DOUBLE_QUOTE);
-       private char closeDoubleQuote = Instance.getTrans().getChar(
-                       StringId.CLOSE_DOUBLE_QUOTE);
+       private char openQuote = Instance.getInstance().getTrans().getCharacter(StringId.OPEN_SINGLE_QUOTE);
+       private char closeQuote = Instance.getInstance().getTrans().getCharacter(StringId.CLOSE_SINGLE_QUOTE);
+       private char openDoubleQuote = Instance.getInstance().getTrans().getCharacter(StringId.OPEN_DOUBLE_QUOTE);
+       private char closeDoubleQuote = Instance.getInstance().getTrans().getCharacter(StringId.CLOSE_DOUBLE_QUOTE);
 
        @Override
        public File process(Story story, File targetDir, String targetName)
                        throws IOException {
                String targetNameOrig = targetName;
-               targetName += getDefaultExtension();
+               targetName += getDefaultExtension(false);
 
                File target = new File(targetDir, targetName);
 
-               writer = new FileWriter(target);
+               writer = new BufferedWriter(new OutputStreamWriter(
+                               new FileOutputStream(target), "UTF-8"));
                try {
                        super.process(story, targetDir, targetNameOrig);
                } finally {
@@ -46,7 +45,7 @@ class LaTeX extends BasicOutput {
        }
 
        @Override
-       protected String getDefaultExtension() {
+       public String getDefaultExtension(boolean readerTarget) {
                return ".tex";
        }
 
@@ -63,10 +62,9 @@ class LaTeX extends BasicOutput {
                        author = "\\author{" + latexEncode(meta.getAuthor()) + "}";
                        lang = meta.getLang().toLowerCase();
                        if (lang != null && !lang.isEmpty()) {
-                               lang = Instance.getConfig().getStringX(Config.LATEX_LANG, lang);
+                               lang = Instance.getInstance().getConfig().getStringX(Config.CONF_LATEX_LANG, lang);
                                if (lang == null) {
-                                       System.err.println(Instance.getTrans().getString(
-                                                       StringId.LATEX_LANG_UNKNOWN, lang));
+                                       System.err.println(Instance.getInstance().getTrans().getString(StringId.LATEX_LANG_UNKNOWN, lang));
                                }
                        }
                }
@@ -151,7 +149,7 @@ class LaTeX extends BasicOutput {
                        lastWasQuote = true;
                        break;
                case IMAGE:
-                       // TODO
+                       // TODO what about images in LaTeX?
                        break;
                }
        }