Fandom

ウィキテク

リトアニアのレンタルサーバーを使って携帯用の日本語→リトアニア語辞書

6このwikiaの
ページ数
新しいページをつくる
トーク8 シェアする
日本語→リトアニア語携帯用辞書.JPG

日本語→リトアニア語携帯用辞書 (http://inyuki.puslapiai.lt/search)

もの:簡易日本語→リトアニア語オンライン辞書を作ったことがあります。

日本語→リトアニア語辞書を作りたいかと思ったのは、まず、友達のためです。あるリトアニア語を学ぶ友達がリトアニア語から日本語への辞書を送ることをお願いして、自分でも作れるものだと思いました。それで、自分が知っているのは、少し「PHP」、少し「MySQL」でした。それで、辞書なら、一つ機能〔検索機能〕しかないので、簡単だ思いました。

次にこの辞書自体の作り方についてお話します。02007年3月15日、今の段階では基本機能の操作は適当に働いています。

では、ストーリー。

1. まず、私は既にレンタルサーバーのスペースとしてホームページを持っていたので、それを使いました。自分のホームページのホスティングサービスは http://www.puslapiai.lt です。リトアニアでは本当に安いホスティングサービスですが、それは足りますよ。一ヶ月43円だけです。購入方法は、携帯から有料SMSメッセージを送信することか、銀行口座から直接うことです。私は銀行から直接に払っています。(こっちの方が安いですから。)

というのは、日本で作りたければ、ご自分のサーバーをセットアップするか、レンタルサーバーのスペースを購入するしかないと思います。私の辞書のコードは適当に実行するには、LAMPLinux+Apache Server+MySQL+PHP)がインストールしているサーバーはオッケーです。ただ、 PhpMyAdminというプログラムもあれば新しい単語の入力はより簡単ことになります。なぜならば、私の場合は辞書の編集の管理者インターフェースはまだ開発中のため、辞書の単語の編集ページはないからです。それでPhpMyAdminでデータベース(テーブル・単語の表)を直接に編集する(EXCELでは表を直接に編集するみたいに)ことができます。(EXCELの使い方に少し似ていますので、簡単です!)。ちょっと余談ですが、前には何かを作ろうとしていた時、あんまりPhpMyAdmin使う気がなかった(GUIなんて開発にはあんまり必要がないと思っていましたから)ですが、最近は一人の大学に出会ったウェブサイトを作る友達とお話して、PhpMyAdminを使って実際にホームページの格ところの情報を編集していると知ったとき、PhpMyAdminの実用性が分かった。なぜPhpMyAdminを使うことがいいかというと、いろいろ試すことが出来ることです。また、単語の編集フォームなどはまだ作られていない時は既に情報簡単に編集することが出来ることです。この話のお陰で開発過程の一重点が分かった。それは、管理者インターフェースを作らないで、まず情報自体を作る。後で実際によく使ったクエリが分かったら、管理者インターフェースを作ることです。というのは、長く管理者インターフェースを作らないでPhpMyAdminを使ってデーターを編集することです。

さて、既にPhpMyAdminが付きホスティングサービスでしたので、それを使って辞書表を作り始めました。・・・というか、試し試し始めました。

Phpmyadmin-jp-lt-jisho-no-hyou-no-tokuchou.PNG

この日本語→リトアニア語の辞書の表の特徴、また私のホームページの全てのデータベース(inyuki)の一例です。

とにくか、まず一段階はLAMPとPhpMyAdminが付きホスティングサーバーのサービスを購入することです。インターネットで検索すれば、例えば、 http://www.webmasters.jp/services/price.html のライトプラン(一ヶ月840円) というのが出ていますが、より安いプランもあるはずだと思います。

なぜリトアニアではこんなに安いかあんまりよく分かっていませんが、多分リトアニアの経済のためだと思います。でも、リトアニアでもより高いサービスがあります。例えば、www.serveriai.lt の一番安いプランは一ヶ月15リタス(673.7円)。でも、ディスク容量は500MBでデータ転送量は5GBです。www.webmasters.jpの場合は容量は100MBしかないですが、データ転送量は無制限ですね。

