Rev 224 | Rev 232 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 224 | Rev 230 | ||
|---|---|---|---|
| Line 2... | Line 2... | ||
| 2 | <html lang="en""> | 2 | <html lang="en""> | 
| 3 | <head> | 3 | <head> | 
| 4 | <meta charset="UTF-8"> | 4 | <meta charset="UTF-8"> | 
| 5 | <title>Modern Golic Vulcan – Federation Standard English Dictionary</title> | 5 | <title>Modern Golic Vulcan – Federation Standard English Dictionary</title> | 
| 6 | <style type="text/css"> | 6 | <style type="text/css"> | 
| - | 7 |       body {
 | |
| - | 8 | font-family: serif; | |
| - | 9 | } | |
| - | 10 | ||
| 7 |       ol {
 | 11 | ol | 
| - | 12 |       {
 | |
| 8 | padding-left: 0; | 13 | padding-left: 0; | 
| 9 | list-style-type: none; | 14 | list-style-type: none; | 
| 10 | } | 15 | } | 
| 11 | 16 | ||
| 12 |       ol li {
 | 17 | ol li | 
| - | 18 |       {
 | |
| 13 | margin-left: 0; | 19 | margin-left: 0; | 
| 14 | } | 20 | } | 
| 15 | 21 | ||
| 16 |       ol ol {
 | 22 | ol ol | 
| - | 23 |       {
 | |
| 17 | padding-left: 1em; | 24 | padding-left: 1em; | 
| 18 | } | 25 | } | 
| - | 26 | ||
| - | 27 |       .type-or-context {
 | |
| - | 28 | font-family: sans-serif; | |
| - | 29 | font-size: small; | |
| - | 30 | font-weight: bold; | |
| - | 31 | } | |
| - | 32 | ||
| - | 33 |       i em {
 | |
| - | 34 | font-weight: bold; | |
| - | 35 | } | |
| 19 | </style> | 36 | </style> | 
| 20 | </head> | 37 | </head> | 
| 21 | 38 | ||
| 22 | <body> | 39 | <body> | 
| 23 | <h1>Modern Golic Vulcan – Federation Standard English Dictionary</h1> | - | |
| 24 |       <?php
 | 40 | <?php
 | 
| 25 | define('REGEXP_PREFIX_EXAMPLE', '/^ex\s*=\s*/'); | - | |
| 26 | - | ||
| 27 | $source_lang = 'vuh-Latn-Gol-modern'; | 41 | $source_lang = 'vuh-Latn-Gol-modern'; | 
| 28 | $target_lang = 'en-Latn-Federation'; | 42 | $target_lang = 'en-Latn-Federation'; | 
| 29 | $lines = file('vul-gol-en.dict'); | 43 | $lines = file('vul-gol-en.dict'); | 
| - | 44 | ?>
 | |
| - | 45 | <h1>Modern Golic Vulcan – Federation Standard English Dictionary</h1> | |
| - | 46 |       <?php
 | |
| - | 47 | define('REGEXP_PREFIX_EXAMPLE', '/^ex\s*=\s*/'); | |
| 30 | 48 | ||
| 31 | if ($lines) | 49 | if ($lines) | 
| 32 |         {
 | 50 |         {
 | 
| 33 | $last_indent = -1; | 51 | $last_indent = -1; | 
| 34 | $last_phrases = array(); | 52 | $last_phrases = array(); | 
| Line 109... | Line 127... | ||
| 109 |                 }
 | 127 |                 }
 | 
| 110 | 128 | ||
| 111 | $transl = preg_replace( | 129 | $transl = preg_replace( | 
| 112 | array( | 130 | array( | 
| 113 | '/"([^"]+)"/', | 131 | '/"([^"]+)"/', | 
| 114 | '/\\/([\\s\\w\'()-]+)\\//u', | 132 | '/\{([^\}]+)\}/', | 
| - | 133 | '/(^|[\\s+\\[])\\/([\\s\\w\'()-]+)\\/(?=[,.;:\\s+\\]]|$)/u', | |
| 115 | '/\|(.*)(?<!\|)/', | 134 | '/\|(.*)(?<!\|)/', | 
| - | 135 | '/\*(.+?)\*/', | |
| 116 | '/\\s+~/', | 136 | '/\\s+~/', | 
| 117 | ), | 137 | ), | 
| 118 | array( | 138 | array( | 
| 119 | '“\\1”', | 139 | '“\\1”', | 
| - | 140 | '<abbr class="type-or-context" lang="' . $target_lang . '">\\1</abbr>', | |
| 120 | '<i lang="' . $source_lang . '">\\1</i>', | 141 | '\\1<i lang="' . $source_lang . '">\\2</i>', | 
| 121 | '/\\1', | 142 | '/\\1', | 
| - | 143 | '<em>\\1</em>', | |
| 122 | ' ~', | 144 | ' ~', | 
| 123 | ), | 145 | ), | 
| 124 | $matches['transl']); | 146 | $matches['transl']); | 
| 125 | 147 | ||
| 126 | echo ($is_example ? "<i lang='$source_lang'>" : "<b lang='$source_lang'>") | 148 | echo ($is_example ? "<i lang='$source_lang'>" : "<b lang='$source_lang'>") | 
| Line 130... | Line 152... | ||
| 130 | 152 | ||
| 131 | $last_indent = $indent; | 153 | $last_indent = $indent; | 
| 132 |               }
 | 154 |               }
 | 
