Échange entre les syllabaires hiragana et katakana


Les Japonais utilisent leurs deux syllabaires de manière bien différenciée certes, mais très souple.
Si en principe le katakana est consacré aux mots d'origine étrangère, il est aussi utilisé dans un but de mise en valeur,
à la manière de nos majuscules (par exemple, les noms de firmes japonaises sont souvent écrits en katakana
sur les enseignes ou sur les murs : カワサキ =  KAWASAKI).
Le katakana est aussi utilisé pour indiquer la lecture "chinoise" des kanjis (onyomi),
souvenir du temps où c'était l'écriture employée par les hommes, qui étudiaient le chinois...

Il n'est donc pas sans intérêt de pouvoir passer de l'un à l'autre avec l'aide de l'ordinateur.
C'est très facile, vu que les deux syllabaires sont rigoureusement parallèles en tant que jeux de caractères.
Un mathématicien dirait qu'il existe entre eux une correspondance biunivoque, alias bijection.
Cette correspondance est réalisée par une simple translation entre numéros Unicode :
en ajoutant 96 (décimal) au numéro Unicode d'un symbole hiragana, on obtient le numéro de son homologue en katakana.

Point n'est donc besoin de faire appel à la technique mise au point pour les translittérations, quelques lignes de JavaScript suffisent !
Cet excellent langage permet en effet de calculer les chaînes directement à partir des numéros unicode,
eux-mêmes obtenus en tant qu'entiers par un calcul arithmétique.

Voici l'une des deux fonctions : (fichier HK.js)
on prend la précaution de n'appliquer la transformation qu'aux caractères qui figurent dans la plage hiragana
(de 0x3042 à 0x30A0) et de laisser tous les autres invariants (ASCII, ponctuations diverses, chiffres japonais, kanjis, etc).

	function H2K (chn) {
var res = "";
var k = 0;
for ( var i = 0; i<chn.length; i++ ) {
k = chn.charCodeAt(i);
if( k> 0x3041 && k<0x30A0){ //hiragana
res += String.fromCharCode(k+96);
}else{
res += chn.charAt(i);
}
}
return res;
}


Mise en œuvre

Bon, et maintenant si on passait au rômaji ?
Cette fois l'arithmétique n'est plus de mise, il va falloir reprendre la technique à base de tableaux de correspondance...
Essayez donc pour voir ! Vous avez déjà eu deux exemples complets, celui-ci ne devrait pas vous résister ...