2. 次に私はデータベースの構造を作りました。(言いかえれば、一つのテーブルを作成しました。)。それをおかなうには、PhpMyAdminにログインして、Operations(一番→目のボタン)というボタンを押して、表の名前を入力した。それで、Fieldというところで3と入力しました。なぜかというと、三つの列が必要だと思いましたから。一番目の列に唯一な単語の番号を自動的に書く、二番目の列を日本語の単語を書く、三番目の列に翻訳を書く(リトアニア語の単語とそれの説明)。

Hyou-no-tsukurikata-1.PNG

表を作り始めます

それで、「Go」というボタンを押しました。押したら、その次の画面で三つの行が見えてきました。列の名前、タイプまたその他の特徴を選択しました。

id列にINT(整数)タイプをつけました。jpもlt列にTEXT(文)タイプを付きました。Extraというところでid列の特徴としてauto_increment(「自動増加」)を選択し、プライマリキーというところもid列の特徴として選択しました。次のイメージを見てください。

Hyou-no-tsukurikata-2.PNG

つくる表の三つの列の特徴を選択

そうして、左側にlt-jpというリンク(表のリンク)が現れてきました。それを押しました。押したら、「Search」(検索)と「Insert」(挿入)という上にある選択を使って、新しい単語を入力したり、検索したりすることが出来ました。それで、幾つかの単語を挿入して、次の段階(ウェブから検索を行うこと)に進みました。

3. いくつかの単語が既にデータベースにあったので、それをどうやって見つけるか、またどうやってインターネットのページに表示するかと思いながら、HTMLページを作り始めた。まず、NOTEPADエディターを起動し、

<html>
<head><title>検索</title>
</head>
<body>
テスト
</body>
</html>

ではじめた。このファイルをindex.phpとして保存しました。それで、インターネットエキスプローラー(IE)を起動し、 http://ftp.puslapiai.lt と入力し、自分のユーザー名とパスワードを入力しました。 それで、 public_htmlというフォルダを開き、それの中で search というフォルダを製作しました。そのフォルダに、さっき作った index.php ファイルをコピーしました。

こうしたてら、 http://inyuki.puslapiai.lt/search というURLとして「テスト」という内容が出てきました。

次にこのページを次のように変えました。次のフォームを入力しました(オレンジ)。

<html>
<head><title>検索</title>
</head>
<body>
   <form action="http://inyuki.puslapiai.lt/search"
         method="get">
        検索キーワード: <input type="text" name="q">
        <input type="submit" value="検索">
   </form>
</body>
</html>

