Magento 1.7.0.2 的中文翻譯

edited 十月 2013 in Magento
剛剛發現這個網站的版本:
http://magento.home-and-available.com/?page_id=72

以 1.7.0.2 的 en_US 目錄為基礎去併入上述版本到目前我自己維護中的:
https://github.com/kiang/magento_zh_TW/tree/master/app/locale

翻譯還沒到完整的程度,但應該算堪用了吧 :)

我用來合併語言的工具,原本是透過一個調整過的 TranslationExporter
https://github.com/kiang/magento_zh_TW/tree/master/app/code/community/Soluvas/TranslationExporter

但是剛剛忘記有這回事 XD ,所以又寫了一個小程式,提供作為參考
<?php

foreach (glob('en_US/template/email/*') AS $tFile) {
    $targetFile = str_replace('en_US', 'zh_TW', $tFile);
    $refFile = str_replace('en_US', 'zh_TW_n', $tFile);
    if (!file_exists($targetFile)) {
        if (file_exists($refFile)) {
            copy($refFile, $targetFile);
        } else {
            copy($tFile, $targetFile);
        }
    }
}
foreach (glob('en_US/template/email/sales/*') AS $tFile) {
    $targetFile = str_replace('en_US', 'zh_TW', $tFile);
    $refFile = str_replace('en_US', 'zh_TW_n', $tFile);
    if (!file_exists($targetFile)) {
        if (file_exists($refFile)) {
            copy($refFile, $targetFile);
        } else {
            copy($tFile, $targetFile);
        }
    }
}
foreach (glob('en_US/*.csv') AS $baseFile) {
    $fh = fopen($baseFile, 'r');
    $baseStack = array();
    while ($line = fgetcsv($fh, 2048)) {
        $baseStack[$line[0]] = $line[1];
    }
    fclose($fh);
    $refFile = str_replace('en_US', 'zh_TW_n', $baseFile);
    $refStack = array();
    if (file_exists($refFile)) {
        $fh = fopen($refFile, 'r');
        while ($line = fgetcsv($fh, 2048)) {
            $refStack[$line[0]] = $line[1];
        }
        fclose($fh);
    }
    $targetFile = str_replace('en_US', 'zh_TW', $baseFile);
    $targetStack = array();
    if (file_exists($targetFile)) {
        $fh = fopen($targetFile, 'r');
        while ($line = fgetcsv($fh, 2048)) {
            $targetStack[$line[0]] = $line[1];
        }
        fclose($fh);
    }

    foreach ($baseStack AS $key => $val) {
        if (isset($targetStack[$key]) && $targetStack[$key] != $val) {
            $baseStack[$key] = $targetStack[$key];
        } elseif (isset($refStack[$key]) && $refStack[$key] != $val) {
            $baseStack[$key] = $refStack[$key];
        }
    }
    $fh = fopen($targetFile, 'w');
    foreach ($baseStack AS $key => $val) {
        $key = str_replace('"', '""', $key);
        $key = str_replace('\""', '\"', $key);
        $val = str_replace('"', '""', $val);
        $val = str_replace('\""', '\"', $val);
        fputs($fh, sprintf('"%s","%s"', $key, $val) . "\n");
    }
    fclose($fh);
}

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=7108

評論

Sign In or Register to comment.