亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? preparetranslation.java

?? 非常棒的java數據庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                } else {
                    template.append(parser.getToken());
                }
                tag = name;
            } else if (event == XMLParser.END_ELEMENT) {
                String name = parser.getName();
                if ("code".equals(name) || "a".equals(name) || "b".equals(name) || "span".equals(name)
                        || "em".equals(name)) {
                    if (ignoreEnd) {
                        if (buff.length() > 0) {
                            if (templateIsCopy) {
                                template.append(buff.toString());
                            } else {
                                template.append("${" + nextKey + "}");
                            }
                            add(prop, nextKey, buff);
                        }
                        template.append(parser.getToken());
                    } else {
                        if (buff.length() > 0) {
                            buff.append(parser.getToken());
                            buff.append(' ');
                        }
                    }
                } else {
                    if (buff.length() > 0) {
                        if (templateIsCopy) {
                            template.append(buff.toString());
                        } else {
                            template.append("${" + nextKey + "}");
                        }
                        add(prop, nextKey, buff);
                    }
                    template.append(parser.getToken());
                }
                tag = (String) stack.pop();
            } else if (event == XMLParser.DTD) {
                template.append(parser.getToken());
            } else if (event == XMLParser.COMMENT) {
                template.append(parser.getToken());
            } else {
                int eventType = parser.getEventType();
                throw new Exception("Unexpected event " + eventType + " at " + parser.getRemaining());
            }
            // if(!xml.startsWith(template.toString())) {
            // System.out.println(nextKey);
            // System.out.println(template.substring(template.length()-60)
            // +";");
            // System.out.println(xml.substring(template.length()-60,
            // template.length()));
            // System.out.println(template.substring(template.length()-55)
            // +";");
            // System.out.println(xml.substring(template.length()-55,
            // template.length()));
            // break;
            // }
        }
        new File(target).mkdirs();
        String propFileName = target + "/_docs_" + MAIN_LANGUAGE + ".properties";
        Properties old = FileUtils.loadProperties(propFileName);
        prop.putAll(old);
        PropertiesToUTF8.storeProperties(prop, propFileName);
        String t = template.toString();
        if (templateIsCopy && !t.equals(xml)) {
            for (int i = 0; i < Math.min(t.length(), xml.length()); i++) {
                if (t.charAt(i) != xml.charAt(i)) {
                    int start = Math.max(0, i - 30), end = Math.min(i + 30, xml.length());
                    t = t.substring(start, end);
                    xml = xml.substring(start, end);
                }
            }
            System.out.println("xml--------------------------------------------------: ");
            System.out.println(xml);
            System.out.println("t---------------------------------------------------: ");
            System.out.println(t);
            System.exit(1);
        }
        return t;
    }

    private static String clean(String text) {
        if (text.indexOf('\r') < 0 && text.indexOf('\n') < 0) {
            return text;
        }
        text = text.replace('\r', ' ');
        text = text.replace('\n', ' ');
        text = StringUtils.replaceAll(text, "  ", " ");
        text = StringUtils.replaceAll(text, "  ", " ");
        return text;
    }

    private static void add(Properties prop, String document, StringBuffer text) {
        String s = text.toString().trim();
        text.setLength(0);
        prop.setProperty(document, s);
    }

    private void prepare(String baseDir, String path) throws IOException {
        File dir = new File(path);
        File[] list = dir.listFiles();
        File main = null;
        ArrayList translations = new ArrayList();
        for (int i = 0; list != null && i < list.length; i++) {
            File f = list[i];
            if (f.getName().endsWith(".properties")) {
                if (f.getName().endsWith("_" + MAIN_LANGUAGE + ".properties")) {
                    main = f;
                } else {
                    translations.add(f);
                }
            }
        }
        Properties p = FileUtils.loadProperties(main.getAbsolutePath());
        Properties base = FileUtils.loadProperties(baseDir + "/" + main.getName());
        PropertiesToUTF8.storeProperties(p, main.getAbsolutePath());
        for (int i = 0; i < translations.size(); i++) {
            File trans = (File) translations.get(i);
            String language = trans.getName();
            language = language.substring(language.lastIndexOf('_') + 1, language.lastIndexOf('.'));
            prepare(p, base, trans, language);
        }
        PropertiesToUTF8.storeProperties(p, baseDir + "/" + main.getName());
    }

    private void prepare(Properties main, Properties base, File trans, String language) throws IOException {
        Properties p = FileUtils.loadProperties(trans.getAbsolutePath());
        Properties oldTranslations = new Properties();
        for (Iterator it = base.keySet().iterator(); it.hasNext();) {
            String key = (String) it.next();
            String m = base.getProperty(key);
            String t = p.getProperty(key);
            if (t != null && !t.startsWith("#")) {
                oldTranslations.setProperty(m, t);
            }
        }
        HashSet toTranslate = new HashSet();
        // add missing keys, using # and the value from the main file
        Iterator it = main.keySet().iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            String now = main.getProperty(key);
            if (!p.containsKey(key)) {
                String t = oldTranslations.getProperty(now);
                if (t == null) {
                    if (AUTO_TRANSLATE) {
                        toTranslate.add(key);
                    } else {
                        System.out.println(trans.getName() + ": key " + key + " not found in translation file; added dummy # 'translation'");
                        t = "#" + now;
                        p.put(key, t);
                    }
                } else {
                    p.put(key, t);
                }
            } else {
                String t = p.getProperty(key);
                String last = base.getProperty(key);
                if (t.startsWith("#") && !t.startsWith("##")) {
                    // not translated before
                    t = oldTranslations.getProperty(now);
                    if (t == null) {
                        t = "#" + now;
                    }
                    p.put(key, t);
                } else if (last != null && !last.equals(now)) {
                    t = oldTranslations.getProperty(now);
                    if (t == null) {
                        // main data changed since the last run: review translation
                        System.out.println(trans.getName() + ": key " + key + " changed, please review; last=" + last
                                + " now=" + now);
                        if (AUTO_TRANSLATE) {
                            toTranslate.add(key);
                        } else {
                            String old = p.getProperty(key);
                            t = "#" + now + " #" + old;
                            p.put(key, t);
                        }
                    } else {
                        p.put(key, t);
                    }
                }
            }
        }
        Map autoTranslated = new HashMap();
        if (AUTO_TRANSLATE) {
            HashSet set = new HashSet();
            for (it = toTranslate.iterator(); it.hasNext();) {
                String key = (String) it.next();
                String now = main.getProperty(key);
                set.add(now);
            }
            if ("de".equals(language)) {
                autoTranslated = autoTranslate(set, "en", language);
            }
        }
        for (it = toTranslate.iterator(); it.hasNext();) {
            String key = (String) it.next();
            String now = main.getProperty(key);
            String t;
            if (AUTO_TRANSLATE) {
                t = "##" + autoTranslated.get(now);
            } else {
                System.out.println(trans.getName() + ": key " + key + " not found in translation file; added dummy # 'translation'");
                t = "#" + now;
            }
            p.put(key, t);
        }
        // remove keys that don't exist in the main file (deleted or typo in the key)
        it = new ArrayList(p.keySet()).iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            if (!main.containsKey(key) && !key.startsWith(DELETED_PREFIX)) {
                String newKey = key;
                while (true) {
                    newKey = DELETED_PREFIX + newKey;
                    if (!p.containsKey(newKey)) {
                        break;
                    }
                }
                System.out.println(trans.getName() + ": key " + key + " not found in main file; renamed to " + newKey);
                p.put(newKey, p.getProperty(key));
                p.remove(key);
            }
        }
        PropertiesToUTF8.storeProperties(p, trans.getAbsolutePath());
    }

    private Map autoTranslate(Set toTranslate, String  sourceLanguage, String targetLanguage) {
        HashMap results = new HashMap();
        if (toTranslate.size() == 0) {
            return results;
        }
        int maxLength = 1500;
        int minSeparator = 100000;
        HashMap keyMap = new HashMap(toTranslate.size());
        StringBuffer buff = new StringBuffer(maxLength);
        // TODO make sure these numbers don't occur in the original text
        int separator = minSeparator;
        for (Iterator it = toTranslate.iterator(); it.hasNext();) {
            String original = (String) it.next();
            if (original != null) {
                original = original.trim();
                if (buff.length() + original.length() > maxLength) {
                    System.out.println("remaining: " + (toTranslate.size() - separator + minSeparator));
                    translateChunk(buff, separator, sourceLanguage, targetLanguage, keyMap, results);
                }
                keyMap.put(new Integer(separator), original);
                buff.append(separator);
                buff.append(' ');
                buff.append(original);
                buff.append(' ');
                separator++;
            }
        }
        translateChunk(buff, separator, sourceLanguage, targetLanguage, keyMap, results);
        return results;
    }

    private void translateChunk(StringBuffer buff, int separator, String source, String target, HashMap keyMap, HashMap results) {
        buff.append(separator);
        String original = buff.toString();
        String translation = "";
        try {
            translation = translate(original, source, target);
            System.out.println("original: " + original);
            System.out.println("translation: " + translation);
        } catch (Throwable e) {
            System.out.println("Exception translating [" + original + "]: " + e);
            e.printStackTrace();
        }
        for (Iterator it = keyMap.entrySet().iterator(); it.hasNext();) {
            Entry entry = (Entry) it.next();
            separator = ((Integer) entry.getKey()).intValue();
            String o = (String) entry.getValue();
            String startSeparator = String.valueOf(separator);
            int start = translation.indexOf(startSeparator);
            int end = translation.indexOf(String.valueOf(separator + 1));
            if (start < 0 || end < 0) {
                System.out.println("No translation for " + o);
                results.put(o, "#" + o);
            } else {
                String t = translation.substring(start + startSeparator.length(), end);
                t = t.trim();
                results.put(o, t);
            }
        }
        keyMap.clear();
        buff.setLength(0);
    }

    /**
     * Translate the text using Google Translate
     */
    String translate(String text, String sourceLanguage, String targetLanguage) throws Exception {
        Thread.sleep(4000);
        String url = "http://translate.google.com/translate_t?langpair=" + 
                sourceLanguage + "|" + targetLanguage + 
                "&text=" + URLEncoder.encode(text, "UTF-8");
        HttpURLConnection conn = (HttpURLConnection) (new URL(url)).openConnection();
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; Java)");
        String result = IOUtils.readStringAndClose(IOUtils.getReader(conn.getInputStream()), -1);
        int start = result.indexOf("<div id=result_box");
        start = result.indexOf('>', start) + 1;
        int end = result.indexOf("</div>", start);
        return result.substring(start, end);
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产xxx精品视频大全| 欧美一二三在线| 这里只有精品电影| 欧美激情综合在线| 日韩在线一区二区三区| 97精品视频在线观看自产线路二| 欧美一区二区三区视频| 亚洲欧美日韩国产综合在线| 国产麻豆视频一区二区| 在线不卡的av| 亚洲精品乱码久久久久久| 国产精品亚洲第一| 精品免费国产一区二区三区四区| 亚洲影视资源网| 91免费看视频| 中文一区在线播放| 国产精品一卡二卡| 日韩三级精品电影久久久| 亚洲成av人片在线观看| 91久久奴性调教| 国产精品久久夜| 成人ar影院免费观看视频| 久久影院午夜片一区| 久久91精品久久久久久秒播| 在线观看91精品国产麻豆| 亚洲国产视频直播| 欧美在线观看视频在线| 亚洲女同一区二区| 色综合久久久久久久久| 国产精品久久二区二区| 国产99精品国产| 国产亚洲欧美激情| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人免费影院| 欧美性做爰猛烈叫床潮| 亚洲精品乱码久久久久久黑人| 91蝌蚪porny九色| 亚洲一区在线视频观看| 欧美军同video69gay| 日韩电影在线观看一区| 日韩三级精品电影久久久| 蜜臀久久久久久久| 久久色视频免费观看| 国产精品77777竹菊影视小说| 久久嫩草精品久久久久| 粗大黑人巨茎大战欧美成人| 亚洲欧美一区二区在线观看| 一本色道**综合亚洲精品蜜桃冫| 亚洲美女屁股眼交3| 欧美日韩国产首页| 狠狠色丁香婷婷综合久久片| 国产视频在线观看一区二区三区| bt欧美亚洲午夜电影天堂| 一区二区三区四区乱视频| 欧美精品自拍偷拍| 国模娜娜一区二区三区| 亚洲视频中文字幕| 欧美人妖巨大在线| 国产成人高清在线| 亚洲国产一区二区三区青草影视| 日韩一区二区三区免费看 | 在线观看亚洲精品| 蜜臀av在线播放一区二区三区| 亚洲精品在线观看网站| 成人高清视频免费观看| 亚洲成人在线免费| 久久人人爽爽爽人久久久| 91丝袜高跟美女视频| 美国三级日本三级久久99| 国产精品嫩草影院av蜜臀| 欧洲精品中文字幕| 国产精品1区2区3区| 一区二区三区中文字幕| 精品三级在线看| 色综合天天综合网天天看片 | 亚洲午夜久久久| 精品久久人人做人人爱| 在线欧美日韩国产| 国产激情精品久久久第一区二区 | 美洲天堂一区二卡三卡四卡视频 | 精品国产免费一区二区三区香蕉| av毛片久久久久**hd| 日本欧美韩国一区三区| 中文字幕一区二区三中文字幕| 日韩欧美一区二区免费| 一本色道**综合亚洲精品蜜桃冫| 久久精品国产久精国产爱| 尤物av一区二区| 国产日韩视频一区二区三区| 777a∨成人精品桃花网| 99vv1com这只有精品| 韩日欧美一区二区三区| 日本欧美久久久久免费播放网| 亚洲人成伊人成综合网小说| 久久久久久久久岛国免费| 制服丝袜亚洲网站| 欧美性一二三区| 91啪九色porn原创视频在线观看| 国产成人自拍网| 久草热8精品视频在线观看| 伊人婷婷欧美激情| 自拍偷拍国产亚洲| 中国色在线观看另类| 久久夜色精品国产噜噜av| 3d动漫精品啪啪一区二区竹菊 | 成人激情文学综合网| 蜜桃视频一区二区三区在线观看| 亚洲国产成人av网| 亚洲一区二区综合| 亚洲伊人色欲综合网| 亚洲一区二区三区四区五区黄| 亚洲v精品v日韩v欧美v专区| 亚洲摸摸操操av| 亚洲一线二线三线视频| 亚洲精品欧美在线| 亚洲动漫第一页| 日韩国产精品久久久| 日韩电影在线一区| 麻豆91在线看| 国产成人综合自拍| 波多野结衣在线一区| 成人激情av网| 欧美亚州韩日在线看免费版国语版| 在线观看日韩精品| 欧美一级黄色录像| 久久综合网色—综合色88| 久久综合给合久久狠狠狠97色69| 久久久亚洲高清| 亚洲欧美在线视频观看| 亚洲综合丁香婷婷六月香| 亚洲1区2区3区4区| 蜜桃一区二区三区四区| 国产成人综合视频| 91丨九色丨尤物| 91精品国产一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美国产日韩a欧美在线观看| 亚洲欧洲成人自拍| 天堂精品中文字幕在线| 极品美女销魂一区二区三区| 国产成人欧美日韩在线电影| 91麻豆自制传媒国产之光| 欧美日韩视频在线观看一区二区三区 | 99视频在线精品| 欧美日韩亚洲不卡| 久久久精品一品道一区| 亚洲精品国产a久久久久久| 日本不卡中文字幕| 福利一区二区在线观看| 在线视频中文字幕一区二区| 日韩你懂的在线观看| 亚洲欧美日韩一区二区三区在线观看| 午夜av电影一区| 国产91精品在线观看| 在线观看国产精品网站| 久久综合九色综合欧美亚洲| 亚洲日本va午夜在线影院| 蜜桃视频在线一区| 91福利社在线观看| 精品国产凹凸成av人网站| 亚洲三级小视频| 国产一区二区精品久久99| 色老汉一区二区三区| 久久久久久久一区| 亚洲va国产va欧美va观看| 丁香另类激情小说| 91精品国产全国免费观看| 中文字幕亚洲欧美在线不卡| 美女在线视频一区| 欧美主播一区二区三区| 国产欧美一区视频| 蜜臀久久99精品久久久久久9| 色婷婷亚洲综合| 国产欧美一区二区精品性色| 日韩在线一区二区| 91麻豆swag| 国产精品午夜免费| 国产一区在线视频| 制服丝袜亚洲网站| 亚洲国产一区二区三区| 91一区一区三区| 国产亚洲一二三区| 免费人成精品欧美精品| 欧美日韩在线不卡| 亚洲美女在线国产| av不卡在线播放| 国产亚洲美州欧州综合国| 美国av一区二区| 欧美大黄免费观看| 奇米色777欧美一区二区| 欧美日韩免费一区二区三区视频| 亚洲欧洲精品成人久久奇米网| 大美女一区二区三区| 国产亚洲一区字幕| 国产成人无遮挡在线视频| 久久这里都是精品| 国产成人亚洲综合a∨猫咪| 久久女同性恋中文字幕| 国产精品亚洲人在线观看| 精品国产乱码久久久久久浪潮 |