(具体的には覚えていませんが、このページみたいなページを見つけて、たたコピーペストし、 action というところの後に http://inyuki.puslapiai.lt/search を入力しただけです。)

また http://ftp.puslapiai.lt にコピーして見ました。検索フォームが出てきました。

さて、どうやってデータベースにある単語を取るか考えはじめました。それに使うのSQLを少し知ってて、経験も少しあって、MySQLのチュートリアルをネットで探しはじめました。というのは、前に http://www.w3schools.com/ のホームページで このチュートリアル http://www.w3schools.com/sql/default.asp を学んだことがありましたからです、少し参考したかっです。でも、あれをまた読み始めて、よりいい方法思い出しました。それは、いつかダウンロードした PHPのヘルプファイルでした( www.php.net からダウンロードです、8MB)。ヘルプで例が載っていることを知っていまして、そのヘルプファイルを見つけて、必要な部分をコピーペーストで試し始めました。というのは、データベースから何かデータを取るには、まず接続を作らなければなりませんということを知っていたので、MySQLに関するの関数を探すここから始めました。それで、結局 mysql_connectという関数のページを見つけました。一番目の例から次のテキストをコピーペーストしました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
?>
</body>
</html>

それで、自分のユーザ名 (inyuki)とパスワード (5241415512、 ホスティングサービス( http://www.puslapiai.lt )に登録したときにもらったものですけど、これは例です、実際は別のパスワードを利用していますね)に、次のとおりに変えました。

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
?>
</body>
</html>

次にデータベースの選択の文を入れました。(オレンジ文字を入れました)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

?>
</body>
</html>

データベースの選択の文もPHPのマニュアルで見つけて、コピーペーストで それで利用者が入力した単語を変数として手に入れる(預かる)には、次の部分を入れました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q'];

?>
</body>
</html>

$zodisというのは変数自体ですね。なぜ$は付きましたかというと、PHPでは全ての変数がこのようだと、もちろん、知っていましたから。それで、$_GET['q']という文も知っていました。この文の意味は *.php ファイルへのURLから「?q=」か「&q=」という部分の後の部分の値をとってという意味です。例えば、http://dic.yahoo.co.jp という辞書に英語の 「energy」という単語を入力したら、URLはこうなります「 http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=energy&stype=0&dtype=2 」、ね。このURLでは「&p=」という名前として単語を預かりますので、PHPで預かりたかったら$_GET['p']という変数ではそれが出来ますね。なぜ私の場合は「q」になるかというと、上に書いたHTMLフォームで、インプットフィールドの名前はq(検索キーワード: <input type="text" name="q">)になりますからです。

それで、データベースのSQL言語で検索クエリーを作り、それを変数としてれました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

?>
</body>
</html>
Jisho-no-sql-query-wo-tsukuru.PNG

PhpMyAdminを使ってクエリがすぐに出来ました。

実際はね、このクエリを自分で作ったものではなくて、上記のPhpMyAdminで作ったものです。というのは、PhpMyAdminでは検索機能が既にあって、毎回検索するときは実行したクエリーを表示していますので、既にデータベースに入力した「宇宙」という単語を検索してみました。適当に働くクエリでしたので、それをコピーペーストで入れました。それの「宇宙」という単語を預かった$zodisという変数に変えました。次のイメージご参考になってください。


その次に、クエリを実際に行うには、次の三つのラインを入れました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// クエリの実行
$result = mysql_query($sql)
or die("Query failed: " . mysql_error());

?>
</body>
</html>

もう自分の経験から知っていたことですが、実際のシンタックスを忘れていたので、またPHPマニュアルに参考しなければならないということでしたが、ここで一番重要なのはmysql_queryという関数です。この関数の変数としてクエリを入力すると、その関数が既に接続があるデータベースにクエリを実行してみて、その実行の結果の値を出すということです。ただ、これはまだこのまま使える値ではなくて、値の配列というデータタイプなので、またそれを仕分けなければなりません。

なので、次のようにコードを変えました。(オレンジの部分を入れました)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// クエリの実行
$result = mysql_query($sql)
or die("Query failed: " . mysql_error());

// ******************* まだ操作を分析しなければ *******

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->lt
\n";
    }

    mysql_free_result($result);


// *******************

?>
</body>
</html>

というのは、実際にどうやってあれを分散する(仕分ける)か思い出せなくて、PHPマニュアルで検索についての配列を検索する例を見つけて、それをコピーし貼り付いて、適当に表示するかどうか試していた。適当に表示していたのでこのままでいいと思いました。(まだこの部分を最後まで理解しなかったですが)

次にデータベースからディスコネクトしなければならないということを知っていて、次のテキストを入力しました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// クエリの実行
$result = mysql_query($sql)
or die("Query failed: " . mysql_error());

// ******************* まだ操作を分析しなければ *******

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->lt
\n";
    }

    mysql_free_result($result);


// *******************

// データベースからディスコネクト
mysql_close($link);

?>
</body>
</html>

それで、PhpMyAdminで幾つかの単語を入力して、検索の後のURLをコピーペーストして、ファイルの下にリンクを載せました。(オレンジ)

 <html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// クエリの実行
$result = mysql_query($sql)
or die("Query failed: " . mysql_error());

// ******************* まだ操作を分析しなければ *******

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->lt
\n";
    }

    mysql_free_result($result);


// *******************

// データベースからディスコネクト
mysql_close($link);

?>




日本語→リトアニア語 辞書のテストです。すでに三つの単語が入っています。


<a href="http://inyuki.puslapiai.lt/search/?q=%89F%92%88">宇宙</a>, <a href
="http://inyuki.puslapiai.lt/search/?q=%89F%92%88%90l">宇宙人</a>, <a hr
ef="http://inyuki.puslapiai.lt/search/?q=%92n%8B%85">地球</a>.

</body>
</html>

最後に、既に持っていたメールフォームへのリンクを入れました。(オレンジ)

<html>
<head><title>検索</title>
</head>
<body>
  <form action="http://inyuki.puslapiai.lt/search"
        method="get">
       検索キーワード: <input type="text" name="q">
       <input type="submit" value="検索">
  </form>
<?php
$link = mysql_connect('localhost', 'inyuki', '5241415512');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
// データベースの選択
mysql_select_db("inyuki")
   or die("Could not select database: " . mysql_error());

