Magento 1.7.0.2 的中文翻譯

edited 十一月 -1 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.