Kot lastnik IDN domene jež.si se večkrat srečujem z nedelovanjem vpisane domene v Unicode obliki. Seveda nimam pričakovanj, da bi se angleško govoreči del sveta ukvarjal s tem, pač pa bi lahko kaj več storili naši domači, ker slovenska vrhnja domena .si je ena tistih, ki ponuja registracijo domene oblike IDN.

  • IDN je kratica za internationalized domain name
  • Punycode je način zapisa Unicode znakov z nizom ASCII znakov, ki jih razume DNS

Realizacija

Tako bom skušal v tem zapisu zbrati tehnologijo in dobre prakse, da bi naše IDN domene postale kar najbolj domače. Realizacija je lahko kar splošna predpostavka, da je vnešena domena IDN in jo v bazi shranimo oz. uporabimo za nadaljno obdelavo kot ascii, razen če domeno prikazujemo.

Php

Začenjam s php-jem, ker sem se s tem srečal najprej, preden sem aktivno presedlal na Meteor. Php ima IDN podporo preko

  • idn_to_ascii — Convert domain name to IDNA ASCII form.
  • idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode.

Namestiš ga z

apt-get install php5-intl

in uporaba:

idn_to_ascii('jež.si');
idn_to_utf8('xn--je-3va.si');

JavaScript & node.js

Za IDN podporo v JavaScriptu skrbi knjižnjica punycode.js.

Namestiš z

npm install punycode --save

oz.

const punycode = require('punycode');

uporaba:

punycode.toUnicode('xn--je-3va.si');
punycode.toASCII('jež.si');

Ruby

S tem sem se srečal le pri tej moji spletni strani, ki jo generira jekyll.

Namestitev:

sudo gem install simpleidn

uporaba:

require 'rubygems'
require 'simpleidn'
SimpleIDN.to_unicode "xn--je-3va.si"
SimpleIDN.to_ascii "jež.si"

Povezave

Državne ustanove in vabilo k sodelovanju

Upam, da naši državni upravniki prepoznajo tehnični problem slovenščine, sploh ob 25 letnici države in naročijo posodobitve svojih spletnih strani.