| 133 |             }
 | 155 |             }
 | 
| 134 |           }
 | 156 |           }
 | 
| - | 157 | echo '</ol>'; | |
| - | 158 | ||
| - | 159 | //           $phrases = array();
 | |
| - | 160 | ||
| - | 161 | //           foreach ($lines as $line)
 | |
| - | 162 | //           {
 | |
| - | 163 | //             preg_match('/^(?<lws>\s*)(?<phrase>[^:]+)\s*:\s*(?<transl>.+)/u', $line, $matches);
 | |
| - | 164 | //             if ($matches)
 | |
| - | 165 | //             {
 | |
| - | 166 | //               $phrase = $matches['phrase'];
 | |
| - | 167 | ||
| - | 168 | //               /* if not a comment */
 | |
| - | 169 | //               if (mb_strpos($phrase, '#') === false)
 | |
| - | 170 | //               {
 | |
| - | 171 | //                 $transl = $matches['transl'];
 | |
| - | 172 | ||
| - | 173 | //                 $is_example = preg_match(REGEXP_PREFIX_EXAMPLE, $phrase);
 | |
| - | 174 | //                 if ($is_example)
 | |
| - | 175 | //                 {
 | |
| - | 176 | //                   /* assign example to previous phrase; indentation irrelevant */
 | |
| - | 177 | //                   $phrase = preg_replace(REGEXP_PREFIX_EXAMPLE, '', $phrase);
 | |
| - | 178 | ||
| - | 179 | //                   $prev_phrase['examples'][$phrase] = $transl;
 | |
| - | 180 | //                 }
 | |
| - | 181 | //                 else
 | |
| - | 182 | //                 {
 | |
| - | 183 | //                   /* create new phrase */
 | |
| - | 184 | //                   $level = mb_strlen($matches['lws']) / 2;
 | |
| - | 185 | ||
| - | 186 | //                   $phrases[$phrase] = array(
 | |
| - | 187 | //                     'translation' => $transl,
 | |
| - | 188 | //                     'level' => $level
 | |
| - | 189 | //                   );
 | |
| - | 190 | //                   $prev_phrase =& $phrases[$phrase];
 | |
| - | 191 | //                 }
 | |
| - | 192 | //               }
 | |
| - | 193 | //             }
 | |
| - | 194 | //           }
 | |
| - | 195 | ||
| - | 196 | // //           var_dump($phrases);
 | |
| - | 197 | ||
| - | 198 | //           if ($phrases)
 | |
| - | 199 | //           {
 | |
| - | 200 | //             $prev_level = -1;
 | |
| - | 201 | ||
| - | 202 | //             foreach ($phrases as $phrase => $data)
 | |
| - | 203 | //             {
 | |
| - | 204 | //               $level = $data['level'];
 | |
| - | 205 | ||
| - | 206 | //               if ($level > $prev_level)
 | |
| - | 207 | //               {
 | |
| - | 208 | //                 echo "\n<ol>\n";
 | |
| - | 209 | //               }
 | |
| - | 210 | //               else if ($level < $prev_level)
 | |
| - | 211 | //               {
 | |
| - | 212 | //                 echo str_repeat("</ol>\n", $prev_level - $level);
 | |
| - | 213 | //               }
 | |
| - | 214 | ||
| - | 215 | //               $translation = $data['translation'];
 | |
| - | 216 | ||
| - | 217 | //               echo "\n<li>$prev_level => $level <b lang='$source_lang'>" . htmlspecialchars($phrase) . '</b>'
 | |
| - | 218 | //                 . " <span lang='$target_lang'>" . $translation . '</span>';
 | |
| - | 219 | ||
| - | 220 | //               if (isset($data['examples']))
 | |
| - | 221 | //               {
 | |
| - | 222 | //                 echo '<ul>';
 | |
| - | 223 | ||
| - | 224 | //                 foreach ($data['examples'] as $original => $translation)
 | |
| - | 225 | //                 {
 | |
| - | 226 | //                   echo "<li><i lang='$source_lang'>" . htmlspecialchars($original) . '</i>'
 | |
| - | 227 | //                     . " <span lang='$target_lang'>" . $translation . '</span></li>';
 | |
| - | 228 | //                 }
 | |
| - | 229 | ||
| - | 230 | //                 echo '</ul>';
 | |
| - | 231 | //               }
 | |
| - | 232 | ||
| - | 233 | //               $prev_level = $level;
 | |
| - | 234 | //             }
 | |
| - | 235 | ||
| - | 236 | //             echo '</ol>';
 | |
| - | 237 | //           }
 | |
| 135 |         ?>
 | 238 |         ?>
 | 
| 136 | </ol> | - | |
| 137 | <?php } ?> | 239 | <?php } ?> | 
| 138 | </body> | 240 | </body> | 
| 139 | </html> | 241 | </html> | 
| 140 | 242 | ||