Difference between revisions of "D-Bus examples"
Jump to navigation
Jump to search
m (→Java: Fixed my bad grammar) |
(→Python: Updated to match the new D-Bus interface) |
||
Line 14: | Line 14: | ||
mode_name = 'en-af'; # The name of the installed mode |
mode_name = 'en-af'; # The name of the installed mode |
||
dbus_mode_name = '/' + '_'.join(pair_name.split('-')); # Some mandatory mangling |
|||
bus = dbus.SessionBus(); # Create a new session bus |
bus = dbus.SessionBus(); # Create a new session bus |
||
# Get the translator |
# Get the translator |
||
translator = dbus.Interface(bus.get_object('org.apertium.mode', |
translator = dbus.Interface(bus.get_object('org.apertium.mode', '/'), 'org.apertium.Translate'); |
||
input = sys.stdin.read(); # Read the data |
input = sys.stdin.read(); # Read the data |
||
print translator.translate({}, input); # Print the translation |
print translator.translate(mode_name, {}, input); # Print the translation |
||
</pre> |
</pre> |
Revision as of 15:03, 19 December 2007
Here are some code snippets for various programming languages (complete with completely unnecessary comments) showing how you can interface with Apertium by means of D-Bus. You'll need to install the D-Bus service for Apertium.
Python
#!/usr/bin/python # coding=utf-8 # -*- encoding: utf-8 -*- import dbus, sys, codecs; sys.stdin = codecs.getwriter('utf-8')(sys.stdin); sys.stdout = codecs.getwriter('utf-8')(sys.stdout); mode_name = 'en-af'; # The name of the installed mode bus = dbus.SessionBus(); # Create a new session bus # Get the translator translator = dbus.Interface(bus.get_object('org.apertium.mode', '/'), 'org.apertium.Translate'); input = sys.stdin.read(); # Read the data print translator.translate(mode_name, {}, input); # Print the translation
Java
import org.freedesktop.DBus; import org.freedesktop.dbus.DBusConnection; import org.freedesktop.dbus.exceptions.DBusException; import org.apertium.Info; // The interface we use to access org.apertium.info/ class TestDBus { public static void main(String[] args) throws org.freedesktop.dbus.exceptions.DBusException { DBusConnection bus = null; Info info = null; bus = DBusConnection.getConnection(DBusConnection.SESSION); info = bus.getRemoteObject("org.apertium.info", "/", Info.class); for (String s : info.modes()) { System.out.println(s); } bus.disconnect(); } }
We have a guide on installing the Java D-Bus bindings and a guide on compiling a small Java application which uses an Apertium D-Bus service.