Pour réviser les syllabaires Hiragana et Katakana, je n'arrivais pas à me concentré sur le symbole sans que mon regard ne dévie vers la réponse (en Romaji) à côté de celui-ci dans les tableaux Hiragana et Katakana courant.
Il est aussi 'trop' facile de réviser lorsque les syllabes sont placées dans l'ordre usuelle: a,i,u,e,o.
J'ai donc développé ce petit script PHP construisant dans un ordre aléatoire les tableaux, Hiragana, Katakana, Romaji et double (Hiragana + Katakana). Une case ne contient que la syllabe (ou Romaji) sans sa transcription.
Tout commentaire est le bienvenue.
Merci et bonne révision.
URL: http://www.airfirst.ch/hkr/
UTILISATION:
- rafraichir/recharger la page pour générer de nouveaux tableaux aléatoires.
- imprimer la/les page(s).
- réviser là et quand vous le souhaitez.
** NOTE1: les syllabes ne s'affichent pas correctement si le script est sur un serveur local (Ex.: http://localhost/hkr/ )
** NOTE2. Par intérêt général j'étudie le japonais avec la méthode "40 leçons pour parler japonais" de la série "Langues pour tous". J'apprécie particulièrement cette méthode pour:
- sa structure, chaque nouveau élément est expliqué.
- sa progression assez lente.
LE SCRIPT PHP:
Code : Tout sélectionner
<?PHP
/*
********************** Construction aléatoire des tableaux de révision HIRAGANAS, KATAKANAS, ROMAJIS
Distribué sous licence GNU: GNU.ORG/licenses
Version 1.5 - Novembre 2008
*/
//SYLLABAIRE DES HIRAGANAS
$Hira=array('あ', 'い', 'う', 'え', 'お', 'か', 'き', 'く', 'け', 'こ', 'さ', 'し', 'す', 'せ', 'そ', 'た', 'ち', 'つ', 'て', 'と', 'な', 'に', 'ぬ', 'ね', 'の', 'は', 'ひ', 'ふ', 'へ', 'ほ', 'ま', 'み', 'む', 'め', 'も', 'ら', 'り', 'る', 'れ', 'ろ', 'や', 'ゆ', 'よ', 'わ', 'を', 'ん', 'が', 'ぎ', 'ぐ', 'げ', 'ご', 'ざ', 'じ', 'ず', 'ぜ', 'ぞ', 'だ', 'じ', 'ず', 'で', 'ど', 'ば', 'び', 'ぶ', 'べ', 'ぼ', 'ぱ', 'ぴ', 'ぷ', 'ぺ', 'ぽ', 'きゃ', 'きゅ', 'きょ', 'ぎゃ', 'ぎゅ', 'ぎょ', 'しゃ', 'しゅ', 'しょ', 'じゃ', 'じゅ', 'じょ', 'ちゃ', 'ちゅ', 'ちょ', 'にゃ', 'にゅ', 'にょ', 'ひゃ', 'ひゅ', 'ひょ', 'びゃ', 'びゅ', 'びょ', 'ぴゃ', 'ぴゅ', 'ぴょ', 'りゃ', 'りゅ', 'りょ');
//SYLLABAIRE DES KATAKANAS
$Kana=array('ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ヤ', 'ユ', 'ヨ', 'ワ', 'ヲ', 'ン', 'ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'ゼ', 'ゾ', 'ダ', 'ジ', 'ズ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'キャ', 'キュ', 'キョ', 'ギャ', 'ギュ', 'ギョ', 'シャ', 'シュ', 'ショ', 'ジャ', 'ジュ', 'ジョ', 'チャ', 'チュ', 'チョ', 'ニャ', 'ニュ', 'ニョ', 'ヒャ', 'ヒュ', 'ヒョ', 'ビャ', 'ビュ', 'ビョ', 'ピャ', 'ピュ', 'ピョ', 'リャ', 'リュ', 'リョ');
//ROMAJIS
$Roma=array('a', 'i', 'u', 'e', 'o', 'ka', 'ki', 'ku', 'ke', 'ko', 'sa', 'shi', 'su', 'se', 'so', 'ta', 'chi', 'tsu', 'te', 'to', 'na', 'ni', 'nu', 'ne', 'no', 'ha', 'hi', 'fu', 'he', 'ho', 'ma', 'mi', 'mu', 'me', 'mo', 'ra', 'ri', 'ru', 're', 'ro', 'ya', 'yu', 'yo', 'wa', 'wo', 'n', 'ga', 'gi', 'gu', 'ge', 'go', 'za', 'ji', 'zu', 'ze', 'zo', 'da', 'ji', 'zu', 'de', 'do', 'ba', 'bi', 'bu', 'be', 'bo', 'pa', 'pi', 'pu', 'pe', 'po', 'kya', 'kyu', 'kyo', 'gya', 'gyu', 'gyo', 'sha', 'shu', 'sho', 'zya', 'zyu', 'zyo', 'cha', 'chu', 'cho', 'nya', 'nyu', 'nyo', 'hya', 'hyu', 'hyo', 'bya', 'byu', 'byo', 'pya', 'pyu', 'pyo', 'rya', 'ryu', 'ryo');
$Dual=array_merge($Hira,$Kana); //HIRAGANAS & KATAKANAS
$Rom2=array_merge($Roma,$Roma); //Double ROMAJIS
//Mixe aléatoirement les éléments d'un tableau associatif
function ShuffleAss($arr){
while(count($arr)>0){
$val=array_rand($arr);
$new_arr[$val]=$arr[$val];
unset($arr[$val]);}
return $new_arr;
}
//Associe les Kana à leur ROMAJI
$HiraAss=array(); for($i=0;$i<count($Hira);$i++){$HiraAss[$Roma[$i]."_".$i]=$Hira[$i];}
$KanaAss=array(); for($i=0;$i<count($Kana);$i++){$KanaAss[$Roma[$i]."_".$i]=$Kana[$i];}
$RomaAss=array(); for($i=0;$i<count($Roma);$i++){$RomaAss[ "_".$i]=$Roma[$i];}
$DualAss=array(); for($i=0;$i<count($Rom2);$i++){$DualAss[$Rom2[$i]."_".$i]=$Dual[$i];}
//Mixe les tableaux
$HiraMix=ShuffleAss($HiraAss);
$KanaMix=ShuffleAss($KanaAss);
$RomaMix=ShuffleAss($RomaAss);
$DualMix=ShuffleAss($DualAss);
//Construit un tableau HTML contenant les données d'un tableau 'STANDARD' PHP
//*** Utilisé dans les versions antérieures
function TableREG($Data){
$LonD=count($Data);
$Line=(int)(sqrt(count($Data)));
$Coll=$Line+1;
$n=0;
echo "<table>";
for($i=0;$i<$Line;$i++){
echo " <tr>\n";
for($j=0;$j<$Coll;$j++){
$cell=$n<$LonD?$Data[$n]:" ";
$n++;
echo " <td>".$cell."</td>\n";
}
echo " </tr>\n";
}
echo "</table>\n";
}
//Construit un tableau HTML contenant les données d'un tableau ASSOCIATIF PHP
function TableAss($Data){
$LonD=count($Data);
$Line=(int)(sqrt(count($Data)));
$Coll=$Line+1;
reset($Data);
echo "<table>";
for($i=0;$i<$Line;$i++){
echo " <tr>\n";
for($j=0;$j<$Coll;$j++){
$val=current($Data);
if($val!=""){
list($title)=split("_",key($Data),2);
$title=$title==""?"":"title=' ".$title." '";
echo " <td $title>".$val."</td>\n";
}else{
echo " <td> </td>\n";
}
next($Data);
}
echo " </tr>\n";
}
echo "</table>\n";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Revision HKR</title>
<style type="text/css">
<!--
HTML,*{margin:0Px;padding:0Px}
BODY {font-family:"MS Trbuchet",Arial,sans-serif;font-size:20Px;margin:10Px;cursor:default;}
TABLE {border-collapse:collapse;font-size:20Px;width:100%;padding:5Px;margin:0 0 10Px 0;}
TH {background-color:#CCCC99;white-space:nowrap}
TH,TD {vertical-align:top; padding:5Px;border:1Px solid #6E6E6E;}
TH {font-weight:bold;font-size:12Px;}
H1 {font-size:18Px;margin:0 0 5Px 0;}
HR {height:1Px;color:#666666;}
LI {list-style-position:inside;}
P {margin:0 0 5Px 0;padding:0Px;text-align:justify;}
A {text-decoration:none;color:#0000CC;}
A:hover{text-decoration:underline;color:#993300;}
-->
</style>
</head>
<body>
<?PHP
echo "<H1>Hiragana</H1>";
TableAss($HiraMix);
echo "<H1>Katakana</H1>";
TableAss($KanaMix);
echo "<H1>Rômaji</H1>";
TableAss($RomaMix);
echo "<H1>Hiragana & Katakana</H1>";
TableAss($DualMix);
?>
</body>
</html>