IDN podpora
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.