// 入力した単語を預かる
$zodis = $_GET['q']

// $zodisの検索を実行するデータベースのクエリ
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// クエリの実行
$result = mysql_query($sql)
or die("Query failed: " . mysql_error());

// ******************* まだ操作を分析しなければ *******

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->lt
\n";
    }

    mysql_free_result($result);


// *******************

// データベースからディスコネクト
mysql_close($link);

?>




日本語→リトアニア語 辞書のテストです。すでに三つの単語が入っています。


<a href="http://inyuki.puslapiai.lt/search/?q=%89F%92%88">宇宙</a>, <a href
="http://inyuki.puslapiai.lt/search/?q=%89F%92%88%90l">宇宙人</a>, <a hr
ef="http://inyuki.puslapiai.lt/search/?q=%92n%8B%85">地球</a>.

知りたい単語がありま
したら、<a href="http://inyuki.puslapiai.lt/i/messeji.htm">
ご連絡</a>ください。



</body>
</html>
  • メールフォームのことをどうやってしたかってことなどで他のページとして説明します.</center>

4. 書いたページをアップロードしました。

で、実際に私のサーバーにあるファイルにはコメントはリトアニア語であります。

現在(02007年3月23日)サーバーにあるindex.phpファイルはこの用になります(データベースの利用者パスワードだけが異なっています):

<html>
<head><title>検索</title>
 <meta http-equiv="Content-Type" content="text/html; charset=x-jis" />
</head>
<body>
    <form action="http://inyuki.puslapiai.lt/search"
          method="get">
         検索キーワード: <input type="text" name="q">
         <input type="submit" value="検索">
    </form>

<?

// prisijungimas prie duomenu bazes

$link = mysql_connect("localhost","inyuki","5241415512")
    or die("Could not connect: " . mysql_error());

// duomenu bazes pasirinkimas
mysql_select_db("inyuki")
    or die("Could not select database: " . mysql_error());

// pasiimame uzklausos zodi
$zodis = $_GET['q'];

// musu uzklausa rasti zodi $zodis
$sql = "SELECT `lt` FROM `jp-lt` WHERE `jp` = '".$zodis."' LIMIT 0, 30";

// uzklausos vykdymas
$result = mysql_query($sql)
   or die("Query failed: " . mysql_error());


// ******************* reikes dar issiaiskinti, kaip tai veikia *******

    /* fetch rows in reverse order */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->lt
\n";
    }

    mysql_free_result($result);


// *******************

// atsijungimas nuo duomenu bazes
mysql_close($link);

?>




日本語→リトアニア語 辞書のテストです。すでに三つの単語が入っています。


<a href="http://inyuki.puslapiai.lt/search/?q=%89F%92%88">宇宙</a>, 
<a href="http://inyuki.puslapiai.lt/search/?q=%89F%92%88%90l">宇宙人</a>, 
<a href="http://inyuki.puslapiai.lt/search/?q=%92n%8B%85">地球</a>.
知りたい単語がありましたら、<a href="http://inyuki.puslapiai.lt/i/messeji.htm">
ご連絡</a>ください。



このページの作り方を知りたい方は、<a href="http://ja.howto.wikia.com/wiki/%E3%83%AA%E3%83%88%E3%82%A2%E3%83%8B%E3%82%A2%E3%81%AE%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%90%BA%E5%B8%AF%E7%94%A8%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E2%86%92%E3%83%AA%E3%83%88%E3%82%A2%E3%83%8B%E3%82%A2%E8%AA%9E%E8%BE%9E%E6%9B%B8">
HOWTOウィキ(PC用ページ)</a>へどうぞ。

自分の作りストーリーをドンドン共有していきましょう!
</body>
</html>

では、質問がありましたら、ノートページ(Discussion)を利用ください。私のウォッチリストに入っていますので、すぐ(何日かの間)回答ましす。

これから付きたい機能は

  • 携帯から新しい単語の入力と編集。というのは、人が質問を書いたら、すぐ辞書に単語を入れることができるようにすることです。または、例えば、バスに行くときも新しい単語の説明をすることですね。
  • 最近追加した単語リストを自動的に表示する。というのは、ブログ見たいにすることです。最近わからない単語を聞いた人がすぐ回答を見つけるようにすることですね。

みんでぃ 02007年3月17日 (木) 10:08 (UTC)

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

Fandomでも見てみる

おまかせWikia