App-I18N

 view release on metacpan or  search on metacpan

share/static/app.js  view on Meta::CPAN

	init: function(lg) {
		this.lg = lg;
		this.current_lang = lg.code;

		var that = this;
		$.get( '/entry_edit' , function(html) {
			$('#panel').html( html );

			// init entry
			var entry = EntryList.current();
			that.update(entry);
			$('.prev-message').click(function(){
				var entry = EntryList.prev();
				that.update(entry);
			});
			$('.skip-message').click(function() {
				var entry = EntryList.next();
				that.update(entry);
			});
			$('.next-message').click(function() {
				EntryList.current().msgstr = $('#current-msgstr').val();
				EntryList.save( function(resp) {
					var entry = EntryList.next();
					that.update(entry);
				});
			});


		});
	},
	update: function(entry) { 
		var lang = this.current_lang;
		if(!entry)
			return;

		$('#current-lang').html( "Current Language: " + this.lg.name );
		$('#current-msgid').html( entry.msgid );
		$('#current-msgstr').val( entry.msgstr );
		$('#current-id').val( entry.id );

		var g_el = $('#google-translation');
		var g_el_text = g_el.find('div.text');
		if( g_el.get(0) ) {
			g_el.show();
			g_el_text.html( "Translating..." );
		}
		else {
			g_el = $('<div/>').attr('id','google-translation').append( $('<div/>').addClass('text') );
			$('#current-msgstr').after( g_el );
			g_el = $('#google-translation');
			g_el_text = g_el.find('div.text');
		}

        if( typeof google != "undefined" ) {
            google.language.translate( entry.msgid  , "", lang , function(result) {
                if( result.error ) {
                    g_el_text.html( "Error:" + result.error.message );
                    $.jGrowl( result.error.message , { header: 'Google Translation' , theme: 'error' , sticky: 1 } );
                } else {
                    g_el_text.html( result.translation );
                    var apply = $('<a/>').attr( { href: '#', tabindex: 5 } ).html( 'Apply' ).addClass('apply').click( function(e) {
                        $('#current-msgstr').val( result.translation );
                        g_el.fadeOut('slow');
                    });
                    g_el_text.append( apply );
                }
            });
        }

		$('#current-msgstr').focus( );

	}
};

$(document.body).ready( function() {

		jQuery.getJSON( '/api/podata' , function(langdata) {
				// console.log( data );
		
			var langlistel = jQuery( '#langlist' );
			for ( var lang in langdata ) {
				(function(lang) {
					var lg = langdata[lang];

					var link = jQuery( '<li/>' ).html( jQuery( '<a/>' ).html( lg.name ).click(function(e) {
						EntryList.fetch( lang , function(data) {
							EntryList.UI.EditPanel.init( lg );
						});
					} ));
					langlistel.append( link );
				})( lang );
			}
		});
});



( run in 0.926 second using v1.01-cache-2.11-cpan-2398b32b56e )