1
A
回答
0
試試這個正則表達式,
$total = array();
$translated = array();
$extra ='';
// If fuzzy true then translated count = fuzzy count
if($fuzzy) {
$extra = '#, fuzzy\n';
}
$matched = preg_match_all('/'.$extra.'msgid\s+((?:".*(?<!\\\\)"\s*)+)\s+'.'msgstr\s+((?:".*(?<!\\\\)"\s*)+)/', $po_content, $matches);
for ($i = 0; $i < $matched; $i++) {
if(trim(substr(rtrim($matches[1][$i]), 1, -1))!="") {
$total[] = substr(rtrim($matches[1][$i]), 1, -1);
}
if(trim(substr(rtrim($matches[2][$i]), 1, -1))!="") {
if (strpos(substr(rtrim($matches[2][$i]), 1, -1), 'Language-Team')===false && strpos(substr(rtrim($matches[2][$i]), 1, -1), 'MIME-Version')===false) {
$translated[] = substr(rtrim($matches[2][$i]), 1, -1);
}
}
}
總數=總數($總數); 翻譯的計數= count($翻譯);
3
gettext PO文件非常古老而且無處不在,它們是事實上的行業標準,得到了各種工具的大力支持。嘗試在這裏使用regexen重新創建解決方案似乎非常不合適,因爲您可以使用許多PO文件解析器中的一個來代替。例如oscarotero/Gettext:
$translations = Gettext\Extractors\Po::extract('messages.po');
$total = $translated = $fuzzy = 0;
foreach ($translations as $translation) {
$total++;
if (!$translation->hasTranslation()) {
$untranslated++;
}
if (in_array('fuzzy', $translation->getComments())) {
$fuzzy++;
}
}
(未經測試,而是應該立即開始工作或略有改動。)
其實不過,也有工具來做到這一點已經:Translate Toolkit或Pology,對於那些我所知道的:
$ pocount locale/ko/LC_MESSAGES/
data/locale/ko/LC_MESSAGES/messages.po
type strings words (source) words (translation)
translated: 3 ( 0%) 7 ( 0%) 28
fuzzy: 0 ( 0%) 0 ( 0%) n/a
untranslated: 729 (99%) 1065 (99%) n/a
Total: 732 1072 28
unreviewed: 3 ( 0%) 7 ( 0%) 28
empty: 729 (99%) 1065 (99%) 0
$ posieve stats locale/ko/
- msg msg/tot w-or w/tot-or w-tr ch-or ch-tr
translated 3 0.4% 15 0.9% 26 93 114
fuzzy 0 0.0% 0 0.0% 0 0 0
untranslated 729 99.6% 1708 99.1% 0 17323 0
total 732 - 1723 - 26 17416 114
obsolete 0 - 0 - 0 0 0
相關問題
- 1. 用Python正則表達式編譯模糊正則表達式
- 2. 正則表達式翻譯
- 3. 翻譯正則表達式
- 4. 模糊正則表達式
- 5. 提取跟隨者計數的正則表達式模式
- 6. 正在計數的正則表達式
- 7. 使用.po文件直接從數據庫翻譯文本
- 8. 從正則表達式獲取數據
- 9. 用正則表達式從文件中獲取數字?
- 10. 正則表達式來計算正則表達式中捕獲組的數量
- 11. 正則表達式:引用匹配模式的結果計數
- 12. Python正則表達式:計數外觀
- 13. 計數正則表達式替換(C#)
- 14. 正則表達式計數強調
- 15. 計算器正則表達式小數
- 16. MySQL的正則表達式計數
- 17. 計數正則表達式匹配
- 18. 正則表達式輸出計數
- 19. 正則表達式匹配計數
- 20. 正則表達式:計數字符
- 21. 應用翻譯使用gettext .po文件
- 22. Python正則表達式搜索文本文件計數子串
- 23. 使用curl和正則表達式獲取表數據
- 24. 使用substr_count計算正則表達式
- 25. 翻譯Javascript正則表達式到Python
- 26. 正則表達式風味翻譯
- 27. 翻譯正則表達式的Python
- 28. WordPress的翻譯PO文件
- 29. PO,MO翻譯文件
- 30. 自動翻譯.po文件?