The data flows surrounding the use of โcow.txtโ in yesterdayโs Country Data Google Translate Tutorial take a variety of forms โฆ
- country data is selected via dropdowns, so we have arranged those dropdowns to contain a variety of global data attributes โฆ
- data-mapurl โฆ is populated with a Google Chart Map Chart URL (derived via fields in โcow.txtโ)
- data-geourl โฆ is populated with a Google Chart Geo Chart URL (derived via fields in โcow.txtโ)
- data-langlist โฆ is populated with country Language Code list (as a field in โcow.txtโ)
- data-it โฆ helps us link Country Names with Country Codes (derived from โcow.txtโ)
- whole series of data-capital prefixing global data attributes describing Capital City Names in a variety of languages (directly from โcow.txtโ fields)
โฆ and today those dropdowns are also given a โฆ
- title attribute โฆ
- containing Population and Population Year and Area (out of โcow.txtโ) and Population Density we calculate โฆ that โฆ
- at least for non-mobile platforms this information above will display when hovering over the dropdowns
โฆ which begs the question โฆ
For a dropdown onchange event (passing in this to variable iso) how could you reference global data attribute data-mapurl for example?
โฆ try โฆ
var theurlformapchartis = iso.options[iso.selectedIndex].getAttribute('data-mapurl');
โฆ showing you how lots of the dynamics of the web application can launch themselves from dropdown onchange event Javascript functions.
Bit like XML for (albeit kludgy) data usefulness, donโt you think?
Yet again, try this, in thechanged country_datahtml Country Data web application start below, that, now, may navigate you to โthehow we got thereโ PHP
code Google Translate friendly version for your perusal.
Previous relevant Country Data Google Translate Tutorial is shown below.
The โฆ
- โcow.txtโ in an HTML iframe arrangement
- limits to Google Translate timings related to Javascript DOM (element populating in particular) can result in half done translations
โฆ within yesterdayโs Country Data Geodata Tutorialโs web applicationโs design has had us needing to involve PHP into the mix as we try to add โcow.txtโ derived country language codes of interest into the Google Translate friendly thanks functionality of our recent and ongoing Country Data web application.
We get help from another language code lookup source, thanks, today, we allow for Language Code presentations that are not just a pretty unfriendly code, only.
Letโs see an example of a Google Translate URL โฆ
โฆ with the following characteristics โฆ
- an RJM Programming PHP URL equivalent is mapped to a Google Translate one โฆ via โฆ
- dot ( ie . ) parts of domain name are replaced by minus ( ie โ )
- straight after domain name .translate.goog is placed
- &_x_tr_tl= GET argument ( eg &_x_tr_tl=ru means translate from โ?_x_tr_sl=enโ English to Russian )
- &data_cc= GET argument is an inhouse construct (yes, you can append your own GET arguments and use a โtop.location.hrefโ approach to updating a Google Translate URL ) ( eg &data_cc=AR means display โcow.txtโ data relating to Country Code AR which is Argentina )
We use a special blank language code to revert back to an RJM Programming URL from a Google Translate URL using language code EN which is English. Otherwise, once within a Google Translate URL the user generally stays there.
This Google Translate approach does a much more thorough translation job of all the โcow.txtโ derived data above the โgeodataโ HTML mapping iframes, allowing โฆ
- Country names
- Capital City names
โฆ be translated into many languages that โcow.txtโ is not designed to address.
Of particular importance, now, in the revised code, is the use made of the global HTML element attribute โtranslateโ โฆ
The translate attribute specifies whether the content of an element should be translated or not.
โฆ and we use translate=โnoโ for data โcodeโ elements and translate=โyesโ for data โdisplay text (of that code)โ elements, so as to Internationalize what this web application is capable of.
Again, try this, in thechanged country_datahtml Country Data web application start below, that, now, may navigate you to โthehow we got thereโ PHP
code Google Translate friendly version for your perusal.
Previous relevant Country Data Geodata Tutorial is shown below.
We started Country Data Primer Tutorialโs perusal of the โฆ
great Open Licence data source concerning a country data โcow.txtโ flat file with semicolon column separators, thanks to the heads up at this great link
โฆ start to our endeavours without referencing โgeodataโ. But there is โgeodataโ in โcow.txtโ, and so it behoves us to represent that in a โฆ in a โฆ anyone, anyone? Yes, Anaximander, son of Praxiades โฆ or is that Praximander, son of Anaxiades โฆ please, in future, can you separate or one of you take the town drain home โฆ we can plot positions on a map.
How about one of Googleโs Charts, such as โฆ
โฆ so that the user can see โwhereโ in the world the Country (and its Capital) are located?
Try this, in thechanged country_datahtml Country Data web application start below.
Previous relevant Country Data Primer Tutorial is shown below.
The other day we came upon a great Open Licence data source concerning a country data โcow.txtโ flat file with semicolon column separators, thanks to the heads up at this great link.
With todayโs blog posting we start out writing a Javascript and HTML web application using โcow.txtโ hosted in an HTML iframe element arrangement, and relying on its โonloadโ event Javascript language โฆ
function checkif(iois, four) {
var aconto = (iois.contentWindow || iois.contentDocument);
if (aconto != null) {
if (aconto.document) { aconto = aconto.document; }
if (aconto.body != null) {
if (origihcode == '') {
origihcode=document.getElementById('ccode').innerHTML;
origihname=document.getElementById('cname').innerHTML;
} else {
document.getElementById('ccode').innerHTML=origihcode;
document.getElementById('cname').innerHTML=origihname;
}
var cols=[];
var lines=aconto.body.innerText.split(String.fromCharCode(10));
document.getElementById('tdcapital').innerHTML='';
for (var i=0; i<lines.length; i++) {
cols=lines[i].split(';');
if (eval('' + lines[i].length) > 3 && eval('' + cols[0].length) == 2 && eval('' + cols.length) > eval('' + four)) {
if (prevval != '' && prevval.indexOf(orflag(cols[0])) != -1) {
var ihis='<option data-capital="' + cols[36].trim() + '" data-capital4="' + cols[36].trim() + '" data-capital8="' + cols[39].trim() + '" data-capital15="' + cols[40].trim() + '" data-capital17="' + cols[41].trim() + '" data-capital32="' + cols[42].trim() + '" data-capital29="' + cols[36].trim() + '" value="' + cols[0] + ' ' + orflag(cols[0]) + '" selected>' + (cols[eval('' + four)].trim() == '' ? cols[4] : cols[eval('' + four)]) + ' ' + orflag(cols[0]) + '</option>';
document.getElementById('cname').innerHTML+=ihis;
document.getElementById('ccode').innerHTML+='<option data-capital="' + cols[36].trim() + '" data-capital4="' + cols[36].trim() + '" data-capital8="' + cols[39].trim() + '" data-capital15="' + cols[40].trim() + '" data-capital17="' + cols[41].trim() + '" data-capital32="' + cols[42].trim() + '" data-capital29="' + cols[36].trim() + '" value="' + (cols[eval('' + four)].trim() == '' ? cols[4] : cols[eval('' + four)]) + ' ' + orflag(cols[0]) + '" selected>' + cols[0] + ' ' + orflag(cols[0]) + '</option>';
document.getElementById('tdcapital').innerHTML=(('' + ihis.split(' data-capital' + document.getElementById('lang').value + '="')[1].split('"')[0].trim()) == '' ? ('' + ihis.split(' data-capital' + '="')[1].split('"')[0].trim()) : ('' + ihis.split(' data-capital' + document.getElementById('lang').value + '="')[1].split('"')[0].trim()) );
} else {
document.getElementById('cname').innerHTML+='<option data-capital="' + cols[36].trim() + '" data-capital4="' + cols[36].trim() + '" data-capital8="' + cols[39].trim() + '" data-capital15="' + cols[40].trim() + '" data-capital17="' + cols[41].trim() + '" data-capital32="' + cols[42].trim() + '" data-capital29="' + cols[36].trim() + '" value="' + cols[0] + ' ' + orflag(cols[0]) + '">' + (cols[eval('' + four)].trim() == '' ? cols[4] : cols[eval('' + four)]) + ' ' + orflag(cols[0]) + '</option>';
document.getElementById('ccode').innerHTML+='<option data-capital="' + cols[36].trim() + '" data-capital4="' + cols[36].trim() + '" data-capital8="' + cols[39].trim() + '" data-capital15="' + cols[40].trim() + '" data-capital17="' + cols[41].trim() + '" data-capital32="' + cols[42].trim() + '" data-capital29="' + cols[36].trim() + '" value="' + (cols[eval('' + four)].trim() == '' ? cols[4] : cols[eval('' + four)]) + ' ' + orflag(cols[0]) + '">' + cols[0] + ' ' + orflag(cols[0]) + '</option>';
}
}
}
}
}
prevval='';
}
โฆ that dovetails with HTML โฆ
<iframe style=display:none; id=myif onload=checkif(this,document.getElementById('lang').value); src='/cow.txt'></iframe>
โฆ and imagine weโll extend its functionality into the near future, onto its proof of concept country_datahtml Country Data web application start โฆ
We hope you hang about for the ride?!
If this was interesting you may be interested in this too.
If this was interesting you may be interested in this too.
If this was interesting you may be interested in this too.
If this was interesting you may be interested in this too.