Etusivulle
Sivun PHP-lähdekoodin näyttäminen
Alla on sivun tavukirjoitus.php PHP-lähdekoodi.
<?PHP include ("_funktiot.php"); ?>
<?PHP NaytaSivunAlku ("Tavukirjoitus suomen kieltä varten"); ?>
<?PHP
// Luetaan post-parametri
$teksti = "Englannin kieli (English) on erittäin laajalle levinnyt Englannissa kehittynyt germaaninen kieli. Sitä käytetään ympäri maailmaa toisena kielenä ja virallisena kielenä useissa maissa. Englanti on maailman opetetuin ja ymmärretyin kieli ja sitä onkin pidetty lingua francana. Vaikka nykyistä kiinan yleiskieltä puhuu äidinkielenään useampi ihminen kuin englantia, englantia käytetään useammin toisena tai vieraana kielenä. Yhteensä englantia osaavia on maailmassa reilusti yli miljardi.\r\n\r\nYli 400 miljoonaa ihmistä puhuu englantia ensimmäisenä kielenään. Arviot englantia toisena kielenään puhuvien ihmisten määrästä vaihtelevat noin 150 miljoonan ja 1,5 miljardin välillä riippuen siitä, miten sen osaaminen määritellään. Englanti on viestinnän, tieteen, tekniikan, kaupankäynnin, ilmailun, viihteen, diplomatian ja internetin tärkein yksittäinen kieli. Se on ollut yksi Yhdistyneiden kansakuntien virallisista kielistä sen perustamisesta (1945) lähtien ja monet pitävät sitä yleismaailmallisena kielenä.\r\n\r\n(Lähde: http://fi.wikipedia.org/wiki/Englannin_kieli .)";
$temp = $_POST["teksti"];
if ($temp != "") $teksti = $temp;
$teksti = stripslashes($teksti);
$teksti = str_replace("<", "", $teksti);
$teksti = str_replace(">", "", $teksti);
$teksti = str_replace("&", "", $teksti);
?>
Olen kehittänyt tavukirjoitusjärjestelmän suomen kielelle. Siinä V- tai CV-tyyppiset tavut (C = konsonantti, V = vokaali) pystytään kirjoittamaan yhdellä merkillä. Kaikki konsonanttimerkit kirjoitetaan kuten normaalissa kirjoituksessa, paitsi että j:n sijasta kirjoitetaan y. Konsonanttia seuraava vokaali, joka kuuluu samaan tavuun, taas merkitään konsonantin ylä- tai alapuolelle tarkkeella. Esim. sana "te" kirjoitetaan <FONT SIZE="+1">t̗</FONT>. (j:tä ei käytetä, koska siihen ei voitaisi yhdistää tarketta ylä- eikä alapuolelle.)
<P>
<UL>
<LI>Tarke merkitään seuraavien pienten kirjainten yläpuolelle: c, g, m, n, p, q, r, s, v, w, x, y, z.
<LI>Tarke merkitään isojen kirjainten ja seuraavien pienten kirjainten alapuolelle: b, d, f, h, k, l, t.
</UL>
<P>
Esimerkki tarkkeiden yhdistämisestä p- ja b-kirjaimiin sekä näin saatujen merkkien HTML-koodit:
<P>
<TABLE>
<TR>
<TH>p/b +<BR>vokaali</TH>
<TH COLSPAN=2>Kirjaimen<BR>päällä</TH>
<TH COLSPAN=2>Kirjaimen<BR>alla</TH>
</TR>
<TR>
<TD>pa/ba</TD>
<TD><FONT SIZE="+1">ṗ</FONT></TD>
<TD>p&#775;</TD>
<TD><FONT SIZE="+1">ḅ</FONT></TD>
<TD>b&#803;</TD>
</TR>
<TR>
<TD>pä/bä</TD>
<TD><FONT SIZE="+1">p̈</FONT></TD>
<TD>p&#776;</TD>
<TD><FONT SIZE="+1">b̤</FONT></TD>
<TD>b&#804;</TD>
</TR>
<TR>
<TD>pe/be</TD>
<TD><FONT SIZE="+1">ṕ</FONT></TD>
<TD>p&#769;</TD>
<TD><FONT SIZE="+1">b̗</FONT></TD>
<TD>b&#791;</TD>
</TR>
<TR>
<TD>pi/bi</TD>
<TD><FONT SIZE="+1">p̀</FONT></TD>
<TD>p&#768;</TD>
<TD><FONT SIZE="+1">b̖</FONT></TD>
<TD>b&#790;</TD>
</TR>
<TR>
<TD>po/bo</TD>
<TD><FONT SIZE="+1">p̄</FONT></TD>
<TD>p&#772;</TD>
<TD><FONT SIZE="+1">ḇ</FONT></TD>
<TD>b&#817;</TD>
</TR>
<TR>
<TD>pö/bö</TD>
<TD><FONT SIZE="+1">p̃</FONT></TD>
<TD>p&#771;</TD>
<TD><FONT SIZE="+1">b̰</FONT></TD>
<TD>b&#816;</TD>
</TR>
<TR>
<TD>pu/bu</TD>
<TD><FONT SIZE="+1">p̂</FONT></TD>
<TD>p&#770;</TD>
<TD><FONT SIZE="+1">b̭</FONT></TD>
<TD>b&#813;</TD>
</TR>
<TR>
<TD>py/by</TD>
<TD><FONT SIZE="+1">p̌</FONT></TD>
<TD>p&#780;</TD>
<TD><FONT SIZE="+1">b̬</FONT></TD>
<TD>b&#812;</TD>
</TR>
</TABLE>
<P>
Jos on merkittävä vokaali, jota ei edellä samaan tavuun kuuluva konsonantti, käytetään x-kirjainta "kantamaan" tarketta. Esim. sana "en" kirjoitetaan <FONT SIZE="+1">x́n</FONT> ja sana "syysyö" kirjoitetaan <FONT SIZE="+1">šx̌sx̌x̃</FONT> (ei <FONT SIZE="+1">šx̌šx̃</FONT>).
<P>
Esimerkkilause: "Senhän minä kohta sanoin käydessämme jäniksen passiin." = <FONT SIZE="+1">S̗nh̤n m̀n̈ ḵhṭ ṡn̄x̀n k̤x̌d̗ss̈mḿ ÿǹkśn ṗss̀x̀n.</FONT>
<P>
Selainyhteensopivuudesta: ainakin omalla koneellani tarkkeet näkyvät Firefoxilla kohtalaisen oikein. Operalla tarkkeiden sijainnit poikkeavat enemmän aiotusta. Internet Explorer taas näyttää osan tarkkeista vain laatikoina. OpenOffice.org Writer -tekstinkäsittelyohjelma on hieman parempi kuin mikään edellisistä. Siinä p:hen ja b:hen yhdistetyt tarkkeet sekä esimerkkilause näkyvät seuraavasti:
<P>
<CENTER>
<IMG SRC="sekalaiset/tavukirjoitus1.png">
<IMG SRC="sekalaiset/tavukirjoitus2.png">
</CENTER>
<P><HR><P>
Alla on ohjelma, jolla voit muuntaa suomenkielistä tekstiä edellä esitetyksi tavukirjoitukseksi. Ohjelmassa on yksi puute: se ei ymmärrä yhdyssanoja, joten se toimii virheellisesti, kun peräkkäiset konsonantti ja vokaali kuuluvat eri tavuihin. Voit kiertää ongelman jakamalla tällaiset yhdyssanat esim. viivoilla ("syys-yö") ja poistamalla ne muunnetusta tekstistä.
<P>
<FORM METHOD="post" ACTION="tavukirjoitus.php">
<TEXTAREA NAME="teksti" ROWS=5 COLS=80><?PHP echo $teksti; ?></TEXTAREA>
<P>
<INPUT TYPE="submit" VALUE="Muunna">
</FORM>
<P>
Tulos:
<P>
<?PHP
$teksti = str_replace("y", "ü", $teksti);
$teksti = str_replace("Y", "Ü", $teksti);
$teksti = str_replace("j", "y", $teksti);
$teksti = str_replace("J", "Y", $teksti);
$vokaalit = "AEIOUÜÄÖaeiouüäö";
// Konsonantit on jaettu sen mukaan, tuleeko tarke päälle vai alle
$konsonantitpaalle = "cgmnpqrsvwxyz";
$konsonantitalle = "BCDFGHKLMNPQRSTVWXYZbdfhklt";
// Tarkkeiden merkkikoodit
$tarkkeetpaalle = array(775, 769, 768, 772, 770, 780, 776, 771);
$tarkkeetalle = array(803, 791, 790, 817, 813, 812, 804, 816);
// Käydään vokaalit läpi
for ($i = 0; $i < strlen($vokaalit); $i++) {
$v = substr($vokaalit, $i, 1);
// Käydään konsonantit läpi
for ($i2 = 0; $i2 < strlen($konsonantitpaalle); $i2++) {
$k = substr($konsonantitpaalle, $i2, 1);
$t = "&#" . $tarkkeetpaalle[$i % 8] . ";";
$teksti = str_replace($k . $v, $k . $t, $teksti);
}
for ($i2 = 0; $i2 < strlen($konsonantitalle); $i2++) {
$k = substr($konsonantitalle, $i2, 1);
$t = "&#" . $tarkkeetalle[$i % 8] . ";";
$teksti = str_replace($k . $v, $k . $t, $teksti);
}
// Korvataan jäljelle jääneet vokaalit
if ($i < 8) {
$k = "X";
$t = "&#" . $tarkkeetalle[$i % 8] . ";";
} else {
$k = "x";
$t = "&#" . $tarkkeetpaalle[$i % 8] . ";";
}
$teksti = str_replace($v, $k . $t, $teksti);
}
$teksti = str_replace("\r\n", "<BR>", $teksti);
$teksti = str_replace("\n", "<BR>", $teksti);
echo "<FONT SIZE=\"+1\">" . $teksti . "</FONT>";
?>
<P>
<A HREF="_naytaphplahdekoodi.php?sivu=tavukirjoitus.php">Tämän ohjelman PHP-lähdekoodi</A>
<?PHP NaytaSivunLoppu (); ?>
Takaisin sivulle tavukirjoitus.php
Etusivulle