Trans Dict

A dictionary based on Wiktionary's interwiki links. Author: Karl Bartel <[email protected]>

by karlb

HTML

<div class="page-header">
    <h1>Translation Dictionary
        <small>based on Wiktionary</small>
    </h1>
</div>

<form class="form-inline" float: left>
    <input type="text" id="from" class="lang" value="en">
    <input type="text" id="to" class="lang" value="de">
    <input type="text" id="word" class="search-query">
    <button class="btn btn-primary">translate</button>
</form>


<div id="result" class="hide">
    <h2>Results</h2>
    <ul></ul>
</div>

CSS

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');

body {margin: 10%}
input.lang {width: 18px}

JavaScript

function show_result(data) {
    $("#result ul").text('');
    $.each(data.query.pages, function(page_id, page) {
        if (page.iwlinks === undefined) {
            $("#result ul").append('no results');
            return false; // break
        }
        $.each(page.iwlinks, function(i, el) {
            var trans = el['*'];
            trans = trans.replace('Special:Search/', '').replace('_', ' ');
            $("#result ul").append('<li>' + trans + '</li>');
        });
    });
    $("#result").fadeIn('fast');
}

function translate() {
    $("#result").fadeOut('fast');
    $.ajax({
        url: 'http://' + $('#from').val() + '.wiktionary.org/w/api.php',
        data: {
            action: 'query',
            prop: 'iwlinks',
            format: 'json',
            iwlimit: 30,
            iwprefix: $('#to').val(),
            titles: $('#word').val()
        },
        dataType: 'jsonp',
        success: show_result
    });
    return false;
}

$('form').submit(translate);
$('#word').focus();