The introduction of new generic top-level domains (gTLDs) into the
Internet ecosystem enabled the largest expansion of the Domain Name
System (DNS) to date. There are now more than 1,200 active gTLDs
representing many different scripts and character strings of varying
length. There are also more than 60 IDN country code top-level
domains (ccTLDs) representing global communities online in native
People all over the world can use domain names in their native languages and scripts thanks to Internationalised Domain Names (IDNs). Characters from several scripts, including Arabic, Chinese, Cyrillic, and Devanagari, are used to create IDNs. These are used in accordance with the applicable IDN protocols and encoded according to the Unicode standard. Not all labels of a domain name may be internationalized. The user uses the IDN version, but the IDN is converted into ASCII for DNS resolution. The xn-- prefix is added to identify an IDN. Example: सीडैक.भारत is the IDN in Devanagiri script for cdac.in
Universal Acceptance (UA) encourages language variety and enables users to register domain names and create email addresses in their own/native languages or scripts. UA support internationalized identifiers, as well as new and long TLDs. Internationalized identifiers are Internationalized domain name (IDN) and Email Address Internationalization (EAI). UA supports longer-string TLDs (new generic top-level domains -new gTLDs). In the early days, TLDs were two or three characters long (.ca, .com). Recently, TLDs started to have longer strings and can have up to 63 octets.
The Internet is now critical to the way we live our lives and everyone should be able to freely use it without any technical barrier being in the way. Users are experiencing "bugs" when trying to use many TLDs in their browsers, email and other applications. This contributes to a "chicken-or-the-egg" problem. Users don't exhibit enough interest to get bugs fixed because the bugs prevent users from becoming interested, and vice versa. As a result, this is not just a "bug" for users, it is a "bug" for all working to expand the Internet. Operators of TLDs, especially IDN TLDs, are seeing unnaturally limited demand for names in these zones. This dampens enthusiasm for investment in the growth of the Internet.
The Internet is now critical to the way we live our lives and
everyone should be able to freely use it without any technical
barrier being in the way. Users are experiencing "bugs" when trying
to use many TLDs in their browsers, email and other applications.
This contributes to a "chicken-or-the-egg" problem. Users don't
exhibit enough interest to get bugs fixed because the bugs prevent
users from becoming interested, and vice versa. As a result, this is
not just a "bug" for users, it is a "bug" for all working to expand
the Internet. Operators of TLDs, especially IDN TLDs, are seeing
unnaturally limited demand for names in these zones. This dampens
enthusiasm for investment in the growth of the Internet.
A user hosting exclusively non-English language contents or Multi-lingual contents and wants to cater to that language-specific audience group will be greatly benefitted by IDN. Such users need to register a domain name in their required local/native language (non-English), which is supported through IDN. The IDN domains are encoded using a special encoding scheme called Punycode. The Punycode converts non-English characters (Unicode representation) to their equivalent characters in ASCII representation through encoding. For Example The Punycode representation for hiding the "आईआईआरईएफ.भारत" is "xn--m1baagbb3c2opb.xn--h2brj9c". To generate Punycode use https://www.punycoder.com/
Case 1: Creating a Multi-Lingual Website
A user presently having a website in ‘English’ wants to serve the contents in other Indian language(s), then follow steps below for a “UA Ready” Websites. For example, to launch the "iiref.in" website in Hindi:
1. Convert or translate the contents of "iiref.in" website into Hindi (Devanagiri Script)
2. Register/Lease an IDN domain (in Hindi) आईआईआरईएफ.भारत from an authorized domain name registrar (Example: https://godil.in/)
3. Co-host the Hindi contents of “iiref.in” as "आईआईआरईएफ.भारत" at the same IP address as that of "iiref.in". This is referred to as virtual hosting and the procedure for the same is described in the next immediate section.
4. Provide navigational links in the Webpages for switching the language from ‘English’ to ‘Hindi’ in the pages served from “iiref.in” and from ‘Hindi’ to ‘English’ in the pages served from “आईआईआरईएफ.भारत”
5. Content Update: It is important for the administrators to update both the English and IDN contents of the Website simultaneously.
The above approach can be extended to incorporate more languages.
Case 2: Creating a single non-English language Website
Follow the steps listed below for creating a “UA Ready” Website. For example, to launch a website in Tamil, "ஐஐஆர்இஎப்.இந்தியா":
1. Register/Lease an IDN domain (in Tamil) ஐஐஆர்இஎப்.இந்தியா from an authorized domain name registrar (Example: https://godil.in/)
2. Host the Tamil language contents " ஐஐஆர்இஎப்.இந்தியா" with an IP address obtained from the ISP/Hosting Service provider.
1. OS: Ubuntu 22.04 LTS
2. Web Server: Apache 2
3. Certificate Generator: Certbot
4. Domain: आईआईआरईएफ.भारत
5. Punycode of the domain: xn--m1baagbb3c2opb.xn--h2brj9c (can be generated at https://www.punycoder.com/ )
The process to add a virtual host:
1. Create a directory for the domain and change the permission
$ sudo mkdir /var/www/iiref
$ sudo chown -R www-data.www-data /var/www/iiref
2. * Go to the Apache configuration directory and add a virtual host for your domain using the punycode of the domain
$ sudo cd /etc/apache2/sites-available/
$ sudo nano iiref.conf
<VirtualHost *:80> ServerName xn--m1baagbb3c2opb.xn--h2brj9c ServerAdmin firstname.lastname@example.org DocumentRoot /var/www/iiref ErrorLog /error.log CustomLog /access.log combined </VirtualHost>
3. Enable the new VirtualHost
$ sudo a2ensite iiref
4. Check if the configurations are correct
$ sudo apache2ctl configtest
5. Reload the web server
$ sudo systemctl reload apache2
6. Create a temporary file for your website. Add a meta tag for UTF-8 charset.
$ nano /var/www/iiref/index.html
<html> <head> <meta charset="UTF-8" /> </head> <body>स्वागत</body> </html>
# Replace the temporary file with original website once it is ready.
7. [Optional] Install Cerbot for generating TLS certificate
$ sudo snap install --classic certbot1
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
8. Generate and install the certificate in Apache automatically. Use Punycode of the domain wherever domain name is required.
$ sudo certbot --apache
9. Access the website through the URL in a browser
* For any other operating system, locate ‘httpd.conf’ file in Apache ‘conf’ directory and add the virtual host at the end of the file.