0,0 → 1,139 |
<!DOCTYPE html> |
<html lang="en""> |
<head> |
<meta charset="UTF-8"> |
<title>Modern Golic Vulcan – Federation Standard English Dictionary</title> |
<style type="text/css"> |
ol { |
padding-left: 0; |
list-style-type: none; |
} |
|
ol li { |
margin-left: 0; |
} |
|
ol ol { |
padding-left: 1em; |
} |
</style> |
</head> |
|
<body> |
<h1>Modern Golic Vulcan – Federation Standard English Dictionary</h1> |
<?php |
define('REGEXP_PREFIX_EXAMPLE', '/^ex\s*=\s*/'); |
|
$source_lang = 'vuh-Latn-Gol-modern'; |
$target_lang = 'en-Latn-Federation'; |
$lines = file('vul-gol-en.dict'); |
|
if ($lines) |
{ |
$last_indent = -1; |
$last_phrases = array(); |
|
foreach ($lines as $line) |
{ |
preg_match('/^(?<lws>\s*)(?<phrase>[^:]+)\s*:\s*(?<transl>.+)/u', $line, $matches); |
// var_dump($matches); |
if ($matches) |
{ |
$phrase = $matches['phrase']; |
|
if (mb_strpos($phrase, '#') === false) |
{ |
$indent = mb_strlen($matches['lws']) / 2; |
|
if ($indent > $last_indent) |
{ |
echo '<ol>'; |
} |
else |
{ |
echo str_repeat('</ol>', $last_indent - $indent); |
} |
|
echo '<li>'; |
|
$is_example = preg_match(REGEXP_PREFIX_EXAMPLE, $phrase); |
if ($is_example) |
{ |
$phrase = preg_replace(REGEXP_PREFIX_EXAMPLE, '', $phrase); |
} |
|
if ($indent > $last_indent) |
{ |
$last_phrases[] = $phrase; |
} |
else if ($indent < $last_indent) |
{ |
$last_phrases = array_slice($last_phrases, 0, $indent + 1); |
} |
|
if ($indent <= $last_indent) |
{ |
$last_phrases[count($last_phrases) - 1] = $phrase; |
} |
|
$phrase = preg_replace( |
array( |
'/~/', |
'/[()]/', |
), |
array( |
'=', |
'|', |
), |
$phrase); |
|
if ($last_phrases) |
{ |
end($last_phrases); |
|
while (($last_phrase = prev($last_phrases)) !== false) |
{ |
while (mb_strlen($last_phrase) > 1) |
{ |
if (preg_match('/' . preg_quote($last_phrase) . '/i', |
$phrase, $last_sub_matches)) |
{ |
$phrase = preg_replace('/' . $last_sub_matches[0] . '/i', |
'<u>\\0</u>', $phrase); |
break 2; |
} |
|
$last_phrase = mb_strcut($last_phrase, 0, mb_strlen($last_phrase) - 1); |
} |
} |
} |
|
$transl = preg_replace( |
array( |
'/"([^"]+)"/', |
'/\\/([\\s\\w\'()-]+)\\//u', |
'/\|(.*)(?<!\|)/', |
'/\\s+~/', |
), |
array( |
'“\\1”', |
'<i lang="' . $source_lang . '">\\1</i>', |
'/\\1', |
' ~', |
), |
strip_tags($matches['transl'])); |
|
echo ($is_example ? "<i lang='$source_lang'>" : "<b lang='$source_lang'>") |
. $phrase |
. ($is_example ? '</i>' : '</b>') |
. " <span lang='$target_lang'>" . $transl . '</span>'; |
|
$last_indent = $indent; |
} |
} |
} |
?> |
</ol> |
<?php } ?> |
</body> |
</html> |