Read-115~dfsg/0000755000000000000000000000000012542716202011776 5ustar rootrootRead-115~dfsg/imageview.py0000644000000000000000000004265712505056570014347 0ustar rootroot# Copyright (C) 2008, One Laptop per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # From ImageViewer Activity - file ImageView.py import cairo import math from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkPixbuf from gi.repository import GObject from gi.repository import Gio ZOOM_STEP = 0.05 ZOOM_MAX = 10 ZOOM_MIN = 0.05 def pixbuf_from_data(data): stream = Gio.MemoryInputStream.new_from_data(data, None) pixbuf = GdkPixbuf.Pixbuf.new_from_stream(stream, None) return pixbuf def _surface_from_data(data, ctx): pixbuf = pixbuf_from_data(data) surface = ctx.get_target().create_similar( cairo.CONTENT_COLOR_ALPHA, pixbuf.get_width(), pixbuf.get_height()) ctx_surface = cairo.Context(surface) Gdk.cairo_set_source_pixbuf(ctx_surface, pixbuf, 0, 0) ctx_surface.paint() return surface def _rotate_surface(surface, direction): ctx = cairo.Context(surface) new_surface = ctx.get_target().create_similar( cairo.CONTENT_COLOR_ALPHA, surface.get_height(), surface.get_width()) ctx_surface = cairo.Context(new_surface) if direction == 1: ctx_surface.translate(surface.get_height(), 0) else: ctx_surface.translate(0, surface.get_width()) ctx_surface.rotate(math.pi / 2 * direction) ctx_surface.set_source_surface(surface, 0, 0) ctx_surface.paint() return new_surface def _flip_surface(surface): ctx = cairo.Context(surface) new_surface = ctx.get_target().create_similar( cairo.CONTENT_COLOR_ALPHA, surface.get_width(), surface.get_height()) ctx_surface = cairo.Context(new_surface) ctx_surface.rotate(math.pi) ctx_surface.translate(-surface.get_width(), -surface.get_height()) ctx_surface.set_source_surface(surface, 0, 0) ctx_surface.paint() return new_surface class ImageViewer(Gtk.DrawingArea, Gtk.Scrollable): __gtype_name__ = 'ImageViewer' __gproperties__ = { "hscroll-policy": (Gtk.ScrollablePolicy, "hscroll-policy", "hscroll-policy", Gtk.ScrollablePolicy.MINIMUM, GObject.PARAM_READWRITE), "hadjustment": (Gtk.Adjustment, "hadjustment", "hadjustment", GObject.PARAM_READWRITE), "vscroll-policy": (Gtk.ScrollablePolicy, "hscroll-policy", "hscroll-policy", Gtk.ScrollablePolicy.MINIMUM, GObject.PARAM_READWRITE), "vadjustment": (Gtk.Adjustment, "hadjustment", "hadjustment", GObject.PARAM_READWRITE), } __gsignals__ = { 'setup-new-surface': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self): Gtk.DrawingArea.__init__(self) self._data = None self._data_changed = False self._surface = None self._zoom = None self._target_point = None self._anchor_point = None self._in_dragtouch = False self._in_zoomtouch = False self._zoomtouch_scale = 1 self._in_scrolling = False self._scrolling_hid = None self._hadj = None self._vadj = None self._hadj_value_changed_hid = None self._vadj_value_changed_hid = None self.connect('draw', self.__draw_cb) def set_data(self, data): self._data = data self._data_changed = True self.queue_draw() def do_get_property(self, prop): # We don't use the getter but GTK wants it defined as we are # implementing Gtk.Scrollable interface. pass def do_set_property(self, prop, value): # The scrolled window will give us the adjustments. Make a # reference to them and also connect to their value-changed # signal. if prop.name == 'hadjustment': if value is not None: hadj = value self._hadj_value_changed_hid = \ hadj.connect('value-changed', self.__hadj_value_changed_cb) self._hadj = hadj elif prop.name == 'vadjustment': if value is not None: vadj = value self._vadj_value_changed_hid = \ vadj.connect('value-changed', self.__vadj_value_changed_cb) self._vadj = vadj def update_adjustments(self): alloc = self.get_allocation() scaled_width = self._surface.get_width() * self._zoom scaled_height = self._surface.get_height() * self._zoom page_size_x = alloc.width * 1.0 / scaled_width self._hadj.set_lower(0) self._hadj.set_page_size(page_size_x) self._hadj.set_upper(1.0) self._hadj.set_step_increment(0.1) self._hadj.set_page_increment(0.5) page_size_y = alloc.height * 1.0 / scaled_height self._vadj.set_lower(0) self._vadj.set_page_size(page_size_y) self._vadj.set_upper(1.0) self._vadj.set_step_increment(0.1) self._vadj.set_page_increment(0.5) anchor_scaled = (self._anchor_point[0] * self._zoom, self._anchor_point[1] * self._zoom) # This vector is the top left coordinate of the scaled image. scaled_image_topleft = (self._target_point[0] - anchor_scaled[0], self._target_point[1] - anchor_scaled[1]) max_topleft = (scaled_width - alloc.width, scaled_height - alloc.height) max_value = (1.0 - page_size_x, 1.0 - page_size_y) # This two linear functions map the topleft corner of the # image to the value each adjustment. if max_topleft[0] != 0: self._hadj.disconnect(self._hadj_value_changed_hid) self._hadj.set_value(-1 * max_value[0] * scaled_image_topleft[0] / max_topleft[0]) self._hadj_value_changed_hid = \ self._hadj.connect('value-changed', self.__hadj_value_changed_cb) if max_topleft[1] != 0: self._vadj.disconnect(self._vadj_value_changed_hid) self._vadj.set_value(-1 * max_value[1] * scaled_image_topleft[1] / max_topleft[1]) self._vadj_value_changed_hid = \ self._vadj.connect('value-changed', self.__vadj_value_changed_cb) def _stop_scrolling(self): self._in_scrolling = False self.queue_draw() return False def _start_scrolling(self): if not self._in_scrolling: self._in_scrolling = True # Add or update a timer after which the in_scrolling flag will # be set to False. This is to perform a faster drawing while # scrolling. if self._scrolling_hid is not None: GObject.source_remove(self._scrolling_hid) self._scrolling_hid = GObject.timeout_add(200, self._stop_scrolling) def __hadj_value_changed_cb(self, adj): alloc = self.get_allocation() scaled_width = self._surface.get_width() * self._zoom anchor_scaled_x = self._anchor_point[0] * self._zoom scaled_image_left = self._target_point[0] - anchor_scaled_x max_left = scaled_width - alloc.width max_value = 1.0 - adj.get_page_size() new_left = -1 * max_left * adj.get_value() / max_value delta_x = scaled_image_left - new_left self._anchor_point = (self._anchor_point[0] + delta_x, self._anchor_point[1]) self._start_scrolling() self.queue_draw() def __vadj_value_changed_cb(self, adj): alloc = self.get_allocation() scaled_height = self._surface.get_height() * self._zoom anchor_scaled_y = self._anchor_point[1] * self._zoom scaled_image_top = self._target_point[1] - anchor_scaled_y max_top = scaled_height - alloc.height max_value = 1.0 - adj.get_page_size() new_top = -1 * max_top * adj.get_value() / max_value delta_y = scaled_image_top - new_top self._anchor_point = (self._anchor_point[0], self._anchor_point[1] + delta_y) self._start_scrolling() self.queue_draw() def _center_target_point(self): alloc = self.get_allocation() self._target_point = (alloc.width / 2, alloc.height / 2) def _center_anchor_point(self): self._anchor_point = (self._surface.get_width() / 2, self._surface.get_height() / 2) def _center_if_small(self): # If at the current size the image surface is smaller than the # available space, center it on the canvas. alloc = self.get_allocation() scaled_width = self._surface.get_width() * self._zoom scaled_height = self._surface.get_height() * self._zoom if alloc.width >= scaled_width and alloc.height >= scaled_height: self._center_target_point() self._center_anchor_point() self.queue_draw() def set_zoom(self, zoom): if zoom < ZOOM_MIN or zoom > ZOOM_MAX: return self._zoom = zoom self.queue_draw() def get_zoom(self): return self._zoom def can_zoom_in(self): return self._zoom + ZOOM_STEP < ZOOM_MAX self.update_adjustments() def can_zoom_out(self): return self._zoom - ZOOM_STEP > ZOOM_MIN self.update_adjustments() def zoom_in(self): if not self.can_zoom_in(): return self._zoom += ZOOM_STEP self.update_adjustments() self.queue_draw() def zoom_out(self): if not self.can_zoom_out(): return self._zoom -= ZOOM_MIN self._center_if_small() self.update_adjustments() self.queue_draw() def zoom_to_fit(self): # This tries to figure out a best fit model # We show it in a fit to screen way alloc = self.get_allocation() surface_width = self._surface.get_width() surface_height = self._surface.get_height() self._zoom = min(alloc.width * 1.0 / surface_width, alloc.height * 1.0 / surface_height) self._center_target_point() self._center_anchor_point() self.update_adjustments() self.queue_draw() def zoom_to_width(self): alloc = self.get_allocation() surface_width = self._surface.get_width() self._zoom = alloc.width * 1.0 / surface_width self._center_target_point() self._center_anchor_point() self.update_adjustments() self.queue_draw() def zoom_original(self): self._zoom = 1 self._center_if_small() self.update_adjustments() self.queue_draw() def _move_anchor_to_target(self, prev_target_point): # Calculate the new anchor point, move it from the previous # target to the new one. prev_anchor_scaled = (self._anchor_point[0] * self._zoom, self._anchor_point[1] * self._zoom) # This vector is the top left coordinate of the scaled image. scaled_image_topleft = (prev_target_point[0] - prev_anchor_scaled[0], prev_target_point[1] - prev_anchor_scaled[1]) anchor_scaled = (self._target_point[0] - scaled_image_topleft[0], self._target_point[1] - scaled_image_topleft[1]) self._anchor_point = (int(anchor_scaled[0] * 1.0 / self._zoom), int(anchor_scaled[1] * 1.0 / self._zoom)) def start_dragtouch(self, coords): self._in_dragtouch = True prev_target_point = self._target_point # Set target point to the relative coordinates of this view. self._target_point = (coords[1], coords[2]) self._move_anchor_to_target(prev_target_point) self.queue_draw() def update_dragtouch(self, coords): # Drag touch will be replaced by zoom touch if another finger # is placed over the display. When the user finishes zoom # touch, it will probably remove one finger after the other, # and this method will be called. In that probable case, we # need to start drag touch again. if not self._in_dragtouch: self.start_dragtouch(coords) return self._target_point = (coords[1], coords[2]) self.update_adjustments() self.queue_draw() def finish_dragtouch(self, coords): self._in_dragtouch = False self._center_if_small() self.update_adjustments() def start_zoomtouch(self, center): self._in_zoomtouch = True self._zoomtouch_scale = 1 # Zoom touch replaces drag touch. self._in_dragtouch = False prev_target_point = self._target_point # Set target point to the relative coordinates of this view. alloc = self.get_allocation() self._target_point = (center[1] - alloc.x, center[2] - alloc.y) self._move_anchor_to_target(prev_target_point) self.queue_draw() def update_zoomtouch(self, center, scale): self._zoomtouch_scale = scale # Set target point to the relative coordinates of this view. alloc = self.get_allocation() self._target_point = (center[1] - alloc.x, center[2] - alloc.y) self.queue_draw() def finish_zoomtouch(self): self._in_zoomtouch = False # Apply zoom self._zoom = self._zoom * self._zoomtouch_scale self._zoomtouch_scale = 1 # Restrict zoom values if self._zoom < ZOOM_MIN: self._zoom = ZOOM_MIN elif self._zoom > ZOOM_MAX: self._zoom = ZOOM_MAX self._center_if_small() self.update_adjustments() self.queue_draw() def set_rotate(self, rotate): if rotate == 0: return elif rotate in [1, -3]: self._surface = _rotate_surface(self._surface, 1) elif rotate in [-1, 3]: self._surface = _rotate_surface(self._surface, -1) else: self._surface = _flip_surface(self._surface) if rotate > 0: for i in range(rotate): self._anchor_point = ( self._surface.get_width() - self._anchor_point[1], self._anchor_point[0]) if rotate < 0: for i in range(-rotate): self._anchor_point = ( self._anchor_point[1], self._surface.get_height() - self._anchor_point[0]) self.update_adjustments() self.queue_draw() def rotate_anticlockwise(self): self._surface = _rotate_surface(self._surface, -1) # Recalculate the anchor point to make it relative to the new # top left corner. self._anchor_point = ( self._anchor_point[1], self._surface.get_height() - self._anchor_point[0]) self.update_adjustments() self.queue_draw() def rotate_clockwise(self): self._surface = _rotate_surface(self._surface, 1) # Recalculate the anchor point to make it relative to the new # top left corner. self._anchor_point = ( self._surface.get_width() - self._anchor_point[1], self._anchor_point[0]) self.update_adjustments() self.queue_draw() def __draw_cb(self, widget, ctx): # If the image surface is not set, it reads it from the data If the # data is not set yet, it just returns. if self._surface is None or self._data_changed: if self._data is None: return self._surface = _surface_from_data(self._data, ctx) self._data_changed = False self.emit('setup-new-surface') if self._zoom is None: self.zoom_to_width() # If no target point was set via pinch-to-zoom, default to the # center of the screen. if self._target_point is None: self._center_target_point() # If no anchor point was set via pinch-to-zoom, default to the # center of the surface. if self._anchor_point is None: self._center_anchor_point() self.update_adjustments() ctx.translate(*self._target_point) zoom_absolute = self._zoom * self._zoomtouch_scale ctx.scale(zoom_absolute, zoom_absolute) ctx.translate(self._anchor_point[0] * -1, self._anchor_point[1] * -1) ctx.set_source_surface(self._surface, 0, 0) # Perform faster draw if the view is zooming or scrolling via # mouse or touch. if self._in_zoomtouch or self._in_dragtouch or self._in_scrolling: ctx.get_source().set_filter(cairo.FILTER_NEAREST) ctx.paint() Read-115~dfsg/speechtoolbar.py0000644000000000000000000001276412366506317015224 0ustar rootroot# Copyright (C) 2006, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import os import json from gettext import gettext as _ from gi.repository import Gtk from gi.repository import GConf from sugar3.graphics.toolbutton import ToolButton from sugar3.graphics.toggletoolbutton import ToggleToolButton from sugar3.graphics.combobox import ComboBox from sugar3.graphics.toolcombobox import ToolComboBox import speech class SpeechToolbar(Gtk.Toolbar): def __init__(self, activity): Gtk.Toolbar.__init__(self) self._activity = activity if not speech.supported: return self.is_paused = False self._cnf_client = GConf.Client.get_default() self.load_speech_parameters() self.sorted_voices = [i for i in speech.voices()] self.sorted_voices.sort(self.compare_voices) default = 0 for voice in self.sorted_voices: if voice[0] == speech.voice[0]: break default = default + 1 # Play button self.play_btn = ToggleToolButton('media-playback-start') self.play_btn.show() self.play_btn.connect('toggled', self.play_cb) self.insert(self.play_btn, -1) self.play_btn.set_tooltip(_('Play / Pause')) # Stop button self.stop_btn = ToolButton('media-playback-stop') self.stop_btn.show() self.stop_btn.connect('clicked', self.stop_cb) self.stop_btn.set_sensitive(False) self.insert(self.stop_btn, -1) self.stop_btn.set_tooltip(_('Stop')) self.voice_combo = ComboBox() for voice in self.sorted_voices: self.voice_combo.append_item(voice, voice[0]) self.voice_combo.set_active(default) self.voice_combo.connect('changed', self.voice_changed_cb) combotool = ToolComboBox(self.voice_combo) self.insert(combotool, -1) combotool.show() speech.reset_buttons_cb = self.reset_buttons_cb def compare_voices(self, a, b): if a[0].lower() == b[0].lower(): return 0 if a[0] .lower() < b[0].lower(): return -1 if a[0] .lower() > b[0].lower(): return 1 def voice_changed_cb(self, combo): speech.voice = combo.props.value speech.say(speech.voice[0]) self.save_speech_parameters() def load_speech_parameters(self): speech_parameters = {} data_path = os.path.join(self._activity.get_activity_root(), 'data') data_file_name = os.path.join(data_path, 'speech_params.json') if os.path.exists(data_file_name): f = open(data_file_name, 'r') try: speech_parameters = json.load(f) speech.voice = speech_parameters['voice'] finally: f.close() self._cnf_client.add_dir('/desktop/sugar/speech', GConf.ClientPreloadType.PRELOAD_NONE) speech.pitch = self._cnf_client.get_int('/desktop/sugar/speech/pitch') speech.rate = self._cnf_client.get_int('/desktop/sugar/speech/rate') self._cnf_client.notify_add('/desktop/sugar/speech/pitch', self.__conf_changed_cb, None) self._cnf_client.notify_add('/desktop/sugar/speech/rate', self.__conf_changed_cb, None) def __conf_changed_cb(self, client, connection_id, entry, args): key = entry.get_key() value = client.get_int(key) if key == '/desktop/sugar/speech/pitch': speech.pitch = value if key == '/desktop/sugar/speech/rate': speech.rate = value def save_speech_parameters(self): speech_parameters = {} speech_parameters['voice'] = speech.voice data_path = os.path.join(self._activity.get_activity_root(), 'data') data_file_name = os.path.join(data_path, 'speech_params.json') f = open(data_file_name, 'w') try: json.dump(speech_parameters, f) finally: f.close() def reset_buttons_cb(self): self.play_btn.set_icon_name('media-playback-start') self.stop_btn.set_sensitive(False) self.is_paused = False def play_cb(self, widget): self.stop_btn.set_sensitive(True) if widget.get_active(): self.play_btn.set_icon_name('media-playback-pause') if not self.is_paused: speech.play(self._activity._view.get_marked_words()) else: speech.continue_play() else: self.play_btn.set_icon_name('media-playback-start') self.is_paused = True speech.pause() def stop_cb(self, widget): self.stop_btn.set_sensitive(False) self.play_btn.set_icon_name('media-playback-start') self.play_btn.set_active(False) self.is_paused = False speech.stop() Read-115~dfsg/emptypanel.py0000644000000000000000000000325312366506317014541 0ustar rootrootimport logging from gi.repository import Gtk from sugar3.graphics import style from sugar3.graphics.icon import Icon def show(activity, icon_name, message, btn_label, btn_callback): empty_widgets = Gtk.EventBox() empty_widgets.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color()) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) mvbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(mvbox, True, False, 0) image_icon = Icon(pixel_size=style.LARGE_ICON_SIZE, icon_name=icon_name, stroke_color=style.COLOR_BUTTON_GREY.get_svg(), fill_color=style.COLOR_TRANSPARENT.get_svg()) mvbox.pack_start(image_icon, False, False, style.DEFAULT_PADDING) label = Gtk.Label('%s' % (style.COLOR_BUTTON_GREY.get_html(), message)) label.set_use_markup(True) mvbox.pack_start(label, False, False, style.DEFAULT_PADDING) hbox = Gtk.Box() open_image_btn = Gtk.Button() open_image_btn.connect('clicked', btn_callback) add_image = Gtk.Image.new_from_stock(Gtk.STOCK_ADD, Gtk.IconSize.BUTTON) buttonbox = Gtk.Box() buttonbox.pack_start(add_image, False, True, 0) buttonbox.pack_end(Gtk.Label(btn_label), True, True, 5) open_image_btn.add(buttonbox) hbox.pack_start(open_image_btn, True, False, 0) mvbox.pack_start(hbox, False, False, style.DEFAULT_PADDING) empty_widgets.add(vbox) empty_widgets.show_all() logging.error('Showing empty Panel') activity.set_canvas(empty_widgets) Read-115~dfsg/NEWS0000644000000000000000000000223412366506317012506 0ustar rootroot78 * Add footnotes and intra-document links support in EPUB 77 * Workaround https://bugs.launchpad.net/soas/+bug/483231 76 * Fix pagination for IA Epubs * Updated Vietnamese translations 75 * Fix search in Epub files (dslo #1319) * Updated translations for German, Mongolian and Portuguese 74 * Set bundle id in metadata explicitly (addresses dslo#1172) * Workaround possible Evince libview API issues. (dslo#1328) * Use gobject.timeout_add_seconds instead of gobject.timeout_add * Updated translations for French and Japanese 73 * Migration to the new toolbar system * Updated translations (Arabic, Dutch, French) * New languages 72 * More robust Epub support * Do not print each and every key-event to log (dslo#752) * Updated translations (French, Italian) * Get rid of the pywebkitgtk binary blob 71 * Support for notes associated with bookmarks * Show a information bar in fullscreen mode, with pagecount and battery information * Do not fail to start when Epub specific code does not load 70 * Epub support * Bookmarks support * Default behaviour of Next/Forward is chunk-wise instead of page-wise. * Translation updates (Italian, Japanese) * Misc bugfixes Read-115~dfsg/evinceadapter.py0000644000000000000000000003330412505056641015170 0ustar rootrootfrom gettext import gettext as _ import os import logging import time from gi.repository import GObject from gi.repository import Gtk from gi.repository import Gdk from gi.repository import EvinceDocument from gi.repository import EvinceView from sugar3 import profile from sugar3.activity.activity import get_activity_root, show_object_in_journal from sugar3.datastore import datastore _logger = logging.getLogger('read-activity') class EvinceViewer(): def __init__(self): self._view_notify_zoom_handler = None EvinceDocument.init() self._view = EvinceView.View() def setup(self, activity): self._activity = activity self._view.connect('selection-changed', activity._view_selection_changed_cb) self._view.connect('external-link', self.__handle_link_cb) activity._scrolled = Gtk.ScrolledWindow() activity._scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) activity._scrolled.props.shadow_type = Gtk.ShadowType.NONE activity._scrolled.add(self._view) self._view.show() self._view.set_events(self._view.get_events() | Gdk.EventMask.TOUCH_MASK) self._view.connect('event', self.__view_touch_event_cb) activity._hbox.pack_start(activity._scrolled, True, True, 0) activity._scrolled.show() self.dpi = activity.dpi def load_document(self, file_path): try: self._document = \ EvinceDocument.Document.factory_get_document(file_path) except GObject.GError, e: _logger.error('Can not load document: %s', e) return else: self._model = EvinceView.DocumentModel() self._model.set_document(self._document) self._view.set_model(self._model) # set dpi # TODO why we need set this? """ min_scale = self._model.get_min_scale() max_scale = self._model.get_max_scale() logging.error("min scale %s max_scale %s", min_scale, max_scale) logging.error("setting min scale %s", min_scale * self.dpi / 72.0) logging.error("setting max scale %s", max_scale * self.dpi / 72.0) self._model.set_min_scale(min_scale * self.dpi / 72.0) self._model.set_max_scale(max_scale * self.dpi / 72.0) """ def __view_touch_event_cb(self, widget, event): if event.type == Gdk.EventType.TOUCH_BEGIN: x = event.touch.x view_width = widget.get_allocation().width if x > view_width * 3 / 4: self._view.scroll(Gtk.ScrollType.PAGE_FORWARD, False) elif x < view_width * 1 / 4: self._view.scroll(Gtk.ScrollType.PAGE_BACKWARD, False) def __handle_link_cb(self, widget, url_object): url = url_object.get_uri() logging.debug('Create journal entry for URL: %s', url) jobject = datastore.create() metadata = { 'title': "%s: %s" % (_('URL from Read'), url), 'title_set_by_user': '1', 'icon-color': profile.get_color().to_string(), 'mime_type': 'text/uri-list', } for k, v in metadata.items(): jobject.metadata[k] = v file_path = os.path.join(get_activity_root(), 'instance', '%i_' % time.time()) open(file_path, 'w').write(url + '\r\n') os.chmod(file_path, 0755) jobject.set_file_path(file_path) datastore.write(jobject) show_object_in_journal(jobject.object_id) jobject.destroy() os.unlink(file_path) def get_current_page(self): return self._model.props.page def set_current_page(self, page): if page >= self._document.get_n_pages(): page = self._document.get_n_pages() - 1 elif page < 0: page = 0 self._model.props.page = page def next_page(self): self._view.next_page() def previous_page(self): self._view.previous_page() def rotate_left(self): rotation = self._model.get_rotation() self._model.set_rotation(rotation - 90) def rotate_right(self): rotation = self._model.get_rotation() self._model.set_rotation(rotation + 90) def can_rotate(self): return True def get_pagecount(self): ''' Returns the pagecount of the loaded file ''' return self._document.get_n_pages() def load_metadata(self, activity): self.metadata = activity.metadata if not self.metadata['title_set_by_user'] == '1': title = self._document.get_title() if title: self.metadata['title'] = title sizing_mode = self.metadata.get('Read_sizing_mode', 'fit-width') _logger.debug('Found sizing mode: %s', sizing_mode) if sizing_mode == "best-fit": self._model.set_sizing_mode(EvinceView.SizingMode.BEST_FIT) if hasattr(self._view, 'update_view_size'): self._view.update_view_size(self._scrolled) elif sizing_mode == "free": self._model.set_sizing_mode(EvinceView.SizingMode.FREE) self._model.set_scale(float(self.metadata.get('Read_zoom', '1.0'))) _logger.debug('Set zoom to %f', self._model.props.scale) elif sizing_mode == "fit-width": self._model.set_sizing_mode(EvinceView.SizingMode.FIT_WIDTH) if hasattr(self._view, 'update_view_size'): self._view.update_view_size(self._scrolled) else: # this may happen when we get a document from a buddy with a later # version of Read, for example. _logger.warning("Unknown sizing_mode state '%s'", sizing_mode) if self.metadata.get('Read_zoom', None) is not None: self._model.set_scale(float(self.metadata['Read_zoom'])) def update_metadata(self, activity): self.metadata = activity.metadata self.metadata['Read_zoom'] = str(self._model.props.scale) if self._model.get_sizing_mode() == EvinceView.SizingMode.BEST_FIT: self.metadata['Read_sizing_mode'] = "best-fit" elif self._model.get_sizing_mode() == EvinceView.SizingMode.FREE: self.metadata['Read_sizing_mode'] = "free" elif self._model.get_sizing_mode() == EvinceView.SizingMode.FIT_WIDTH: self.metadata['Read_sizing_mode'] = "fit-width" else: _logger.error("Don't know how to save sizing_mode state '%s'" % self._model.get_sizing_mode()) def can_highlight(self): return False def can_do_text_to_speech(self): return False def get_zoom(self): ''' Returns the current zoom level ''' return self._model.props.scale * 100 def set_zoom(self, value): ''' Sets the current zoom level ''' self._model.props.sizing_mode = EvinceView.SizingMode.FREE if not self._view_notify_zoom_handler: return self._model.disconnect(self._view_notify_zoom_handler) try: self._model.props.scale = value / 100.0 finally: self._view_notify_zoom_handler = self._model.connect( 'notify::scale', self._zoom_handler) def zoom_in(self): ''' Zooms in (increases zoom level by 0.1) ''' self._model.props.sizing_mode = EvinceView.SizingMode.FREE self._view.zoom_in() def zoom_out(self): ''' Zooms out (decreases zoom level by 0.1) ''' self._model.props.sizing_mode = EvinceView.SizingMode.FREE self._view.zoom_out() def zoom_to_width(self): self._model.props.sizing_mode = EvinceView.SizingMode.FIT_WIDTH def can_zoom_in(self): ''' Returns True if it is possible to zoom in further ''' return self._view.can_zoom_in() def can_zoom_out(self): ''' Returns True if it is possible to zoom out further ''' return self._view.can_zoom_out() def can_zoom_to_width(self): return True def zoom_to_best_fit(self): self._model.props.sizing_mode = EvinceView.SizingMode.BEST_FIT def zoom_to_actual_size(self): self._model.props.sizing_mode = EvinceView.SizingMode.FREE self._model.props.scale = 1.0 def connect_zoom_handler(self, handler): self._zoom_handler = handler self._view_notify_zoom_handler = \ self._model.connect('notify::scale', handler) return self._view_notify_zoom_handler def setup_find_job(self, text, updated_cb): self._find_job = EvinceView.JobFind.new( document=self._document, start_page=0, n_pages=self._document.get_n_pages(), text=text, case_sensitive=False) self._find_updated_handler = self._find_job.connect('updated', updated_cb) self._view.find_started(self._find_job) EvinceView.Job.scheduler_push_job( self._find_job, EvinceView.JobPriority.PRIORITY_NONE) return self._find_job, self._find_updated_handler def connect_page_changed_handler(self, handler): self._model.connect('page-changed', handler) def update_toc(self, activity): if self._validate_min_version(3, 5, 92): # check version because does not work and crash with older evince doc = self._model.get_document() if not doc.has_document_links(): logging.error('The pdf file does not have a index') return False else: self._job_links = EvinceView.JobLinks.new(document=doc) self._job_links.connect('finished', self.__index_loaded_cb, activity) EvinceView.Job.scheduler_push_job( self._job_links, EvinceView.JobPriority.PRIORITY_NONE) return True else: return False def handle_link(self, link): self._view.handle_link(link) def _validate_min_version(self, major, minor, micro): """ Check if Evince version is at major or equal than the requested """ evince_version = [EvinceDocument.MAJOR_VERSION, EvinceDocument.MINOR_VERSION, EvinceDocument.MICRO_VERSION] return evince_version >= [major, minor, micro] def __index_loaded_cb(self, job, activity): self._index_model = job.get_model() if job.get_model() is None: return False activity.show_navigator_button() activity.set_navigator_model(self._index_model) return True def get_current_link(self): _iter = self._index_model.get_iter_first() link_found = "" current_page = self._model.props.page while True: link = self._index_model.get_value(_iter, 1) if self._document.get_link_page(link) > current_page: break else: link_found = link _iter = self._index_model.iter_next(_iter) if _iter is None: break return link_found def get_link_iter(self, link): _iter = self._index_model.get_iter_first() while True: value = self._index_model.get_value(_iter, 1) if value == link: break else: _iter = self._index_model.iter_next(_iter) if _iter is None: break return _iter def find_set_highlight_search(self, set_highlight_search): self._view.find_set_highlight_search(set_highlight_search) def find_next(self): ''' Highlights the next matching item for current search ''' self._view.find_next() def find_previous(self): ''' Highlights the previous matching item for current search ''' self._view.find_previous() def find_changed(self, job, page=None): pass def scroll(self, scrolltype, horizontal): ''' Scrolls through the pages. Scrolling is horizontal if horizontal is set to True Valid scrolltypes are: Gtk.ScrollType.PAGE_BACKWARD, Gtk.ScrollType.PAGE_FORWARD, Gtk.ScrollType.STEP_BACKWARD, Gtk.ScrollType.STEP_FORWARD, Gtk.ScrollType.START and Gtk.ScrollType.END ''' _logger.error('scroll: %s', scrolltype) if scrolltype == Gtk.ScrollType.PAGE_BACKWARD: self._view.scroll(Gtk.ScrollType.PAGE_BACKWARD, horizontal) elif scrolltype == Gtk.ScrollType.PAGE_FORWARD: self._view.scroll(Gtk.ScrollType.PAGE_FORWARD, horizontal) elif scrolltype == Gtk.ScrollType.STEP_BACKWARD: self._scroll_step(False, horizontal) elif scrolltype == Gtk.ScrollType.STEP_FORWARD: self._scroll_step(True, horizontal) elif scrolltype == Gtk.ScrollType.START: self.set_current_page(0) elif scrolltype == Gtk.ScrollType.END: self.set_current_page(self._document.get_n_pages()) else: print ('Got unsupported scrolltype %s' % str(scrolltype)) def _scroll_step(self, forward, horizontal): if horizontal: adj = self._activity._scrolled.get_hadjustment() else: adj = self._activity._scrolled.get_vadjustment() value = adj.get_value() step = adj.get_step_increment() if forward: adj.set_value(value + step) else: adj.set_value(value - step) def copy(self): self._view.copy() Read-115~dfsg/.gitignore0000644000000000000000000000007712366506317014002 0ustar rootroot*.mo *.pyc *.xo *~ .*.sw? locale MANIFEST dist/ epubview/.svn/ Read-115~dfsg/po/0000755000000000000000000000000012542716202012414 5ustar rootrootRead-115~dfsg/po/bn.po0000644000000000000000000001161412366506317013366 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-01-29 08:28+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "পড়" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "বুকমার্ক যুক্ত করেছে %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "বুকমার্কের জন্য নোট যুক্ত করো: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s এর বুকমার্ক" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "%d পাতার বুকমার্ক" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "পেছনে" #: readactivity.py:342 msgid "Previous page" msgstr "পূর্ববর্তী পাতা" #: readactivity.py:344 msgid "Previous bookmark" msgstr "পূর্ববর্তী বুকমার্ক" #: readactivity.py:356 msgid "Forward" msgstr "সামনে" #: readactivity.py:360 msgid "Next page" msgstr "পরবর্তী পাতা" #: readactivity.py:362 msgid "Next bookmark" msgstr "পরবর্তী বুকমার্ক" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "বাতিল" #: readdialog.py:58 msgid "Ok" msgstr "ঠিক আছে" #: readdialog.py:116 msgid "Title:" msgstr "শিরোনাম:" #: readdialog.py:142 msgid "Details:" msgstr "বিস্তারিত:" #: readtoolbar.py:61 msgid "Previous" msgstr "পুর্ববর্তী" #: readtoolbar.py:68 msgid "Next" msgstr "পরবর্তী" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "প্রথমটি খুঁজো" #: readtoolbar.py:166 msgid "Find previous" msgstr "আগেরটি খুঁজো" #: readtoolbar.py:168 msgid "Find next" msgstr "পরেরটি খুঁজো" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "ছোট করো" #: readtoolbar.py:204 msgid "Zoom in" msgstr "বড় করো" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "প্রস্থ অনুসারে বড় করো" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "প্রয়োজন অনুসারে বড় করো" #: readtoolbar.py:222 msgid "Actual size" msgstr "আসল আকার" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "পর্দা জুড়ে প্রদর্শন" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "নথি বেছে নাও" #, python-format #~ msgid "Page %i of %i" #~ msgstr "%i এর %i তম পৃষ্ঠা" #~ msgid "Edit" #~ msgstr "সম্পাদনা" #~ msgid "View" #~ msgstr "প্রদর্শন" Read-115~dfsg/po/he.po0000644000000000000000000001014512366506317013361 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-12-19 23:48-0500\n" "Last-Translator: Chris Leonard \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file #, fuzzy msgid "Read" msgstr "קריאה" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 #, fuzzy msgid "Back" msgstr "אחורה" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 #, fuzzy msgid "Forward" msgstr "קדימה" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 #, fuzzy msgid "Previous" msgstr "קודם" #: readtoolbar.py:68 #, fuzzy msgid "Next" msgstr "הבא" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 #, fuzzy msgid "Find first" msgstr "מצא ראשון" #: readtoolbar.py:166 #, fuzzy msgid "Find previous" msgstr "מצא קודם" #: readtoolbar.py:168 #, fuzzy msgid "Find next" msgstr "מצא הבא" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 #, fuzzy msgid "Zoom out" msgstr "התרחק" #: readtoolbar.py:204 #, fuzzy msgid "Zoom in" msgstr "התקרב" #: readtoolbar.py:210 #, fuzzy msgid "Zoom to width" msgstr "צפייה בהתאמה לרוחב" #: readtoolbar.py:216 #, fuzzy msgid "Zoom to fit" msgstr "תקריב להתאמה" #: readtoolbar.py:222 #, fuzzy msgid "Actual size" msgstr "גודל אמיתי" #: readtoolbar.py:233 #, fuzzy msgid "Fullscreen" msgstr "מסך מלא" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, fuzzy #~ msgid "%" #~ msgstr "%" #, fuzzy #~ msgid "Edit" #~ msgstr "עריכה" #, fuzzy #~ msgid "View" #~ msgstr "צפייה" Read-115~dfsg/po/fil.po0000644000000000000000000000761012366506317013542 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-03-25 14:06+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Basahin" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Balik" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Pasulong" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "I-kansela" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Nakaraan" #: readtoolbar.py:68 msgid "Next" msgstr "Kasunod" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Hanapin ang una" #: readtoolbar.py:166 msgid "Find previous" msgstr "Hanapin ang nakaraan" #: readtoolbar.py:168 msgid "Find next" msgstr "Hanapin ang kasunod" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Mag-zoom out" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Mag-zoom in" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Mag-zoom sa lapad" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Mag-zoom upang magkasya" #: readtoolbar.py:222 msgid "Actual size" msgstr "Tunay na sukat" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/ug.po0000644000000000000000000000756212366506317013411 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-02-27 06:40+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: ug\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 #, fuzzy msgid "Back" msgstr "كەينى" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 #, fuzzy msgid "Forward" msgstr "ئالدىغا" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 #, fuzzy msgid "Cancel" msgstr "بىكار قىلىش" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 #, fuzzy msgid "Title:" msgstr "ماۋزۇ:" #: readdialog.py:142 #, fuzzy msgid "Details:" msgstr "تەپسىلاتى:" #: readtoolbar.py:61 #, fuzzy msgid "Previous" msgstr "ئ‍الدىنقى" #: readtoolbar.py:68 #, fuzzy msgid "Next" msgstr "كېيىنكى" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/mn.po0000644000000000000000000001227212366506317013402 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-10-11 18:51+0200\n" "Last-Translator: Cris Anderson \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Унших" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "%(user)s %(time)s-т тэмдэглэгээ нэмсэн" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Тэмдэглэгээнд тайлбар хийх: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s-ын тэмдэглэгээ" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "%d -р хуудасны тэмдэглэгээ" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Буцах" #: readactivity.py:342 msgid "Previous page" msgstr "Өмнөх хуудас" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Өмнөх тэмдэглэгээ" #: readactivity.py:356 msgid "Forward" msgstr "Урагшлах" #: readactivity.py:360 msgid "Next page" msgstr "Дараах хуудас" #: readactivity.py:362 msgid "Next bookmark" msgstr "Дараах тэмдэглэгээ" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Болио" #: readdialog.py:58 msgid "Ok" msgstr "Зөв" #: readdialog.py:116 msgid "Title:" msgstr "Гарчиг:" #: readdialog.py:142 msgid "Details:" msgstr "Деталь:" #: readtoolbar.py:61 msgid "Previous" msgstr "Өмнөх" #: readtoolbar.py:68 msgid "Next" msgstr "Дараах" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Эхнийхийг олох" #: readtoolbar.py:166 msgid "Find previous" msgstr "Өмнөхийг олох" #: readtoolbar.py:168 msgid "Find next" msgstr "Дараагийнхийг олох" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Холдуулах" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Ойртуулах" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Өргөнд тааруулах" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Багтахаар гаргах" #: readtoolbar.py:222 msgid "Actual size" msgstr "Бодит хэмжээ" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Дэлгэц дүүрэн" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Тоглуулах/Түр зогсох" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Баримт сонгох" #, python-format #~ msgid "Page %i of %i" #~ msgstr "%i-н %i-р хуудас" #~ msgid "Edit" #~ msgstr "Засварлах" #~ msgid "View" #~ msgstr "Харах" Read-115~dfsg/po/en_GB.po0000644000000000000000000001165312366506317013744 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-06 18:03+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Read" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bookmark added by %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Add notes for bookmark: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's bookmark" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Bookmark for page %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL from Read" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Go to Bookmark" #: linkbutton.py:129 msgid "Remove" msgstr "Remove" #: readactivity.py:361 msgid "Please wait" msgstr "Please wait" #: readactivity.py:362 msgid "Starting connection..." msgstr "Starting connection..." #: readactivity.py:374 msgid "No book" msgstr "No book" #: readactivity.py:374 msgid "Choose something to read" msgstr "Choose something to read" #: readactivity.py:379 msgid "Back" msgstr "Back" #: readactivity.py:383 msgid "Previous page" msgstr "Previous page" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Previous bookmark" #: readactivity.py:397 msgid "Forward" msgstr "Forward" #: readactivity.py:401 msgid "Next page" msgstr "Next page" #: readactivity.py:403 msgid "Next bookmark" msgstr "Next bookmark" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Delete bookmark" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "All the information related with this bookmark will be lost" #: readactivity.py:900 msgid "Receiving book..." msgstr "Receiving book..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Page %d" #: readdialog.py:52 msgid "Cancel" msgstr "Cancel" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Title:" #: readdialog.py:142 msgid "Details:" msgstr "Details:" #: readtoolbar.py:61 msgid "Previous" msgstr "Previous" #: readtoolbar.py:68 msgid "Next" msgstr "Next" #: readtoolbar.py:79 msgid "Highlight" msgstr "Highlight" #: readtoolbar.py:160 msgid "Find first" msgstr "Find first" #: readtoolbar.py:166 msgid "Find previous" msgstr "Find previous" #: readtoolbar.py:168 msgid "Find next" msgstr "Find next" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Table of contents" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom out" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom in" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom to width" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoom to fit" #: readtoolbar.py:221 msgid "Actual size" msgstr "Actual size" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Full-screen" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rotate left" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rotate right" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Show Tray" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Hide Tray" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Play / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stop" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Page %(current)i of %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "pitch adjusted" #~ msgid "rate adjusted" #~ msgstr "rate adjusted" #~ msgid "Choose document" #~ msgstr "Choose document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Page %i of %i" Read-115~dfsg/po/zh_TW.po0000644000000000000000000001051712366506317014023 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: OLPC XBook\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-03-21 19:11+0200\n" "Last-Translator: Yuan \n" "Language-Team: Yuan CHAO \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "閱讀" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "書籤由 %(user)s 於 %(time)s 加入" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "增加書籤註解:" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s 的書籤" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "第 %d 頁加入書籤" #: evinceadapter.py:88 msgid "URL from Read" msgstr "閱讀的網址URL" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "後退" #: readactivity.py:342 msgid "Previous page" msgstr "上一頁" #: readactivity.py:344 msgid "Previous bookmark" msgstr "上一個書籤" #: readactivity.py:356 msgid "Forward" msgstr "前進" #: readactivity.py:360 msgid "Next page" msgstr "下一頁" #: readactivity.py:362 msgid "Next bookmark" msgstr "下一個書籤" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "取消" #: readdialog.py:58 msgid "Ok" msgstr "確定" #: readdialog.py:116 msgid "Title:" msgstr "標題:" #: readdialog.py:142 msgid "Details:" msgstr "詳細說明:" #: readtoolbar.py:61 msgid "Previous" msgstr "上一個" #: readtoolbar.py:68 msgid "Next" msgstr "下一個" #: readtoolbar.py:79 msgid "Highlight" msgstr "強調" #: readtoolbar.py:160 msgid "Find first" msgstr "搜尋第一個" #: readtoolbar.py:166 msgid "Find previous" msgstr "搜尋前一個" #: readtoolbar.py:168 msgid "Find next" msgstr "搜尋下一個" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "縮小" #: readtoolbar.py:204 msgid "Zoom in" msgstr "放大" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "最適寬度" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "頁面大小" #: readtoolbar.py:222 msgid "Actual size" msgstr "實際大小" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "全螢幕顯示" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "播放/暫停" #: speechtoolbar.py:65 msgid "Stop" msgstr "停止" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "%(total_pages)i 頁中的第 %(current)i 頁" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "音高已調整" #~ msgid "rate adjusted" #~ msgstr "速度已調整" #~ msgid "Choose document" #~ msgstr "選擇文件" #, python-format #~ msgid "Page %i of %i" #~ msgstr "第 %i 頁 共 %i 頁" #~ msgid "Edit" #~ msgstr "編輯" #~ msgid "View" #~ msgstr "檢視" Read-115~dfsg/po/ru.po0000644000000000000000000001162012366506317013412 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-09-28 19:52+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Читать" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Закладка добавлена %(time)s пользователем %(user)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Добавить заметку к закладке: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's закладка" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Закладка страницы %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Назад" #: readactivity.py:342 msgid "Previous page" msgstr "Предыдущая страница" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Предыдущая закладка" #: readactivity.py:356 msgid "Forward" msgstr "Вперед" #: readactivity.py:360 msgid "Next page" msgstr "Следующая страница" #: readactivity.py:362 msgid "Next bookmark" msgstr "Следующая закладка" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Отмена" #: readdialog.py:58 msgid "Ok" msgstr "Ок" #: readdialog.py:116 msgid "Title:" msgstr "Заголовок:" #: readdialog.py:142 msgid "Details:" msgstr "Детали:" #: readtoolbar.py:61 msgid "Previous" msgstr "Предыдущий" #: readtoolbar.py:68 msgid "Next" msgstr "Следующий" #: readtoolbar.py:79 msgid "Highlight" msgstr "Выделить" #: readtoolbar.py:160 msgid "Find first" msgstr "Найти первый" #: readtoolbar.py:166 msgid "Find previous" msgstr "Найти предыдущий" #: readtoolbar.py:168 msgid "Find next" msgstr "Найти следующий" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Увеличить" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Уменьшить" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Масштабировать по ширине" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Масштабировать по размеру" #: readtoolbar.py:222 msgid "Actual size" msgstr "Оригинальный размер" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Полный экран" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Воспроизвести/Пауза" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Выбрать документ" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Страница %i из %i" #~ msgid "Edit" #~ msgstr "Редактировать" #~ msgid "View" #~ msgstr "Просмотреть" #~ msgid "Read Activity" #~ msgstr "Активность Чтение" Read-115~dfsg/po/pl.po0000644000000000000000000001170412366506317013402 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-10-13 19:25+0200\n" "Last-Translator: Karolina \n" "Language-Team: LANGUAGE \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Czytaj" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Użyj tej aktywności, gdy będziesz gotowy, aby przeczytać. Pamiętaj, aby " "obracać komputerem tak, jakby to była książka." #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Zakładka dodana przez %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Dodaj notatki do zakładki: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "Zakładka użytk.: %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Zakładka na stronie %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL z Napisz" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "Idź do Zakładka" #: linkbutton.py:99 msgid "Remove" msgstr "Usuń" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Wstecz" #: readactivity.py:342 msgid "Previous page" msgstr "Poprzednia strona" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Poprzednia zakładka" #: readactivity.py:356 msgid "Forward" msgstr "Dalej" #: readactivity.py:360 msgid "Next page" msgstr "Następna strona" #: readactivity.py:362 msgid "Next bookmark" msgstr "Następna zakładka" #: readactivity.py:413 msgid "Index" msgstr "Indeks" #: readactivity.py:534 msgid "Delete bookmark" msgstr "Usuń zakładkę" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "Wszelkie informacje dotyczące tej zakładki zostaną utracone" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "Strona %d" #: readdialog.py:52 msgid "Cancel" msgstr "Anuluj" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Tytuł:" #: readdialog.py:142 msgid "Details:" msgstr "Szczegóły:" #: readtoolbar.py:61 msgid "Previous" msgstr "Poprzedni" #: readtoolbar.py:68 msgid "Next" msgstr "Następny" #: readtoolbar.py:79 msgid "Highlight" msgstr "Podświetlenie" #: readtoolbar.py:160 msgid "Find first" msgstr "Znajdź pierwszy" #: readtoolbar.py:166 msgid "Find previous" msgstr "Znajdź poprzedni" #: readtoolbar.py:168 msgid "Find next" msgstr "Znajdź następny" #: readtoolbar.py:189 msgid "Table of contents" msgstr "Zawartość" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Zmniejsz" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Powiększ" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Dopasuj do szerokości" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Dopasuj" #: readtoolbar.py:222 msgid "Actual size" msgstr "Aktualny rozmiar" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Pełny ekran" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Odtwarzaj / Pauza" #: speechtoolbar.py:65 msgid "Stop" msgstr "Zatrzymaj" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Strona %(current)i z %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "wysokość ustawiona" #~ msgid "rate adjusted" #~ msgstr "częstotliwość ustawiona" #~ msgid "Choose document" #~ msgstr "Wybierz plik" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Strona %i z %i" #~ msgid "Edit" #~ msgstr "Edytuj" #~ msgid "View" #~ msgstr "Widok" #, fuzzy #~ msgid "Read Activity" #~ msgstr "Czytanka" Read-115~dfsg/po/ta.po0000644000000000000000000001343412366506317013375 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-08-31 18:03+0200\n" "Last-Translator: Thangamani \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "வாசி" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format #, python-format, msgid "Bookmark added by %(user)s %(time)s" msgstr "புத்தகக் குறி %(user)s %(time)s சேர்க்கப்பட்டுள்ளது" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "புத்தகக் குறிக்கு குறிப்புக்களை சேர்க்க: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s ல் புத்தகக் குறி" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "பக்கத்திற்கான புத்தகக் குறி %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "பின்னோக்கி அனுப்பு" #: readactivity.py:342 msgid "Previous page" msgstr "முதற்பக்கம்" #: readactivity.py:344 msgid "Previous bookmark" msgstr "முன்னைய புத்தகக்குறி" #: readactivity.py:356 msgid "Forward" msgstr "முன்னோக்கி அனுப்பு" #: readactivity.py:360 msgid "Next page" msgstr "அடுத்த பக்கம்" #: readactivity.py:362 msgid "Next bookmark" msgstr "அடுத்த புத்தகக்குறி" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "இரத்துசெய்" #: readdialog.py:58 msgid "Ok" msgstr "எல்லாம் சரி" #: readdialog.py:116 msgid "Title:" msgstr "தலைப்பு:" #: readdialog.py:142 msgid "Details:" msgstr "விவரங்கள்:" #: readtoolbar.py:61 msgid "Previous" msgstr "முன்னைய" #: readtoolbar.py:68 msgid "Next" msgstr "அடுத்தது" #: readtoolbar.py:79 msgid "Highlight" msgstr "மேலோங்கிக்காட்டு" #: readtoolbar.py:160 msgid "Find first" msgstr "முதலாவதை கண்டுபிடி" #: readtoolbar.py:166 msgid "Find previous" msgstr "முன்னையதை கண்டுபிடி" #: readtoolbar.py:168 msgid "Find next" msgstr "அடுத்தததை கண்டுபிடி" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "சிறிதாக்கிக் காட்டு" #: readtoolbar.py:204 msgid "Zoom in" msgstr "பெரிதாக்கிக் காட்டு" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "அகலதிற்கு ஏற்றவாறு பெரிதாக்கு" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "பொருந்துமாறு பெரிதாக்கு" #: readtoolbar.py:222 msgid "Actual size" msgstr "சரியான அளவு" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "முழுத்திரை" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "இயக்கு / இடைநிறுத்து" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "பக்கம் %(current)i யின் %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "சுருதி சரிபார்க்கப்பட்டது" #~ msgid "rate adjusted" #~ msgstr "விகிதம் சரிபார்க்கப்பட்டது" #~ msgid "Choose document" #~ msgstr "ஆவணத்தை தெரிவுசெய்" #, python-format, #~ msgid "Page %i of %i" #~ msgstr "%i பக்கத்துக்கு %i" #~ msgid "Edit" #~ msgstr "திருத்து" #~ msgid "View" #~ msgstr "பார்வையிடு" Read-115~dfsg/po/fa.po0000644000000000000000000001005212366506317013350 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-03-30 04:18+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "خواندن" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "عقب" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "جلو" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "درست است" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "قبلی" #: readtoolbar.py:68 msgid "Next" msgstr "بعدی" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "اولی را بازیاب" #: readtoolbar.py:166 msgid "Find previous" msgstr "گذشته را بازیاب" #: readtoolbar.py:168 msgid "Find next" msgstr "بعدی را بازیاب" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "کوچکنمایی" #: readtoolbar.py:204 msgid "Zoom in" msgstr "بزرگنمایی" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "بزرگنمایی به عرض" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "بزرگنمایی به اندازه" #: readtoolbar.py:222 msgid "Actual size" msgstr "اندازه واقعی" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "٪" #~ msgid "Edit" #~ msgstr "ویراستن" #~ msgid "View" #~ msgstr "دیدن" Read-115~dfsg/po/hy.po0000644000000000000000000001221612366506317013406 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-19 10:21+0200\n" "Last-Translator: Jasmine \n" "Language-Team: LANGUAGE \n" "Language: hy\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Կարդալ" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Օգտագործիր այս գործունեությունը, երբ պատրաստ լինես ընթերցելու համար. Հիշիր, " "պտտել համակարգիչը, որպեսզի զգաս թե ձեռքերումդ իսկական գիրք է." #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Էջանիշն ավելացրել է %(user)s օգտագործողը %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Ավելացնել նշումներ էջանիշի համար. " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s - ի էջանիշ" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Էջանիշ %d էջի համար" # URL - Universal Resource Locator: Համացանցային միջոցների որոնիչ: #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL - «Կարդալ» -ից" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Գնալ դեպի Էջանիշ" #: linkbutton.py:129 msgid "Remove" msgstr "Հեռացնել" #: readactivity.py:361 msgid "Please wait" msgstr "Սպասեք խնդրեմ:" #: readactivity.py:362 msgid "Starting connection..." msgstr "Մեկնարկել միացումը" #: readactivity.py:374 msgid "No book" msgstr "Գիրք չկա" #: readactivity.py:374 msgid "Choose something to read" msgstr "Ընտրիր որևէ բան ընթերցելու համար" #: readactivity.py:379 msgid "Back" msgstr "Հետ" #: readactivity.py:383 msgid "Previous page" msgstr "Նախորդ էջ" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Նախորդ էջանիշ" #: readactivity.py:397 msgid "Forward" msgstr "Առաջ" #: readactivity.py:401 msgid "Next page" msgstr "Հաջորդ էջ" #: readactivity.py:403 msgid "Next bookmark" msgstr "Հաջորդ էջանիշ" #: readactivity.py:454 msgid "Index" msgstr "Ցուցիչ" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Վերացնել էջանիշը" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Այս էջանիշի հետ կապված ամբողջ տեղեկույթը կկորչի:" #: readactivity.py:900 msgid "Receiving book..." msgstr "Ստանում է գիրք..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Էջ %d" #: readdialog.py:52 msgid "Cancel" msgstr "Չեղարկել" #: readdialog.py:58 msgid "Ok" msgstr "OK" #: readdialog.py:116 msgid "Title:" msgstr "Վերնագիր." #: readdialog.py:142 msgid "Details:" msgstr "Մանրամասներ." #: readtoolbar.py:61 msgid "Previous" msgstr "Նախորդ" #: readtoolbar.py:68 msgid "Next" msgstr "Հաջորդ" #: readtoolbar.py:79 msgid "Highlight" msgstr "Ցայտուն դարձնել" #: readtoolbar.py:160 msgid "Find first" msgstr "Գտնել առաջինը" #: readtoolbar.py:166 msgid "Find previous" msgstr "Գտնել նախորդը" #: readtoolbar.py:168 msgid "Find next" msgstr "Գտնել հաջորդը" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Գլխացանկ" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Հեռացնել" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Մոտեցնել" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Հարմարեցնել լայնությամբ" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Հարմարեցնել չափսով" #: readtoolbar.py:221 msgid "Actual size" msgstr "Իրական չափս" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Էկրանի չափով" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Պտտել դեպի ձախ" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Պտտել դեպի աջ" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Ցուցադրել պնակը" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Թաքցնել պնակը" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Գործարկել / Դադար" #: speechtoolbar.py:65 msgid "Stop" msgstr "Կանգ" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Էջ %(current)i of %(total_pages)i" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/mk.po0000644000000000000000000001004312366506317013371 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # translation of mk.po to Macedonian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Arangel Angov , 2007. msgid "" msgstr "" "Project-Id-Version: mk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2007-11-22 20:59+0000\n" "Last-Translator: Arangel Angov \n" "Language-Team: Macedonian \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Читај" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Назад" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Напред" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Претходно" #: readtoolbar.py:68 msgid "Next" msgstr "Следно" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Намали" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Зголеми" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Зголеми во ширина" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Собери" #: readtoolbar.py:222 msgid "Actual size" msgstr "Вистинска големина" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Уреди" #~ msgid "View" #~ msgstr "Поглед" #~ msgid "Read Activity" #~ msgstr "Активност за читање" Read-115~dfsg/po/ig.po0000644000000000000000000000724612366506317013374 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/pap.po0000644000000000000000000001155312366506317013551 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Wenchi , 2013. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-10-30 00:32+0200\n" "Last-Translator: June \n" "Language-Team: Suares\n" "Language: pap\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lesa" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Uza e aktividat akí ora bo ta kla pa lesa! Kòrda drei bo kòmpiuter pa bo " "sinti manera kos ku ta di bèrdat bo ta tene un buki!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Markabuki agregá pa %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Agregá nota pa markabuki: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's markabuki" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Markabuki pa página %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL di Read" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Bai Markabuki" #: linkbutton.py:129 msgid "Remove" msgstr "Eliminá" #: readactivity.py:361 msgid "Please wait" msgstr "Un momentu por fabor..." #: readactivity.py:362 msgid "Starting connection..." msgstr "Start konekshon..." #: readactivity.py:374 msgid "No book" msgstr "No tin buki" #: readactivity.py:374 msgid "Choose something to read" msgstr "Skohe algu pa lesa" #: readactivity.py:379 msgid "Back" msgstr "Bèk" #: readactivity.py:383 msgid "Previous page" msgstr "Página anterior" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Markabuki anterior" #: readactivity.py:397 msgid "Forward" msgstr "Padilanti" #: readactivity.py:401 msgid "Next page" msgstr "Siguiente página" #: readactivity.py:403 msgid "Next bookmark" msgstr "Siguiente markabuki" #: readactivity.py:454 msgid "Index" msgstr "Indise" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Kita markabuki" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Lo pèrdè tur informashon relashoná ku e markabuki akí" #: readactivity.py:900 msgid "Receiving book..." msgstr "Risibiendo buki..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Página %d" #: readdialog.py:52 msgid "Cancel" msgstr "Kanselá" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Título:" #: readdialog.py:142 msgid "Details:" msgstr "Detayenan:" #: readtoolbar.py:61 msgid "Previous" msgstr "Anterior" #: readtoolbar.py:68 msgid "Next" msgstr "Siguiente" #: readtoolbar.py:79 msgid "Highlight" msgstr "Resaltá" #: readtoolbar.py:160 msgid "Find first" msgstr "Buska promé" #: readtoolbar.py:166 msgid "Find previous" msgstr "Buska anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Buska siguiente" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Tabla di kontenido" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Hala afó" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Hala aden" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Ahustá na hanchura" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Ahustá pa fit" #: readtoolbar.py:221 msgid "Actual size" msgstr "Tamaño real" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Pantaya kompletu" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Bira na man robes" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Bira na man drechi" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Mustra Teblachi" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Skonde Teblachi" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Aktivá / Pousa" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stòp" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Skohe dokumento" # TRANS: Tradusi e saki komo página i di m (pe: Pagina 4 di 334) #, python-format #~ msgid "Page %i of %i" #~ msgstr "Pagina %iof%i" #~ msgid "Edit" #~ msgstr "Edita" #~ msgid "View" #~ msgstr "Mira" Read-115~dfsg/po/aym.po0000644000000000000000000001143012366506317013551 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-10-10 00:31-0400\n" "PO-Revision-Date: 2012-09-21 15:07+0200\n" "Last-Translator: EdgarQuispeChambi \n" "Language-Team: LANGUAGE \n" "Language: aym\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" # "Leer" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ullaña" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" # "Registro agregado por %(user)s %(time)s" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Chimtaña %(user)s %(time)s uchawjataynta" # "Añadir notas para el marcador: " #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Chimtañanaka yapkataña: " # "Marcador de %s" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's chimtaña" # "Marcador para página %d" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Chimtaña laphiru %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL sutini ullañataki" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" # "Resaltar" #: readactivity.py:232 msgid "Highlight" msgstr "Qhanstayaña" # "Volver" #: readactivity.py:351 msgid "Back" msgstr "Qutaña" # "Página anterior" #: readactivity.py:355 msgid "Previous page" msgstr "Qutir laphi" # "Registro anterior" #: readactivity.py:357 msgid "Previous bookmark" msgstr "Qutir chimtata" # "Avanzar" #: readactivity.py:369 msgid "Forward" msgstr "Nayrt'aña" # "Página siguiente" #: readactivity.py:373 msgid "Next page" msgstr "Jutiri laphi" # "Siguiente registro" #: readactivity.py:375 msgid "Next bookmark" msgstr "Jutiri chimtaña" #: readactivity.py:412 msgid "Index" msgstr "Wakichata sutinaka siqi" #: readactivity.py:533 msgid "Delete bookmark" msgstr "Chhijlliri chhaqtayaña" #: readactivity.py:534 msgid "All the information related with this bookmark will be lost" msgstr "Chhijllata taqi kuna tuqita yatiyäwinaka chhaqtaniwa" #: readactivity.py:885 readactivity.py:1084 #, python-format msgid "Page %d" msgstr "" # "Cancelar" #: readdialog.py:52 msgid "Cancel" msgstr "Saytayaña" # "Ok" #: readdialog.py:58 msgid "Ok" msgstr "Walikiwa" # "Título:" #: readdialog.py:116 msgid "Title:" msgstr "Sutipa:" # "Detalles:" #: readdialog.py:142 msgid "Details:" msgstr "Kunjamanaka:" # "Anterior" #: readtoolbar.py:61 msgid "Previous" msgstr "Nayrankiri" # "Siguiente" #: readtoolbar.py:68 msgid "Next" msgstr "Jutiri" # "Buscar primero" #: readtoolbar.py:151 msgid "Find first" msgstr "Mayiri taqaña" # "Buscar anterior" #: readtoolbar.py:157 msgid "Find previous" msgstr "Nayrankiri taqaña" # "Buscar siguiente" #: readtoolbar.py:159 msgid "Find next" msgstr "Jutiri taqaña" #: readtoolbar.py:180 msgid "Table of contents" msgstr "Wakichata sutinaka siqi wakichata" # "Alejarse" #: readtoolbar.py:189 msgid "Zoom out" msgstr "Jisk'aptayaña" # "Acercarse" #: readtoolbar.py:195 msgid "Zoom in" msgstr "Jach'aptayaña" # "Ajustar al ancho" #: readtoolbar.py:201 msgid "Zoom to width" msgstr "Jach'aptayaña lankhuru" # "Ajustar a la pantalla" #: readtoolbar.py:207 msgid "Zoom to fit" msgstr "Suma apxataña qatukañjama" # "Tamaño real" #: readtoolbar.py:213 msgid "Actual size" msgstr "Juq'chajama" # "Pantalla completa" #: readtoolbar.py:224 msgid "Fullscreen" msgstr "Maypacha uñtawi" #: readtoolbar.py:292 msgid "Show Tray" msgstr "" #: readtoolbar.py:294 msgid "Hide Tray" msgstr "" # "Reproducir / Detener" #: speechtoolbar.py:56 msgid "Play / Pause" msgstr "Qaltaña / Suyt'ayaña" #: speechtoolbar.py:64 msgid "Stop" msgstr "Sayt'ayaña" # "Página #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Laphi %(current)i qipatsti %(total_pages)i" # "%" #~ msgid "%" #~ msgstr "%" # "tono ajustado" #~ msgid "pitch adjusted" #~ msgstr "istaña jitinakayaña" # "velocidad ajustada" #~ msgid "rate adjusted" #~ msgstr "katakikuna jitinakayaña" # "Escoger documento" #~ msgid "Choose document" #~ msgstr "Wakichaña qatukaña" Read-115~dfsg/po/ht.po0000644000000000000000000000766112366506317013411 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-02-03 05:36+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n !=1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Li" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Retounen" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Avanse" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Previzyon" #: readtoolbar.py:68 msgid "Next" msgstr "Pwochen" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Jwenn an premye" #: readtoolbar.py:166 msgid "Find previous" msgstr "Jwenn presedan" #: readtoolbar.py:168 msgid "Find next" msgstr "Jwenn pwochen" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "rale soti" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Rale vini" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Rale louvri" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Rale pou ajiste" #: readtoolbar.py:222 msgid "Actual size" msgstr "Vrè dimansyon" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Tout ekran" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Edite" #~ msgid "View" #~ msgstr "Vizyalize" Read-115~dfsg/po/fi.po0000644000000000000000000000725112366506317013367 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/ne.po0000644000000000000000000001512512366506317013372 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-11-20 07:20+0200\n" "Last-Translator: Ganesh \n" "Language-Team: LANGUAGE \n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "पढ" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "तपाईँ पढ्न चाहनु हुन्छ भने यो क्रियाकलाप प्रयोग गर्न सक्नु हुनेछ। " "कम्प्युटरलाई वरिपरि घुमाएर साँच्चैको पुस्तक समाएर पढेको अनुभव गर्नु हुनेछ।" #: bookmarkview.py:112 #, python-format #, python-format, msgid "Bookmark added by %(user)s %(time)s" msgstr "%(user)s %(time)s द्वारा थपिएको पुस्तक-चिनो" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "पुस्तकचिनोको लागि टिपोटहरु थप: " #: bookmarkview.py:202 #, python-format #, python-format, msgid "%s's bookmark" msgstr "%s's पुस्तकचिनो" #: bookmarkview.py:203 #, python-format #, python-format, msgid "Bookmark for page %d" msgstr "%d पानाको लागि पुस्तकचिनो" #: evinceadapter.py:88 msgid "URL from Read" msgstr "पढ देखिको URL" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "पुस्तकचिनोमा जाऊ" #: linkbutton.py:129 msgid "Remove" msgstr "हटाऊ" #: readactivity.py:361 msgid "Please wait" msgstr "कृपया पर्खनुहोस्" #: readactivity.py:362 msgid "Starting connection..." msgstr "जडान सुरु हुँदै..." #: readactivity.py:374 msgid "No book" msgstr "पुस्तक छैन" #: readactivity.py:374 msgid "Choose something to read" msgstr "पढ्नको लागि केहि चयन गर्नुहोस्" #: readactivity.py:379 msgid "Back" msgstr "पछाडि" #: readactivity.py:383 msgid "Previous page" msgstr "अघिल्लो पाना" #: readactivity.py:385 msgid "Previous bookmark" msgstr "अघिल्लो पुस्तकचिनो" #: readactivity.py:397 msgid "Forward" msgstr "अगाडि" #: readactivity.py:401 msgid "Next page" msgstr "अर्को पाना" #: readactivity.py:403 msgid "Next bookmark" msgstr "अर्को पुस्तकचिनो" #: readactivity.py:454 msgid "Index" msgstr "अनुक्रमणिका" #: readactivity.py:575 msgid "Delete bookmark" msgstr "मेटाउ पुस्तकचिनो" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "यो पुस्तकचिनोसँग सम्बन्धित सबै सुचना हराउने छ" #: readactivity.py:900 msgid "Receiving book..." msgstr "पुस्तक प्राप्त गर्दै..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "पृष्ठ %d" #: readdialog.py:52 msgid "Cancel" msgstr "रद्द गर्नुहोस" #: readdialog.py:58 msgid "Ok" msgstr "ठीक" #: readdialog.py:116 msgid "Title:" msgstr "शीर्षक:" #: readdialog.py:142 msgid "Details:" msgstr "विवरण:" #: readtoolbar.py:61 msgid "Previous" msgstr "पहिलाको" #: readtoolbar.py:68 msgid "Next" msgstr "पछिको" #: readtoolbar.py:79 msgid "Highlight" msgstr "हाइलाईट" #: readtoolbar.py:160 msgid "Find first" msgstr "पहिलो भेट्टाउ" #: readtoolbar.py:166 msgid "Find previous" msgstr "पहिलाको भेट्टाउ" #: readtoolbar.py:168 msgid "Find next" msgstr "पछिको भेट्टाउ" #: readtoolbar.py:188 msgid "Table of contents" msgstr "विषय सूची" #: readtoolbar.py:197 msgid "Zoom out" msgstr "सानो बनाऊ" #: readtoolbar.py:203 msgid "Zoom in" msgstr "ठूलो बनाऊ" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "पूरा चौडाई" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "सबै हेर्ने" #: readtoolbar.py:221 msgid "Actual size" msgstr "वास्तविक आकार" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "पूरा स्क्रिन" #: readtoolbar.py:253 msgid "Rotate left" msgstr "वायाँ घुमाउने" #: readtoolbar.py:259 msgid "Rotate right" msgstr "दायाँ घुमाउने" #: readtoolbar.py:325 msgid "Show Tray" msgstr "ट्रे देखाऊ" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "ट्रे लुकाऊ" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "प्ले / पज" #: speechtoolbar.py:65 msgid "Stop" msgstr "रोक" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "%(total_pages)i को पृष्ठ %(current)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "पिच समायोजन गरिसक्यो" #~ msgid "rate adjusted" #~ msgstr "दर समायोजन गरिसक्यो" #~ msgid "Choose document" #~ msgstr "कागतपत्र छान" #, python-format, #~ msgid "Page %i of %i" #~ msgstr "%iको %i पाना" #~ msgid "Edit" #~ msgstr "सम्पादन" #~ msgid "View" #~ msgstr "दृश्य" #~ msgid "Read Activity" #~ msgstr "पढाई क्रियाकलाप " Read-115~dfsg/po/th.po0000644000000000000000000001221712366506317013402 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-11-23 03:35+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "อ่าน" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "เก็บบุ๊กมาร์กไว้ โดย %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "เพิ่มข้อเสนอแนะสำหรับ บุ๊กมาร์ก " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's บุ๊กมาร์ก" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "บุ๊กมาร์ก สำหรับหน้า %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "กลับ" #: readactivity.py:342 msgid "Previous page" msgstr "หน้าก่อน" #: readactivity.py:344 msgid "Previous bookmark" msgstr "บุ๊กมาร์กก่อนหน้า" #: readactivity.py:356 msgid "Forward" msgstr "ไปข้างหน้า" #: readactivity.py:360 msgid "Next page" msgstr "หน้าถัดไป" #: readactivity.py:362 msgid "Next bookmark" msgstr "บุ๊กมาร์กถัดไป" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "ยกเลิก" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "ชื่อเรื่อง:" #: readdialog.py:142 msgid "Details:" msgstr "รายละเอียด:" #: readtoolbar.py:61 msgid "Previous" msgstr "ก่อนหน้า" #: readtoolbar.py:68 msgid "Next" msgstr "ถัดไป" #: readtoolbar.py:79 msgid "Highlight" msgstr "เน้นข้อความ" #: readtoolbar.py:160 msgid "Find first" msgstr "ค้นหาคำแรก" #: readtoolbar.py:166 msgid "Find previous" msgstr "ค้นหาก่อนหน้า" #: readtoolbar.py:168 msgid "Find next" msgstr "ค้นหาต่อไป" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "ขยายออก" #: readtoolbar.py:204 msgid "Zoom in" msgstr "ขยายเข้า" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "ขยายเต็มความกว้าง" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "ขยายพอดี" #: readtoolbar.py:222 msgid "Actual size" msgstr "ขนาดเท่าจริง" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "เต็มจอ" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "เล่น / หยุดชั่วคราว" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "หน้า %(current)i of %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "ปรับระดับเสียง" #~ msgid "rate adjusted" #~ msgstr "ปรับความนิยม" #~ msgid "Choose document" #~ msgstr "เลือกเอกสาร" #~ msgid "Edit" #~ msgstr "แก้ไข" #~ msgid "View" #~ msgstr "มุมมอง" #~ msgid "Read Activity" #~ msgstr "กิจกรรมอ่าน" Read-115~dfsg/po/ca.po0000644000000000000000000001024012366506317013344 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-08-24 11:44-0400\n" "Last-Translator: Camille Robert \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Llegir" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Enrere" #: readactivity.py:342 msgid "Previous page" msgstr "Pàgina prèvia" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Endavant" #: readactivity.py:360 msgid "Next page" msgstr "Pàgina següent" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Cancel·lar" #: readdialog.py:58 msgid "Ok" msgstr "D'acord" #: readdialog.py:116 msgid "Title:" msgstr "Títol:" #: readdialog.py:142 msgid "Details:" msgstr "Detalls:" #: readtoolbar.py:61 msgid "Previous" msgstr "Previ" #: readtoolbar.py:68 msgid "Next" msgstr "Següent" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Troba el primer" #: readtoolbar.py:166 msgid "Find previous" msgstr "Troba l'anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Troba el següent" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Reduir" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Ampliar" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Ajustar amplada" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Ajustar del tot" #: readtoolbar.py:222 msgid "Actual size" msgstr "Dimensió actual" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Pantalla sencera" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Triar document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Pàgina %i sobre %i" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "View" #~ msgstr "Veure" Read-115~dfsg/po/id.po0000644000000000000000000001156612366506317013371 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-08-06 00:31-0400\n" "PO-Revision-Date: 2013-08-16 15:41+0200\n" "Last-Translator: andika \n" "Language-Team: LANGUAGE \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Baca" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Pakai aktivitas ini ketika Anda siap membaca! Ingatlah untuk memutar " "komputer Anda dan rasakan seperti Anda benar-benar memegang buku!" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Penanda taut ditambahkan oleh %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Tambahkan catatan bagi penanda taut: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "Penanda taut %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Penanda taut bagi halaman %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL dari Baca" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "Ke Penanda Taut" #: linkbutton.py:99 msgid "Remove" msgstr "Hapus" #: readactivity.py:361 msgid "Please wait" msgstr "Harap tunggu" #: readactivity.py:362 msgid "Starting connection..." msgstr "Memulai koneksi..." #: readactivity.py:374 msgid "No book" msgstr "Tak ada buku" #: readactivity.py:374 msgid "Choose something to read" msgstr "Pilih sesuatu untuk dibaca" #: readactivity.py:379 msgid "Back" msgstr "Mundur" #: readactivity.py:383 msgid "Previous page" msgstr "Halaman sebelumnya" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Penanda taut sebelumnya" #: readactivity.py:397 msgid "Forward" msgstr "Maju" #: readactivity.py:401 msgid "Next page" msgstr "Halaman selanjutnya" #: readactivity.py:403 msgid "Next bookmark" msgstr "Penanda taut selanjutnya" #: readactivity.py:454 msgid "Index" msgstr "Indeks" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Hapus penanda taut" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Semua informasi terkait dengan penanda taut ini akan hilang" #: readactivity.py:900 msgid "Receiving book..." msgstr "Menerima buku..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Halaman %d" #: readdialog.py:52 msgid "Cancel" msgstr "Batal" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Judul:" #: readdialog.py:142 msgid "Details:" msgstr "Rincian:" #: readtoolbar.py:61 msgid "Previous" msgstr "Sebelumnya" #: readtoolbar.py:68 msgid "Next" msgstr "Selanjutnya" #: readtoolbar.py:79 msgid "Highlight" msgstr "Sorot" #: readtoolbar.py:160 msgid "Find first" msgstr "Cari yang pertama" #: readtoolbar.py:166 msgid "Find previous" msgstr "Cari yang sebelumnya" #: readtoolbar.py:168 msgid "Find next" msgstr "Cari yang selanjutnya" #: readtoolbar.py:189 msgid "Table of contents" msgstr "Daftar isi" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Perkecil" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Perbesar" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Paskan sesuai lebar" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Paskan halaman" #: readtoolbar.py:222 msgid "Actual size" msgstr "Ukuran sebenarnya" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Layar penuh" #: readtoolbar.py:301 msgid "Show Tray" msgstr "Tampilkan Baki" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "Sembunyikan Baki" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Putar / Jeda" #: speechtoolbar.py:65 msgid "Stop" msgstr "Berhenti" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Halaman %(current)i dari %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Pilih dokumen" Read-115~dfsg/po/ff.po0000644000000000000000000000724612366506317013370 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/quz.po0000644000000000000000000001235512366506317013611 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2013-08-06 23:47+0200\n" "Last-Translator: Irma \n" "Language-Team: Voluntarios Quechua Sugar Camp\n" "Language: quz\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" "X-Generator: Pootle 2.0.5\n" # "Leer" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ñawichay" # [ES] "" # [ES] "¡Usa esta actividad cuando estés listo para leer! Recuerda girar tu " # [ES] "computadora para sentirte como si estuvieras realmente sostiene un libro" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Kaywanqa imachatapas ñawichay! Ichaqa p'antatahina ñawichanapaqqa " "computadoraykita kinrakiy" # "Registro agregado por %(user)s %(time)s" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Kaymi qillqachiytaqa yaparin %(user)s %(time)s" # "Añadir notas para el marcador: " #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "T'upsinapaq huch'uy willakunata yapay: " # "Marcador de %s" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s kaypa tup'sin" # "Marcador para página %d" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Raphipa %d t'upsin" #: evinceadapter.py:88 msgid "URL from Read" msgstr "Ñawichanamanta URL" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "T'upsichiqkunaman riy" #: linkbutton.py:99 msgid "Remove" msgstr "Chinkachiy" #: readactivity.py:333 msgid "No book" msgstr "Mana p'anqayuq" #: readactivity.py:333 msgid "Choose something to read" msgstr "Ñawichanapaq imachatapas rikurichiy" # "Volver" #: readactivity.py:338 msgid "Back" msgstr "Kutichiy" # "Página anterior" #: readactivity.py:342 msgid "Previous page" msgstr "Ñawpa raphi" # "Registro anterior" # [ES] "Marcador anterior" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Ñawpa qillqachisqa" # "Avanzar" #: readactivity.py:356 msgid "Forward" msgstr "Ñawpay" # "Página siguiente" #: readactivity.py:360 msgid "Next page" msgstr "Hamuq raphi" # "Siguiente registro" #: readactivity.py:362 msgid "Next bookmark" msgstr "Hamuq t'upsichiq" # [ES] "Índice" #: readactivity.py:413 msgid "Index" msgstr "Lliw rikuchiq" #: readactivity.py:534 msgid "Delete bookmark" msgstr "T'upsichiqta pichay" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "T'upsichiqwan llapan willanakuna masichakuqqa chinkarunqan," #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "Raphi %d" # "Cancelar" #: readdialog.py:52 msgid "Cancel" msgstr "Chinkachiy" # "Ok" #: readdialog.py:58 msgid "Ok" msgstr "Chaskiy" # "Título:" #: readdialog.py:116 msgid "Title:" msgstr "Sutinchaynin:" # "Detalles:" #: readdialog.py:142 msgid "Details:" msgstr "Ima nisqan:" # "Anterior" #: readtoolbar.py:61 msgid "Previous" msgstr "Ñawpaq" # "Siguiente" #: readtoolbar.py:68 msgid "Next" msgstr "Hamuq" # "Resaltar" #: readtoolbar.py:79 msgid "Highlight" msgstr "Yanachaq" # "Buscar primero" #: readtoolbar.py:160 msgid "Find first" msgstr "Qallariqta machkhay" # "Buscar anterior" #: readtoolbar.py:166 msgid "Find previous" msgstr "Ñawpaqta machkay" # "Buscar siguiente" #: readtoolbar.py:168 msgid "Find next" msgstr "Hamuqta machkay" # [ES] "Tabla de contenidos" #: readtoolbar.py:189 msgid "Table of contents" msgstr "Lliw qhawarichiq" # "Alejarse" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Huch'uyachiy" # "Acercarse" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Hatunyachiy" # "Ajustar al ancho" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Kinrayninman mat'iy" # "Ajustar a la pantalla" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Pantallaman mat'iy" # "Tamaño real" #: readtoolbar.py:222 msgid "Actual size" msgstr "Kikin sayan" # "Pantalla completa" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Hunt'asqa pantalla" # [ES] "Mostrar Bandeja" #: readtoolbar.py:301 msgid "Show Tray" msgstr "Chaskinata Rikuchiy" # [ES] "Ocultar Bandeja" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "Chaskinata pakay" # "Reproducir / Detener" # [ES] "Reproducir / Detener" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Purichiy / Utichiy" #: speechtoolbar.py:65 msgid "Stop" msgstr "Sayachiy" # "Página %(current)i de %(total_pages)i" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Llapan %(total_pages)i nisqamanta %(current)i kay raphi" # "%" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/sd.po0000644000000000000000000000730212366506317013374 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-05-01 09:26-0400\n" "Last-Translator: Naveed \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "read" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "Edit" #~ msgstr "edit" Read-115~dfsg/po/pa.po0000644000000000000000000000724612366506317013375 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/is.po0000644000000000000000000000762012366506317013404 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-03-27 14:25+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lesa" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Aftur" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Áfram" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Fyrri" #: readtoolbar.py:68 msgid "Next" msgstr "Næsta" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "Finna fyrri" #: readtoolbar.py:168 msgid "Find next" msgstr "Finna næstu" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Stækka" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Minnka" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Stækka í breidd" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Stækka til að passa" #: readtoolbar.py:222 msgid "Actual size" msgstr "Raunstærð" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Breyta" #~ msgid "View" #~ msgstr "Sýna" Read-115~dfsg/po/pt.po0000644000000000000000000001304312366506317013410 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Portuguese translations for PACKAGE package. # Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Tomeu Vizoso , 2007. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-30 22:59+0200\n" "Last-Translator: Eduardo H. \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ler" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Utiliza esta atividade quande te apetecer ler! Lembra-te de rodares o " "computador para sentires como se estivesses realmente a segurar um livro!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Marcador adicionado por %(user)s há %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Adicionar notas ao marcador: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "Marcador de %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Marcador para a página %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL do Ler" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Ir para o Marcador" #: linkbutton.py:129 msgid "Remove" msgstr "Remover" #: readactivity.py:361 msgid "Please wait" msgstr "Por favor espera" #: readactivity.py:362 msgid "Starting connection..." msgstr "Iniciando ligação..." #: readactivity.py:374 msgid "No book" msgstr "Sem livro" #: readactivity.py:374 msgid "Choose something to read" msgstr "Escolhe algo para ler" #: readactivity.py:379 msgid "Back" msgstr "Voltar" #: readactivity.py:383 msgid "Previous page" msgstr "Página anterior" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Marcador anterior" #: readactivity.py:397 msgid "Forward" msgstr "Avançar" #: readactivity.py:401 msgid "Next page" msgstr "Página seguinte" #: readactivity.py:403 msgid "Next bookmark" msgstr "Marcador seguinte" #: readactivity.py:454 msgid "Index" msgstr "Índice" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Eliminar marcador" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Toda a informação relacionada com este marcador será perdida" #: readactivity.py:900 msgid "Receiving book..." msgstr "A receber livro..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Página %d" #: readdialog.py:52 msgid "Cancel" msgstr "Cancelar" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Título:" #: readdialog.py:142 msgid "Details:" msgstr "Detalhes:" #: readtoolbar.py:61 msgid "Previous" msgstr "Anterior" #: readtoolbar.py:68 msgid "Next" msgstr "Seguinte" #: readtoolbar.py:79 msgid "Highlight" msgstr "Destacar" #: readtoolbar.py:160 msgid "Find first" msgstr "Encontrar primeiro" #: readtoolbar.py:166 msgid "Find previous" msgstr "Encontrar anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Encontrar seguinte" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Tabela de conteúdos" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Afastar zoom" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Aproximar zoom" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Aproximar à largura da página" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Aproximar até caber" #: readtoolbar.py:221 msgid "Actual size" msgstr "Tamanho real" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Ecrã Inteiro" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rodar para a esquerda" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rodar para a direita" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Mostrar bandeja" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Esconder bandeja" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Tocar / Pausar" #: speechtoolbar.py:65 msgid "Stop" msgstr "Parar" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Página %(current)i de %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "altura ajustada" #~ msgid "rate adjusted" #~ msgstr "velocidade ajustada" #~ msgid "Choose document" #~ msgstr "Escolhe o documento" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Página %i de %i" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Read Activity" #~ msgstr "Actividade Ler" #~ msgid "Open a document to read" #~ msgstr "Abrir um documento para o ler" #~ msgid "All supported formats" #~ msgstr "Todos os formatos suportados" #~ msgid "All files" #~ msgstr "Todos os ficheiros" #~ msgid "Open" #~ msgstr "Abrir" Read-115~dfsg/po/dz.po0000644000000000000000000001004712366506317013403 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-08-11 23:39-0400\n" "Last-Translator: Tenzin Dendup \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "ལྷག" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "རྒྱབ།" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "གདོང་བསྐྱོད།" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "ཧེ་མམ།" #: readtoolbar.py:68 msgid "Next" msgstr "ཤུལ་མམ།" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "ཧེ་མམ་འདི་འཚོལ།" #: readtoolbar.py:168 msgid "Find next" msgstr "ཤུལ་མམ་འདི་འཚོལ།" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "ཚད་ངོ་མ།" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "གསལ་གཞི་གངམ།" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "ཞུན་དག" #~ msgid "View" #~ msgstr "མཐོང་སྣང་།" Read-115~dfsg/po/pt_BR.po0000644000000000000000000001076612366506317014004 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # translation of pt_BR.po to Brazilian Portuguese # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Diego Búrigo Zacarão , 2007. msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-02-12 04:56+0200\n" "Last-Translator: Chris \n" "Language-Team: Brazilian Portuguese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ler" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Favorito adicionado por %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Adicionar notas para favoritos: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's favorito" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Favorito para página %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Voltar" #: readactivity.py:342 msgid "Previous page" msgstr "página anterior" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Favorito anterior" #: readactivity.py:356 msgid "Forward" msgstr "Ir adiante" #: readactivity.py:360 msgid "Next page" msgstr "Próxima Página" #: readactivity.py:362 msgid "Next bookmark" msgstr "Próximo Favorito" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Cancelar" #: readdialog.py:58 msgid "Ok" msgstr "Confirma" #: readdialog.py:116 msgid "Title:" msgstr "Título:" #: readdialog.py:142 msgid "Details:" msgstr "Detalhes:" #: readtoolbar.py:61 msgid "Previous" msgstr "Anterior" #: readtoolbar.py:68 msgid "Next" msgstr "Próxima" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Buscar Primeiro" #: readtoolbar.py:166 msgid "Find previous" msgstr "Buscar Anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Buscar Próximo" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Diminuir zoom" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Aumentar zoom" # baseado na tradução que tenho do Evince #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Ajustar para largura" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Melhor ajuste" #: readtoolbar.py:222 msgid "Actual size" msgstr "Tamanho real" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Tela cheia" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" # só o argumento % qual seria o contexto desse caracter? #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Escolha o documento" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Página %i de %i" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Read Activity" #~ msgstr "Ler a Atividade" Read-115~dfsg/po/bn_IN.po0000644000000000000000000001070312366506317013752 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2008-01-22 09:17+0000\n" "Last-Translator: Sankarshan Mukhopadhyay \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "পড়ুন" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:129 msgid "Remove" msgstr "" #: readactivity.py:361 msgid "Please wait" msgstr "" #: readactivity.py:362 msgid "Starting connection..." msgstr "" #: readactivity.py:374 msgid "No book" msgstr "" #: readactivity.py:374 msgid "Choose something to read" msgstr "" #: readactivity.py:379 msgid "Back" msgstr "পিছনে" #: readactivity.py:383 msgid "Previous page" msgstr "" #: readactivity.py:385 msgid "Previous bookmark" msgstr "" #: readactivity.py:397 msgid "Forward" msgstr "এগিয়ে চলুন" #: readactivity.py:401 msgid "Next page" msgstr "" #: readactivity.py:403 msgid "Next bookmark" msgstr "" #: readactivity.py:454 msgid "Index" msgstr "" #: readactivity.py:575 msgid "Delete bookmark" msgstr "" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:900 msgid "Receiving book..." msgstr "" #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "পূর্বের" #: readtoolbar.py:68 msgid "Next" msgstr "পরের" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "প্রথমটি খুঁজে বের করুন" #: readtoolbar.py:166 #, fuzzy msgid "Find previous" msgstr "পূর্বেরটি খুঁজে বের করুন" #: readtoolbar.py:168 #, fuzzy msgid "Find next" msgstr "পরেরটি খুঁজে বের করুন" #: readtoolbar.py:188 msgid "Table of contents" msgstr "" #: readtoolbar.py:197 msgid "Zoom out" msgstr "ছোট করুন" #: readtoolbar.py:203 msgid "Zoom in" msgstr "বড় করুন" #: readtoolbar.py:209 #, fuzzy msgid "Zoom to width" msgstr "প্রস্থের মাপে দেখুন" #: readtoolbar.py:215 #, fuzzy msgid "Zoom to fit" msgstr "প্রস্থের মাপে দেখুন" #: readtoolbar.py:221 msgid "Actual size" msgstr "প্রকৃত মাপ" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "" #: readtoolbar.py:253 msgid "Rotate left" msgstr "" #: readtoolbar.py:259 msgid "Rotate right" msgstr "" #: readtoolbar.py:325 msgid "Show Tray" msgstr "" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "সম্পাদন" #~ msgid "View" #~ msgstr "প্রদর্শন" Read-115~dfsg/po/mvo.po0000644000000000000000000000725112366506317013572 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/ar.po0000644000000000000000000001311612366506317013370 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # translation of read-activity.po to Arabic # Khaled Hosny , 2007, 2011. # Ahmed Mansour , 2008. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. msgid "" msgstr "" "Project-Id-Version: read-activity\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2014-04-29 01:37+0200\n" "Last-Translator: Chris \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "القراءه" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "إستخدم هذا النشاط حين ترغب بالقراءه. فلا شيئ فى العالم تفعله لتكوين فِكرك " "وشخصيتك يضاهى قراءه كتاب جيد فى الصِغَر." #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "علامه مُضافه من قِبَل %(user)s فى %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "أضف مُلاحظات على العلامه : " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "علامه خاصه بـ %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "علامه للصفحه %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "إذهب إلى العلامه" #: linkbutton.py:129 msgid "Remove" msgstr "إحذف" #: readactivity.py:361 msgid "Please wait" msgstr "يُرجى اﻹنتظار" #: readactivity.py:362 msgid "Starting connection..." msgstr "جارٍ بدأ اﻹتصال..." #: readactivity.py:374 msgid "No book" msgstr "بلا كتاب" #: readactivity.py:374 msgid "Choose something to read" msgstr "إختر شيئاً ما لقرائته" #: readactivity.py:379 msgid "Back" msgstr "للخلف" #: readactivity.py:383 msgid "Previous page" msgstr "الصفحة السابقة" #: readactivity.py:385 msgid "Previous bookmark" msgstr "العلامة السابقة" #: readactivity.py:397 msgid "Forward" msgstr "للأمام" #: readactivity.py:401 msgid "Next page" msgstr "الصفحة التالية" #: readactivity.py:403 msgid "Next bookmark" msgstr "العلامه التاليه" #: readactivity.py:454 msgid "Index" msgstr "الفهرس" #: readactivity.py:575 msgid "Delete bookmark" msgstr "إحذف العلامه" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "سوف تُمحى كافه المعلومات المتعلقه بهذه العلامه" #: readactivity.py:900 msgid "Receiving book..." msgstr "جارٍ إستلام الكتاب..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "الصفحه %d" #: readdialog.py:52 msgid "Cancel" msgstr "إلغ اﻷمر" #: readdialog.py:58 msgid "Ok" msgstr "حسناً" #: readdialog.py:116 msgid "Title:" msgstr "العنوان :" #: readdialog.py:142 msgid "Details:" msgstr "التفاصيل :" #: readtoolbar.py:61 msgid "Previous" msgstr "السابق" #: readtoolbar.py:68 msgid "Next" msgstr "التالي" #: readtoolbar.py:79 msgid "Highlight" msgstr "إبرز" #: readtoolbar.py:160 msgid "Find first" msgstr "جد اﻷول" #: readtoolbar.py:166 msgid "Find previous" msgstr "جد السابق" #: readtoolbar.py:168 msgid "Find next" msgstr "جد التالى" #: readtoolbar.py:188 msgid "Table of contents" msgstr "قائمه المحتويات" #: readtoolbar.py:197 msgid "Zoom out" msgstr "صَغِر" #: readtoolbar.py:203 msgid "Zoom in" msgstr "كَبِر" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "لائِم العرض" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "لائِم الصفحة" #: readtoolbar.py:221 msgid "Actual size" msgstr "المقاس الفعلى" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "الشاشه الكامله" #: readtoolbar.py:253 msgid "Rotate left" msgstr "دَوِر يساراً" #: readtoolbar.py:259 msgid "Rotate right" msgstr "دَوِر يميناً" #: readtoolbar.py:325 msgid "Show Tray" msgstr "إظهر الصينيه" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "إخف الصينيه" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "شغّل / ألبِث" #: speechtoolbar.py:65 msgid "Stop" msgstr "إوقف" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "صفحة %(current)i من %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "ضُبِطت الشَّدة" #~ msgid "rate adjusted" #~ msgstr "ضُبِطت السرعة" #~ msgid "Choose document" #~ msgstr "اختر الوثيقة" #, python-format #~ msgid "Page %i of %i" #~ msgstr "صفحة %i من %i" #~ msgid "Edit" #~ msgstr "تحرير" #~ msgid "View" #~ msgstr "عرض" #~ msgid "Read Activity" #~ msgstr "نشاط القراءة" Read-115~dfsg/po/tzo.po0000644000000000000000000000644112366506317013605 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.7.0\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/fa_AF.po0000644000000000000000000001060212366506317013717 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-07-30 03:29-0400\n" "Last-Translator: Sohaib Obaidi \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "خواندن" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format #, fuzzy msgid "Bookmark added by %(user)s %(time)s" msgstr "نشان لای کتاب توسط %(user)s بر %(time)s اضافه گردید" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "عقب" #: readactivity.py:342 msgid "Previous page" msgstr "صفحه قبلی" #: readactivity.py:344 msgid "Previous bookmark" msgstr "نشان لای کتاب قبلی" #: readactivity.py:356 msgid "Forward" msgstr "جلو" #: readactivity.py:360 msgid "Next page" msgstr "صفحه بعدی" #: readactivity.py:362 msgid "Next bookmark" msgstr "نشان لای کتاب بعدی" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 #, fuzzy msgid "Previous" msgstr "قبلی" # # بعدی #: readtoolbar.py:68 #, fuzzy msgid "Next" msgstr "بعدی" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "اولی را بازیاب" #: readtoolbar.py:166 msgid "Find previous" msgstr "گذشته را بازیاب" #: readtoolbar.py:168 msgid "Find next" msgstr "بعدی را بازیاب" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "دوربین" #: readtoolbar.py:204 msgid "Zoom in" msgstr "نزدیک بین" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "بزرگنمایی به عرض" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "بزرگنمایی به تناسب" #: readtoolbar.py:222 msgid "Actual size" msgstr "اندازه واقعی" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "صفحه کامل" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "سند را انتخاب کن" #~ msgid "Edit" #~ msgstr "تنظیم کردن" #~ msgid "View" #~ msgstr "دیدن" Read-115~dfsg/po/pbs.po0000644000000000000000000001036412366506317013554 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2012-08-21 23:02+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: pbs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ma'ajau kily'e" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Mamujuly' nda'es %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Mamejep mae'ts ne nda'es: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "Nda'es ne %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Ndae'es pu nixiì %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL se lu'ei va'ajau kily'e" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:129 msgid "Remove" msgstr "" #: readactivity.py:361 msgid "Please wait" msgstr "" #: readactivity.py:362 msgid "Starting connection..." msgstr "" #: readactivity.py:374 msgid "No book" msgstr "" #: readactivity.py:374 msgid "Choose something to read" msgstr "" #: readactivity.py:379 msgid "Back" msgstr "Keue'e" #: readactivity.py:383 msgid "Previous page" msgstr "Sevaa nixiì" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Sevaa nda'es sad-ia'" #: readactivity.py:397 msgid "Forward" msgstr "Mad-ua" #: readactivity.py:401 msgid "Next page" msgstr "Ne nixiì se likiu'uch'" #: readactivity.py:403 msgid "Next bookmark" msgstr "Nda'es likiu'uch'" #: readactivity.py:454 msgid "Index" msgstr "" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Mavun nda'es sad-ia'" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Mi'ia kad-er se ki'iu' ma namè nanji nda'es" #: readactivity.py:900 msgid "Receiving book..." msgstr "" #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Mapejeel'" #: readdialog.py:58 msgid "Ok" msgstr "Matajach'" #: readdialog.py:116 msgid "Title:" msgstr "lik'iajam ngunjiu':" #: readdialog.py:142 msgid "Details:" msgstr " Ker se limip:" #: readtoolbar.py:61 msgid "Previous" msgstr "Sevaa" #: readtoolbar.py:68 msgid "Next" msgstr "Likiu'uch'" #: readtoolbar.py:79 msgid "Highlight" msgstr "laleix lan'iujuch'" #: readtoolbar.py:160 msgid "Find first" msgstr "Mata'au kutap" #: readtoolbar.py:166 msgid "Find previous" msgstr "Mata'au sevaa" #: readtoolbar.py:168 msgid "Find next" msgstr "Mata'au napu se likiu'uch'" #: readtoolbar.py:188 msgid "Table of contents" msgstr "" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Malajaì" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Mananù" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Makjaik mandaì" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Makjaik kutau ak'ujuly'" #: readtoolbar.py:221 msgid "Actual size" msgstr "Lik'iajam mandap" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Lipià kutau nak'uju'ly" #: readtoolbar.py:253 msgid "Rotate left" msgstr "" #: readtoolbar.py:259 msgid "Rotate right" msgstr "" #: readtoolbar.py:325 msgid "Show Tray" msgstr "" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Maleiñ / mama'aì" #: speechtoolbar.py:65 msgid "Stop" msgstr "Ndama'ai" # please do not translate %(total_pages)i #, python-format #, python-format, #, python-format, , #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Ne nixií %(current)i de %(total_pages)i" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/nl.po0000644000000000000000000001256412366506317013405 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-10-07 14:44+0200\n" "Last-Translator: whe \n" "Language-Team: LANGUAGE \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lezen" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Gebruik deze activiteit als je klaar bent om te lezen! Denk eraan om je " "computer af en toe om te slaan om je de indruk te geven dat je echt een boek " "vasthoudt!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bladwijzer toegevoegd door %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Aantekeningen voor bladwijzer toevoegen: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's bladwijzer" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Bladwijzer voor pagina %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL van Lezen" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Ga naar Bladwijzer" #: linkbutton.py:129 msgid "Remove" msgstr "Verwijder" #: readactivity.py:361 msgid "Please wait" msgstr "Even wachten" #: readactivity.py:362 msgid "Starting connection..." msgstr "Opbouwen verbinding..." #: readactivity.py:374 msgid "No book" msgstr "Geen boek" #: readactivity.py:374 msgid "Choose something to read" msgstr "Kies iets om te lezen" #: readactivity.py:379 msgid "Back" msgstr "Terug" #: readactivity.py:383 msgid "Previous page" msgstr "Vorige pagina" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Vorige bladwijzer" #: readactivity.py:397 msgid "Forward" msgstr "Vooruit" #: readactivity.py:401 msgid "Next page" msgstr "Volgende pagina" #: readactivity.py:403 msgid "Next bookmark" msgstr "Volgende bladwijzer" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Verwijder bladwijzer" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Alle informatie bij deze bladwijzer raakt je kwijt" #: readactivity.py:900 msgid "Receiving book..." msgstr "Ontvangen boek..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Pagina %d" #: readdialog.py:52 msgid "Cancel" msgstr "Annuleren" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titel:" #: readdialog.py:142 msgid "Details:" msgstr "Details:" #: readtoolbar.py:61 msgid "Previous" msgstr "Vorige" #: readtoolbar.py:68 msgid "Next" msgstr "Volgende" #: readtoolbar.py:79 msgid "Highlight" msgstr "Markeren" #: readtoolbar.py:160 msgid "Find first" msgstr "Zoek eerste" #: readtoolbar.py:166 msgid "Find previous" msgstr "Zoek vorige" #: readtoolbar.py:168 msgid "Find next" msgstr "Zoek volgende" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Inhoudsopgave" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom uit" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom in" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom naar breedte" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoom naar hele pagina" #: readtoolbar.py:221 msgid "Actual size" msgstr "Werkelijk formaat" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Schermvullend" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Draai links" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Draai rechts" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Toon Plateau" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Verberg Plateau" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Afspelen / Pauze" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stop" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Pagina %(current)i van %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "toonhoogte aangepast" #~ msgid "rate adjusted" #~ msgstr "frequentie aangepast" #~ msgid "Choose document" #~ msgstr "Kies document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Pagina %i van %i" #~ msgid "Edit" #~ msgstr "Bewerken" #~ msgid "View" #~ msgstr "Beeld" #~ msgid "Read Activity" #~ msgstr "Lezen Activiteit" Read-115~dfsg/po/yo.po0000644000000000000000000000724612366506317013424 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/en_US.po0000644000000000000000000001175612366506317014007 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-06 18:03+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Read" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bookmark added by %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Add notes for bookmark: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's bookmark" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Bookmark for page %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL from Read" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Go to Bookmark" #: linkbutton.py:129 msgid "Remove" msgstr "Remove" #: readactivity.py:361 msgid "Please wait" msgstr "Please wait" #: readactivity.py:362 msgid "Starting connection..." msgstr "Starting connection..." #: readactivity.py:374 msgid "No book" msgstr "No book" #: readactivity.py:374 msgid "Choose something to read" msgstr "Choose something to read" #: readactivity.py:379 msgid "Back" msgstr "Back" #: readactivity.py:383 msgid "Previous page" msgstr "Previous page" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Previous bookmark" #: readactivity.py:397 msgid "Forward" msgstr "Forward" #: readactivity.py:401 msgid "Next page" msgstr "Next page" #: readactivity.py:403 msgid "Next bookmark" msgstr "Next bookmark" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Delete bookmark" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "All the information related with this bookmark will be lost" #: readactivity.py:900 msgid "Receiving book..." msgstr "Receiving book..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Page %d" #: readdialog.py:52 msgid "Cancel" msgstr "Cancel" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Title:" #: readdialog.py:142 msgid "Details:" msgstr "Details:" #: readtoolbar.py:61 msgid "Previous" msgstr "Previous" #: readtoolbar.py:68 msgid "Next" msgstr "Next" #: readtoolbar.py:79 msgid "Highlight" msgstr "Highlight" #: readtoolbar.py:160 msgid "Find first" msgstr "Find first" #: readtoolbar.py:166 msgid "Find previous" msgstr "Find previous" #: readtoolbar.py:168 msgid "Find next" msgstr "Find next" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Table of contents" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom out" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom in" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom to width" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoom to fit" #: readtoolbar.py:221 msgid "Actual size" msgstr "Actual size" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Fullscreen" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rotate left" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rotate right" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Show Tray" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Hide Tray" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Play / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stop" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Page %(current)i of %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "pitch adjusted" #~ msgid "rate adjusted" #~ msgstr "rate adjusted" #~ msgid "Choose document" #~ msgstr "Choose document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Page %i of %i" #~ msgid "Edit" #~ msgstr "Edit" #~ msgid "View" #~ msgstr "View" Read-115~dfsg/po/tr.po0000644000000000000000000001015712366506317013415 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-02-16 02:56+0200\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "okumak" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Yer imi için notlar ekle" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "%d sayfası için yer imi" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "geri" #: readactivity.py:342 msgid "Previous page" msgstr "Önceki sayfa" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Önceki yer imi" #: readactivity.py:356 msgid "Forward" msgstr "ileri" #: readactivity.py:360 msgid "Next page" msgstr "Sonraki sayfa" #: readactivity.py:362 msgid "Next bookmark" msgstr "Sonraki yer imi" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "Tamam" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Önceki" #: readtoolbar.py:68 msgid "Next" msgstr "İleri" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "İlkini bulunuz." #: readtoolbar.py:166 msgid "Find previous" msgstr "Öncekini bulunuz." #: readtoolbar.py:168 msgid "Find next" msgstr "Sonrakini bulunuz." #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Uzaklaştır" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Yakınlaştır" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Enine büyüt" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "boyuna büyütünüz." #: readtoolbar.py:222 msgid "Actual size" msgstr "Gerçek boyut" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Tam ekran" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "belge seç" #~ msgid "Edit" #~ msgstr "düzenlemek" #~ msgid "View" #~ msgstr "görünüm" Read-115~dfsg/po/Read.pot0000644000000000000000000000636612366506317014036 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/te.po0000644000000000000000000001074512366506317013403 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-02-12 14:04+0200\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "చదువు" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "వెనుకకు" #: readactivity.py:342 msgid "Previous page" msgstr "క్రితం పేజీ" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "ముందుకు" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "రద్దు చేయుము" #: readdialog.py:58 msgid "Ok" msgstr "సరే" #: readdialog.py:116 msgid "Title:" msgstr "శీర్షిక:" #: readdialog.py:142 msgid "Details:" msgstr "వివరాలు:" #: readtoolbar.py:61 msgid "Previous" msgstr "ముందుది" #: readtoolbar.py:68 msgid "Next" msgstr "తర్వాతది" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "మొదటిది వెతుకు" #: readtoolbar.py:166 msgid "Find previous" msgstr "ముందుది వెతుకు" #: readtoolbar.py:168 msgid "Find next" msgstr "తర్వాతది వెతుకు" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "దూరంచేసి చూడు" #: readtoolbar.py:204 msgid "Zoom in" msgstr "దగ్గరచేసి చూడు" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "పూర్తివెడల్పుగా చూడు" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "అంతా కనపడేలా చూడు" #: readtoolbar.py:222 msgid "Actual size" msgstr "అసలు కొలత" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "తెరనిండుగా" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "దస్తావేజును కోరుకో" #~ msgid "Edit" #~ msgstr "కూర్చు" #~ msgid "View" #~ msgstr "చూడు" Read-115~dfsg/po/rw.po0000644000000000000000000001024412366506317013415 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-04-05 06:25+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1) ;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Soma" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Inyuma" #: readactivity.py:342 #, fuzzy msgid "Previous page" msgstr "Ipaji ibanje" #: readactivity.py:344 #, fuzzy msgid "Previous bookmark" msgstr "Akamenyetso kabanza" #: readactivity.py:356 msgid "Forward" msgstr "Imbere" #: readactivity.py:360 #, fuzzy msgid "Next page" msgstr "Ipaji ikurikira" #: readactivity.py:362 #, fuzzy msgid "Next bookmark" msgstr "Akamenyetso gakurikira" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Kureka" #: readdialog.py:58 #, fuzzy msgid "Ok" msgstr "Yego" #: readdialog.py:116 msgid "Title:" msgstr "Umutwe:" #: readdialog.py:142 msgid "Details:" msgstr "Birambuye:" #: readtoolbar.py:61 msgid "Previous" msgstr "Ibibanziriza" #: readtoolbar.py:68 msgid "Next" msgstr "Ibikurikira" #: readtoolbar.py:79 #, fuzzy msgid "Highlight" msgstr "Igaragaza cyane" #: readtoolbar.py:160 msgid "Find first" msgstr "Shaka mbere" #: readtoolbar.py:166 msgid "Find previous" msgstr "Shaka ibibanziriza" #: readtoolbar.py:168 msgid "Find next" msgstr "Shaka ibikurikira" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Kwagura" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Kugabanya" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Agura ukigira kigari" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Agura ikntu ugira ngo gikwire ahantu" #: readtoolbar.py:222 msgid "Actual size" msgstr "Ingano nyayo" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Ekarayose" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 #, fuzzy msgid "Play / Pause" msgstr "Kina / Akaruhuko" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Hindura" #~ msgid "View" #~ msgstr "Irebero" Read-115~dfsg/po/am.po0000644000000000000000000001101012366506317013352 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-04-13 03:42+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "ኋላ" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "የሚቀጥለው ገጽ" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "ተወው ሻር" #: readdialog.py:58 msgid "Ok" msgstr "እሺ" #: readdialog.py:116 msgid "Title:" msgstr " አርእስት:" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "ቀድሞ" #: readtoolbar.py:68 msgid "Next" msgstr "ቀጥል" #: readtoolbar.py:79 msgid "Highlight" msgstr "አቅልም" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "የሚቀጥለዉን ፈልግ" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "ከርቀት ዕይታ" #: readtoolbar.py:204 msgid "Zoom in" msgstr "ከቅርበት ዕይታ" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "ሙሉ እስክሪን" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "አጫዉት / ለጊዜው አቋርጥ" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/da.po0000644000000000000000000001206512366506317013354 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-07 14:30+0200\n" "Last-Translator: Aputsiaq Niels \n" "Language-Team: LANGUAGE \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Læs" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Brug denne aktivitet når du er klar til at læse! Husk at dreje din computer " "rundt, så du føler at du holder en rigtig bog!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bogmærker tilføjet af %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Tilføj noter til bogmærke: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's bogmærke" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Bogmærke for side %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL fra Læs" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Gå til bogmærke" #: linkbutton.py:129 msgid "Remove" msgstr "Fjern" #: readactivity.py:361 msgid "Please wait" msgstr "Vent venligst" #: readactivity.py:362 msgid "Starting connection..." msgstr "Etablerer forbindelse ..." #: readactivity.py:374 msgid "No book" msgstr "Ingen bog" #: readactivity.py:374 msgid "Choose something to read" msgstr "Vælg noget at læse" #: readactivity.py:379 msgid "Back" msgstr "Tilbage" #: readactivity.py:383 msgid "Previous page" msgstr "Forrige side" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Forrige bogmærke" #: readactivity.py:397 msgid "Forward" msgstr "Frem" #: readactivity.py:401 msgid "Next page" msgstr "Næste side" #: readactivity.py:403 msgid "Next bookmark" msgstr "Næste bogmærke" #: readactivity.py:454 msgid "Index" msgstr "Indeks" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Slet bogmærke" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Al information relateret til dette bogmærke vil blive tabt" #: readactivity.py:900 msgid "Receiving book..." msgstr "Modtager bog ..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Side %d" #: readdialog.py:52 msgid "Cancel" msgstr "Annullér" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titel:" #: readdialog.py:142 msgid "Details:" msgstr "Detaljer:" #: readtoolbar.py:61 msgid "Previous" msgstr "Forrige" #: readtoolbar.py:68 msgid "Next" msgstr "Næste" #: readtoolbar.py:79 msgid "Highlight" msgstr "Fremhæv" #: readtoolbar.py:160 msgid "Find first" msgstr "Find første" #: readtoolbar.py:166 msgid "Find previous" msgstr "Find forrige" #: readtoolbar.py:168 msgid "Find next" msgstr "Find næste" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Indholdsfortegnelse" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Formindsk" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Forstør" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Tilpas til bredde" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoomtilpasning" #: readtoolbar.py:221 msgid "Actual size" msgstr "Aktuel størrelse" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Fuldskærm" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Drej til venstre" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Drej til højre" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Vis bakke" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Skjul bakke" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Afspil / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stop" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Side %(current)i af %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "tonehøjde tilpasset" #~ msgid "rate adjusted" #~ msgstr "hastighed tilpasset" #~ msgid "Choose document" #~ msgstr "Vælg dokument" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Side %i af %i" #~ msgid "Edit" #~ msgstr "Redigér" #~ msgid "View" #~ msgstr "Vis" Read-115~dfsg/po/pseudo.po0000644000000000000000000000277212366506317014273 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-10-09 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 readactivity.py:129 msgid "Read" msgstr "" #: readactivity.py:125 msgid "Edit" msgstr "" #: readactivity.py:137 msgid "View" msgstr "" #: readactivity.py:223 msgid "Choose document" msgstr "" #: readtoolbar.py:67 msgid "Previous" msgstr "" #: readtoolbar.py:74 msgid "Next" msgstr "" #: readtoolbar.py:140 msgid "Find first" msgstr "" #: readtoolbar.py:146 msgid "Find previous" msgstr "" #: readtoolbar.py:148 msgid "Find next" msgstr "" #: readtoolbar.py:160 msgid "Back" msgstr "" #: readtoolbar.py:167 msgid "Forward" msgstr "" #: readtoolbar.py:271 msgid "Zoom out" msgstr "" #: readtoolbar.py:277 msgid "Zoom in" msgstr "" #: readtoolbar.py:283 msgid "Zoom to width" msgstr "" #: readtoolbar.py:289 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:294 msgid "Actual size" msgstr "" #: readtoolbar.py:312 msgid "%" msgstr "" #: readtoolbar.py:330 msgid "Fullscreen" msgstr "" Read-115~dfsg/po/si.po0000644000000000000000000001266012366506317013404 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2011-09-28 08:05+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "කියවන්න" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "%(user)s විසින් %(time)s ට පිටු සලකුණ එක් කරන ලදි" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "පිටු සළකුණ සඳහා සටහන් එක් කරන්න: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s ගේ පිටු සළකුණ" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "%d පිටුව සඳහා පිටු සළකුණ" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:129 msgid "Remove" msgstr "" #: readactivity.py:361 msgid "Please wait" msgstr "" #: readactivity.py:362 msgid "Starting connection..." msgstr "" #: readactivity.py:374 msgid "No book" msgstr "" #: readactivity.py:374 msgid "Choose something to read" msgstr "" #: readactivity.py:379 msgid "Back" msgstr "පසුපසට" #: readactivity.py:383 msgid "Previous page" msgstr "පෙර පිටුව" #: readactivity.py:385 msgid "Previous bookmark" msgstr "පෙර පිටු සලකුණ" #: readactivity.py:397 msgid "Forward" msgstr "ඉදිරියට" #: readactivity.py:401 msgid "Next page" msgstr "ඊළඟ පිටුව" #: readactivity.py:403 msgid "Next bookmark" msgstr "ඊළඟ පිටු සලකුණ" #: readactivity.py:454 msgid "Index" msgstr "" #: readactivity.py:575 msgid "Delete bookmark" msgstr "" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:900 msgid "Receiving book..." msgstr "" #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "අවලංගු කරන්න" #: readdialog.py:58 msgid "Ok" msgstr "හරි" #: readdialog.py:116 msgid "Title:" msgstr "තේමාව:" #: readdialog.py:142 msgid "Details:" msgstr "විස්තර:" #: readtoolbar.py:61 msgid "Previous" msgstr "පෙර" #: readtoolbar.py:68 msgid "Next" msgstr "ඊලඟ" #: readtoolbar.py:79 msgid "Highlight" msgstr "ඉස්මතු කරන්න" #: readtoolbar.py:160 msgid "Find first" msgstr "පලමුව සොයන්න" #: readtoolbar.py:166 msgid "Find previous" msgstr "පෙර එක සොයන්න" #: readtoolbar.py:168 msgid "Find next" msgstr "ඊලඟ එක සොයන්න" #: readtoolbar.py:188 msgid "Table of contents" msgstr "" #: readtoolbar.py:197 msgid "Zoom out" msgstr "කුඩා කරන්න" #: readtoolbar.py:203 msgid "Zoom in" msgstr "විශාල කරන්න" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "පළල තෙක් විශාලනය" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "ගැලපීමට විශාලනය" #: readtoolbar.py:221 msgid "Actual size" msgstr "නියම ප්‍රමාණය" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "මුළු තිරයම" #: readtoolbar.py:253 msgid "Rotate left" msgstr "" #: readtoolbar.py:259 msgid "Rotate right" msgstr "" #: readtoolbar.py:325 msgid "Show Tray" msgstr "" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "වාදනය කරන්න / තාවකාලිව නවත්වන්න" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "%(total_pages)i කින් %(current)i පිටුව" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "තාරතාව සීරු මාරු කරන ලදි" #~ msgid "rate adjusted" #~ msgstr "සීඝ්‍රතාව සීරු මාරු කරන ලදි" #~ msgid "Choose document" #~ msgstr "ලිපි ගොනුව තෝරන්න" #~ msgid "Edit" #~ msgstr "සංස්කරණය කරන්න" #~ msgid "View" #~ msgstr "දර්ශනය කරන්න" Read-115~dfsg/po/br.po0000644000000000000000000000657412366506317013403 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-08-29 07:43+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lenn" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Nullañ" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "Titl:" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "War-lerc'h" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/kos.po0000644000000000000000000000724612366506317013571 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.3.0\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/gu.po0000644000000000000000000000724612366506317013410 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/ro.po0000644000000000000000000001001112366506317013375 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-03-21 07:29-0400\n" "Last-Translator: Adi Roiban \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Citește" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Înapoi" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Înainte" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Anterior" #: readtoolbar.py:68 msgid "Next" msgstr "Următor" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Caută prima potrivire" #: readtoolbar.py:166 msgid "Find previous" msgstr "Caută anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Caută următor" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Micește lupa" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Mărește lupa" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Potrivește în lățime" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Potrivește în întregime" #: readtoolbar.py:222 msgid "Actual size" msgstr "Mărime actuală" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Pe tot ecranul" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Modifică" #~ msgid "View" #~ msgstr "Vizualizare" #~ msgid "Read Activity" #~ msgstr "Activitate de citire" Read-115~dfsg/po/km.po0000644000000000000000000001045312366506317013376 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Rit Lim , 2008. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-04-17 06:16+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "អាន" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "ថយ​ក្រោយ" #: readactivity.py:342 msgid "Previous page" msgstr "ទំព័រ​មុន" #: readactivity.py:344 msgid "Previous bookmark" msgstr "កន្លែង​ចំណាំ​​មុន" #: readactivity.py:356 msgid "Forward" msgstr "ថយទៅមុខ" #: readactivity.py:360 msgid "Next page" msgstr "ទំព័រ​បន្ទាប់" #: readactivity.py:362 msgid "Next bookmark" msgstr "កន្លែង​ចំណាំ​បន្ទាប់" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "បោះបង់" #: readdialog.py:58 msgid "Ok" msgstr "យល់ព្រម" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "ទៅ​ក្រោយ" #: readtoolbar.py:68 msgid "Next" msgstr "ទៅ​មុខ" #: readtoolbar.py:79 msgid "Highlight" msgstr "បន្លិច" #: readtoolbar.py:160 msgid "Find first" msgstr "រក​ទី​មួយនៃ" #: readtoolbar.py:166 msgid "Find previous" msgstr "រកទៅ​ក្រោយ​នៃ" #: readtoolbar.py:168 msgid "Find next" msgstr "រក​ទៅ​មុខ​នៃ" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "ពង្រីក" #: readtoolbar.py:204 msgid "Zoom in" msgstr "បង្រួម" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "ប៉ុន​ទទឹង" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "អោយ​សម" #: readtoolbar.py:222 msgid "Actual size" msgstr "ទំហំ​ពិត" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "ពេញអេក្រង់" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "ចាក់/ផ្អាក" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" Read-115~dfsg/po/es.po0000644000000000000000000001407612366506317013403 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Spanish translations for PACKAGE package. # Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Tomeu Vizoso , 2007. msgid "" msgstr "" "Project-Id-Version: xbook\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-13 06:46+0200\n" "Last-Translator: AlanJAS \n" "Language-Team: Fedora Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" "X-Poedit-Language: Spanish\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Leer" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "¡Usa esta actividad cuando estés listo para leer! Recuerda girar tu " "computadora para sentirte como si estuvieras realmente sostiene un libro." #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Marcador agregado por %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Añadir notas para el marcador: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "Marcador de %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Marcador para página %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL de Leer" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Ir a Marcadores" #: linkbutton.py:129 msgid "Remove" msgstr "Eliminar" #: readactivity.py:361 msgid "Please wait" msgstr "Espere por favor" #: readactivity.py:362 msgid "Starting connection..." msgstr "Comenzando conexión..." #: readactivity.py:374 msgid "No book" msgstr "Sin libro" #: readactivity.py:374 msgid "Choose something to read" msgstr "Mostrar algo para leer" #: readactivity.py:379 msgid "Back" msgstr "Volver" #: readactivity.py:383 msgid "Previous page" msgstr "Página anterior" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Marcador anterior" #: readactivity.py:397 msgid "Forward" msgstr "Avanzar" #: readactivity.py:401 msgid "Next page" msgstr "Página siguiente" #: readactivity.py:403 msgid "Next bookmark" msgstr "Marcador siguiente" #: readactivity.py:454 msgid "Index" msgstr "Índice" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Borrar marcador" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Toda la información relacionada con este marcador se perderá" #: readactivity.py:900 msgid "Receiving book..." msgstr "Recibiendo libro..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Página %d" #: readdialog.py:52 msgid "Cancel" msgstr "Cancelar" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Título:" #: readdialog.py:142 msgid "Details:" msgstr "Detalles:" #: readtoolbar.py:61 msgid "Previous" msgstr "Anterior" #: readtoolbar.py:68 msgid "Next" msgstr "Siguiente" #: readtoolbar.py:79 msgid "Highlight" msgstr "Resaltar" #: readtoolbar.py:160 msgid "Find first" msgstr "Buscar primero" #: readtoolbar.py:166 msgid "Find previous" msgstr "Buscar anterior" #: readtoolbar.py:168 msgid "Find next" msgstr "Buscar siguiente" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Tabla de contenidos" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Alejarse" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Acercarse" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Ajustar al ancho" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Ajustar a la pantalla" #: readtoolbar.py:221 msgid "Actual size" msgstr "Tamaño real" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Pantalla completa" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rotar a la izquierda" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rotar a la derecha" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Mostrar Bandeja" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Ocultar Bandeja" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Reproducir / Detener" #: speechtoolbar.py:65 msgid "Stop" msgstr "Detener" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Página %(current)i de %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "tono ajustado" #~ msgid "rate adjusted" #~ msgstr "velocidad ajustada" #~ msgid "Choose document" #~ msgstr "Escoger documento" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Página %i de %i" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Read Activity" #~ msgstr "Actividad Leer" #~ msgid "Open a document to read" #~ msgstr "Abrir un documento para leer" #~ msgid "All supported formats" #~ msgstr "Todos los formatos soportados" #~ msgid "All files" #~ msgstr "Todos los ficheros" #~ msgid "Open" #~ msgstr "Abrir" Read-115~dfsg/po/fr.po0000644000000000000000000001251312366506317013375 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # translation of xbook.master.po to Français # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Gauthier Ancelin , 2007. msgid "" msgstr "" "Project-Id-Version: xbook.master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-08 12:39+0200\n" "Last-Translator: samy boutayeb \n" "Language-Team: Français \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lire" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Utilisez cette activité quand vous êtes prêts à lire ! Souvenez-vous de\n" "basculer votre ordinateur de côté pour avoir l'impression de tenir un livre " "!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Signet ajouté par %(user)s il y a %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Ajouter des notes pour le signet : " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "Signet de %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Signet pour la page %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL depuis Lire" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Aller au marque-page" #: linkbutton.py:129 msgid "Remove" msgstr "Enlever" #: readactivity.py:361 msgid "Please wait" msgstr "Veuillez patienter" #: readactivity.py:362 msgid "Starting connection..." msgstr "Connexion en cours..." #: readactivity.py:374 msgid "No book" msgstr "Aucun livre" #: readactivity.py:374 msgid "Choose something to read" msgstr "Choisir quelque chose à lire" #: readactivity.py:379 msgid "Back" msgstr "Reculer" #: readactivity.py:383 msgid "Previous page" msgstr "Page précédente" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Signet précédent" #: readactivity.py:397 msgid "Forward" msgstr "Avancer" #: readactivity.py:401 msgid "Next page" msgstr "Page suivante" #: readactivity.py:403 msgid "Next bookmark" msgstr "Signet suivant" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Supprimer le marque-page" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Toutes les informations liées à ce marque-page seront perdues" #: readactivity.py:900 msgid "Receiving book..." msgstr "Réception du livre..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Page %d" #: readdialog.py:52 msgid "Cancel" msgstr "Annuler" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titre :" #: readdialog.py:142 msgid "Details:" msgstr "Détails :" #: readtoolbar.py:61 msgid "Previous" msgstr "Précédent" #: readtoolbar.py:68 msgid "Next" msgstr "Suivant" #: readtoolbar.py:79 msgid "Highlight" msgstr "Surbrillance" #: readtoolbar.py:160 msgid "Find first" msgstr "Trouver le premier" #: readtoolbar.py:166 msgid "Find previous" msgstr "Trouver le précédent" #: readtoolbar.py:168 msgid "Find next" msgstr "Trouver le suivant" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Table des matières" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom arrière" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom avant" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom à la largeur de la page" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoom plein écran" #: readtoolbar.py:221 msgid "Actual size" msgstr "Dimension actuelle" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Plein écran" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rotation à gauche" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rotation à droite" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Montrer le tiroir" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Cacher le tiroir" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Lire / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Arrêter" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Page %(current)i sur %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "hauteur ajustée" #~ msgid "rate adjusted" #~ msgstr "fréquence ajustée" #~ msgid "Choose document" #~ msgstr "Choisir un document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Page %i sur %i" #~ msgid "Edit" #~ msgstr "Éditer" #~ msgid "View" #~ msgstr "Afficher" #~ msgid "Read Activity" #~ msgstr "Lecture" Read-115~dfsg/po/cpp.po0000644000000000000000000000725112366506317013553 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/vi.po0000644000000000000000000001047312366506317013407 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-09-24 10:44-0400\n" "Last-Translator: Clytie Siddall \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Đọc" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Liên kết được lưu bởi %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Ghi chú về liên kết lưu : " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "Liên kết lưu của %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Liên kết lưu đến trang %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Lùi" #: readactivity.py:342 msgid "Previous page" msgstr "Trang trước" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Liên kết lưu trước" #: readactivity.py:356 msgid "Forward" msgstr "Tiếp" #: readactivity.py:360 msgid "Next page" msgstr "Trang sau" #: readactivity.py:362 msgid "Next bookmark" msgstr "Liên kết lưu sau" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Thôi" #: readdialog.py:58 msgid "Ok" msgstr "OK" #: readdialog.py:116 msgid "Title:" msgstr "Tên:" #: readdialog.py:142 msgid "Details:" msgstr "Chi tiết:" #: readtoolbar.py:61 msgid "Previous" msgstr "Lùi" #: readtoolbar.py:68 msgid "Next" msgstr "Tiếp" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Tìm mục đầu" #: readtoolbar.py:166 msgid "Find previous" msgstr "Tìm trước" #: readtoolbar.py:168 msgid "Find next" msgstr "Tìm tiếp" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Thu nhỏ" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Phóng to" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Phóng tới bề rộng" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Phóng vừa" #: readtoolbar.py:222 msgid "Actual size" msgstr "Kích cỡ thật" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Toàn màn hình" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Chọn tài liệu" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Trang %i trên %i" #~ msgid "Edit" #~ msgstr "Sửa" #~ msgid "View" #~ msgstr "Xem" Read-115~dfsg/po/bg.po0000644000000000000000000001032412366506317013354 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-03-01 13:04-0500\n" "Last-Translator: Alexander Todorov \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Четене" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Назад" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Напред" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Предишен" #: readtoolbar.py:68 msgid "Next" msgstr "Следващ" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Търсене на първо съвпадение" #: readtoolbar.py:166 msgid "Find previous" msgstr "Търсене напред" #: readtoolbar.py:168 msgid "Find next" msgstr "Търсене назад" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Намаляване" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Увеличаване" # виж превода на evince #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Запълване на страницата по ширина" # виж превода на evince #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Запълване на страницата" #: readtoolbar.py:222 msgid "Actual size" msgstr "Оригинален размер" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "На цял екран" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Редактиране" #~ msgid "View" #~ msgstr "Изглед" Read-115~dfsg/po/wa.po0000644000000000000000000000725112366506317013400 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/mg.po0000644000000000000000000001054312366506317013372 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-09-06 13:47+0200\n" "Last-Translator: Zafimamy Gabriella Ralaivao \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 2.0.3\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "vakio" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Mariboky nampidirin'i %(user)s tamin'ny %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Hampiditra naoty ho mariboky: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "Maribokin'ny %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Maribokin'ny pejy %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "miverina" #: readactivity.py:342 msgid "Previous page" msgstr "Pejy teo aloha" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Mariboky teo aloha" #: readactivity.py:356 msgid "Forward" msgstr "Aroso" #: readactivity.py:360 msgid "Next page" msgstr "Pejy manaraka" #: readactivity.py:362 msgid "Next bookmark" msgstr "Mariboky manaraka" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Aoka ihany" #: readdialog.py:58 msgid "Ok" msgstr "Eka" #: readdialog.py:116 msgid "Title:" msgstr "Lohateny:" #: readdialog.py:142 msgid "Details:" msgstr "Antsipiriany:" #: readtoolbar.py:61 msgid "Previous" msgstr "teo aloha" #: readtoolbar.py:68 msgid "Next" msgstr "manaraka" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "tadiavo aloha" #: readtoolbar.py:166 msgid "Find previous" msgstr "tadiavo ny teo aloha" #: readtoolbar.py:168 msgid "Find next" msgstr "tadiavo ny manaraka" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Tomory lavitra" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Tomory akaiky" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Tomory amin'ny habeny" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Tomory amin'ny mahaomby" #: readtoolbar.py:222 msgid "Actual size" msgstr "hadiry tena izy" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Mameno efijery" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Mifidiana tahirin-kevitra" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Pejy %i amin'ny %i" #~ msgid "Edit" #~ msgstr "Amboary" #~ msgid "View" #~ msgstr "jereo" Read-115~dfsg/po/sk.po0000644000000000000000000001004212366506317013376 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-08-25 15:36-0400\n" "Last-Translator: Chris Leonard \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2 ;\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Čítať" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Späť" #: readactivity.py:342 #, fuzzy msgid "Previous page" msgstr "Predchádzajúci strana" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Dopredu" #: readactivity.py:360 #, fuzzy msgid "Next page" msgstr "Ďaľší strana" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Zrušiť" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Predchádzajúci" #: readtoolbar.py:68 msgid "Next" msgstr "Ďaľší" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Hľadať prvý" #: readtoolbar.py:166 msgid "Find previous" msgstr "Nájsť predchádzajúci" #: readtoolbar.py:168 #, fuzzy msgid "Find next" msgstr "Hľadať ďalej" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Oddialiť" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Priblížiť" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "Aktuálna veľkosť" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "Upraviť" #~ msgid "View" #~ msgstr "Zobraziť" Read-115~dfsg/po/ms.po0000644000000000000000000000725112366506317013410 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/ml.po0000644000000000000000000000724612366506317013405 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/el.po0000644000000000000000000001303512366506317013366 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Greek translation of Xbook project. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Simos Xenitellis , 2007. msgid "" msgstr "" "Project-Id-Version: Xbook project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-09-14 20:09+0200\n" "Last-Translator: Yannis \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ανάγνωση" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Σελιδοδείκτης που προστέθηκε από τον %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Προσθήκη σημειώσεων για τον σελιδοδείκτη: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's σελιδοδείκτης" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Σελιδοδείκτης για τη σελίδα %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL από τη δραστηριότητα Ανάγνωση" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Πίσω" #: readactivity.py:342 msgid "Previous page" msgstr "Προηγούμενη σελίδα" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Προηγούμενος σελιδοδείκτης" #: readactivity.py:356 msgid "Forward" msgstr "Μπροστά" #: readactivity.py:360 msgid "Next page" msgstr "Επόμενη σελίδα" #: readactivity.py:362 msgid "Next bookmark" msgstr "Επόμενος σελιδοδείκτης" #: readactivity.py:413 msgid "Index" msgstr "Ευρετήριο" #: readactivity.py:534 msgid "Delete bookmark" msgstr "Διαγραφή σελιδοδείκτη" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "Όλες οι πληροφορίες που σχετίζονται με αυτόν τον σελιδοδείκτη θα χαθούν" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Άκυρο" #: readdialog.py:58 msgid "Ok" msgstr "Εντάξει" #: readdialog.py:116 msgid "Title:" msgstr "Τίτλος:" #: readdialog.py:142 msgid "Details:" msgstr "Λεπτομέρειες:" #: readtoolbar.py:61 msgid "Previous" msgstr "Προηγούμενο" #: readtoolbar.py:68 msgid "Next" msgstr "Επόμενο" #: readtoolbar.py:79 msgid "Highlight" msgstr "Επισήμανση" #: readtoolbar.py:160 msgid "Find first" msgstr "Εύρεση του πρώτου" #: readtoolbar.py:166 msgid "Find previous" msgstr "Εύρεση του προηγούμενου" #: readtoolbar.py:168 msgid "Find next" msgstr "Εύρεση του επόμενου" #: readtoolbar.py:189 msgid "Table of contents" msgstr "Πίνακας περιεχομένων" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Σμίκρυνση" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Μεγέθυνση" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Προσαρμογή στο πλάτος" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Προσαρμογή στη σελίδα" #: readtoolbar.py:222 msgid "Actual size" msgstr "Πραγματικό μέγεθος" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Πλήρης οθόνη" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Αναπαραγωγή / Παύση" #: speechtoolbar.py:65 msgid "Stop" msgstr "Διακοπή" #, python-format #, python-format, #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Σελίδα %(current)i από %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "ο τόνος ρυθμίστηκε" #~ msgid "rate adjusted" #~ msgstr "ο ρυθμός ρυθμίστηκε" #~ msgid "Choose document" #~ msgstr "Επιλογή εγγράφου" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Σελίδα %i από %i" #~ msgid "Edit" #~ msgstr "Επεξεργασία" #~ msgid "View" #~ msgstr "Προβολή" #~ msgid "Read Activity" #~ msgstr "Ανάγνωση δραστηριότητας" Read-115~dfsg/po/ur.po0000644000000000000000000001013612366506317013413 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-03-19 05:07-0400\n" "Last-Translator: salman minhas \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "پڑهیں" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "واپس" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "آگے" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "پچھلا" #: readtoolbar.py:68 msgid "Next" msgstr "اگلا" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "پہلا ڈھونڈیں" #: readtoolbar.py:166 msgid "Find previous" msgstr "پچھلا ڈھونڈیں" #: readtoolbar.py:168 msgid "Find next" msgstr "اگلا ڈھونڈیں" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "باہر زوم کریں" #: readtoolbar.py:204 msgid "Zoom in" msgstr "اندر زوم کریں" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "چوڑائی تک زوم کریں" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "فٹ کرنے کے لیے زوم کریں" #: readtoolbar.py:222 msgid "Actual size" msgstr "اصل سائز" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "پوری سکرين" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "تدوین" #~ msgid "View" #~ msgstr "نظارہ" #~ msgid "Read Activity" #~ msgstr "پرھنے کی سرگرمی" Read-115~dfsg/po/de.po0000644000000000000000000001550312366506317013360 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package. # Fabian Affolter , 2007. # Markus Schlager , 2012. msgid "" msgstr "" "Project-Id-Version: xbook\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-12 23:14+0200\n" "Last-Translator: Markus \n" "Language-Team: Deutsche OLPC-Lokalisierung\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" "X-Poedit-Language: German\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lesen" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Benutze diese Aktivität, wenn du Lust zum Lesen hast! Denk daran, deinen " "Computer zu drehen, um das Gefühl zu haben, wirklich ein Buch in Händen zu " "halten!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Lesezeichen von %(user)s %(time)s hinzugefügt" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Anmerkungen zu Lesezeichen hinzufügen: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "Lesezeichen von %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Lesezeichen für Seite %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL von Lesen" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Gehe zu Lesezeichen" #: linkbutton.py:129 msgid "Remove" msgstr "Entfernen" #: readactivity.py:361 msgid "Please wait" msgstr "Bitte warten" #: readactivity.py:362 msgid "Starting connection..." msgstr "Baue Verbindung auf..." #: readactivity.py:374 msgid "No book" msgstr "Kein Buch" #: readactivity.py:374 msgid "Choose something to read" msgstr "Wähle etwas zu lesen aus" #: readactivity.py:379 msgid "Back" msgstr "Zurück" #: readactivity.py:383 msgid "Previous page" msgstr "Vorherige Seite" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Vorheriges Lesezeichen" #: readactivity.py:397 msgid "Forward" msgstr "Vor" #: readactivity.py:401 msgid "Next page" msgstr "Nächste Seite" #: readactivity.py:403 msgid "Next bookmark" msgstr "Nächstes Lesezeichen" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Lesezeichen löschen" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "" "Alle Informationen, die sich auf dieses Lesezeichen beziehen, werden " "gelöscht." #: readactivity.py:900 msgid "Receiving book..." msgstr "Empfange Buch..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Seite %d" #: readdialog.py:52 msgid "Cancel" msgstr "Abbrechen" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titel:" #: readdialog.py:142 msgid "Details:" msgstr "Details:" #: readtoolbar.py:61 msgid "Previous" msgstr "Vorheriges" #: readtoolbar.py:68 msgid "Next" msgstr "Nächstes" #: readtoolbar.py:79 msgid "Highlight" msgstr "Hervorheben" #: readtoolbar.py:160 msgid "Find first" msgstr "Suche vorwärts" #: readtoolbar.py:166 msgid "Find previous" msgstr "Suche rückwärts" #: readtoolbar.py:168 msgid "Find next" msgstr "Weitersuchen" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Inhaltsverzeichnis" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Verkleinern" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Vergrößern" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Breite anpassen" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Größe anpassen" #: readtoolbar.py:221 msgid "Actual size" msgstr "Originalgröße" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Vollbild" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Linksherum drehen" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rechtsherum drehen" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Ablage anzeigen" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Ablage verbergen" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Abspielen / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stopp" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Seite %(current)i von %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "Tonhöhe angepasst" #~ msgid "rate adjusted" #~ msgstr "Rate angepasst" #~ msgid "Choose document" #~ msgstr "Dokument auswählen" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Seite %i von %i" #~ msgid "Edit" #~ msgstr "Bearbeiten" #~ msgid "View" #~ msgstr "Ansehen" #~ msgid "Read Activity" #~ msgstr "Lese-Aktivitäten" Read-115~dfsg/po/nb.po0000644000000000000000000000765512366506317013400 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-07-23 16:45+0100\n" "Last-Translator: Kent Dahl \n" "Language-Team: Norwegian \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Les" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Tilbake" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Fremover" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Forrige" #: readtoolbar.py:68 msgid "Next" msgstr "Neste" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Finn første" #: readtoolbar.py:166 msgid "Find previous" msgstr "Finn forrige" #: readtoolbar.py:168 msgid "Find next" msgstr "Finn neste" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Forminsk" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Forstørr" #: readtoolbar.py:210 #, fuzzy msgid "Zoom to width" msgstr "Tilpass til bredden" #: readtoolbar.py:216 #, fuzzy msgid "Zoom to fit" msgstr "Tilpass til størrelsen" #: readtoolbar.py:222 msgid "Actual size" msgstr "Faktisk størrelse" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Fullskjerm" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "Edit" #~ msgstr "Endre" #, fuzzy #~ msgid "View" #~ msgstr "Visning" Read-115~dfsg/po/ja.po0000644000000000000000000001116712366506317013364 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-08-26 09:04+0200\n" "Last-Translator: korakurider \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Read" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "%(user)sが %(time)s に追加したブックマーク" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "ブックマークにノートを追加: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s のブックマーク" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "ページ %d へのブックマーク" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "戻る" #: readactivity.py:342 msgid "Previous page" msgstr "前ページ" #: readactivity.py:344 msgid "Previous bookmark" msgstr "前のブックマーク" #: readactivity.py:356 msgid "Forward" msgstr "進む" #: readactivity.py:360 msgid "Next page" msgstr "次ページ" #: readactivity.py:362 msgid "Next bookmark" msgstr "次のブックマーク" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "キャンセル" #: readdialog.py:58 msgid "Ok" msgstr "OK" #: readdialog.py:116 msgid "Title:" msgstr "表題:" #: readdialog.py:142 msgid "Details:" msgstr "詳細:" #: readtoolbar.py:61 msgid "Previous" msgstr "前へ" #: readtoolbar.py:68 msgid "Next" msgstr "次へ" #: readtoolbar.py:79 msgid "Highlight" msgstr "ハイライト" #: readtoolbar.py:160 msgid "Find first" msgstr "最初から検索" #: readtoolbar.py:166 msgid "Find previous" msgstr "前を検索" #: readtoolbar.py:168 msgid "Find next" msgstr "次を検索" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "縮小" #: readtoolbar.py:204 msgid "Zoom in" msgstr "拡大" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "幅にあわせて拡大" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "画面にあわせて拡大" #: readtoolbar.py:222 msgid "Actual size" msgstr "実際のサイズ" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "全画面" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "再生/停止" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "ページ %(current)i / %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "ピッチを調整しました" #~ msgid "rate adjusted" #~ msgstr "レートを調整しました" #~ msgid "Choose document" #~ msgstr "文書を選ぶ" #, python-format #~ msgid "Page %i of %i" #~ msgstr "ページ %i/%i" #~ msgid "Edit" #~ msgstr "編集" #~ msgid "View" #~ msgstr "ビュー" Read-115~dfsg/po/af.po0000644000000000000000000001021012366506317013344 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2011-05-24 01:36+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lees" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:129 msgid "Remove" msgstr "" #: readactivity.py:361 msgid "Please wait" msgstr "" #: readactivity.py:362 msgid "Starting connection..." msgstr "" #: readactivity.py:374 msgid "No book" msgstr "" #: readactivity.py:374 msgid "Choose something to read" msgstr "" #: readactivity.py:379 msgid "Back" msgstr "Terug" #: readactivity.py:383 msgid "Previous page" msgstr "" #: readactivity.py:385 msgid "Previous bookmark" msgstr "" #: readactivity.py:397 msgid "Forward" msgstr "Vorentoe" #: readactivity.py:401 msgid "Next page" msgstr "" #: readactivity.py:403 msgid "Next bookmark" msgstr "" #: readactivity.py:454 msgid "Index" msgstr "" #: readactivity.py:575 msgid "Delete bookmark" msgstr "" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:900 msgid "Receiving book..." msgstr "" #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "Reg" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Vorige" #: readtoolbar.py:68 msgid "Next" msgstr "Volgende" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Soek eerste" #: readtoolbar.py:166 msgid "Find previous" msgstr "Soek vorige" #: readtoolbar.py:168 msgid "Find next" msgstr "Soek volgende" #: readtoolbar.py:188 msgid "Table of contents" msgstr "" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoem uit" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoem in" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoem na wydte" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoem na pas" #: readtoolbar.py:221 msgid "Actual size" msgstr "Werklike grootte" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Volskerm" #: readtoolbar.py:253 msgid "Rotate left" msgstr "" #: readtoolbar.py:259 msgid "Rotate right" msgstr "" #: readtoolbar.py:325 msgid "Show Tray" msgstr "" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Kies dokument" #~ msgid "Edit" #~ msgstr "Redigeer" #~ msgid "View" #~ msgstr "Besigtig" Read-115~dfsg/po/sw.po0000644000000000000000000000756012366506317013425 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-09-05 18:07+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Soma" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Nyuma" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Mbele" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Kufuta" #: readdialog.py:58 msgid "Ok" msgstr "Sawa" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Awali" #: readtoolbar.py:68 msgid "Next" msgstr "Ijayo" #: readtoolbar.py:79 msgid "Highlight" msgstr "Angaza" #: readtoolbar.py:160 msgid "Find first" msgstr "Kupata kwanza" #: readtoolbar.py:166 msgid "Find previous" msgstr "Kupata awali" #: readtoolbar.py:168 msgid "Find next" msgstr "Kupata ijayo" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "umbile" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "screen kamili" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Kuchagua hati" Read-115~dfsg/po/it.po0000644000000000000000000001265612366506317013412 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-11-11 16:46+0200\n" "Last-Translator: arosella \n" "Language-Team: LANGUAGE \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Leggi" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Una questa attività quando sei pronto per leggere! Ricordati di ruotare il " "tuo computer per provare la sensazione di tenere in mano un vero libro!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Segnalibro inserito da %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Aggiungi annotazioni al segnalibro: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "segnalibro di %s" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "segnalibro alla pagina %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL proveniente da Leggi" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Vai al Segnalibro" #: linkbutton.py:129 msgid "Remove" msgstr "Rimuovi" #: readactivity.py:361 msgid "Please wait" msgstr "Attendere prego" #: readactivity.py:362 msgid "Starting connection..." msgstr "Connessione in avvio..." #: readactivity.py:374 msgid "No book" msgstr "Nessun libro" #: readactivity.py:374 msgid "Choose something to read" msgstr "Scegli qualcosa da leggere" #: readactivity.py:379 msgid "Back" msgstr "Indietro" #: readactivity.py:383 msgid "Previous page" msgstr "Pagina precedente" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Segnalibro precedente" #: readactivity.py:397 msgid "Forward" msgstr "Avanti" #: readactivity.py:401 msgid "Next page" msgstr "Prossima pagina" #: readactivity.py:403 msgid "Next bookmark" msgstr "Prossimo segnalibro" #: readactivity.py:454 msgid "Index" msgstr "Indice" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Elimina segnalibro" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Tutte le informazioni relative a questo segnalibro andranno perse" #: readactivity.py:900 msgid "Receiving book..." msgstr "Libro in ricezione..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Pagina %d" #: readdialog.py:52 msgid "Cancel" msgstr "Annulla" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titolo:" #: readdialog.py:142 msgid "Details:" msgstr "Dettagli:" #: readtoolbar.py:61 msgid "Previous" msgstr "Precedente" #: readtoolbar.py:68 msgid "Next" msgstr "Prossima" #: readtoolbar.py:79 msgid "Highlight" msgstr "Evidenzia" #: readtoolbar.py:160 msgid "Find first" msgstr "Trova il primo" #: readtoolbar.py:166 msgid "Find previous" msgstr "Trova precedente" #: readtoolbar.py:168 msgid "Find next" msgstr "Trova prossimo" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Indice dei contenuti" # Potrebbe essere anche "Rimpicciolire" o "Più piccolo" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom indietro" # Potrebbe essere anche "Ingrandire" o "Più grande" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom avanti" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom per larghezza della pagina" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Ingrandire a schermo intero" #: readtoolbar.py:221 msgid "Actual size" msgstr "Larghezza attuale" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Schermo intero" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Ruota a sinistra" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Ruota a destra" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Mostra la barra delle icone" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Nascondi la barra delle icone" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Esegui / Pausa" #: speechtoolbar.py:65 msgid "Stop" msgstr "Ferma" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Pagina %(current)i di %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "Regolazione altezza" #~ msgid "rate adjusted" #~ msgstr "Regolazione della frequenza" #~ msgid "Choose document" #~ msgstr "Scegli documento" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Pagina %i di %i" #~ msgid "Edit" #~ msgstr "Modifica" #~ msgid "View" #~ msgstr "Vista" #, fuzzy #~ msgid "Read Activity" #~ msgstr "Attività di lettura" Read-115~dfsg/po/mr.po0000644000000000000000000001017212366506317013403 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2008-04-28 02:45-0400\n" "Last-Translator: Rupali Sarode \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "वाचा" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "मागे" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "पुढे पाठविणे" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "अगोदरचा" #: readtoolbar.py:68 msgid "Next" msgstr "यानंतर" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "पहिले शोधा" #: readtoolbar.py:166 msgid "Find previous" msgstr "अगोदरचे शोधा" #: readtoolbar.py:168 msgid "Find next" msgstr "नंतरच शोधा" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "झूम आउट" #: readtoolbar.py:204 msgid "Zoom in" msgstr "झूम ईन" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "झूम टू वीड्त" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "झूम टू फिट" #: readtoolbar.py:222 msgid "Actual size" msgstr "वास्तविक आकार" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "पूर्ण पडदा" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Edit" #~ msgstr "संपादन करणे" #~ msgid "View" #~ msgstr "पाहा" Read-115~dfsg/po/mi.po0000644000000000000000000001007612366506317013375 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-10-01 06:37+0200\n" "Last-Translator: hariru \n" "Language-Team: LANGUAGE \n" "Language: mi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Pānui" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Whakamahi i tēnei hohe kia reri koe ki te pānui! Me maumahara ki te tītaka i " "tō rorohiko kia pērā ki te pukapuka!" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Tohuwāhi kua tāpirihia e %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Tāpiri tuhipoka mō te tohuwāhi: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's tohuwāhi" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Tohuwāhi mō te whārangi %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL mai i te Pānui" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Hoki" #: readactivity.py:342 msgid "Previous page" msgstr "Whārangi tōmua" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Tohuwāhi tōmua" #: readactivity.py:356 msgid "Forward" msgstr "Whakamua" #: readactivity.py:360 msgid "Next page" msgstr "Whārangi panuku" #: readactivity.py:362 msgid "Next bookmark" msgstr "Tohuwāhi panuku" #: readactivity.py:413 msgid "Index" msgstr "Taupū" #: readactivity.py:534 msgid "Delete bookmark" msgstr "Muku tohuwāhi" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "Ka ngaro ngā mōhiohio katoa e hāngai ana ki tēnei tohuwāhi" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Whakakore" #: readdialog.py:58 msgid "Ok" msgstr "Āe" #: readdialog.py:116 msgid "Title:" msgstr "Taitara:" #: readdialog.py:142 msgid "Details:" msgstr "Taipitopito:" #: readtoolbar.py:61 msgid "Previous" msgstr "Tōmua" #: readtoolbar.py:68 msgid "Next" msgstr "Panuku" #: readtoolbar.py:79 msgid "Highlight" msgstr "Miramira" #: readtoolbar.py:160 msgid "Find first" msgstr "Kimi i te tuatahi" #: readtoolbar.py:166 msgid "Find previous" msgstr "Kimi tōmua" #: readtoolbar.py:168 msgid "Find next" msgstr "Kimi panuku" #: readtoolbar.py:189 msgid "Table of contents" msgstr "Ngā Ihirangi" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Topa atu" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Topa mai" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Topa ki te whānuitanga" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Topa kia uru" #: readtoolbar.py:222 msgid "Actual size" msgstr "Rahi tūturu" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Matakatoa" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Pūrei / Tatari" #: speechtoolbar.py:65 msgid "Stop" msgstr "Tū" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Whārangi %(current)i o %(total_pages)i" Read-115~dfsg/po/sq.po0000644000000000000000000001031312366506317013405 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-01-28 13:07+0200\n" "Last-Translator: jon \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Lexo" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Prapa" #: readactivity.py:342 msgid "Previous page" msgstr "Faqja e mëparshme" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Faqen e më prapa të shënuar" #: readactivity.py:356 msgid "Forward" msgstr "Përpara" #: readactivity.py:360 msgid "Next page" msgstr "Faqja tjetër" #: readactivity.py:362 msgid "Next bookmark" msgstr "Faqen tjetër të shënuar" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Anulo" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titullin:" #: readdialog.py:142 msgid "Details:" msgstr "Detaje:" #: readtoolbar.py:61 msgid "Previous" msgstr "E Përparmja" #: readtoolbar.py:68 msgid "Next" msgstr "Tjetra" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Gjeje së pari" #: readtoolbar.py:166 msgid "Find previous" msgstr "Gjeje të përparmen" #: readtoolbar.py:168 msgid "Find next" msgstr "Gjeje tjetrën" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Largohu" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Afrohu" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Përshtate në madhësinë" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Përshtate" #: readtoolbar.py:222 msgid "Actual size" msgstr "Madhësija aktuale" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Ekran i plotë" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Zgjidhe dokumentin" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Faqe %i e %i" #~ msgid "Edit" #~ msgstr "Ndrysho" #~ msgid "View" #~ msgstr "Shikim" Read-115~dfsg/po/hus.po0000644000000000000000000001101512366506317013561 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2012-06-24 02:13+0200\n" "Last-Translator: ing.arturo.lara \n" "Language-Team: LANGUAGE \n" "Language: hus\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ajiy" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Pulik tejwa'medhom puk'udh k'al a %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Ka punk'uy jun i tsakam dhuchlab abal an pulik tejwa'medhom: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "In pulik tejwa'medhom a %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Pulik tejwa'medhom abal an walxeklek %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Wíchiy" #: readactivity.py:342 msgid "Previous page" msgstr "Ok'xidh walxeklek" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Ok'xidh pulik tejwa'medhom" #: readactivity.py:356 msgid "Forward" msgstr "Ne'etsnanchj" #: readactivity.py:360 msgid "Next page" msgstr "Júnakej walxeklek" #: readactivity.py:362 msgid "Next bookmark" msgstr "Júnakej pulik tejwa'medhom" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "T'apiy" #: readdialog.py:58 msgid "Ok" msgstr "Ne'ets kin t'aja'" #: readdialog.py:116 msgid "Title:" msgstr "Bíj:" #: readdialog.py:142 msgid "Details:" msgstr "Alwa' met'adh:" #: readtoolbar.py:61 msgid "Previous" msgstr "Xi ok'xidh" #: readtoolbar.py:68 msgid "Next" msgstr "Xi júnakej" #: readtoolbar.py:79 msgid "Highlight" msgstr "Tajaxbédha'" #: readtoolbar.py:160 msgid "Find first" msgstr "Aliy xi k'a'ál" #: readtoolbar.py:166 msgid "Find previous" msgstr "Aliy xi ok'xidh" #: readtoolbar.py:168 msgid "Find next" msgstr "Aliy xi júnakej" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Tsipti'méjdha'" # Se puede aplicar de igual forma Utuw porque significa acercar y el efecto al acercar cualquier objeto se percibe de mayor tamaño. #: readtoolbar.py:204 msgid "Zoom in" msgstr "Puwedha'" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Ka junkuw tin ts'ikwtal" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Ka junkuw ti walek" #: readtoolbar.py:222 msgid "Actual size" msgstr "In léj puwél" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Putat walek" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "K'wajba' / Tonk'iy" #: speechtoolbar.py:65 msgid "Stop" msgstr "Kuba'" #, python-format #, python-format, , #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Walxeklek %(current)i a xi ti %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "janidhtaláb t'ojojodh" # tasa ajustada (tasa se refiere a un nivel, índice) # Ejemplo: "Tasa de natalidad"="ïndice de natalidad" #~ msgid "rate adjusted" #~ msgstr "bajudh adhiktalab" #~ msgid "Choose document" #~ msgstr "Takuy dhuchadh úw" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Walxeklek %i a xi ti %i" Read-115~dfsg/po/zh_CN.po0000644000000000000000000001117512366506317013772 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: OLPC XBook\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-09 06:36+0200\n" "Last-Translator: lite \n" "Language-Team: Yuan CHAO \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "阅读" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "当你准备读书时,请使用此活动!请记住,好像你真的拿着一本书一样翻转你的电脑!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "由 %(user)s 在 %(time)s 加入的书签" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "为书签添加说明:" #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s 的书签" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "第 %d 页的书签" #: evinceadapter.py:88 msgid "URL from Read" msgstr "来自阅读的网址" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "转到书签" #: linkbutton.py:129 msgid "Remove" msgstr "删除" #: readactivity.py:361 msgid "Please wait" msgstr "请等待" #: readactivity.py:362 msgid "Starting connection..." msgstr "开始连接..." #: readactivity.py:374 msgid "No book" msgstr "没有书籍" #: readactivity.py:374 msgid "Choose something to read" msgstr "请选择要读的书" #: readactivity.py:379 msgid "Back" msgstr "后退" #: readactivity.py:383 msgid "Previous page" msgstr "上一页" #: readactivity.py:385 msgid "Previous bookmark" msgstr "上一个书签" #: readactivity.py:397 msgid "Forward" msgstr "前进" #: readactivity.py:401 msgid "Next page" msgstr "下一页" #: readactivity.py:403 msgid "Next bookmark" msgstr "下一个书签" #: readactivity.py:454 msgid "Index" msgstr "索引" #: readactivity.py:575 msgid "Delete bookmark" msgstr "删除书签" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "此书签相关的所有信息都将丢失" #: readactivity.py:900 msgid "Receiving book..." msgstr "正在接收书籍中..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "%d 页" #: readdialog.py:52 msgid "Cancel" msgstr "取消" #: readdialog.py:58 msgid "Ok" msgstr "确定" #: readdialog.py:116 msgid "Title:" msgstr "标题:" #: readdialog.py:142 msgid "Details:" msgstr "详细说明:" #: readtoolbar.py:61 msgid "Previous" msgstr "上一个" #: readtoolbar.py:68 msgid "Next" msgstr "下一个" #: readtoolbar.py:79 msgid "Highlight" msgstr "高亮" #: readtoolbar.py:160 msgid "Find first" msgstr "寻找第一个" #: readtoolbar.py:166 msgid "Find previous" msgstr "寻找前一个" #: readtoolbar.py:168 msgid "Find next" msgstr "寻找下一个" #: readtoolbar.py:188 msgid "Table of contents" msgstr "目录" #: readtoolbar.py:197 msgid "Zoom out" msgstr "缩小" #: readtoolbar.py:203 msgid "Zoom in" msgstr "放大" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "最适宽度" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "页面大小" #: readtoolbar.py:221 msgid "Actual size" msgstr "实际大小" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "全屏显示" #: readtoolbar.py:253 msgid "Rotate left" msgstr "向左旋转" #: readtoolbar.py:259 msgid "Rotate right" msgstr "向右旋转" #: readtoolbar.py:325 msgid "Show Tray" msgstr "显示托盘" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "隐藏托盘" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "播放 / 暂停" #: speechtoolbar.py:65 msgid "Stop" msgstr "停止" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "%(current)i / %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "选择文档" #~ msgid "Edit" #~ msgstr "编辑" #~ msgid "View" #~ msgstr "查看" Read-115~dfsg/po/hi.po0000644000000000000000000001440212366506317013365 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # translation of read-activity.po to Hindi # G Karunakar , 2007. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. msgid "" msgstr "" "Project-Id-Version: read-activity\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-12-07 22:25+0200\n" "Last-Translator: Vivek \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "पढ़ें" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "%(user)s %(time)s द्वारा पसंदीदा जोड़े गए" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "पसंदीदा के लिए टीप जोड़ें: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s का पसंदीदा" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "पृष्ठ %d के लिए पसंदीदा" #: evinceadapter.py:88 msgid "URL from Read" msgstr " रीड से यूआरएल " #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "पुस्तचिह्न पर जाएँ" #: linkbutton.py:129 msgid "Remove" msgstr "हटाएँ" #: readactivity.py:361 msgid "Please wait" msgstr "कृपया प्रतीक्षा करें" #: readactivity.py:362 msgid "Starting connection..." msgstr "कनेक्शन चालू हो रहा है..." #: readactivity.py:374 msgid "No book" msgstr "कोई किताब नहीं" #: readactivity.py:374 msgid "Choose something to read" msgstr "पढ़ने के लिए कुछ चुनें" #: readactivity.py:379 msgid "Back" msgstr "पीछे" #: readactivity.py:383 msgid "Previous page" msgstr "पिछला पेज" #: readactivity.py:385 msgid "Previous bookmark" msgstr "पिछला पसंदीदा" #: readactivity.py:397 msgid "Forward" msgstr "आगे" #: readactivity.py:401 msgid "Next page" msgstr "अगला पेज" #: readactivity.py:403 msgid "Next bookmark" msgstr "अगला पसंदीदा" #: readactivity.py:454 msgid "Index" msgstr "सूची" #: readactivity.py:575 msgid "Delete bookmark" msgstr "पुस्तचिह्न मिटाएँ" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:900 msgid "Receiving book..." msgstr "किताब पहुंच रही है..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "पृष्ठ %d" #: readdialog.py:52 msgid "Cancel" msgstr "रद्द करें" #: readdialog.py:58 msgid "Ok" msgstr "ठीक" #: readdialog.py:116 msgid "Title:" msgstr "शीर्षक:" #: readdialog.py:142 msgid "Details:" msgstr "विवरण:" #: readtoolbar.py:61 msgid "Previous" msgstr "पिछला" #: readtoolbar.py:68 msgid "Next" msgstr "अगला" #: readtoolbar.py:79 msgid "Highlight" msgstr "उभारना" #: readtoolbar.py:160 msgid "Find first" msgstr "पहीले ढूँढें" #: readtoolbar.py:166 msgid "Find previous" msgstr "पिछला ढूंढें" #: readtoolbar.py:168 msgid "Find next" msgstr "अगला ढूंढें" #: readtoolbar.py:188 msgid "Table of contents" msgstr "" #: readtoolbar.py:197 msgid "Zoom out" msgstr "छोटे आकार में दिखाएँ" #: readtoolbar.py:203 msgid "Zoom in" msgstr "बड़े आकार में दिखाएँ" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "चौड़ाई में बड़ा करें" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "फिट होने लायक बड़ा करें" #: readtoolbar.py:221 msgid "Actual size" msgstr "असली आकार" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "पूर्ण स्क्रीन" #: readtoolbar.py:253 msgid "Rotate left" msgstr "बाएं घुमाएँ" #: readtoolbar.py:259 msgid "Rotate right" msgstr "दाहिने घुमाएँ" #: readtoolbar.py:325 msgid "Show Tray" msgstr "ट्रे दिखाएँ" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "ट्रे छुपाएँ" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "प्ले करें / ठहरें" #: speechtoolbar.py:65 msgid "Stop" msgstr "रोकें" #, python-format #, python-format, #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "पेज %(current)i मैं %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "पिच समायोजित" #~ msgid "rate adjusted" #~ msgstr "दर समायोजित" #~ msgid "Choose document" #~ msgstr "दस्तावेज़ चुनें" #, python-format #~ msgid "Page %i of %i" #~ msgstr "पृष्ठ %i में से: %i" #~ msgid "Edit" #~ msgstr "संपादन" #~ msgid "View" #~ msgstr "दृश्य" #~ msgid "Read Activity" #~ msgstr "पढ़ने के क्रियाकलाप" Read-115~dfsg/po/ayc.po0000644000000000000000000001271712366506317013550 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-10-14 16:51+0200\n" "Last-Translator: EdgarQuispeChambi \n" "Language-Team: LANGUAGE \n" "Language: ayc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" # "Leer" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Ullaña" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "¡Akïri wakichäwi katma niya ullañataki wakichasisna! Computadora juma tuqiru " "uñkatayasma kamisa maya ullaña pankarusa katxarkasma ukhama." # "Registro agregado por %(user)s %(time)s" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Chimtaña %(user)s %(time)s uchawjataynta" # "Añadir notas para el marcador: " #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Chimtañanaka yapkataña: " # "Marcador de %s" #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's chimtaña" # "Marcador para página %d" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Chimtaña laphiru %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL sutini ullañataki" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Ch'ikunchirinakaru saraña" #: linkbutton.py:129 msgid "Remove" msgstr "Chhaqtayaña" #: readactivity.py:361 msgid "Please wait" msgstr "Mira suma suyt'ma" #: readactivity.py:362 msgid "Starting connection..." msgstr "Mayachaña qalltäwita" #: readactivity.py:374 msgid "No book" msgstr "Jani ullaña pankañani" #: readactivity.py:374 msgid "Choose something to read" msgstr "Ullañataki maski kuna uñachayaña" # "Volver" #: readactivity.py:379 msgid "Back" msgstr "Qutaña" # "Página anterior" #: readactivity.py:383 msgid "Previous page" msgstr "Qutir laphi" # "Registro anterior" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Qutir chimtata" # "Avanzar" #: readactivity.py:397 msgid "Forward" msgstr "Nayrt'aña" # "Página siguiente" #: readactivity.py:401 msgid "Next page" msgstr "Jutiri laphi" # "Siguiente registro" #: readactivity.py:403 msgid "Next bookmark" msgstr "Jutiri chimtaña" #: readactivity.py:454 msgid "Index" msgstr "Wakichata sutinaka siqi" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Chhijlliri chhaqtayaña" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "Chhijllata taqi kuna tuqita yatiyäwinaka chhaqtaniwa" #: readactivity.py:900 msgid "Receiving book..." msgstr "Panka katuqäwi..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Laphi chimpu %d" # "Cancelar" #: readdialog.py:52 msgid "Cancel" msgstr "Saytayaña" # "Ok" #: readdialog.py:58 msgid "Ok" msgstr "Walikiwa" # "Título:" #: readdialog.py:116 msgid "Title:" msgstr "Sutipa:" # "Detalles:" #: readdialog.py:142 msgid "Details:" msgstr "Kunjamanaka:" # "Anterior" #: readtoolbar.py:61 msgid "Previous" msgstr "Nayrankiri" # "Siguiente" #: readtoolbar.py:68 msgid "Next" msgstr "Jutiri" # "Resaltar" #: readtoolbar.py:79 msgid "Highlight" msgstr "Qhanstayaña" # "Buscar primero" #: readtoolbar.py:160 msgid "Find first" msgstr "Mayiri taqaña" # "Buscar anterior" #: readtoolbar.py:166 msgid "Find previous" msgstr "Nayrankiri taqaña" # "Buscar siguiente" #: readtoolbar.py:168 msgid "Find next" msgstr "Jutiri taqaña" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Wakichata sutinaka siqi wakichata" # "Alejarse" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Jisk'aptayaña" # "Acercarse" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Jach'aptayaña" # "Ajustar al ancho" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Jach'aptayaña lankhuru" # "Ajustar a la pantalla" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Suma apxataña qatukañjama" # "Tamaño real" #: readtoolbar.py:221 msgid "Actual size" msgstr "Juq'chajama" # "Pantalla completa" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Maypacha uñtawi" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Ch'iqäxaru muyjtaña" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Kupïxaru muyjtaña" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Imaña wakichata uñachayaña" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Imaña wakichata imantaña" # "Reproducir / Detener" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Qaltaña / Suyt'ayaña" #: speechtoolbar.py:65 msgid "Stop" msgstr "Sayt'ayaña" # "Página #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Laphi %(current)i qipatsti %(total_pages)i" # "%" #~ msgid "%" #~ msgstr "%" # "tono ajustado" #~ msgid "pitch adjusted" #~ msgstr "istaña jitinakayaña" # "velocidad ajustada" #~ msgid "rate adjusted" #~ msgstr "katakikuna jitinakayaña" # "Escoger documento" #~ msgid "Choose document" #~ msgstr "Wakichaña qatukaña" Read-115~dfsg/po/en.po0000644000000000000000000001164712366506317013377 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-09-06 00:31-0400\n" "PO-Revision-Date: 2013-09-06 17:07+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Read" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" #: bookmarkview.py:112 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bookmark added by %(user)s %(time)s" #: bookmarkview.py:155 bookmarkview.py:206 msgid "Add notes for bookmark: " msgstr "Add notes for bookmark: " #: bookmarkview.py:202 #, python-format msgid "%s's bookmark" msgstr "%s's bookmark" #: bookmarkview.py:203 #, python-format msgid "Bookmark for page %d" msgstr "Bookmark for page %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "URL from Read" #: linkbutton.py:124 msgid "Go to Bookmark" msgstr "Go to Bookmark" #: linkbutton.py:129 msgid "Remove" msgstr "Remove" #: readactivity.py:361 msgid "Please wait" msgstr "Please wait" #: readactivity.py:362 msgid "Starting connection..." msgstr "Starting connection..." #: readactivity.py:374 msgid "No book" msgstr "No book" #: readactivity.py:374 msgid "Choose something to read" msgstr "Choose something to read" #: readactivity.py:379 msgid "Back" msgstr "Back" #: readactivity.py:383 msgid "Previous page" msgstr "Previous page" #: readactivity.py:385 msgid "Previous bookmark" msgstr "Previous bookmark" #: readactivity.py:397 msgid "Forward" msgstr "Forward" #: readactivity.py:401 msgid "Next page" msgstr "Next page" #: readactivity.py:403 msgid "Next bookmark" msgstr "Next bookmark" #: readactivity.py:454 msgid "Index" msgstr "Index" #: readactivity.py:575 msgid "Delete bookmark" msgstr "Delete bookmark" #: readactivity.py:576 msgid "All the information related with this bookmark will be lost" msgstr "All the information related with this bookmark will be lost" #: readactivity.py:900 msgid "Receiving book..." msgstr "Receiving book..." #: readactivity.py:966 readactivity.py:1162 #, python-format msgid "Page %d" msgstr "Page %d" #: readdialog.py:52 msgid "Cancel" msgstr "Cancel" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Title:" #: readdialog.py:142 msgid "Details:" msgstr "Details:" #: readtoolbar.py:61 msgid "Previous" msgstr "Previous" #: readtoolbar.py:68 msgid "Next" msgstr "Next" #: readtoolbar.py:79 msgid "Highlight" msgstr "Highlight" #: readtoolbar.py:160 msgid "Find first" msgstr "Find first" #: readtoolbar.py:166 msgid "Find previous" msgstr "Find previous" #: readtoolbar.py:168 msgid "Find next" msgstr "Find next" #: readtoolbar.py:188 msgid "Table of contents" msgstr "Table of contents" #: readtoolbar.py:197 msgid "Zoom out" msgstr "Zoom out" #: readtoolbar.py:203 msgid "Zoom in" msgstr "Zoom in" #: readtoolbar.py:209 msgid "Zoom to width" msgstr "Zoom to width" #: readtoolbar.py:215 msgid "Zoom to fit" msgstr "Zoom to fit" #: readtoolbar.py:221 msgid "Actual size" msgstr "Actual size" #: readtoolbar.py:232 msgid "Fullscreen" msgstr "Fullscreen" #: readtoolbar.py:253 msgid "Rotate left" msgstr "Rotate left" #: readtoolbar.py:259 msgid "Rotate right" msgstr "Rotate right" #: readtoolbar.py:325 msgid "Show Tray" msgstr "Show Tray" #: readtoolbar.py:327 msgid "Hide Tray" msgstr "Hide Tray" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Play / Pause" #: speechtoolbar.py:65 msgid "Stop" msgstr "Stop" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Page %(current)i of %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "pitch adjusted" #~ msgid "rate adjusted" #~ msgstr "rate adjusted" #~ msgid "Choose document" #~ msgstr "Choose document" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Page %i of %i" Read-115~dfsg/po/ko.po0000644000000000000000000001001612366506317013373 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-05-13 12:53-0400\n" "Last-Translator: Donghee Park \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "읽기" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "뒤로" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "앞으로" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "이전" #: readtoolbar.py:68 msgid "Next" msgstr "다음" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "처음부터 찾기" #: readtoolbar.py:166 msgid "Find previous" msgstr "이전 찾기" #: readtoolbar.py:168 msgid "Find next" msgstr "다음 찾기" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "축소" #: readtoolbar.py:204 msgid "Zoom in" msgstr "확대" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "화면 너비에 맞추어 확대" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "화면에 맞추어 확대" #: readtoolbar.py:222 msgid "Actual size" msgstr "실제 크기" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "전체화면" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "문서 고르기" #~ msgid "Edit" #~ msgstr "편집" #~ msgid "View" #~ msgstr "보기" Read-115~dfsg/po/sv.po0000644000000000000000000001041412366506317013414 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-02-12 05:58+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Läs" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Bokmärke skapat av %(user)s kl %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Lägg till kommentar till bokmärke: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%ss bokmärke" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "bokmärke for sida %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Tillbaka" #: readactivity.py:342 msgid "Previous page" msgstr "Föregående sida" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Föregående bokmärke" #: readactivity.py:356 msgid "Forward" msgstr "Framåt" #: readactivity.py:360 msgid "Next page" msgstr "Nästa sida" #: readactivity.py:362 msgid "Next bookmark" msgstr "Nästa bokmärke" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Avbryt" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Titel:" #: readdialog.py:142 msgid "Details:" msgstr "Detaljer:" #: readtoolbar.py:61 msgid "Previous" msgstr "Föregående" #: readtoolbar.py:68 msgid "Next" msgstr "Nästa" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Sök första" #: readtoolbar.py:166 msgid "Find previous" msgstr "Sök föregående" #: readtoolbar.py:168 msgid "Find next" msgstr "Sök nästa" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Zooma ut" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Zooma in" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Anpassa till bredd" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Bästa anpassning" #: readtoolbar.py:222 msgid "Actual size" msgstr "Verklig storlek" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Helskärm" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Välj dokument" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Sida %i av %i" #~ msgid "Edit" #~ msgstr "Redigera" #~ msgid "View" #~ msgstr "Visa" Read-115~dfsg/po/ha.po0000644000000000000000000000724612366506317013365 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/bi.po0000644000000000000000000000725112366506317013363 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/tvl.po0000644000000000000000000000730212366506317013573 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2010-01-27 04:10+0200\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "faitau" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "" #: readtoolbar.py:68 msgid "Next" msgstr "" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "" #: readtoolbar.py:166 msgid "Find previous" msgstr "" #: readtoolbar.py:168 msgid "Find next" msgstr "" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "" #: readtoolbar.py:204 msgid "Zoom in" msgstr "" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "" #: readtoolbar.py:222 msgid "Actual size" msgstr "" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" Read-115~dfsg/po/cs.po0000644000000000000000000001004312366506317013367 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-04-14 03:48+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Čtěte" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Zpět" #: readactivity.py:342 msgid "Previous page" msgstr "" #: readactivity.py:344 msgid "Previous bookmark" msgstr "" #: readactivity.py:356 msgid "Forward" msgstr "Vpřed" #: readactivity.py:360 msgid "Next page" msgstr "" #: readactivity.py:362 msgid "Next bookmark" msgstr "" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Zrušit" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "Předchozí" #: readtoolbar.py:68 msgid "Next" msgstr "Další" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Hledat první" #: readtoolbar.py:166 msgid "Find previous" msgstr "Hledat předchozí" #: readtoolbar.py:168 msgid "Find next" msgstr "Hledat další" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Zmenšit" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Zvětšit" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Přiblížení na šířku" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Přiblížit, aby se vešly" #: readtoolbar.py:222 msgid "Actual size" msgstr "Aktuální velikost" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Celá obrazovka" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Přehrát / Pauza" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Vybrat dokument" #~ msgid "Edit" #~ msgstr "Upravit" Read-115~dfsg/po/hu.po0000644000000000000000000001041412366506317013400 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-03-13 17:45+0200\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.0.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Olvas" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Könyvjelző ozzáadva %(user)s %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Megjegyzés hozzáadása a könyvjelzőhöz" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "%s's könyvjelző" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Oldal hozzáadása a könyvjelzőköz %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Vissza" #: readactivity.py:342 msgid "Previous page" msgstr "Előző oldal" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Előző könyvjelző" #: readactivity.py:356 msgid "Forward" msgstr "Előre" #: readactivity.py:360 msgid "Next page" msgstr "Következő oldal" #: readactivity.py:362 msgid "Next bookmark" msgstr "Következő könyvjelző" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Mégse" #: readdialog.py:58 msgid "Ok" msgstr "Ok" #: readdialog.py:116 msgid "Title:" msgstr "Cím:" #: readdialog.py:142 msgid "Details:" msgstr "Adatok:" #: readtoolbar.py:61 msgid "Previous" msgstr "Előző" #: readtoolbar.py:68 msgid "Next" msgstr "Következő" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "Keresd az elsőt" #: readtoolbar.py:166 msgid "Find previous" msgstr "Keresd az előzőt" #: readtoolbar.py:168 msgid "Find next" msgstr "Keresd a következőt" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Kicsinyítés" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Nagyítás" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Teljes szélesség" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Igazítás" #: readtoolbar.py:222 msgid "Actual size" msgstr "Eredeti méret" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Teljes képernyő " #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "Dokumentum kiválasztása" #, python-format #~ msgid "Page %i of %i" #~ msgstr "Oldal %i ból %i" Read-115~dfsg/po/ps.po0000644000000000000000000001036512366506317013413 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2009-07-01 03:26-0400\n" "Last-Translator: Abdulhadi Hairan \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 1.2.1\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "لوستل" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format #, fuzzy msgid "Bookmark added by %(user)s %(time)s" msgstr "یادنښه د (کارن)انو لخوا په (وخت)ونو زیاته شوه" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "" #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "شاته" #: readactivity.py:342 msgid "Previous page" msgstr "مخکینۍ پاڼه" #: readactivity.py:344 msgid "Previous bookmark" msgstr "مخکینۍ یادنښه" #: readactivity.py:356 msgid "Forward" msgstr "مخته" #: readactivity.py:360 msgid "Next page" msgstr "بل مخ" #: readactivity.py:362 msgid "Next bookmark" msgstr "بله یادنښه" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "" #: readdialog.py:58 msgid "Ok" msgstr "" #: readdialog.py:116 msgid "Title:" msgstr "" #: readdialog.py:142 msgid "Details:" msgstr "" #: readtoolbar.py:61 msgid "Previous" msgstr "مخكینى" #: readtoolbar.py:68 msgid "Next" msgstr "بل" #: readtoolbar.py:79 msgid "Highlight" msgstr "" #: readtoolbar.py:160 msgid "Find first" msgstr "لومړنی موندل" #: readtoolbar.py:166 msgid "Find previous" msgstr "مخکینی موندل" #: readtoolbar.py:168 msgid "Find next" msgstr "بل موندل" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "لوكمول" #: readtoolbar.py:204 msgid "Zoom in" msgstr "لوډېرول" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "سور سره برابرول" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "برابر سمول" #: readtoolbar.py:222 msgid "Actual size" msgstr "اصلي کچه" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "بشپړه پرده" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #~ msgid "%" #~ msgstr "%" #~ msgid "Choose document" #~ msgstr "لاسوند غوره کړئ" #~ msgid "Edit" #~ msgstr "سمون" #~ msgid "View" #~ msgstr "ليد" Read-115~dfsg/po/sl.po0000644000000000000000000001105712366506317013406 0ustar rootroot# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-04-11 00:31-0400\n" "PO-Revision-Date: 2011-12-18 22:47+0200\n" "Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "n%100==4 ? 2 : 3);\n" "X-Generator: Pootle 2.0.5\n" #. TRANS: "name" option from activity.info file msgid "Read" msgstr "Beri" #. TRANS: "summary" option from activity.info file #. TRANS: "description" option from activity.info file msgid "" "Use this activity when you are ready to read! Remember to flip your computer " "around to feel like you are really holding a book!" msgstr "" #. TRANS: This goes like Bookmark added by User 5 days ago #. TRANS: (the elapsed string gets translated automatically) #: bookmarkview.py:110 #, python-format msgid "Bookmark added by %(user)s %(time)s" msgstr "Zaznamek je dodal uporabnik %(user)s ob %(time)s" #: bookmarkview.py:153 bookmarkview.py:204 msgid "Add notes for bookmark: " msgstr "Dodaj opombe k zaznamku: " #: bookmarkview.py:200 #, python-format msgid "%s's bookmark" msgstr "Zaznamek uporabnika %s" #: bookmarkview.py:201 #, python-format msgid "Bookmark for page %d" msgstr "Zaznamek za stran %d" #: evinceadapter.py:88 msgid "URL from Read" msgstr "" #: linkbutton.py:94 msgid "Go to Bookmark" msgstr "" #: linkbutton.py:99 msgid "Remove" msgstr "" #: readactivity.py:333 msgid "No book" msgstr "" #: readactivity.py:333 msgid "Choose something to read" msgstr "" #: readactivity.py:338 msgid "Back" msgstr "Nazaj" #: readactivity.py:342 msgid "Previous page" msgstr "Predhodna stran" #: readactivity.py:344 msgid "Previous bookmark" msgstr "Predhodni zaznamek" #: readactivity.py:356 msgid "Forward" msgstr "Naprej" #: readactivity.py:360 msgid "Next page" msgstr "Naslednja stran" #: readactivity.py:362 msgid "Next bookmark" msgstr "Naslednji zaznamek" #: readactivity.py:413 msgid "Index" msgstr "" #: readactivity.py:534 msgid "Delete bookmark" msgstr "" #: readactivity.py:535 msgid "All the information related with this bookmark will be lost" msgstr "" #: readactivity.py:895 readactivity.py:1090 #, python-format msgid "Page %d" msgstr "" #: readdialog.py:52 msgid "Cancel" msgstr "Prekliči" #: readdialog.py:58 msgid "Ok" msgstr "V redu" #: readdialog.py:116 msgid "Title:" msgstr "Naslov:" #: readdialog.py:142 msgid "Details:" msgstr "Podrobnosti:" #: readtoolbar.py:61 msgid "Previous" msgstr "Prejšnji" #: readtoolbar.py:68 msgid "Next" msgstr "Naslednji" #: readtoolbar.py:79 msgid "Highlight" msgstr "Poudari" #: readtoolbar.py:160 msgid "Find first" msgstr "Najdi prvega" #: readtoolbar.py:166 msgid "Find previous" msgstr "Najdi prejšnjega" #: readtoolbar.py:168 msgid "Find next" msgstr "Najdi naslednjega" #: readtoolbar.py:189 msgid "Table of contents" msgstr "" #: readtoolbar.py:198 msgid "Zoom out" msgstr "Povečaj" #: readtoolbar.py:204 msgid "Zoom in" msgstr "Pomanjšaj" #: readtoolbar.py:210 msgid "Zoom to width" msgstr "Povečaj do širine" #: readtoolbar.py:216 msgid "Zoom to fit" msgstr "Povečaj da ustreza" #: readtoolbar.py:222 msgid "Actual size" msgstr "Normalna velikost" #: readtoolbar.py:233 msgid "Fullscreen" msgstr "Cel zaslon" #: readtoolbar.py:301 msgid "Show Tray" msgstr "" #: readtoolbar.py:303 msgid "Hide Tray" msgstr "" #: speechtoolbar.py:57 msgid "Play / Pause" msgstr "Predvajaj / Premor" #: speechtoolbar.py:65 msgid "Stop" msgstr "" #, python-format #~ msgid "Page %(current)i of %(total_pages)i" #~ msgstr "Stran %(current)i od skupno %(total_pages)i" #~ msgid "%" #~ msgstr "%" #~ msgid "pitch adjusted" #~ msgstr "prilagojena višina govora" #~ msgid "rate adjusted" #~ msgstr "prilagojena hitrost govora" #~ msgid "Choose document" #~ msgstr "Izberi dokument" #~ msgid "Edit" #~ msgstr "Urejanje" #~ msgid "View" #~ msgstr "Pogled" Read-115~dfsg/readdb.py0000644000000000000000000002463712513754262013613 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging import os import shutil import sqlite3 import time import base64 import json from gi.repository import GObject from sugar3 import profile from readbookmark import Bookmark _logger = logging.getLogger('read-activity') def _init_db(): dbdir = os.path.join(os.environ['SUGAR_ACTIVITY_ROOT'], 'data') dbpath = os.path.join(dbdir, 'read_v1.db') olddbpath = os.path.join(dbdir, 'read.db') srcpath = os.path.join(os.environ['SUGAR_BUNDLE_PATH'], 'read_v1.db') # Situation 0: Db is existent if os.path.exists(dbpath): return dbpath # Situation 1: DB is non-existent at all if not os.path.exists(dbpath) and not os.path.exists(olddbpath): try: os.makedirs(dbdir) except: pass shutil.copy(srcpath, dbpath) return dbpath # Situation 2: DB is outdated if not os.path.exists(dbpath) and os.path.exists(olddbpath): shutil.copy(olddbpath, dbpath) conn = sqlite3.connect(dbpath) conn.execute( "CREATE TABLE temp_bookmarks AS SELECT md5, page, " + "title 'content', timestamp, user, color, local FROM bookmarks") conn.execute("ALTER TABLE bookmarks RENAME TO bookmarks_old") conn.execute("ALTER TABLE temp_bookmarks RENAME TO bookmarks") conn.execute("DROP TABLE bookmarks_old") conn.commit() conn.close() return dbpath # Should not reach this point return None def _init_db_highlights(conn): conn.execute('CREATE TABLE IF NOT EXISTS HIGHLIGHTS ' + '(md5 TEXT, page INTEGER, ' + 'init_pos INTEGER, end_pos INTEGER)') conn.commit() def _init_db_previews(conn): conn.execute('CREATE TABLE IF NOT EXISTS PREVIEWS ' + '(md5 TEXT, page INTEGER, ' + 'preview)') conn.commit() class BookmarkManager(GObject.GObject): __gsignals__ = { 'added_bookmark': (GObject.SignalFlags.RUN_FIRST, None, ([int, str])), 'removed_bookmark': (GObject.SignalFlags.RUN_FIRST, None, ([int])), } def __init__(self, filehash): GObject.GObject.__init__(self) self._filehash = filehash dbpath = _init_db() assert dbpath is not None self._conn = sqlite3.connect(dbpath) _init_db_highlights(self._conn) _init_db_previews(self._conn) self._conn.text_factory = lambda x: unicode(x, "utf-8", "ignore") self._bookmarks = [] self._populate_bookmarks() self._highlights = {0: []} self._populate_highlights() self._user = profile.get_nick_name() self._color = profile.get_color().to_string() def update_bookmarks(self, bookmarks_list): need_reync = False for bookmark_data in bookmarks_list: # compare with all the bookmarks found = False for bookmark in self._bookmarks: if bookmark.compare_equal_to_dict(bookmark_data): found = True break if not found: if bookmark_data['nick'] == self._user and \ bookmark_data['color'] == self._color: local = 1 else: local = 0 t = (bookmark_data['md5'], bookmark_data['page_no'], bookmark_data['content'], bookmark_data['timestamp'], bookmark_data['nick'], bookmark_data['color'], local) self._conn.execute('insert into bookmarks values ' + '(?, ?, ?, ?, ?, ?, ?)', t) need_reync = True title = json.loads(bookmark_data['content'])['title'] self.emit('added_bookmark', bookmark_data['page_no'] + 1, title) if need_reync: self._resync_bookmark_cache() def add_bookmark(self, page, content, local=1): logging.debug('add_bookmark page %d', page) # local = 0 means that this is a bookmark originally # created by the person who originally shared the file timestamp = time.time() t = (self._filehash, page, content, timestamp, self._user, self._color, local) self._conn.execute('insert into bookmarks values ' + '(?, ?, ?, ?, ?, ?, ?)', t) self._conn.commit() self._resync_bookmark_cache() title = json.loads(content)['title'] self.emit('added_bookmark', page + 1, title) def del_bookmark(self, page): # We delete only the locally made bookmark logging.debug('del_bookmark page %d', page) t = (self._filehash, page, self._user) self._conn.execute('delete from bookmarks ' + 'where md5=? and page=? and user=?', t) self._conn.commit() self._del_bookmark_preview(page) self._resync_bookmark_cache() self.emit('removed_bookmark', page + 1) def add_bookmark_preview(self, page, preview): logging.debug('add_bookmark_preview page %d', page) t = (self._filehash, page, base64.b64encode(preview)) self._conn.execute('insert into previews values ' + '(?, ?, ?)', t) self._conn.commit() def _del_bookmark_preview(self, page): logging.debug('del_bookmark_preview page %d', page) t = (self._filehash, page) self._conn.execute('delete from previews ' + 'where md5=? and page=?', t) self._conn.commit() def get_bookmark_preview(self, page): logging.debug('get_bookmark page %d', page) rows = self._conn.execute('select preview from previews ' + 'where md5=? and page=?', (self._filehash, page)) for row in rows: return base64.b64decode(row[0]) return None def _populate_bookmarks(self): # TODO: Figure out if caching the entire set of bookmarks # is a good idea or not rows = self._conn.execute('select * from bookmarks ' + 'where md5=? order by page', (self._filehash, )) for row in rows: self._bookmarks.append(Bookmark(row)) logging.debug('loading %d bookmarks', len(self._bookmarks)) def get_bookmarks(self): return self._bookmarks def get_bookmarks_for_page(self, page): bookmarks = [] for bookmark in self._bookmarks: if bookmark.belongstopage(page): bookmarks.append(bookmark) return bookmarks def _resync_bookmark_cache(self): # To be called when a new bookmark has been added/removed self._bookmarks = [] self._populate_bookmarks() def get_prev_bookmark_for_page(self, page, wrap=True): if not len(self._bookmarks): return None if page <= self._bookmarks[0].page_no and wrap: return self._bookmarks[-1] else: for i in range(page - 1, -1, -1): for bookmark in self._bookmarks: if bookmark.belongstopage(i): return bookmark return None def get_next_bookmark_for_page(self, page, wrap=True): if not len(self._bookmarks): return None if page >= self._bookmarks[-1].page_no and wrap: return self._bookmarks[0] else: for i in range(page + 1, self._bookmarks[-1].page_no + 1): for bookmark in self._bookmarks: if bookmark.belongstopage(i): return bookmark return None def get_highlights(self, page): try: return self._highlights[page] except KeyError: self._highlights[page] = [] return self._highlights[page] def get_all_highlights(self): return self._highlights def update_highlights(self, highlights_dict): for page in highlights_dict.keys(): # json store the keys as strings # but the page is used as a int in all the code highlights_in_page = highlights_dict[page] page = int(page) highlights_stored = self.get_highlights(page) for highlight_tuple in highlights_in_page: if highlight_tuple not in highlights_stored: self.add_highlight(page, highlight_tuple) def add_highlight(self, page, highlight_tuple): logging.error('Adding hg page %d %s' % (page, highlight_tuple)) self.get_highlights(page).append(highlight_tuple) t = (self._filehash, page, highlight_tuple[0], highlight_tuple[1]) self._conn.execute('insert into highlights values ' + '(?, ?, ?, ?)', t) self._conn.commit() def del_highlight(self, page, highlight_tuple): self._highlights[page].remove(highlight_tuple) t = (self._filehash, page, highlight_tuple[0], highlight_tuple[1]) self._conn.execute( 'delete from highlights ' + 'where md5=? and page=? and init_pos=? and end_pos=?', t) self._conn.commit() def _populate_highlights(self): rows = self._conn.execute('select * from highlights ' + 'where md5=? order by page', (self._filehash, )) for row in rows: # md5 = row[0] page = row[1] init_pos = row[2] end_pos = row[3] highlight_tuple = [init_pos, end_pos] self.get_highlights(page).append(highlight_tuple) Read-115~dfsg/setup.py0000755000000000000000000000147412366506317013531 0ustar rootroot#!/usr/bin/env python # Copyright (C) 2006, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from sugar3.activity import bundlebuilder bundlebuilder.start() Read-115~dfsg/speech_gst.py0000644000000000000000000000544112366506317014510 0ustar rootroot# Copyright (C) 2009 Aleksey S. Lim # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import Gst import logging import speech _logger = logging.getLogger('read-activity') def get_all_voices(): all_voices = {} for voice in Gst.ElementFactory.make('espeak', None).props.voices: name, language, dialect = voice if dialect != 'none': all_voices[language + '_' + dialect] = name else: all_voices[language] = name return all_voices def _message_cb(bus, message, pipe): if message.type == Gst.MessageType.EOS: pipe.set_state(Gst.State.NULL) if speech.end_text_cb is not None: speech.end_text_cb() if message.type == Gst.MessageType.ERROR: pipe.set_state(Gst.State.NULL) if pipe is play_speaker[1]: speech.reset_cb() elif message.type == Gst.MessageType.ELEMENT and \ message.structure.get_name() == 'espeak-mark': mark = message.structure['mark'] speech.highlight_cb(int(mark)) def _create_pipe(): pipe = Gst.parse_launch('espeak name=espeak ! autoaudiosink') source = pipe.get_by_name('espeak') bus = pipe.get_bus() bus.add_signal_watch() bus.connect('message', _message_cb, pipe) return (source, pipe) def _speech(speaker, words): speaker[0].props.pitch = speech.pitch speaker[0].props.rate = speech.rate speaker[0].props.voice = speech.voice[1] speaker[0].props.text = words speaker[1].set_state(Gst.State.NULL) speaker[1].set_state(Gst.State.PLAYING) info_speaker = _create_pipe() play_speaker = _create_pipe() play_speaker[0].props.track = 2 def voices(): return info_speaker[0].props.voices def say(words): _speech(info_speaker, words) def play(words): _speech(play_speaker, words) def pause(): play_speaker[1].set_state(Gst.State.PAUSED) def continue_play(): play_speaker[1].set_state(Gst.State.PLAYING) def is_stopped(): for i in play_speaker[1].get_state(): if isinstance(i, Gst.State) and i == Gst.State.NULL: return True return False def stop(): play_speaker[1].set_state(Gst.State.NULL) Read-115~dfsg/bookmarkview.py0000644000000000000000000001605612515246317015065 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging from gi.repository import GObject from gi.repository import Gtk from gi.repository import Gdk from sugar3.graphics.icon import Icon from sugar3.graphics.xocolor import XoColor from sugar3.util import timestamp_to_elapsed_string from sugar3.graphics import style from sugar3 import profile from readdialog import BookmarkAddDialog, BookmarkEditDialog from gettext import gettext as _ _logger = logging.getLogger('read-activity') class BookmarkView(Gtk.EventBox): __gsignals__ = { 'bookmark-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self): Gtk.EventBox.__init__(self) self._box = Gtk.VButtonBox() self._box.set_layout(Gtk.ButtonBoxStyle.START) self._box.set_margin_top(style.GRID_CELL_SIZE / 2) self.add(self._box) self._box.show() self._bookmark_icon = None self._bookmark_manager = None self._is_showing_local_bookmark = False self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.connect('draw', self.__draw_cb) self.connect('event', self.__event_cb) def __draw_cb(self, widget, ctx): width = style.GRID_CELL_SIZE height = style.GRID_CELL_SIZE * (len(self._bookmarks) + 1) ctx.rectangle(0, 0, width, height) ctx.set_source_rgba(*self._fill_color.get_rgba()) ctx.paint() ctx.new_path() ctx.move_to(0, 0) ctx.line_to(width, 0) ctx.line_to(width, height) ctx.line_to(width / 2, height - width / 2) ctx.line_to(0, height) ctx.close_path() ctx.set_source_rgba(*self._stroke_color.get_rgba()) ctx.fill() def _add_bookmark_icon(self, bookmark): self._xo_color = XoColor(str(bookmark.color)) self._fill_color = style.Color(self._xo_color.get_fill_color()) self._stroke_color = style.Color(self._xo_color.get_stroke_color()) self._bookmark_icon = Icon(icon_name='emblem-favorite', xo_color=self._xo_color, pixel_size=style.STANDARD_ICON_SIZE) self._bookmark_icon.set_valign(Gtk.Align.START) self._box.props.has_tooltip = True self.__box_query_tooltip_cb_id = self._box.connect( 'query_tooltip', self.__bookmark_query_tooltip_cb) self._box.pack_start(self._bookmark_icon, False, False, 0) self._bookmark_icon.show_all() if bookmark.is_local(): self._is_showing_local_bookmark = True def __bookmark_query_tooltip_cb(self, widget, x, y, keyboard_mode, tip): vbox = Gtk.VBox() for bookmark in self._bookmarks: tooltip_header = bookmark.get_note_title() tooltip_body = bookmark.get_note_body() time = timestamp_to_elapsed_string(bookmark.timestamp) # TRANS: This goes like Bookmark added by User 5 days ago # TRANS: (the elapsed string gets translated automatically) tooltip_footer = ( _('Bookmark added by %(user)s %(time)s') % {'user': bookmark.nick.decode('utf-8'), 'time': time.decode('utf-8')}) l = Gtk.Label('%s' % tooltip_header) l.set_use_markup(True) l.set_width_chars(40) l.set_line_wrap(True) vbox.pack_start(l, False, False, 0) l.show() l = Gtk.Label('%s' % tooltip_body) l.set_use_markup(True) l.set_alignment(0, 0) l.set_padding(2, 6) l.set_width_chars(40) l.set_line_wrap(True) l.set_justify(Gtk.Justification.FILL) vbox.pack_start(l, True, True, 0) l.show() l = Gtk.Label('%s' % tooltip_footer) l.set_use_markup(True) l.set_width_chars(40) l.set_line_wrap(True) vbox.pack_start(l, False, False, 0) l.show() tip.set_custom(vbox) return True def __event_cb(self, widget, event): if event.type == Gdk.EventType.BUTTON_PRESS: # TODO: show the first bookmark dialog = BookmarkEditDialog( self.get_toplevel().get_window(), _("Add notes for bookmark: "), self._bookmarks, self._page, self) dialog.show_all() return False def _clear_bookmarks(self): for bookmark_icon in self._box.get_children(): bookmark_icon.destroy() self._bookmark_icon = None self._is_showing_local_bookmark = False def set_bookmarkmanager(self, bookmark_manager): self._bookmark_manager = bookmark_manager def get_bookmarkmanager(self): return (self._bookmark_manager) def update_for_page(self, page): self._page = page self._clear_bookmarks() if self._bookmark_manager is None: return self._bookmarks = self._bookmark_manager.get_bookmarks_for_page(page) if self._bookmarks: self.show() else: self.hide() for bookmark in self._bookmarks: self._add_bookmark_icon(bookmark) self.set_size_request( style.GRID_CELL_SIZE, style.GRID_CELL_SIZE * (len(self._bookmarks) + 1)) self.notify_bookmark_change() def notify_bookmark_change(self): self.queue_draw() self.emit('bookmark-changed') def add_bookmark(self, page): bookmark_title = (_("%s's bookmark") % profile.get_nick_name()) bookmark_content = (_("Bookmark for page %d") % (int(page) + 1)) dialog = BookmarkAddDialog( parent_xid=self.get_toplevel().get_window(), dialog_title=_("Add notes for bookmark: "), bookmark_title=bookmark_title, bookmark_content=bookmark_content, page=page, sidebarinstance=self) dialog.show_all() def _real_add_bookmark(self, page, content): self._bookmark_manager.add_bookmark(page, unicode(content)) self.update_for_page(page) def del_bookmark(self, page): self._bookmark_manager.del_bookmark(page) self.update_for_page(page) def is_showing_local_bookmark(self): return self._is_showing_local_bookmark Read-115~dfsg/epubview/0000755000000000000000000000000012542716202013624 5ustar rootrootRead-115~dfsg/epubview/__init__.py0000644000000000000000000000160512516514624015744 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from epub import _Epub as Epub from epubview import _View as EpubView from jobs import _JobFind as JobFind Read-115~dfsg/epubview/epub.py0000644000000000000000000001440412516542420015134 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import zipfile import tempfile import os import xml.etree.ElementTree as etree import shutil import logging import navmap import epubinfo class _Epub(object): def __init__(self, _file): """ _file: can be either a path to a file (a string) or a file-like object. """ self._file = _file self._zobject = None self._opfpath = None self._ncxpath = None self._basepath = None self._tempdir = tempfile.mkdtemp() if not self._verify(): print 'Warning: This does not seem to be a valid epub file' self._get_opf() self._get_ncx() ncxfile = self._zobject.open(self._ncxpath) opffile = self._zobject.open(self._opfpath) self._navmap = navmap.NavMap(opffile, ncxfile, self._basepath) opffile = self._zobject.open(self._opfpath) self._info = epubinfo.EpubInfo(opffile) self._unzip() def _unzip(self): # This is broken upto python 2.7 # self._zobject.extractall(path = self._tempdir) orig_cwd = os.getcwd() os.chdir(self._tempdir) for name in self._zobject.namelist(): # Some weird zip file entries start with a slash, # and we don't want to write to the root directory try: if name.startswith(os.path.sep): name = name[1:] if name.endswith(os.path.sep) or name.endswith('\\'): os.makedirs(name) except: logging.error('ERROR unziping %s', name) else: self._zobject.extract(name) os.chdir(orig_cwd) def _get_opf(self): containerfile = self._zobject.open('META-INF/container.xml') tree = etree.parse(containerfile) root = tree.getroot() r_id = './/{urn:oasis:names:tc:opendocument:xmlns:container}rootfile' for element in root.iterfind(r_id): if element.get('media-type') == 'application/oebps-package+xml': self._opfpath = element.get('full-path') if self._opfpath.rpartition('/')[0]: self._basepath = self._opfpath.rpartition('/')[0] + '/' else: self._basepath = '' containerfile.close() def _get_ncx(self): opffile = self._zobject.open(self._opfpath) tree = etree.parse(opffile) root = tree.getroot() spine = root.find('.//{http://www.idpf.org/2007/opf}spine') tocid = spine.get('toc') for element in root.iterfind('.//{http://www.idpf.org/2007/opf}item'): if element.get('id') == tocid: self._ncxpath = self._basepath + element.get('href') opffile.close() def _verify(self): ''' Method to crudely check to verify that what we are dealing with is a epub file or not ''' if isinstance(self._file, basestring): if not os.path.exists(self._file): return False self._zobject = zipfile.ZipFile(self._file) if 'mimetype' not in self._zobject.namelist(): return False mtypefile = self._zobject.open('mimetype') mimetype = mtypefile.readline() # Some files seem to have trailing characters if not mimetype.startswith('application/epub+zip'): return False return True def get_toc_model(self): ''' Returns a GtkTreeModel representation of the Epub table of contents ''' return self._navmap.get_gtktreestore() def get_flattoc(self): ''' Returns a flat (linear) list of files to be rendered. ''' return self._navmap.get_flattoc() def get_basedir(self): ''' Returns the base directory where the contents of the epub has been unzipped ''' return self._tempdir def get_info(self): ''' Returns a EpubInfo object title ''' return self._info.title def write(self, file_path): '''Create the ZIP archive. The mimetype must be the first file in the archive and it must not be compressed.''' # The EPUB must contain the META-INF and mimetype files at the root, so # we'll create the archive in the working directory first # and move it later current_dir = os.getcwd() os.chdir(self._tempdir) # Open a new zipfile for writing epub = zipfile.ZipFile(file_path, 'w') # Add the mimetype file first and set it to be uncompressed epub.write('mimetype', compress_type=zipfile.ZIP_STORED) # For the remaining paths in the EPUB, add all of their files # using normal ZIP compression self._scan_dir('.', epub) epub.close() os.chdir(current_dir) def _scan_dir(self, path, epub_file): for p in os.listdir(path): logging.error('add file %s', p) if os.path.isdir(os.path.join(path, p)): self._scan_dir(os.path.join(path, p), epub_file) else: if p != 'mimetype': epub_file.write( os.path.join(path, p), compress_type=zipfile.ZIP_DEFLATED) def close(self): ''' Cleans up (closes open zip files and deletes uncompressed content of Epub. Please call this when a file is being closed or during application exit. ''' self._zobject.close() shutil.rmtree(self._tempdir) Read-115~dfsg/epubview/highlight_words.js0000644000000000000000000000640312366506317017362 0ustar rootroot var parentElement; var actualChild; var actualWord; var words; var originalNode = null; var modifiedNode = null; function trim(s) { s = ( s || '' ).replace( /^\s+|\s+$/g, '' ); return s.replace(/[\n\r\t]/g,' '); } function init() { parentElement = document.getElementsByTagName("body")[0]; actualChild = new Array(); actualWord = 0; actualChild.push(0); } function highLightNextWordInt() { var nodeList = parentElement.childNodes; ini_posi = actualChild[actualChild.length - 1]; for (var i=ini_posi; i < nodeList.length; i++) { var node = nodeList[i]; if ((node.nodeName == "#text") && (trim(node.nodeValue) != '')) { node_text = trim(node.nodeValue); words = node_text.split(" "); if (actualWord < words.length) { originalNode = document.createTextNode(node.nodeValue); prev_text = ''; for (var p1 = 0; p1 < actualWord; p1++) { prev_text = prev_text + words[p1] + " "; } var textNode1 = document.createTextNode(prev_text); var textNode2 = document.createTextNode(words[actualWord]+" "); post_text = ''; for (var p2 = actualWord + 1; p2 < words.length; p2++) { post_text = post_text + words[p2] + " "; } var textNode3 = document.createTextNode(post_text); var newParagraph = document.createElement('p'); var boldNode = document.createElement('b'); boldNode.appendChild(textNode2); newParagraph.appendChild(textNode1); newParagraph.appendChild(boldNode); newParagraph.appendChild(textNode3); parentElement.insertBefore(newParagraph, node); parentElement.removeChild(node); modifiedNode = newParagraph; actualWord = actualWord + 1; if (actualWord >= words.length) { actualChild.pop(); actualChild[actualChild.length - 1] = actualChild[actualChild.length - 1] + 2; actualWord = 0; parentElement = parentElement.parentNode; } } throw "exit"; } else { if (node.childNodes.length > 0) { parentElement = node; actualChild.push(0); actualWord = 0; highLightNextWordInt(); actualChild.pop(); } } } return; } function highLightNextWord() { if (typeof parentElement == "undefined") { init(); } if (originalNode != null) { modifiedNode.parentNode.insertBefore(originalNode, modifiedNode); modifiedNode.parentNode.removeChild(modifiedNode); } try { highLightNextWordInt(); } catch(er) { } } Read-115~dfsg/epubview/widgets.py0000644000000000000000000000734512516521305015654 0ustar rootrootimport logging from gi.repository import WebKit from gi.repository import Gdk from gi.repository import GObject class _WebView(WebKit.WebView): __gsignals__ = { 'touch-change-page': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([bool])), } def __init__(self, only_to_measure=False): WebKit.WebView.__init__(self) self._only_to_measure = only_to_measure def setup_touch(self): self.get_window().set_events( self.get_window().get_events() | Gdk.EventMask.TOUCH_MASK) self.connect('event', self.__event_cb) def __event_cb(self, widget, event): if event.type == Gdk.EventType.TOUCH_BEGIN: x = event.touch.x view_width = widget.get_allocation().width if x > view_width * 3 / 4: self.emit('touch-change-page', True) elif x < view_width * 1 / 4: self.emit('touch-change-page', False) def get_page_height(self): ''' Gets height (in pixels) of loaded (X)HTML page. This is done via javascript at the moment ''' hide_scrollbar_js = '' if self._only_to_measure: hide_scrollbar_js = \ 'document.documentElement.style.overflow = "hidden";' oldtitle = self.get_main_frame().get_title() js = """ document.documentElement.style.margin = "50px"; if (document.body == null) { document.title = 0; } else { %s document.title=Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight); }; """ % hide_scrollbar_js self.execute_script(js) ret = self.get_main_frame().get_title() logging.error('get_page_height %s', ret) self.execute_script('document.title=%s;' % oldtitle) try: return int(ret) except ValueError: return 0 def add_bottom_padding(self, incr): ''' Adds incr pixels of padding to the end of the loaded (X)HTML page. This is done via javascript at the moment ''' js = """ var newdiv = document.createElement("div"); newdiv.style.height = "%dpx"; document.body.appendChild(newdiv); """ % incr self.execute_script(js) def highlight_next_word(self): ''' Highlight next word (for text to speech) ''' self.execute_script('highLightNextWord();') def go_to_link(self, id_link): self.execute_script('window.location.href = "%s";' % id_link) def get_vertical_position_element(self, id_link): ''' Get the vertical position of a element, in pixels ''' # remove the first '#' char id_link = id_link[1:] oldtitle = self.get_main_frame().get_title() js = """ obj = document.getElementById('%s'); var top = 0; if(obj.offsetParent) { while(1) { top += obj.offsetTop; if(!obj.offsetParent) { break; }; obj = obj.offsetParent; }; } else if(obj.y) { top += obj.y; }; document.title=top;""" % id_link self.execute_script(js) ret = self.get_main_frame().get_title() self.execute_script('document.title=%s;' % oldtitle) try: return int(ret) except ValueError: return 0 Read-115~dfsg/epubview/navmap.py0000644000000000000000000000605312516473206015471 0ustar rootrootimport xml.etree.ElementTree as etree from gi.repository import Gtk class NavPoint(object): def __init__(self, label, contentsrc, children=[]): self._label = label self._contentsrc = contentsrc self._children = children def get_label(self): return self._label def get_contentsrc(self): return self._contentsrc def get_children(self): return self._children class NavMap(object): def __init__(self, opffile, ncxfile, basepath): self._basepath = basepath self._opffile = opffile self._tree = etree.parse(ncxfile) self._root = self._tree.getroot() self._gtktreestore = Gtk.TreeStore(str, str) self._flattoc = [] self._populate_flattoc() self._populate_toc() def _populate_flattoc(self): tree = etree.parse(self._opffile) root = tree.getroot() itemmap = {} manifest = root.find('.//{http://www.idpf.org/2007/opf}manifest') for element in manifest.iterfind('{http://www.idpf.org/2007/opf}item'): itemmap[element.get('id')] = element spine = root.find('.//{http://www.idpf.org/2007/opf}spine') for element in spine.iterfind('{http://www.idpf.org/2007/opf}itemref'): idref = element.get('idref') href = itemmap[idref].get('href') self._flattoc.append(self._basepath + href) self._opffile.close() def _populate_toc(self): navmap = self._root.find( '{http://www.daisy.org/z3986/2005/ncx/}navMap') for navpoint in navmap.iterfind( './{http://www.daisy.org/z3986/2005/ncx/}navPoint'): self._process_navpoint(navpoint) def _gettitle(self, navpoint): text = navpoint.find( './{http://www.daisy.org/z3986/2005/ncx/}' + 'navLabel/{http://www.daisy.org/z3986/2005/ncx/}text') return text.text def _getcontent(self, navpoint): text = navpoint.find( './{http://www.daisy.org/z3986/2005/ncx/}content') if text is not None: return self._basepath + text.get('src') else: return "" def _process_navpoint(self, navpoint, parent=None): title = self._gettitle(navpoint) content = self._getcontent(navpoint) # print title, content iter = self._gtktreestore.append(parent, [title, content]) # self._flattoc.append((title, content)) childnavpointlist = list(navpoint.iterfind( './{http://www.daisy.org/z3986/2005/ncx/}navPoint')) if len(childnavpointlist): for childnavpoint in childnavpointlist: self._process_navpoint(childnavpoint, parent=iter) else: return def get_gtktreestore(self): ''' Returns a GtkTreeModel representation of the Epub table of contents ''' return self._gtktreestore def get_flattoc(self): ''' Returns a flat (linear) list of files to be rendered. ''' return self._flattoc Read-115~dfsg/epubview/jobs.py0000644000000000000000000002271312517436304015144 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import GObject from gi.repository import Gtk import widgets import math import os.path import BeautifulSoup import threading PAGE_WIDTH = 135 PAGE_HEIGHT = 216 def _pixel_to_mm(pixel, dpi): inches = pixel / dpi return int(inches / 0.03937) def _mm_to_pixel(mm, dpi): inches = mm * 0.03937 return int(inches * dpi) class SearchThread(threading.Thread): def __init__(self, obj): threading.Thread.__init__(self) self.obj = obj self.stopthread = threading.Event() def _start_search(self): for entry in self.obj.flattoc: if self.stopthread.isSet(): break filepath = os.path.join(self.obj._document.get_basedir(), entry) f = open(filepath) if self._searchfile(f): self.obj._matchfilelist.append(entry) f.close() self.obj._finished = True GObject.idle_add(self.obj.emit, 'updated') return False def _searchfile(self, fileobj): soup = BeautifulSoup.BeautifulSoup(fileobj) body = soup.find('body') tags = body.findChildren(True) for tag in tags: if tag.string is not None: if tag.string.lower().find(self.obj._text.lower()) > -1: return True return False def run(self): self._start_search() def stop(self): self.stopthread.set() class _JobPaginator(GObject.GObject): __gsignals__ = { 'paginated': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self, filelist): GObject.GObject.__init__(self) self._filelist = filelist self._filedict = {} self._pagemap = {} self._bookheight = 0 self._count = 0 self._pagecount = 0 # TODO """ self._screen = Gdk.Screen.get_default() self._old_fontoptions = self._screen.get_font_options() options = cairo.FontOptions() options.set_hint_style(cairo.HINT_STYLE_MEDIUM) options.set_antialias(cairo.ANTIALIAS_GRAY) options.set_subpixel_order(cairo.SUBPIXEL_ORDER_DEFAULT) options.set_hint_metrics(cairo.HINT_METRICS_DEFAULT) self._screen.set_font_options(options) """ self._temp_win = Gtk.Window() self._temp_view = widgets._WebView(only_to_measure=True) settings = self._temp_view.get_settings() settings.props.default_font_family = 'DejaVu LGC Serif' settings.props.sans_serif_font_family = 'DejaVu LGC Sans' settings.props.serif_font_family = 'DejaVu LGC Serif' settings.props.monospace_font_family = 'DejaVu LGC Sans Mono' settings.props.enforce_96_dpi = True # FIXME: This does not seem to work # settings.props.auto_shrink_images = False settings.props.enable_plugins = False settings.props.default_font_size = 12 settings.props.default_monospace_font_size = 10 settings.props.default_encoding = 'utf-8' sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER) self._dpi = 96 self._single_page_height = _mm_to_pixel(PAGE_HEIGHT, self._dpi) sw.set_size_request(_mm_to_pixel(PAGE_WIDTH, self._dpi), self._single_page_height) sw.add(self._temp_view) self._temp_win.add(sw) self._temp_view.connect('load-finished', self._page_load_finished_cb) self._temp_win.show_all() self._temp_win.unmap() self._temp_view.open(self._filelist[self._count]) def get_single_page_height(self): """ Returns the height in pixels of a single page """ return self._single_page_height def get_next_filename(self, actual_filename): for n in range(len(self._filelist)): filename = self._filelist[n] if filename == actual_filename: if n < len(self._filelist): return self._filelist[n + 1] return None def _page_load_finished_cb(self, v, frame): f = v.get_main_frame() pageheight = v.get_page_height() if pageheight <= self._single_page_height: pages = 1 else: pages = pageheight / float(self._single_page_height) for i in range(1, int(math.ceil(pages) + 1)): if pages - i < 0: pagelen = (pages - math.floor(pages)) / pages else: pagelen = 1 / pages self._pagemap[float(self._pagecount + i)] = \ (f.props.uri, (i - 1) / math.ceil(pages), pagelen) self._pagecount += int(math.ceil(pages)) self._filedict[f.props.uri.replace('file://', '')] = \ (math.ceil(pages), math.ceil(pages) - pages) self._bookheight += pageheight if self._count + 1 >= len(self._filelist): # TODO # self._screen.set_font_options(self._old_fontoptions) self.emit('paginated') GObject.idle_add(self._cleanup) else: self._count += 1 self._temp_view.open(self._filelist[self._count]) def _cleanup(self): self._temp_win.destroy() def get_file_for_pageno(self, pageno): ''' Returns the file in which pageno occurs ''' return self._pagemap[pageno][0] def get_scrollfactor_pos_for_pageno(self, pageno): ''' Returns the position scrollfactor (fraction) for pageno ''' return self._pagemap[pageno][1] def get_scrollfactor_len_for_pageno(self, pageno): ''' Returns the length scrollfactor (fraction) for pageno ''' return self._pagemap[pageno][2] def get_pagecount_for_file(self, filename): ''' Returns the number of pages in file ''' return self._filedict[filename][0] def get_base_pageno_for_file(self, filename): ''' Returns the pageno which begins in filename ''' for key in self._pagemap.keys(): if self._pagemap[key][0].replace('file://', '') == filename: return key return None def get_remfactor_for_file(self, filename): ''' Returns the remainder factor (1 - fraction length of last page in file) ''' return self._filedict[filename][1] def get_total_pagecount(self): ''' Returns the total pagecount for the Epub file ''' return self._pagecount def get_total_height(self): ''' Returns the total height of the Epub in pixels ''' return self._bookheight class _JobFind(GObject.GObject): __gsignals__ = { 'updated': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self, document, start_page, n_pages, text, case_sensitive=False): """ Only case_sensitive=False is implemented """ GObject.GObject.__init__(self) self._finished = False self._document = document self._start_page = start_page self._n_pages = n_pages self._text = text self._case_sensitive = case_sensitive self.flattoc = self._document.get_flattoc() self._matchfilelist = [] self._current_file_index = 0 self.threads = [] s_thread = SearchThread(self) self.threads.append(s_thread) s_thread.start() def cancel(self): ''' Cancels the search job ''' for s_thread in self.threads: s_thread.stop() def is_finished(self): ''' Returns True if the entire search job has been finished ''' return self._finished def get_next_file(self): ''' Returns the next file which has the search pattern ''' self._current_file_index += 1 try: path = self._matchfilelist[self._current_file_index] except IndexError: self._current_file_index = 0 path = self._matchfilelist[self._current_file_index] return path def get_prev_file(self): ''' Returns the previous file which has the search pattern ''' self._current_file_index -= 1 try: path = self._matchfilelist[self._current_file_index] except IndexError: self._current_file_index = -1 path = self._matchfilelist[self._current_file_index] return path def get_search_text(self): ''' Returns the search text ''' return self._text def get_case_sensitive(self): ''' Returns True if the search is case-sensitive ''' return self._case_sensitive Read-115~dfsg/epubview/epubinfo.py0000644000000000000000000000617312516465061016021 0ustar rootrootimport xml.etree.ElementTree as etree class EpubInfo(): # TODO: Cover the entire DC range def __init__(self, opffile): self._tree = etree.parse(opffile) self._root = self._tree.getroot() self._e_metadata = self._root.find( '{http://www.idpf.org/2007/opf}metadata') self.title = self._get_title() self.creator = self._get_creator() self.date = self._get_date() self.subject = self._get_subject() self.source = self._get_source() self.rights = self._get_rights() self.identifier = self._get_identifier() self.language = self._get_language() self.summary = self._get_description() self.cover_image = self._get_cover_image() def _get_data(self, tagname): element = self._e_metadata.find(tagname) return element.text def _get_title(self): try: ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}title') except AttributeError: return None return ret def _get_description(self): try: ret = self._get_data( './/{http://purl.org/dc/elements/1.1/}description') except AttributeError: return None return ret def _get_creator(self): try: ret = self._get_data( './/{http://purl.org/dc/elements/1.1/}creator') except AttributeError: return None return ret def _get_date(self): # TODO: iter try: ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}date') except AttributeError: return None return ret def _get_source(self): try: ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}source') except AttributeError: return None return ret def _get_rights(self): try: ret = self._get_data('.//{http://purl.org/dc/elements/1.1/}rights') except AttributeError: return None return ret def _get_identifier(self): # TODO: iter element = self._e_metadata.find( './/{http://purl.org/dc/elements/1.1/}identifier') if element is not None: return {'id': element.get('id'), 'value': element.text} else: return None def _get_language(self): try: ret = self._get_data( './/{http://purl.org/dc/elements/1.1/}language') except AttributeError: return None return ret def _get_subject(self): try: subjectlist = [] for element in self._e_metadata.iterfind( './/{http://purl.org/dc/elements/1.1/}subject'): subjectlist.append(element.text) except AttributeError: return None return subjectlist def _get_cover_image(self): element = self._e_metadata.find('{http://www.idpf.org/2007/opf}meta') if element is not None and element.get('name') == 'cover': return element.get('content') else: return None Read-115~dfsg/epubview/epubview.py0000644000000000000000000006202012516515056016031 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import Gtk from gi.repository import GObject from gi.repository import Gdk import widgets import logging import os.path import math import shutil from jobs import _JobPaginator as _Paginator LOADING_HTML = '''

Loading...

''' class _View(Gtk.HBox): __gproperties__ = { 'scale': (GObject.TYPE_FLOAT, 'the zoom level', 'the zoom level of the widget', 0.5, 4.0, 1.0, GObject.PARAM_READWRITE), } __gsignals__ = { 'page-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([int, int])), 'selection-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self): GObject.threads_init() Gtk.HBox.__init__(self) self.connect("destroy", self._destroy_cb) self._ready = False self._paginator = None self._loaded_page = -1 self._file_loaded = True # self._old_scrollval = -1 self._loaded_filename = None self._pagecount = -1 self.__going_fwd = True self.__going_back = False self.__page_changed = False self._has_selection = False self.scale = 1.0 self._epub = None self._findjob = None self.__in_search = False self.__search_fwd = True self._filelist = None self._internal_link = None self._sw = Gtk.ScrolledWindow() self._view = widgets._WebView() self._view.load_string(LOADING_HTML, 'text/html', 'utf-8', '/') settings = self._view.get_settings() settings.props.default_font_family = 'DejaVu LGC Serif' settings.props.enable_plugins = False settings.props.default_encoding = 'utf-8' self._view.connect('load-finished', self._view_load_finished_cb) self._view.connect('scroll-event', self._view_scroll_event_cb) self._view.connect('key-press-event', self._view_keypress_event_cb) self._view.connect('selection-changed', self._view_selection_changed_cb) self._view.connect_after('populate-popup', self._view_populate_popup_cb) self._view.connect('touch-change-page', self.__touch_page_changed_cb) self._sw.add(self._view) self._v_vscrollbar = self._sw.get_vscrollbar() self._v_scrollbar_value_changed_cb_id = self._v_vscrollbar.connect( 'value-changed', self._v_scrollbar_value_changed_cb) self._scrollbar = Gtk.VScrollbar() self._scrollbar_change_value_cb_id = self._scrollbar.connect( 'change-value', self._scrollbar_change_value_cb) overlay = Gtk.Overlay() hbox = Gtk.HBox() overlay.add(hbox) hbox.add(self._sw) self._scrollbar.props.halign = Gtk.Align.END self._scrollbar.props.valign = Gtk.Align.FILL overlay.add_overlay(self._scrollbar) self.pack_start(overlay, True, True, 0) self._view.set_can_default(True) self._view.set_can_focus(True) def map_cp(widget): widget.setup_touch() widget.disconnect(self._setup_handle) self._setup_handle = self._view.connect('map', map_cp) def set_document(self, epubdocumentinstance): ''' Sets document (should be a Epub instance) ''' self._epub = epubdocumentinstance GObject.idle_add(self._paginate) def do_get_property(self, property): if property.name == 'has-selection': return self._has_selection elif property.name == 'scale': return self.scale else: raise AttributeError('unknown property %s' % property.name) def do_set_property(self, property, value): if property.name == 'scale': self.__set_zoom(value) else: raise AttributeError('unknown property %s' % property.name) def get_has_selection(self): ''' Returns True if any part of the content is selected ''' return self._view.can_copy_clipboard() def get_zoom(self): ''' Returns the current zoom level ''' return self.get_property('scale') * 100.0 def set_zoom(self, value): ''' Sets the current zoom level ''' scrollbar_pos = self.get_vertical_pos() self._view.set_zoom_level(value / 100.0) self.set_vertical_pos(scrollbar_pos) def _get_scale(self): ''' Returns the current zoom level ''' return self.get_property('scale') def _set_scale(self, value): ''' Sets the current zoom level ''' self.set_property('scale', value) def zoom_in(self): ''' Zooms in (increases zoom level by 0.1) ''' if self.can_zoom_in(): scrollbar_pos = self.get_vertical_pos() self._set_scale(self._get_scale() + 0.1) self.set_vertical_pos(scrollbar_pos) return True else: return False def zoom_out(self): ''' Zooms out (decreases zoom level by 0.1) ''' if self.can_zoom_out(): scrollbar_pos = self.get_vertical_pos() self._set_scale(self._get_scale() - 0.1) self.set_vertical_pos(scrollbar_pos) return True else: return False def get_vertical_pos(self): """ Used to save the scrolled position and restore when needed """ return self._v_vscrollbar.get_adjustment().get_value() def set_vertical_pos(self, position): """ Used to save the scrolled position and restore when needed """ self._v_vscrollbar.get_adjustment().set_value(position) def can_zoom_in(self): ''' Returns True if it is possible to zoom in further ''' if self.scale < 4: return True else: return False def can_zoom_out(self): ''' Returns True if it is possible to zoom out further ''' if self.scale > 0.5: return True else: return False def get_current_page(self): ''' Returns the currently loaded page ''' return self._loaded_page def get_current_file(self): ''' Returns the currently loaded XML file ''' # return self._loaded_filename if self._paginator: return self._paginator.get_file_for_pageno(self._loaded_page) else: return None def get_pagecount(self): ''' Returns the pagecount of the loaded file ''' return self._pagecount def set_current_page(self, n): ''' Loads page number n ''' if n < 1 or n > self._pagecount: return False self._load_page(n) return True def next_page(self): ''' Loads next page if possible Returns True if transition to next page is possible and done ''' if self._loaded_page == self._pagecount: return False self._load_next_page() return True def previous_page(self): ''' Loads previous page if possible Returns True if transition to previous page is possible and done ''' if self._loaded_page == 1: return False self._load_prev_page() return True def scroll(self, scrolltype, horizontal): ''' Scrolls through the pages. Scrolling is horizontal if horizontal is set to True Valid scrolltypes are: Gtk.ScrollType.PAGE_BACKWARD, Gtk.ScrollType.PAGE_FORWARD, Gtk.ScrollType.STEP_BACKWARD, Gtk.ScrollType.STEP_FORWARD Gtk.ScrollType.STEP_START and Gtk.ScrollType.STEP_STOP ''' if scrolltype == Gtk.ScrollType.PAGE_BACKWARD: self.__going_back = True self.__going_fwd = False if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.PAGES, -1) elif scrolltype == Gtk.ScrollType.PAGE_FORWARD: self.__going_back = False self.__going_fwd = True if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.PAGES, 1) elif scrolltype == Gtk.ScrollType.STEP_BACKWARD: self.__going_fwd = False self.__going_back = True if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.DISPLAY_LINES, -1) elif scrolltype == Gtk.ScrollType.STEP_FORWARD: self.__going_fwd = True self.__going_back = False if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.DISPLAY_LINES, 1) elif scrolltype == Gtk.ScrollType.START: self.__going_back = True self.__going_fwd = False if not self._do_page_transition(): self.set_current_page(1) elif scrolltype == Gtk.ScrollType.END: self.__going_back = False self.__going_fwd = True if not self._do_page_transition(): self.set_current_page(self._pagecount - 1) else: print ('Got unsupported scrolltype %s' % str(scrolltype)) def __touch_page_changed_cb(self, widget, forward): if forward: self.scroll(Gtk.ScrollType.PAGE_FORWARD, False) else: self.scroll(Gtk.ScrollType.PAGE_BACKWARD, False) def copy(self): ''' Copies the current selection to clipboard. ''' self._view.copy_clipboard() def find_next(self): ''' Highlights the next matching item for current search ''' self._view.grab_focus() if self._view.search_text(self._findjob.get_search_text(), self._findjob.get_case_sensitive(), True, False): return else: path = os.path.join(self._epub.get_basedir(), self._findjob.get_next_file()) self.__in_search = True self.__search_fwd = True self._load_file(path) def find_previous(self): ''' Highlights the previous matching item for current search ''' self._view.grab_focus() if self._view.search_text(self._findjob.get_search_text(), self._findjob.get_case_sensitive(), False, False): return else: path = os.path.join(self._epub.get_basedir(), self._findjob.get_prev_file()) self.__in_search = True self.__search_fwd = False self._load_file(path) def _find_changed(self, job): self._view.grab_focus() self._findjob = job self._mark_found_text() self.find_next() def _mark_found_text(self): self._view.unmark_text_matches() self._view.mark_text_matches( self._findjob.get_search_text(), case_sensitive=self._findjob.get_case_sensitive(), limit=0) self._view.set_highlight_text_matches(True) def __set_zoom(self, value): self._view.set_zoom_level(value) self.scale = value def _view_populate_popup_cb(self, view, menu): menu.destroy() # HACK return def _view_selection_changed_cb(self, view): self.emit('selection-changed') def _view_keypress_event_cb(self, view, event): name = Gdk.keyval_name(event.keyval) if name == 'Page_Down' or name == 'Down': self.__going_back = False self.__going_fwd = True elif name == 'Page_Up' or name == 'Up': self.__going_back = True self.__going_fwd = False self._do_page_transition() def _view_scroll_event_cb(self, view, event): if event.direction == Gdk.ScrollDirection.DOWN: self.__going_back = False self.__going_fwd = True elif event.direction == Gdk.ScrollDirection.UP: self.__going_back = True self.__going_fwd = False self._do_page_transition() def _do_page_transition(self): if self.__going_fwd: if self._v_vscrollbar.get_value() >= \ self._v_vscrollbar.props.adjustment.props.upper - \ self._v_vscrollbar.props.adjustment.props.page_size: self._load_page(self._loaded_page + 1) return True elif self.__going_back: if self._v_vscrollbar.get_value() == \ self._v_vscrollbar.props.adjustment.props.lower: self._load_page(self._loaded_page - 1) return True return False def _view_load_finished_cb(self, v, frame): self._file_loaded = True filename = self._view.props.uri.replace('file://', '') if os.path.exists(filename.replace('xhtml', 'xml')): # Hack for making javascript work filename = filename.replace('xhtml', 'xml') filename = filename.split('#')[0] # Get rid of anchors if self._loaded_page < 1 or filename is None: return False self._loaded_filename = filename remfactor = self._paginator.get_remfactor_for_file(filename) pages = self._paginator.get_pagecount_for_file(filename) extra = int(math.ceil( remfactor * self._view.get_page_height() / (pages - remfactor))) if extra > 0: self._view.add_bottom_padding(extra) if self.__in_search: self._mark_found_text() self._view.search_text(self._findjob.get_search_text(), self._findjob.get_case_sensitive(), self.__search_fwd, False) self.__in_search = False else: if self.__going_back: # We need to scroll to the last page self._scroll_page_end() else: self._scroll_page() # process_file = True if self._internal_link is not None: self._view.go_to_link(self._internal_link) vertical_pos = \ self._view.get_vertical_position_element(self._internal_link) # set the page number based in the vertical position initial_page = self._paginator.get_base_pageno_for_file(filename) self._loaded_page = initial_page + int( vertical_pos / self._paginator.get_single_page_height()) # There are epub files, created with Calibre, # where the link in the index points to the end of the previos # file to the needed chapter. # if the link is at the bottom of the page, we open the next file one_page_height = self._paginator.get_single_page_height() self._internal_link = None if vertical_pos > self._view.get_page_height() - one_page_height: logging.error('bottom page link, go to next file') next_file = self._paginator.get_next_filename(filename) if next_file is not None: logging.error('load next file %s', next_file) self.__in_search = False self.__going_back = False # process_file = False GObject.idle_add(self._load_file, next_file) # if process_file: # # prepare text to speech # html_file = open(self._loaded_filename) # soup = BeautifulSoup.BeautifulSoup(html_file) # body = soup.find('body') # tags = body.findAll(text=True) # self._all_text = ''.join([tag for tag in tags]) # self._prepare_text_to_speech(self._all_text) def _prepare_text_to_speech(self, page_text): i = 0 j = 0 word_begin = 0 word_end = 0 ignore_chars = [' ', '\n', u'\r', '_', '[', '{', ']', '}', '|', '<', '>', '*', '+', '/', '\\'] ignore_set = set(ignore_chars) self.word_tuples = [] len_page_text = len(page_text) while i < len_page_text: if page_text[i] not in ignore_set: word_begin = i j = i while j < len_page_text and page_text[j] not in ignore_set: j = j + 1 word_end = j i = j word_tuple = (word_begin, word_end, page_text[word_begin: word_end]) if word_tuple[2] != u'\r': self.word_tuples.append(word_tuple) i = i + 1 def _scroll_page_end(self): v_upper = self._v_vscrollbar.props.adjustment.props.upper # v_page_size = self._v_vscrollbar.props.adjustment.props.page_size self._v_vscrollbar.set_value(v_upper) def _scroll_page(self): pageno = self._loaded_page v_upper = self._v_vscrollbar.props.adjustment.props.upper v_page_size = self._v_vscrollbar.props.adjustment.props.page_size scrollfactor = self._paginator.get_scrollfactor_pos_for_pageno(pageno) self._v_vscrollbar.set_value((v_upper - v_page_size) * scrollfactor) def _paginate(self): filelist = [] for i in self._epub._navmap.get_flattoc(): filelist.append(os.path.join(self._epub._tempdir, i)) # init files info self._filelist = filelist self._paginator = _Paginator(filelist) self._paginator.connect('paginated', self._paginated_cb) def get_filelist(self): return self._filelist def get_tempdir(self): return self._epub._tempdir def _load_next_page(self): self._load_page(self._loaded_page + 1) def _load_prev_page(self): self._load_page(self._loaded_page - 1) def _v_scrollbar_value_changed_cb(self, scrollbar): if self._loaded_page < 1: return scrollval = scrollbar.get_value() scroll_upper = self._v_vscrollbar.props.adjustment.props.upper scroll_page_size = self._v_vscrollbar.props.adjustment.props.page_size if self.__going_fwd and not self._loaded_page == self._pagecount: if self._paginator.get_file_for_pageno(self._loaded_page) != \ self._paginator.get_file_for_pageno(self._loaded_page + 1): # We don't need this if the next page is in another file return scrollfactor_next = \ self._paginator.get_scrollfactor_pos_for_pageno( self._loaded_page + 1) if scrollval > 0: scrollfactor = scrollval / (scroll_upper - scroll_page_size) else: scrollfactor = 0 if scrollfactor >= scrollfactor_next: self._on_page_changed(self._loaded_page, self._loaded_page + 1) elif self.__going_back and self._loaded_page > 1: if self._paginator.get_file_for_pageno(self._loaded_page) != \ self._paginator.get_file_for_pageno(self._loaded_page - 1): return scrollfactor_cur = \ self._paginator.get_scrollfactor_pos_for_pageno( self._loaded_page) if scrollval > 0: scrollfactor = scrollval / (scroll_upper - scroll_page_size) else: scrollfactor = 0 if scrollfactor <= scrollfactor_cur: self._on_page_changed(self._loaded_page, self._loaded_page - 1) def _on_page_changed(self, oldpage, pageno): if oldpage == pageno: return self.__page_changed = True self._loaded_page = pageno self._scrollbar.handler_block(self._scrollbar_change_value_cb_id) self._scrollbar.set_value(pageno) self._scrollbar.handler_unblock(self._scrollbar_change_value_cb_id) # the indexes in read activity are zero based self.emit('page-changed', (oldpage - 1), (pageno - 1)) def _load_page(self, pageno): if pageno > self._pagecount or pageno < 1: # TODO: Cause an exception return if self._loaded_page == pageno: return filename = self._paginator.get_file_for_pageno(pageno) filename = filename.replace('file://', '') if filename != self._loaded_filename: self._loaded_filename = filename if not self._file_loaded: # wait until the file is loaded return self._file_loaded = False """ TODO: disabled because javascript can't be executed with the velocity needed # Copy javascript to highligth text to speech destpath, destname = os.path.split(filename.replace('file://', '')) shutil.copy('./epubview/highlight_words.js', destpath) self._insert_js_reference(filename.replace('file://', ''), destpath) IMPORTANT: Find a way to do this without modify the files now text highlight is implemented and the epub file is saved """ if filename.endswith('xml'): dest = filename.replace('xml', 'xhtml') if not os.path.exists(dest): os.symlink(filename, dest) self._view.load_uri('file://' + dest) else: self._view.load_uri('file://' + filename) else: self._loaded_page = pageno self._scroll_page() self._on_page_changed(self._loaded_page, pageno) def _insert_js_reference(self, file_name, path): js_reference = '' o = open(file_name + '.tmp', 'a') for line in open(file_name): line = line.replace('', js_reference + '') o.write(line + "\n") o.close() shutil.copy(file_name + '.tmp', file_name) def _load_file(self, path): self._internal_link = None if path.find('#') > -1: self._internal_link = path[path.find('#'):] path = path[:path.find('#')] for filepath in self._filelist: if filepath.endswith(path): self._view.load_uri('file://' + filepath) oldpage = self._loaded_page self._loaded_page = \ self._paginator.get_base_pageno_for_file(filepath) self._scroll_page() self._on_page_changed(oldpage, self._loaded_page) break def _scrollbar_change_value_cb(self, range, scrolltype, value): if scrolltype == Gtk.ScrollType.STEP_FORWARD: self.__going_fwd = True self.__going_back = False if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.DISPLAY_LINES, 1) elif scrolltype == Gtk.ScrollType.STEP_BACKWARD: self.__going_fwd = False self.__going_back = True if not self._do_page_transition(): self._view.move_cursor(Gtk.MovementStep.DISPLAY_LINES, -1) elif scrolltype == Gtk.ScrollType.JUMP or \ scrolltype == Gtk.ScrollType.PAGE_FORWARD or \ scrolltype == Gtk.ScrollType.PAGE_BACKWARD: if value > self._scrollbar.props.adjustment.props.upper: self._load_page(self._pagecount) else: self._load_page(round(value)) else: print 'Warning: unknown scrolltype %s with value %f' \ % (str(scrolltype), value) # FIXME: This should not be needed here self._scrollbar.set_value(self._loaded_page) if self.__page_changed: self.__page_changed = False return False else: return True def _paginated_cb(self, object): self._ready = True self._pagecount = self._paginator.get_total_pagecount() self._scrollbar.set_range(1.0, self._pagecount - 1.0) self._scrollbar.set_increments(1.0, 1.0) self._view.grab_focus() self._view.grab_default() def _destroy_cb(self, widget): self._epub.close() Read-115~dfsg/AUTHORS0000644000000000000000000000063312366506317013060 0ustar rootrootManusheel Gupta Marco Pesenti Gritti Tomeu Vizoso Dan Williams Eduardo Silva Simon Schampijer Reinier Heeres Guillaume Desmottes Morgan Collett Sayamindu Dasgupta (Current maintainer) Read-115~dfsg/activity/0000755000000000000000000000000012542716202013632 5ustar rootrootRead-115~dfsg/activity/activity-read.svg0000644000000000000000000000304112366506317017126 0ustar rootroot ]> Read-115~dfsg/activity/mimetypes.xml0000644000000000000000000000042112366506317016375 0ustar rootroot Epub document Read-115~dfsg/activity/activity.info0000644000000000000000000000104512520501655016343 0ustar rootroot[Activity] name = Read bundle_id = org.laptop.sugar.ReadActivity icon = activity-read exec = sugar-activity readactivity.ReadActivity activity_version = 115 mime_types = application/pdf;image/vnd.djvu;image/x.djvu;image/tiff;application/epub+zip;text/plain;application/zip;application/x-cbz license = GPLv2+ summary = Use this activity when you are ready to read! Remember to flip your computer around to feel like you are really holding a book! categories = language documents media system repository = https://github.com/godiard/read-activity.git Read-115~dfsg/icons/0000755000000000000000000000000012542716202013111 5ustar rootrootRead-115~dfsg/icons/activity-read.svg0000644000000000000000000000304012366506317016404 0ustar rootroot ]> Read-115~dfsg/icons/rotate_anticlockwise.svg0000644000000000000000000000457712366506317020074 0ustar rootroot image/svg+xml Read-115~dfsg/icons/zoom-to-width.svg0000644000000000000000000000364712366506317016375 0ustar rootroot image/svg+xml Read-115~dfsg/icons/speak.svg0000644000000000000000000000522012366506317014744 0ustar rootroot image/svg+xml Read-115~dfsg/icons/rotate_clockwise.svg0000644000000000000000000000457212366506317017213 0ustar rootroot image/svg+xml Read-115~dfsg/read_v1.db0000644000000000000000000000400012366506317013630 0ustar rootrootSQLite format 3@  ZZ#tablebookmarksbookmarksCREATE TABLE "bookmarks"( md5 text, page integer, content text, timestamp real, user text, color text, local integer ) Read-115~dfsg/speech.py0000644000000000000000000000257512366506317013640 0ustar rootroot# Copyright (C) 2008, 2009 James D. Simmons # Copyright (C) 2009 Aleksey S. Lim # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging _logger = logging.getLogger('read-activity') supported = True try: from gi.repository import Gst Gst.init(None) Gst.ElementFactory.make('espeak', None) from speech_gst import * _logger.error('use gst-plugins-espeak') except Exception, e: _logger.error('disable gst-plugins-espeak: %s' % e) try: from speech_dispatcher import * _logger.error('use speech-dispatcher') except Exception, e: supported = False _logger.error('disable speech: %s' % e) voice = 'default' pitch = 0 rate = 0 highlight_cb = None end_text_cb = None reset_cb = None Read-115~dfsg/readactivity.py0000644000000000000000000014242612517451037015055 0ustar rootroot# Copyright (C) 2007, Red Hat, Inc. # Copyright (C) 2007 Collabora Ltd. # Copyright 2008 One Laptop Per Child # Copyright 2009 Simon Schampijer # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging import os import time from gettext import gettext as _ import re import md5 import StringIO import cairo import json import emptypanel import dbus from gi.repository import GObject from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Gio GObject.threads_init() import telepathy from sugar3.activity import activity from sugar3.graphics.toolbutton import ToolButton from sugar3.graphics.toolbarbox import ToolbarBox from sugar3.graphics.toolbarbox import ToolbarButton from sugar3.graphics.toggletoolbutton import ToggleToolButton from sugar3.graphics.alert import ConfirmationAlert from sugar3.graphics.alert import Alert from sugar3.activity.widgets import ActivityToolbarButton from sugar3.activity.widgets import StopButton from sugar3.graphics.tray import HTray from sugar3 import network from sugar3 import mime from sugar3 import profile from sugar3.datastore import datastore from sugar3.graphics.objectchooser import ObjectChooser try: from sugar3.graphics.objectchooser import FILTER_TYPE_MIME_BY_ACTIVITY except: FILTER_TYPE_MIME_BY_ACTIVITY = 'mime_by_activity' from sugar3.graphics import style from readtoolbar import EditToolbar from readtoolbar import ViewToolbar from bookmarkview import BookmarkView from readdb import BookmarkManager from sugar3.graphics.menuitem import MenuItem from linkbutton import LinkButton _HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager' _HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager' _HARDWARE_MANAGER_OBJECT_PATH = '/org/laptop/HardwareManager' _TOOLBAR_READ = 2 _logger = logging.getLogger('read-activity') def _get_screen_dpi(): xft_dpi = Gtk.Settings.get_default().get_property('gtk-xft-dpi') _logger.debug('Setting dpi to %f', float(xft_dpi / 1024)) return float(xft_dpi / 1024) def get_md5(filename): # FIXME: Should be moved somewhere else filename = filename.replace('file://', '') # XXX: hack fh = open(filename) digest = md5.new() while 1: buf = fh.read(4096) if buf == "": break digest.update(buf) fh.close() return digest.hexdigest() class ReadHTTPRequestHandler(network.ChunkedGlibHTTPRequestHandler): """HTTP Request Handler for transferring document while collaborating. RequestHandler class that integrates with Glib mainloop. It writes the specified file to the client in chunks, returning control to the mainloop between chunks. """ def translate_path(self, path): """Return the filepath to the shared document.""" if path.endswith('document'): return self.server.filepath if path.endswith('metadata'): return self.server.get_metadata_path() class ReadHTTPServer(network.GlibTCPServer): """HTTP Server for transferring document while collaborating.""" def __init__(self, server_address, filepath, create_metadata_cb): """Set up the GlibTCPServer with the ReadHTTPRequestHandler. filepath -- path to shared document to be served. """ self.filepath = filepath self._create_metadata_cb = create_metadata_cb network.GlibTCPServer.__init__(self, server_address, ReadHTTPRequestHandler) def get_metadata_path(self): return self._create_metadata_cb() class ReadURLDownloader(network.GlibURLDownloader): """URLDownloader that provides content-length and content-type.""" def get_content_length(self): """Return the content-length of the download.""" if self._info is not None: return int(self._info.headers.get('Content-Length')) def get_content_type(self): """Return the content-type of the download.""" if self._info is not None: return self._info.headers.get('Content-type') return None READ_STREAM_SERVICE = 'read-activity-http' class ProgressAlert(Alert): """ Progress alert with a progressbar - to show the advance of a task """ def __init__(self, timeout=5, **kwargs): Alert.__init__(self, **kwargs) self._pb = Gtk.ProgressBar() self._msg_box.pack_start(self._pb, False, False, 0) self._pb.set_size_request(int(Gdk.Screen.width() * 9. / 10.), -1) self._pb.set_fraction(0.0) self._pb.show() def set_fraction(self, fraction): # update only by 10% fractions if int(fraction * 100) % 10 == 0: self._pb.set_fraction(fraction) self._pb.queue_draw() # force updating the progressbar while Gtk.events_pending(): Gtk.main_iteration_do(True) class ReadActivity(activity.Activity): """The Read sugar activity.""" def __init__(self, handle): activity.Activity.__init__(self, handle) self.max_participants = 1 self._document = None self._fileserver = None self._object_id = handle.object_id self._toc_model = None self.filehash = None self.connect('key-press-event', self._key_press_event_cb) self.connect('key-release-event', self._key_release_event_cb) _logger.debug('Starting Read...') self._view = None self.dpi = _get_screen_dpi() self._bookmark_view = BookmarkView() self._bookmark_view.connect('bookmark-changed', self._update_bookmark_cb) tray = HTray() self.set_tray(tray, Gtk.PositionType.BOTTOM) toolbar_box = ToolbarBox() self.activity_button = ActivityToolbarButton(self) toolbar_box.toolbar.insert(self.activity_button, 0) self.activity_button.show() self._edit_toolbar = EditToolbar() self._edit_toolbar.undo.props.visible = False self._edit_toolbar.redo.props.visible = False self._edit_toolbar.separator.props.visible = False self._edit_toolbar.copy.set_sensitive(False) self._edit_toolbar.copy.connect('clicked', self._edit_toolbar_copy_cb) self._edit_toolbar.paste.props.visible = False edit_toolbar_button = ToolbarButton(page=self._edit_toolbar, icon_name='toolbar-edit') self._edit_toolbar.show() toolbar_box.toolbar.insert(edit_toolbar_button, -1) edit_toolbar_button.show() self._highlight = self._edit_toolbar.highlight self._highlight_id = self._highlight.connect('clicked', self.__highlight_cb) self._view_toolbar = ViewToolbar() self._view_toolbar.connect('go-fullscreen', self.__view_toolbar_go_fullscreen_cb) self._view_toolbar.connect('toggle-index-show', self.__toogle_navigator_cb) self._view_toolbar.connect('toggle-tray-show', self.__toogle_tray_cb) view_toolbar_button = ToolbarButton(page=self._view_toolbar, icon_name='toolbar-view') self._view_toolbar.show() toolbar_box.toolbar.insert(view_toolbar_button, -1) view_toolbar_button.show() self._back_button = self._create_back_button() toolbar_box.toolbar.insert(self._back_button, -1) self._back_button.show() self._forward_button = self._create_forward_button() toolbar_box.toolbar.insert(self._forward_button, -1) self._forward_button.show() num_page_item = Gtk.ToolItem() self._num_page_entry = self._create_search() num_page_item.add(self._num_page_entry) self._num_page_entry.show() toolbar_box.toolbar.insert(num_page_item, -1) num_page_item.show() total_page_item = Gtk.ToolItem() self._total_page_label = Gtk.Label() total_page_item.add(self._total_page_label) self._total_page_label.show() self._total_page_label.set_margin_right(5) toolbar_box.toolbar.insert(total_page_item, -1) total_page_item.show() self._bookmarker = ToggleToolButton('emblem-favorite') self._bookmarker_toggle_handler_id = self._bookmarker.connect( 'toggled', self.__bookmarker_toggled_cb) self._bookmarker.show() toolbar_box.toolbar.insert(self._bookmarker, -1) self.speech_toolbar_button = ToolbarButton(icon_name='speak') toolbar_box.toolbar.insert(self.speech_toolbar_button, -1) separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_size_request(0, -1) separator.set_expand(True) toolbar_box.toolbar.insert(separator, -1) separator.show() stop_button = StopButton(self) toolbar_box.toolbar.insert(stop_button, -1) stop_button.show() self.set_toolbar_box(toolbar_box) toolbar_box.show() # This is needed to prevent the call of read_file on # canvas map, becuase interact in a bad way with the emptypanel # the program takes responsability of this task. self._read_file_called = True self._vbox = Gtk.VBox() self._vbox.show() overlay = Gtk.Overlay() self._hbox = Gtk.HBox() self._hbox.show() overlay.add(self._hbox) self._bookmark_view.props.halign = Gtk.Align.END self._bookmark_view.props.valign = Gtk.Align.START # HACK: This is to calculate the scrollbar width # defined in sugar-artwork gtk-widgets.css.em if style.zoom(1): scrollbar_width = 15 else: scrollbar_width = 11 self._bookmark_view.props.margin_right = scrollbar_width overlay.add_overlay(self._bookmark_view) overlay.show() self._vbox.pack_start(overlay, True, True, 0) self.set_canvas(self._vbox) self._navigator = self._create_navigator() # Set up for idle suspend self._idle_timer = 0 self._service = None # start with sleep off self._sleep_inhibit = True self.unused_download_tubes = set() self._want_document = True self._download_content_length = 0 self._download_content_type = None # Status of temp file used for write_file: self._tempfile = None self._close_requested = False fname = os.path.join('/etc', 'inhibit-ebook-sleep') if not os.path.exists(fname): try: bus = dbus.SystemBus() proxy = bus.get_object(_HARDWARE_MANAGER_SERVICE, _HARDWARE_MANAGER_OBJECT_PATH) self._service = dbus.Interface(proxy, _HARDWARE_MANAGER_INTERFACE) self._scrolled.props.vadjustment.connect("value-changed", self._user_action_cb) self._scrolled.props.hadjustment.connect("value-changed", self._user_action_cb) self.connect("focus-in-event", self._focus_in_event_cb) self.connect("focus-out-event", self._focus_out_event_cb) self.connect("notify::active", self._now_active_cb) _logger.debug('Suspend on idle enabled') except dbus.DBusException: _logger.info( 'Hardware manager service not found, no idle suspend.') else: _logger.debug('Suspend on idle disabled') self.connect("shared", self._shared_cb) h = hash(self._activity_id) self.port = 1024 + (h % 64511) self._progress_alert = None if self._jobject.file_path is not None and \ self._jobject.file_path != '': self.read_file(self._jobject.file_path) elif handle.uri: self._load_document(handle.uri) # TODO: we need trasfer the metadata and uodate # bookmarks and urls elif self.shared_activity: # We're joining if self.get_shared(): # Already joined for some reason, just get the document self._joined_cb(self) else: self._progress_alert = ProgressAlert() self._progress_alert.props.title = _('Please wait') self._progress_alert.props.msg = _('Starting connection...') self.add_alert(self._progress_alert) # Wait for a successful join before trying to get the document self.connect("joined", self._joined_cb) else: # Not joining, not resuming or resuming session without file emptypanel.show(self, 'activity-read', _('No book'), _('Choose something to read'), self._show_journal_object_picker_cb) def _create_back_button(self): back = ToolButton('go-previous-paired') back.set_tooltip(_('Back')) back.props.sensitive = False palette = back.get_palette() previous_page = MenuItem(text_label=_("Previous page")) previous_page.show() previous_bookmark = MenuItem(text_label=_("Previous bookmark")) previous_bookmark.show() palette.menu.append(previous_page) palette.menu.append(previous_bookmark) back.connect('clicked', self.__go_back_cb) previous_page.connect('activate', self.__go_back_page_cb) previous_bookmark.connect('activate', self.__prev_bookmark_activate_cb) return back def _create_forward_button(self): forward = ToolButton('go-next-paired') forward.set_tooltip(_('Forward')) forward.props.sensitive = False palette = forward.get_palette() next_page = MenuItem(text_label=_("Next page")) next_page.show() next_bookmark = MenuItem(text_label=_("Next bookmark")) next_bookmark.show() palette.menu.append(next_page) palette.menu.append(next_bookmark) forward.connect('clicked', self.__go_forward_cb) next_page.connect('activate', self.__go_forward_page_cb) next_bookmark.connect('activate', self.__next_bookmark_activate_cb) return forward def _create_search(self): num_page_entry = Gtk.Entry() num_page_entry.set_text('0') num_page_entry.set_alignment(1) num_page_entry.connect('insert-text', self.__num_page_entry_insert_text_cb) num_page_entry.connect('activate', self.__num_page_entry_activate_cb) num_page_entry.set_width_chars(4) return num_page_entry def _set_total_page_label(self, value): self._total_page_label.set_text(' / %s' % value) def show_navigator_button(self): self._view_toolbar.show_nav_button() def _create_navigator(self): def __cursor_changed_cb(treeview): selection = treeview.get_selection() store, index_iter = selection.get_selected() if index_iter is None: # Nothing selected. This happens at startup return if store.iter_has_child(index_iter): path = store.get_path(index_iter) if treeview.row_expanded(path): treeview.collapse_row(path) else: treeview.expand_row(path, False) self._toc_visible = False self._update_toc_view = False toc_navigator = Gtk.TreeView() toc_navigator.set_enable_search(False) toc_navigator.connect('cursor-changed', __cursor_changed_cb) toc_selection = toc_navigator.get_selection() toc_selection.set_mode(Gtk.SelectionMode.SINGLE) cell = Gtk.CellRendererText() self.treecol_toc = Gtk.TreeViewColumn(_('Index'), cell, text=0) toc_navigator.append_column(self.treecol_toc) self._toc_scroller = Gtk.ScrolledWindow(hadjustment=None, vadjustment=None) self._toc_scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self._toc_scroller.add(toc_navigator) self._hbox.pack_start(self._toc_scroller, expand=False, fill=False, padding=0) self._toc_separator = Gtk.VSeparator() self._hbox.pack_start(self._toc_separator, expand=False, fill=False, padding=1) return toc_navigator def set_navigator_model(self, model): self._toc_model = model self._navigator.set_model(model) def __toogle_navigator_cb(self, button, visible): scrollbar_pos = -1 if hasattr(self._view, 'get_vertical_pos'): scrollbar_pos = self._view.get_vertical_pos() if visible: self._toc_visible = True self._update_toc_view = True self._toc_select_active_page() self._toc_scroller.set_size_request(int(Gdk.Screen.width() / 4), -1) self._toc_scroller.show_all() self._toc_separator.show() else: self._toc_visible = False self._toc_scroller.hide() self._toc_separator.hide() if scrollbar_pos > -1: self._view.set_vertical_pos(scrollbar_pos) def __toogle_tray_cb(self, button, visible): if visible: logging.error('Show tray') self.tray.show() else: logging.error('Hide tray') self.tray.hide() def __num_page_entry_insert_text_cb(self, entry, text, length, position): if not re.match('[0-9]', text): entry.emit_stop_by_name('insert-text') return True return False def __num_page_entry_activate_cb(self, entry): if entry.props.text: page = int(entry.props.text) - 1 else: page = 0 self._view.set_current_page(page) entry.props.text = str(page + 1) def __go_back_cb(self, button): self._view.scroll(Gtk.ScrollType.PAGE_BACKWARD, False) def __go_forward_cb(self, button): self._view.scroll(Gtk.ScrollType.PAGE_FORWARD, False) def __go_back_page_cb(self, button): self._view.previous_page() def __go_forward_page_cb(self, button): self._view.next_page() def __highlight_cb(self, button): self._view.toggle_highlight(button.get_active()) def __prev_bookmark_activate_cb(self, menuitem): page = self._view.get_current_page() prev_bookmark = self._bookmarkmanager.get_prev_bookmark_for_page(page) if prev_bookmark is not None: self._view.set_current_page(prev_bookmark.page_no) def __next_bookmark_activate_cb(self, menuitem): page = self._view.get_current_page() next_bookmark = self._bookmarkmanager.get_next_bookmark_for_page(page) if next_bookmark is not None: self._view.set_current_page(next_bookmark.page_no) def __bookmarker_toggled_cb(self, button): page = self._view.get_current_page() if self._bookmarker.props.active: self._bookmark_view.add_bookmark(page) else: alert = ConfirmationAlert() alert.props.title = _('Delete bookmark') alert.props.msg = _('All the information related ' 'with this bookmark will be lost') self.add_alert(alert) alert.connect('response', self.__alert_response_cb, page) alert.show() def __alert_response_cb(self, alert, response_id, page): self.remove_alert(alert) if response_id is Gtk.ResponseType.OK: self._bookmark_view.del_bookmark(page) elif response_id is Gtk.ResponseType.CANCEL: self._bookmarker.handler_block(self._bookmarker_toggle_handler_id) self._bookmarker.props.active = True self._bookmarker.handler_unblock( self._bookmarker_toggle_handler_id) def __page_changed_cb(self, model, page_from, page_to): self._update_nav_buttons(page_to) if self._toc_model is not None: self._toc_select_active_page() self._bookmark_view.update_for_page(page_to) self.update_bookmark_button() if self._view.can_highlight(): self._view.show_highlights(page_to) def _update_bookmark_cb(self, sidebar): logging.error('update bookmark event') self.update_bookmark_button() def update_bookmark_button(self): self._bookmarker.handler_block(self._bookmarker_toggle_handler_id) self._bookmarker.props.active = \ self._bookmark_view.is_showing_local_bookmark() self._bookmarker.handler_unblock(self._bookmarker_toggle_handler_id) def _update_nav_buttons(self, current_page): self._back_button.props.sensitive = current_page > 0 self._forward_button.props.sensitive = \ current_page < self._view.get_pagecount() - 1 self._num_page_entry.props.text = str(current_page + 1) self._set_total_page_label(self._view.get_pagecount()) def _update_toc(self): if self._view.update_toc(self): self._navigator_changed_handler_id = \ self._navigator.connect('cursor-changed', self.__navigator_cursor_changed_cb) def __navigator_cursor_changed_cb(self, toc_treeview): if toc_treeview.get_selection() is None: return treestore, toc_selected = toc_treeview.get_selection().get_selected() if toc_selected is not None: link = self._toc_model.get(toc_selected, 1)[0] logging.debug('View handle link %s', link) self._update_toc_view = False self._view.handle_link(link) self._update_toc_view = True def _toc_select_active_page(self): if not self._toc_visible or not self._update_toc_view: return _store, toc_selected = self._navigator.get_selection().get_selected() if toc_selected is not None: selected_link = self._toc_model.get(toc_selected, 1)[0] else: selected_link = "" current_link = self._view.get_current_link() if current_link == selected_link: return link_iter = self._view.get_link_iter(current_link) if link_iter is not None: self._navigator.handler_block(self._navigator_changed_handler_id) toc_selection = self._navigator.get_selection() toc_selection.select_iter(link_iter) self._navigator.handler_unblock(self._navigator_changed_handler_id) else: logging.debug('link "%s" not found in the toc model', current_link) def _show_journal_object_picker_cb(self, button): """Show the journal object picker to load a document. This is for if Read is launched without a document. """ if not self._want_document: return try: chooser = ObjectChooser(parent=self, what_filter=self.get_bundle_id(), filter_type=FILTER_TYPE_MIME_BY_ACTIVITY) except: chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_TEXT) try: result = chooser.run() if result == Gtk.ResponseType.ACCEPT: logging.debug('ObjectChooser: %r' % chooser.get_selected_object()) jobject = chooser.get_selected_object() if jobject and jobject.file_path: for key in jobject.metadata.keys(): self.metadata[key] = jobject.metadata[key] self.read_file(jobject.file_path) jobject.object_id = self._object_id finally: chooser.destroy() del chooser def _now_active_cb(self, widget, pspec): if self.props.active: # Now active, start initial suspend timeout if self._idle_timer > 0: GObject.source_remove(self._idle_timer) self._idle_timer = GObject.timeout_add_seconds(15, self._suspend_cb) self._sleep_inhibit = False else: # Now inactive self._sleep_inhibit = True def _focus_in_event_cb(self, widget, event): """Enable ebook mode idle sleep since Read has focus.""" self._sleep_inhibit = False self._user_action_cb(self) def _focus_out_event_cb(self, widget, event): """Disable ebook mode idle sleep since Read lost focus.""" self._sleep_inhibit = True def _user_action_cb(self, widget): """Set a timer for going back to ebook mode idle sleep.""" if self._idle_timer > 0: GObject.source_remove(self._idle_timer) self._idle_timer = GObject.timeout_add_seconds(5, self._suspend_cb) def _suspend_cb(self): """Go into ebook mode idle sleep.""" # If the machine has been idle for 5 seconds, suspend self._idle_timer = 0 if not self._sleep_inhibit and not self.get_shared(): self._service.set_kernel_suspend() return False def read_file(self, file_path): """Load a file from the datastore on activity start.""" _logger.debug('ReadActivity.read_file: %s', file_path) # enable collaboration self.activity_button.page.share.props.sensitive = True # we need copy the file to a new place, the file_path disappear extension = os.path.splitext(file_path)[1] tempfile = os.path.join(self.get_activity_root(), 'instance', 'tmp%i%s' % (time.time(), extension)) os.link(file_path, tempfile) self._load_document('file://' + tempfile) # FIXME: This should obviously be fixed properly GObject.timeout_add_seconds( 1, self.__view_toolbar_needs_update_size_cb, None) def write_file(self, file_path): """Write into datastore for Keep. The document is saved by hardlinking from the temporary file we keep around instead of "saving". The metadata is updated, including current page, view settings, search text. """ if self._tempfile is None: # Workaround for closing Read with no document loaded raise NotImplementedError try: self.metadata['Read_current_page'] = \ str(self._view.get_current_page()) self._view.update_metadata(self) self.metadata['Read_search'] = \ self._edit_toolbar._search_entry.props.text except Exception, e: _logger.error('write_file(): %s', e) self.metadata['Read_search'] = \ self._edit_toolbar._search_entry.props.text self.metadata['activity'] = self.get_bundle_id() # the file is only saved if modified saved = False if hasattr(self._view, 'save'): saved = self._view.save(file_path) if saved: self.filehash = get_md5(file_path) self.metadata['filehash'] = self.filehash else: os.link(self._tempfile, file_path) if self.filehash is None: self.filehash = get_md5(file_path) self.metadata['filehash'] = self.filehash self._save_bookmars_in_metadata() if self._close_requested: _logger.debug("Removing temp file %s because we will close", self._tempfile) os.unlink(self._tempfile) # remove file used to transmit the metadata if exits try: metadata_file_path = self._tempfile + '.json' os.unlink(metadata_file_path) except OSError: pass self._tempfile = None def _save_bookmars_in_metadata(self): # save bookmarks in the metadata bookmarks = [] for bookmark in self._bookmarkmanager.get_bookmarks(): bookmarks.append(bookmark.get_as_dict()) self.metadata['bookmarks'] = json.dumps(bookmarks) self.metadata['highlights'] = json.dumps( self._bookmarkmanager.get_all_highlights()) def can_close(self): """Prepare to cleanup on closing. Called from self.close() """ self._close_requested = True return True def _download_result_cb(self, getter, tempfile, suggested_name, tube_id, tube_ip, tube_port): if self._download_content_type == 'text/html': # got an error page instead self._download_error_cb(getter, 'HTTP Error', tube_id) return del self.unused_download_tubes # Use the suggested file, the mime is not recognized if the extension # is wrong in some cases (epub) temp_dir = os.path.dirname(tempfile) new_name = os.path.join(temp_dir, suggested_name) os.rename(tempfile, new_name) tempfile = new_name _logger.debug("Saving file %s to datastore...", tempfile) mimetype = Gio.content_type_guess(tempfile, None)[0] self._jobject.metadata['mime_type'] = mimetype self._jobject.file_path = tempfile datastore.write(self._jobject) _logger.debug("Got document %s (%s) from tube %u", tempfile, suggested_name, tube_id) if self._progress_alert is not None: self.remove_alert(self._progress_alert) self._progress_alert = None # download the metadata GObject.idle_add(self._download_metadata, tube_id, tube_ip, tube_port) def _download_metadata_result_cb(self, getter, tempfile, suggested_name, tube_id): # load the shared metadata with open(tempfile) as json_file: shared_metadata = json.load(json_file) os.remove(tempfile) # load the object from the datastore to update the file path GObject.idle_add(self._open_downloaded_file, shared_metadata) def _open_downloaded_file(self, shared_metadata): self._jobject = datastore.get(self._jobject.object_id) for key in shared_metadata.keys(): self.metadata[key] = shared_metadata[key] self.read_file(self._jobject.file_path) def _download_progress_cb(self, getter, bytes_downloaded, tube_id): # FIXME: Draw a progress bar if self._download_content_length > 0: _logger.debug("Downloaded %u of %u bytes from tube %u...", bytes_downloaded, self._download_content_length, tube_id) fraction = float(bytes_downloaded) / \ float(self._download_content_length) self._progress_alert.set_fraction(fraction) else: _logger.debug("Downloaded %u bytes from tube %u...", bytes_downloaded, tube_id) def _download_error_cb(self, getter, err, tube_id): _logger.debug("Error getting document from tube %u: %s", tube_id, err) self._want_document = True self._download_content_length = 0 self._download_content_type = None if self._progress_alert is not None: self.remove_alert(self._progress_alert) self._progress_alert = None GObject.idle_add(self._get_document) def _get_connection_params(self, tube_id): # return ip and port to download a file chan = self.shared_activity.telepathy_tubes_chan iface = chan[telepathy.CHANNEL_TYPE_TUBES] addr = iface.AcceptStreamTube( tube_id, telepathy.SOCKET_ADDRESS_TYPE_IPV4, telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0, utf8_strings=True) _logger.debug('Accepted stream tube: listening address is %r', addr) # SOCKET_ADDRESS_TYPE_IPV4 is defined to have addresses of type '(sq)' assert isinstance(addr, dbus.Struct) assert len(addr) == 2 assert isinstance(addr[0], str) assert isinstance(addr[1], (int, long)) assert addr[1] > 0 and addr[1] < 65536 ip = addr[0] port = int(addr[1]) return ip, port def _download_document(self, tube_id): ip, port = self._get_connection_params(tube_id) getter = ReadURLDownloader("http://%s:%d/document" % (ip, port)) getter.connect("finished", self._download_result_cb, tube_id, ip, port) getter.connect("progress", self._download_progress_cb, tube_id) getter.connect("error", self._download_error_cb, tube_id) getter.start() self._download_content_length = getter.get_content_length() self._download_content_type = getter.get_content_type() return False def _download_metadata(self, tube_id, ip, port): getter = ReadURLDownloader("http://%s:%d/metadata" % (ip, port)) getter.connect("finished", self._download_metadata_result_cb, tube_id) # getter.connect("progress", self._download_progress_cb, tube_id) getter.connect("error", self._download_error_cb, tube_id) getter.start() self._download_content_length = getter.get_content_length() self._download_content_type = getter.get_content_type() return False def _get_document(self): if not self._want_document: return False # Pick an arbitrary tube we can try to download the document from try: tube_id = self.unused_download_tubes.pop() except (ValueError, KeyError), e: _logger.debug('No tubes to get the document from right now: %s', e) return False # Avoid trying to download the document multiple times at once self._want_document = False GObject.idle_add(self._download_document, tube_id) return False def _joined_cb(self, also_self): """Callback for when a shared activity is joined. Get the shared document from another participant. """ self.watch_for_tubes() if self._progress_alert is not None: self._progress_alert.props.msg = _('Receiving book...') GObject.idle_add(self._get_document) def _load_document(self, filepath): """Load the specified document and set up the UI. filepath -- string starting with file:// """ if self._tempfile is not None: # prevent reopen return self.set_canvas(self._vbox) filename = filepath.replace('file://', '') self._tempfile = filename if not os.path.exists(filename) or os.path.getsize(filename) == 0: return if 'mime_type' not in self.metadata or not self.metadata['mime_type']: mimetype = Gio.content_type_guess(filepath, None)[0] self.metadata['mime_type'] = mimetype else: mimetype = self.metadata['mime_type'] if mimetype == 'application/epub+zip': import epubadapter self._view = epubadapter.EpubViewer() elif mimetype == 'text/plain' or mimetype == 'application/zip': import textadapter self._view = textadapter.TextViewer() elif mimetype == 'application/x-cbz': import comicadapter self._view = comicadapter.ComicViewer() else: import evinceadapter self._view = evinceadapter.EvinceViewer() self._view.setup(self) self._view.load_document(filepath) self._want_document = False self._view_toolbar.set_view(self._view) self._edit_toolbar.set_view(self._view) self.filehash = self.metadata.get('filehash', None) if self.filehash is None: self.filehash = get_md5(filepath) logging.error('Calculate hash %s', self.filehash) self._bookmarkmanager = BookmarkManager(self.filehash) # update bookmarks and highlights with the informaiton # from the metadata if 'bookmarks' in self.metadata: self._bookmarkmanager.update_bookmarks( json.loads(self.metadata['bookmarks'])) if 'highlights' in self.metadata: self._bookmarkmanager.update_highlights( json.loads(self.metadata['highlights'])) self._bookmarkmanager.connect('added_bookmark', self._added_bookmark_cb) self._bookmarkmanager.connect('removed_bookmark', self._removed_bookmark_cb) # Add the bookmarks to the tray for bookmark in self._bookmarkmanager.get_bookmarks(): page = bookmark.page_no thumb = self._bookmarkmanager.get_bookmark_preview(page) if thumb is None: logging.error('Preview NOT FOUND') thumb = self._get_screenshot() # The database is zero based num_page = int(page) + 1 title = _('%s (Page %d)') % \ (bookmark.get_note_title(), num_page) self._add_link_totray(num_page, thumb, bookmark.color, title, bookmark.nick, bookmark.local) self._bookmark_view.set_bookmarkmanager(self._bookmarkmanager) self._update_toc() self._view.connect_page_changed_handler(self.__page_changed_cb) self._view.load_metadata(self) self._update_toolbars() self._edit_toolbar._search_entry.props.text = \ self.metadata.get('Read_search', '') current_page = int(self.metadata.get('Read_current_page', '0')) _logger.debug('Setting page to: %d', current_page) self._view.set_current_page(current_page) self._update_nav_buttons(current_page) # README: bookmark sidebar is not showing the bookmark in the # first page because this is updated just if the page number changes if current_page == 0: self._bookmark_view.update_for_page(current_page) # We've got the document, so if we're a shared activity, offer it try: if self.get_shared(): self.watch_for_tubes() self._share_document() except Exception, e: _logger.debug('Sharing failed: %s', e) def _update_toolbars(self): self._view_toolbar._update_zoom_buttons() if self._view.can_highlight(): self._highlight.show() if self._view.can_do_text_to_speech(): import speech from speechtoolbar import SpeechToolbar if speech.supported: self.speech_toolbar = SpeechToolbar(self) self.speech_toolbar_button.set_page(self.speech_toolbar) self.speech_toolbar_button.show() def _share_document(self): """Share the document.""" # FIXME: should ideally have the fileserver listen on a Unix socket # instead of IPv4 (might be more compatible with Rainbow) _logger.debug('Starting HTTP server on port %d', self.port) self._fileserver = ReadHTTPServer(("", self.port), self._tempfile, self.create_metadata_file) # Make a tube for it chan = self.shared_activity.telepathy_tubes_chan iface = chan[telepathy.CHANNEL_TYPE_TUBES] self._fileserver_tube_id = iface.OfferStreamTube( READ_STREAM_SERVICE, {}, telepathy.SOCKET_ADDRESS_TYPE_IPV4, ('127.0.0.1', dbus.UInt16(self.port)), telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0) def create_metadata_file(self): # store the metadata in a json file self._save_bookmars_in_metadata() metadata_file_path = self._tempfile + '.json' shared_metadata = {} for key in self.metadata.keys(): if key not in ['preview', 'cover_image']: shared_metadata[str(key)] = self.metadata[key] logging.error('save metadata in %s', metadata_file_path) with open(metadata_file_path, 'w') as json_file: json.dump(shared_metadata, json_file) return metadata_file_path def watch_for_tubes(self): """Watch for new tubes.""" tubes_chan = self.shared_activity.telepathy_tubes_chan tubes_chan[telepathy.CHANNEL_TYPE_TUBES].connect_to_signal( 'NewTube', self._new_tube_cb) tubes_chan[telepathy.CHANNEL_TYPE_TUBES].ListTubes( reply_handler=self._list_tubes_reply_cb, error_handler=self._list_tubes_error_cb) def _new_tube_cb(self, tube_id, initiator, tube_type, service, params, state): """Callback when a new tube becomes available.""" _logger.debug('New tube: ID=%d initator=%d type=%d service=%s ' 'params=%r state=%d', tube_id, initiator, tube_type, service, params, state) if self._view is None and service == READ_STREAM_SERVICE: _logger.debug('I could download from that tube') self.unused_download_tubes.add(tube_id) # if no download is in progress, let's fetch the document if self._want_document: GObject.idle_add(self._get_document) def _list_tubes_reply_cb(self, tubes): """Callback when new tubes are available.""" for tube_info in tubes: self._new_tube_cb(*tube_info) def _list_tubes_error_cb(self, e): """Handle ListTubes error by logging.""" _logger.error('ListTubes() failed: %s', e) def _shared_cb(self, activityid): """Callback when activity shared. Set up to share the document. """ # We initiated this activity and have now shared it, so by # definition we have the file. _logger.debug('Activity became shared') self.watch_for_tubes() self._share_document() def _view_selection_changed_cb(self, view): self._edit_toolbar.copy.props.sensitive = view.get_has_selection() if self._view.can_highlight(): in_bounds, _highlight_found = self._view.in_highlight() self._highlight.props.sensitive = \ view.get_has_selection() or in_bounds self._highlight.handler_block(self._highlight_id) self._highlight.set_active(in_bounds) self._highlight.handler_unblock(self._highlight_id) def _edit_toolbar_copy_cb(self, button): self._view.copy() def _key_press_event_cb(self, widget, event): if self.activity_button.page.title.has_focus() or \ self._num_page_entry.has_focus(): return False keyname = Gdk.keyval_name(event.keyval) if keyname == 'c' and event.state & Gdk.ModifierType.CONTROL_MASK: self._view.copy() return True elif keyname == 'KP_Home': # FIXME: refactor later to self.zoom_in() self._view_toolbar.zoom_in() return True elif keyname == 'KP_End': self._view_toolbar.zoom_out() return True elif keyname == 'Home': self._view.scroll(Gtk.ScrollType.START, False) return True elif keyname == 'End': self._view.scroll(Gtk.ScrollType.END, False) return True elif keyname == 'Page_Up' or keyname == 'KP_Page_Up': self._view.scroll(Gtk.ScrollType.PAGE_BACKWARD, False) return True elif keyname == 'Page_Down' or keyname == 'KP_Page_Down': self._view.scroll(Gtk.ScrollType.PAGE_FORWARD, False) return True elif keyname == 'Up' or keyname == 'KP_Up': self._view.scroll(Gtk.ScrollType.STEP_BACKWARD, False) return True elif keyname == 'Down' or keyname == 'KP_Down': self._view.scroll(Gtk.ScrollType.STEP_FORWARD, False) return True elif keyname == 'Left' or keyname == 'KP_Left': self._view.scroll(Gtk.ScrollType.STEP_BACKWARD, True) return True elif keyname == 'Right' or keyname == 'KP_Right': self._view.scroll(Gtk.ScrollType.STEP_FORWARD, True) return True else: return False def _key_release_event_cb(self, widget, event): # keyname = Gdk.keyval_name(event.keyval) # _logger.debug("Keyname Release: %s, time: %s", keyname, event.time) return False def __view_toolbar_needs_update_size_cb(self, view_toolbar): if hasattr(self._view, 'update_view_size'): self._view.update_view_size(self._scrolled) else: return False # No need again to run this again and def __view_toolbar_go_fullscreen_cb(self, view_toolbar): self.fullscreen() def _added_bookmark_cb(self, bookmarkmanager, page, title): logging.error('Bookmark added page %d', page) title = _('%s (Page %d)') % (title, page) color = profile.get_color().to_string() owner = profile.get_nick_name() thumb = self._get_screenshot() self._add_link_totray(page, thumb, color, title, owner, 1) bookmarkmanager.add_bookmark_preview(page - 1, thumb) def _removed_bookmark_cb(self, bookmarkmanager, page): logging.error('Bookmark removed page %d', page) # remove button from tray for button in self.tray.get_children(): if button.page == page: self.tray.remove_item(button) if len(self.tray.get_children()) == 0: self.tray.hide() self._view_toolbar.traybutton.props.active = False def _add_link_totray(self, page, buf, color, title, owner, local): ''' add a link to the tray ''' item = LinkButton(buf, color, title, owner, page, local) item.connect('clicked', self._bookmark_button_clicked_cb, page) item.connect('go_to_bookmark', self._bookmark_button_clicked_cb) item.connect('remove_link', self._bookmark_button_removed_cb) self.tray.show() self.tray.add_item(item) item.show() self._view_toolbar.traybutton.props.active = True def _bookmark_button_clicked_cb(self, button, page): num_page = int(page) - 1 self._view.set_current_page(num_page) if not button.have_preview(): # HACK: we need take the screenshot after the page changed # but we don't have a event yet, Evince model have a event # we need check the differnt backends and implement # in all the backends. GObject.timeout_add_seconds(2, self._update_preview, button, page) def _update_preview(self, button, page): thumb = self._get_screenshot() self._bookmarkmanager.add_bookmark_preview(page - 1, thumb) button.set_image(thumb) return False def _bookmark_button_removed_cb(self, button, page): num_page = int(page) - 1 self._bookmark_view.del_bookmark(num_page) def _get_screenshot(self): """Copied from activity.get_preview() """ if self.canvas is None or not hasattr(self.canvas, 'get_window'): return None window = self.canvas.get_window() if window is None: return None alloc = self.canvas.get_allocation() dummy_cr = Gdk.cairo_create(window) target = dummy_cr.get_target() canvas_width, canvas_height = alloc.width, alloc.height screenshot_surface = target.create_similar(cairo.CONTENT_COLOR, canvas_width, canvas_height) del dummy_cr, target cr = cairo.Context(screenshot_surface) r, g, b, a_ = style.COLOR_PANEL_GREY.get_rgba() cr.set_source_rgb(r, g, b) cr.paint() self.canvas.draw(cr) del cr preview_width, preview_height = style.zoom(100), style.zoom(80) preview_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, preview_width, preview_height) cr = cairo.Context(preview_surface) scale_w = preview_width * 1.0 / canvas_width scale_h = preview_height * 1.0 / canvas_height scale = min(scale_w, scale_h) translate_x = int((preview_width - (canvas_width * scale)) / 2) translate_y = int((preview_height - (canvas_height * scale)) / 2) cr.translate(translate_x, translate_y) cr.scale(scale, scale) cr.set_source_rgba(1, 1, 1, 0) cr.set_operator(cairo.OPERATOR_SOURCE) cr.paint() cr.set_source_surface(screenshot_surface) cr.paint() preview_str = StringIO.StringIO() preview_surface.write_to_png(preview_str) return preview_str.getvalue() Read-115~dfsg/speech_dispatcher.py0000644000000000000000000000712712366506317016044 0ustar rootroot# Copyright (C) 2008 James D. Simmons # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import Gdk import time import threading import speechd import logging import speech _logger = logging.getLogger('read-etexts-activity') done = True def voices(): try: client = speechd.SSIPClient('readetextstest') voices = client.list_synthesis_voices() client.close() return voices except Exception, e: _logger.warning('speech dispatcher not started: %s' % e) return [] def say(words): try: client = speechd.SSIPClient('readetextstest') client.set_rate(int(speech.rate)) client.set_pitch(int(speech.pitch)) client.set_language(speech.voice[1]) client.speak(words) client.close() except Exception, e: _logger.warning('speech dispatcher not running: %s' % e) def is_stopped(): return done def pause(): pass def stop(): global done done = True def play(words): global thread thread = EspeakThread(words) thread.start() class EspeakThread(threading.Thread): def __init__(self, words): threading.Thread.__init__(self) self.words = words def run(self): "This is the code that is executed when the start() method is called" self.client = None try: self.client = speechd.SSIPClient('readetexts') self.client._conn.send_command('SET', speechd.Scope.SELF, 'SSML_MODE', "ON") if speech.voice: self.client.set_language(speech.voice[1]) self.client.set_rate(speech.rate) self.client.set_pitch(speech.pitch) self.client.speak(self.words, self.next_word_cb, (speechd.CallbackType.INDEX_MARK, speechd.CallbackType.END)) global done done = False while not done: time.sleep(0.1) self.cancel() self.client.close() except Exception, e: _logger.warning('speech-dispatcher client not created: %s' % e) def cancel(self): if self.client: try: self.client.cancel() except Exception, e: _logger.warning('speech dispatcher cancel failed: %s' % e) def next_word_cb(self, type, **kargs): if type == speechd.CallbackType.INDEX_MARK: mark = kargs['index_mark'] word_count = int(mark) Gdk.threads_enter() speech.highlight_cb(word_count) Gdk.threads_leave() elif type == speechd.CallbackType.END: Gdk.threads_enter() if speech.reset_cb is not None: speech.reset_cb() if speech.reset_buttons_cb is not None: speech.reset_buttons_cb() Gdk.threads_leave() global done done = True Read-115~dfsg/textadapter.py0000644000000000000000000005667612516304716014725 0ustar rootrootimport os import zipfile import logging from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Pango from gi.repository import GObject import threading from sugar3 import mime from sugar3.graphics import style import speech PAGE_SIZE = 38 # remove hard line breaks, apply a simple logic to try identify # the unneeded def _clean_text(line): if line != '\r\n' and len(line) > 2: if line[-3] not in ('.', ',', '-', ';') and len(line) > 60: line = line[:-2] return line class TextViewer(GObject.GObject): __gsignals__ = { 'zoom-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([int])), 'page-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([int, int])), 'selection-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def setup(self, activity): self._activity = activity self.__going_fwd = False self.__going_back = True self.textview = Gtk.TextView() self.textview.set_editable(False) self.textview.set_cursor_visible(False) self.textview.set_left_margin(50) self.textview.set_right_margin(50) self.textview.set_justification(Gtk.Justification.FILL) self.textview.set_wrap_mode(Gtk.WrapMode.WORD) self.textview.connect('button-release-event', self._view_buttonrelease_event_cb) self.connect('selection-changed', activity._view_selection_changed_cb) self.textview.set_events(self.textview.get_events() | Gdk.EventMask.TOUCH_MASK) self.textview.connect('event', self.__touch_event_cb) self._sw = Gtk.ScrolledWindow() self._sw.add(self.textview) self._v_vscrollbar = self._sw.get_vscrollbar() self._v_scrollbar_value_changed_cb_id = \ self._v_vscrollbar.connect('value-changed', self._v_scrollbar_value_changed_cb) self._scrollbar = Gtk.VScrollbar() self._scrollbar_change_value_cb_id = \ self._scrollbar.connect('change-value', self._scrollbar_change_value_cb) overlay = Gtk.Overlay() hbox = Gtk.HBox() overlay.add(hbox) hbox.add(self._sw) self._scrollbar.props.halign = Gtk.Align.END self._scrollbar.props.valign = Gtk.Align.FILL overlay.add_overlay(self._scrollbar) overlay.show_all() activity._hbox.pack_start(overlay, True, True, 0) self._font_size = style.zoom(10) self.font_desc = Pango.FontDescription("sans %d" % self._font_size) self.textview.modify_font(self.font_desc) self._zoom = 100 self.font_zoom_relation = self._zoom / self._font_size self._current_page = 0 self.highlight_tag = self.textview.get_buffer().create_tag() self.highlight_tag.set_property('underline', Pango.Underline.SINGLE) self.highlight_tag.set_property('foreground', 'black') self.highlight_tag.set_property('background', 'yellow') # text to speech initialization self.current_word = 0 self.word_tuples = [] self.spoken_word_tag = self.textview.get_buffer().create_tag() self.spoken_word_tag.set_property('weight', Pango.Weight.BOLD) self.normal_tag = self.textview.get_buffer().create_tag() self.normal_tag.set_property('weight', Pango.Weight.NORMAL) def load_document(self, file_path): file_name = file_path.replace('file://', '') mimetype = mime.get_for_file(file_path) if mimetype == 'application/zip': logging.error('opening zip file') self.zf = zipfile.ZipFile(file_path.replace('file://', ''), 'r') self.book_files = self.zf.namelist() extract_path = os.path.join(self._activity.get_activity_root(), 'instance') for book_file in self.book_files: if (book_file != 'annotations.pkl'): self.zf.extract(book_file, extract_path) file_name = os.path.join(extract_path, book_file) logging.error('opening file_name %s' % file_name) self._etext_file = open(file_name, 'r') self.page_index = [0] pagecount = 0 linecount = 0 while self._etext_file: line = self._etext_file.readline() if not line: break line_increment = (len(line) / 80) + 1 linecount = linecount + line_increment if linecount >= PAGE_SIZE: position = self._etext_file.tell() self.page_index.append(position) linecount = 0 pagecount = pagecount + 1 self._pagecount = pagecount + 1 self.set_current_page(0) self._scrollbar.set_range(1.0, self._pagecount - 1.0) self._scrollbar.set_increments(1.0, 1.0) speech.highlight_cb = self.highlight_next_word speech.reset_cb = self.reset_text_to_speech def _show_page(self, page_number): position = self.page_index[page_number] self._etext_file.seek(position) linecount = 0 label_text = '\n\n\n' while linecount < PAGE_SIZE: line = self._etext_file.readline() if not line: break else: line = _clean_text(line) label_text = label_text + unicode(line, "iso-8859-1") line_increment = (len(line) / 80) + 1 linecount = linecount + line_increment textbuffer = self.textview.get_buffer() label_text = label_text + '\n\n\n' textbuffer.set_text(label_text) self._prepare_text_to_speech(label_text) def _v_scrollbar_value_changed_cb(self, scrollbar): """ This is the real scrollbar containing the text view """ if self._current_page < 1: return scrollval = scrollbar.get_value() scroll_upper = self._v_vscrollbar.props.adjustment.props.upper if self.__going_fwd and \ not self._current_page == self._pagecount: if scrollval == scroll_upper: self.set_current_page(self._current_page + 1) elif self.__going_back and self._current_page > 1: if scrollval == 0.0: self.set_current_page(self._current_page - 1) def _scrollbar_change_value_cb(self, range, scrolltype, value): """ This is the fake scrollbar visible, used to show the lenght of the book """ old_page = self._current_page if scrolltype == Gtk.ScrollType.STEP_FORWARD: self.__going_fwd = True self.__going_back = False elif scrolltype == Gtk.ScrollType.STEP_BACKWARD: self.__going_fwd = False self.__going_back = True elif scrolltype == Gtk.ScrollType.JUMP or \ scrolltype == Gtk.ScrollType.PAGE_FORWARD or \ scrolltype == Gtk.ScrollType.PAGE_BACKWARD: if value > self._scrollbar.props.adjustment.props.upper: value = self._pagecount self._show_page(int(value)) self._current_page = int(value) self.emit('page-changed', old_page, self._current_page) else: print 'Warning: unknown scrolltype %s with value %f' \ % (str(scrolltype), value) # FIXME: This should not be needed here self._scrollbar.set_value(self._current_page) def __touch_event_cb(self, widget, event): if event.type == Gdk.EventType.TOUCH_BEGIN: x = event.touch.x view_width = widget.get_allocation().width if x > view_width * 3 / 4: self.scroll(Gtk.ScrollType.PAGE_FORWARD, False) elif x < view_width * 1 / 4: self.scroll(Gtk.ScrollType.PAGE_BACKWARD, False) def can_highlight(self): return True def get_selection_bounds(self): if self.textview.get_buffer().get_selection_bounds(): begin, end = self.textview.get_buffer().get_selection_bounds() return [begin.get_offset(), end.get_offset()] else: return [] def get_cursor_position(self): insert_mark = self.textview.get_buffer().get_insert() return self.textview.get_buffer().get_iter_at_mark( insert_mark).get_offset() def in_highlight(self): # Verify if the selection already exist or the cursor # is in a highlighted area tuples_list = self._activity._bookmarkmanager.get_highlights( self.get_current_page()) selection_tuple = self.get_selection_bounds() in_bounds = False highlight_found = None for highlight_tuple in tuples_list: logging.debug('control tuple %s' % str(highlight_tuple)) if selection_tuple: if selection_tuple[0] >= highlight_tuple[0] and \ selection_tuple[1] <= highlight_tuple[1]: in_bounds = True highlight_found = highlight_tuple break return in_bounds, highlight_found def show_highlights(self, page): tuples_list = self._activity._bookmarkmanager.get_highlights(page) textbuffer = self.textview.get_buffer() bounds = textbuffer.get_bounds() textbuffer.remove_all_tags(bounds[0], bounds[1]) for highlight_tuple in tuples_list: iterStart = textbuffer.get_iter_at_offset(highlight_tuple[0]) iterEnd = textbuffer.get_iter_at_offset(highlight_tuple[1]) textbuffer.apply_tag(self.highlight_tag, iterStart, iterEnd) def toggle_highlight(self, highlight): found, old_highlight_found = self.in_highlight() if highlight: selection_tuple = self.get_selection_bounds() self._activity._bookmarkmanager.add_highlight( self.get_current_page(), selection_tuple) else: self._activity._bookmarkmanager.del_highlight( self.get_current_page(), old_highlight_found) self.show_highlights(self.get_current_page()) def connect_page_changed_handler(self, handler): self.connect('page-changed', handler) def can_do_text_to_speech(self): return True def get_marked_words(self): "Adds a mark between each word of text." i = self.current_word marked_up_text = ' ' while i < len(self.word_tuples): word_tuple = self.word_tuples[i] marked_up_text = marked_up_text + '' \ + word_tuple[2] i = i + 1 print marked_up_text return marked_up_text + '' def reset_text_to_speech(self): self.current_word = 0 def _prepare_text_to_speech(self, page_text): i = 0 j = 0 word_begin = 0 word_end = 0 ignore_chars = [' ', '\n', u'\r', '_', '[', '{', ']', '}', '|', '<', '>', '*', '+', '/', '\\'] ignore_set = set(ignore_chars) self.word_tuples = [] len_page_text = len(page_text) while i < len_page_text: if page_text[i] not in ignore_set: word_begin = i j = i while j < len_page_text and page_text[j] not in ignore_set: j = j + 1 word_end = j i = j word_tuple = (word_begin, word_end, page_text[word_begin: word_end]) if word_tuple[2] != u'\r': self.word_tuples.append(word_tuple) i = i + 1 def highlight_next_word(self, word_count): if word_count < len(self.word_tuples): word_tuple = self.word_tuples[word_count] textbuffer = self.textview.get_buffer() iterStart = textbuffer.get_iter_at_offset(word_tuple[0]) iterEnd = textbuffer.get_iter_at_offset(word_tuple[1]) bounds = textbuffer.get_bounds() textbuffer.apply_tag(self.normal_tag, bounds[0], iterStart) textbuffer.apply_tag(self.spoken_word_tag, iterStart, iterEnd) v_adjustment = self._sw.get_vadjustment() max_pos = v_adjustment.get_upper() - v_adjustment.get_page_size() max_pos = max_pos * word_count max_pos = max_pos / len(self.word_tuples) v_adjustment.set_value(max_pos) self.current_word = word_count return True def update_metadata(self, activity): self.metadata = activity.metadata logging.error('Saving zoom %s', self.get_zoom()) self.metadata['Read_zoom'] = self.get_zoom() def load_metadata(self, activity): self.metadata = activity.metadata if 'Read_zoom' in self.metadata: try: logging.error('Loading zoom %s', self.metadata['Read_zoom']) self.set_zoom(float(self.metadata['Read_zoom'])) except: pass def set_current_page(self, page): old_page = self._current_page self._current_page = page self._show_page(self._current_page) self._scrollbar.handler_block(self._scrollbar_change_value_cb_id) self._scrollbar.set_value(self._current_page) self._scrollbar.handler_unblock(self._scrollbar_change_value_cb_id) self.emit('page-changed', old_page, self._current_page) def scroll(self, scrolltype, horizontal): v_adjustment = self._sw.get_vadjustment() v_value = v_adjustment.get_value() if scrolltype in (Gtk.ScrollType.PAGE_BACKWARD, Gtk.ScrollType.PAGE_FORWARD): step = v_adjustment.get_page_increment() else: step = v_adjustment.get_step_increment() if scrolltype in (Gtk.ScrollType.PAGE_BACKWARD, Gtk.ScrollType.STEP_BACKWARD): self.__going_fwd = False self.__going_back = True if v_value <= v_adjustment.get_lower(): self.previous_page() v_adjustment.set_value(v_adjustment.get_upper() - v_adjustment.get_page_size()) return if v_value > v_adjustment.get_lower(): new_value = v_value - step if new_value < v_adjustment.get_lower(): new_value = v_adjustment.get_lower() v_adjustment.set_value(new_value) elif scrolltype in (Gtk.ScrollType.PAGE_FORWARD, Gtk.ScrollType.STEP_FORWARD): self.__going_fwd = True self.__going_back = False if v_value >= v_adjustment.get_upper() - \ v_adjustment.get_page_size(): self.next_page() return if v_value < v_adjustment.get_upper() - \ v_adjustment.get_page_size(): new_value = v_value + step if new_value > v_adjustment.get_upper() - \ v_adjustment.get_page_size(): new_value = v_adjustment.get_upper() - \ v_adjustment.get_page_size() v_adjustment.set_value(new_value) elif scrolltype == Gtk.ScrollType.START: self.set_current_page(0) elif scrolltype == Gtk.ScrollType.END: self.set_current_page(self._pagecount - 1) def previous_page(self): v_adjustment = self._sw.get_vadjustment() v_adjustment.set_value(v_adjustment.get_upper() - v_adjustment.get_page_size()) self.set_current_page(self.get_current_page() - 1) def next_page(self): v_adjustment = self._sw.get_vadjustment() v_adjustment.set_value(v_adjustment.get_lower()) self.set_current_page(self.get_current_page() + 1) def get_current_page(self): return self._current_page def get_pagecount(self): return self._pagecount def update_toc(self, activity): pass def handle_link(self, link): pass def get_current_file(self): pass def copy(self): self.textview.get_buffer().copy_clipboard(Gtk.Clipboard()) def _view_buttonrelease_event_cb(self, view, event): self._has_selection = \ self.textview.get_buffer().get_selection_bounds() != () self.emit('selection-changed') def get_has_selection(self): return self._has_selection def find_set_highlight_search(self, True): pass def setup_find_job(self, text, _find_updated_cb): self._find_job = _JobFind(self._etext_file, start_page=0, n_pages=self._pagecount, text=text, case_sensitive=False) self._find_updated_handler = self._find_job.connect( 'updated', _find_updated_cb) return self._find_job, self._find_updated_handler def find_next(self): self._find_job.find_next() def find_previous(self): self._find_job.find_previous() def find_changed(self, job, page): self.set_current_page(job.get_page()) self._show_found_text(job.get_founded_tuple()) def _show_found_text(self, founded_tuple): textbuffer = self.textview.get_buffer() tag = textbuffer.create_tag() tag.set_property('weight', Pango.Weight.BOLD) tag.set_property('foreground', 'white') tag.set_property('background', 'black') iterStart = textbuffer.get_iter_at_offset(founded_tuple[1]) iterEnd = textbuffer.get_iter_at_offset(founded_tuple[2]) textbuffer.apply_tag(tag, iterStart, iterEnd) def get_zoom(self): return self.font_zoom_relation * self._font_size def connect_zoom_handler(self, handler): self._view_notify_zoom_handler = self.connect('zoom-changed', handler) return self._view_notify_zoom_handler def set_zoom(self, value): self._zoom = value self._font_size = int(self._zoom / self.font_zoom_relation) self.font_desc.set_size(self._font_size * 1024) self.textview.modify_font(self.font_desc) def zoom_in(self): self._set_font_size(self._font_size + 1) def zoom_out(self): self._set_font_size(self._font_size - 1) def _set_font_size(self, size): self._font_size = size self.font_desc.set_size(self._font_size * 1024) self.textview.modify_font(self.font_desc) self._zoom = self.font_zoom_relation * self._font_size self.emit('zoom-changed', self._zoom) def zoom_to_width(self): pass def can_zoom_in(self): return True def can_zoom_out(self): return self._font_size > 1 def can_zoom_to_width(self): return False def zoom_to_best_fit(self): return False def zoom_to_actual_size(self): return False def can_rotate(self): return False class _JobFind(GObject.GObject): __gsignals__ = { 'updated': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), } def __init__(self, text_file, start_page, n_pages, text, case_sensitive=False): GObject.GObject.__init__(self) Gdk.threads_init() self._finished = False self._text_file = text_file self._start_page = start_page self._n_pages = n_pages self._text = text self._case_sensitive = case_sensitive self.threads = [] s_thread = _SearchThread(self) self.threads.append(s_thread) s_thread.start() def cancel(self): ''' Cancels the search job ''' for s_thread in self.threads: s_thread.stop() def is_finished(self): ''' Returns True if the entire search job has been finished ''' return self._finished def get_search_text(self): ''' Returns the search text ''' return self._text def get_case_sensitive(self): ''' Returns True if the search is case-sensitive ''' return self._case_sensitive def find_next(self): self.threads[-1].find_next() def find_previous(self): self.threads[-1].find_previous() def get_page(self): return self.threads[-1].get_page() def get_founded_tuple(self): return self.threads[-1].get_founded_tuple() class _SearchThread(threading.Thread): def __init__(self, obj): threading.Thread.__init__(self) self.obj = obj self.stopthread = threading.Event() def _start_search(self): pagecount = 0 linecount = 0 charcount = 0 self._found_records = [] self._current_found_item = -1 self.obj._text_file.seek(0) while self.obj._text_file: line = unicode(self.obj._text_file.readline(), "iso-8859-1") line = _clean_text(line) line_length = len(line) if not line: break line_increment = (len(line) / 80) + 1 linecount = linecount + line_increment positions = self._allindices(line.lower(), self.obj._text.lower()) for position in positions: found_pos = charcount + position + 3 found_tuple = (pagecount, found_pos, len(self.obj._text) + found_pos) self._found_records.append(found_tuple) self._current_found_item = 0 charcount = charcount + line_length if linecount >= PAGE_SIZE: linecount = 0 charcount = 0 pagecount = pagecount + 1 if self._current_found_item == 0: self.current_found_tuple = \ self._found_records[self._current_found_item] self._page = self.current_found_tuple[0] Gdk.threads_enter() self.obj._finished = True self.obj.emit('updated') Gdk.threads_leave() return False def _allindices(self, line, search, listindex=None, offset=0): if listindex is None: listindex = [] if (line.find(search) == -1): return listindex else: offset = line.index(search) + offset listindex.append(offset) line = line[(line.index(search) + 1):] return self._allindices(line, search, listindex, offset + 1) def run(self): self._start_search() def stop(self): self.stopthread.set() def find_next(self): self._current_found_item = self._current_found_item + 1 if self._current_found_item >= len(self._found_records): self._current_found_item = 0 self.current_found_tuple = \ self._found_records[self._current_found_item] self._page = self.current_found_tuple[0] self.obj.emit('updated') def find_previous(self): self._current_found_item = self._current_found_item - 1 if self._current_found_item <= 0: self._current_found_item = len(self._found_records) - 1 self.current_found_tuple = \ self._found_records[self._current_found_item] self._page = self.current_found_tuple[0] self.obj.emit('updated') def get_page(self): return self._page def get_founded_tuple(self): return self.current_found_tuple Read-115~dfsg/readtoolbar.py0000644000000000000000000002572612505056414014663 0ustar rootroot# Copyright (C) 2006, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gettext import gettext as _ import logging from gi.repository import GObject from gi.repository import Gtk from gi.repository import Gdk from sugar3.graphics.toolbutton import ToolButton from sugar3.graphics.toggletoolbutton import ToggleToolButton from sugar3.graphics import iconentry from sugar3.activity.widgets import EditToolbar as BaseEditToolbar class EditToolbar(BaseEditToolbar): __gtype_name__ = 'EditToolbar' def __init__(self): BaseEditToolbar.__init__(self) self._view = None self._find_job = None search_item = Gtk.ToolItem() self._search_entry = iconentry.IconEntry() self._search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, 'entry-search') self._search_entry.add_clear_button() self._search_entry.connect('activate', self._search_entry_activate_cb) self._search_entry.connect('changed', self._search_entry_changed_cb) self._search_entry_changed = True width = int(Gdk.Screen.width() / 3) self._search_entry.set_size_request(width, -1) search_item.add(self._search_entry) self._search_entry.show() self.insert(search_item, -1) search_item.show() self._prev = ToolButton('go-previous-paired') self._prev.set_tooltip(_('Previous')) self._prev.props.sensitive = False self._prev.connect('clicked', self._find_prev_cb) self.insert(self._prev, -1) self._prev.show() self._next = ToolButton('go-next-paired') self._next.set_tooltip(_('Next')) self._next.props.sensitive = False self._next.connect('clicked', self._find_next_cb) self.insert(self._next, -1) self._next.show() separator = Gtk.SeparatorToolItem() separator.show() self.insert(separator, -1) self.highlight = ToggleToolButton('format-text-underline') self.highlight.set_tooltip(_('Highlight')) self.highlight.props.sensitive = False self.insert(self.highlight, -1) def set_view(self, view): self._view = view self._view.find_set_highlight_search(True) def _clear_find_job(self): if self._find_job is None: return if not self._find_job.is_finished(): self._find_job.cancel() self._find_job.disconnect(self._find_updated_handler) self._find_job = None def _search_find_first(self): self._clear_find_job() text = self._search_entry.props.text if text != "": self._find_job, self._find_updated_handler = \ self._view.setup_find_job(text, self._find_updated_cb) else: # FIXME: highlight nothing pass self._search_entry_changed = False self._update_find_buttons() def _search_find_next(self): self._view.find_next() def _search_find_last(self): # FIXME: does Evince support find last? return def _search_find_prev(self): self._view.find_previous() def _search_entry_activate_cb(self, entry): if self._search_entry_changed: self._search_find_first() else: self._search_find_next() def _search_entry_changed_cb(self, entry): logging.debug('Search entry: %s' % (entry.props.text)) self._search_entry_changed = True self._update_find_buttons() # GObject.timeout_add(500, self._search_entry_timeout_cb) # # def _search_entry_timeout_cb(self): # self._clear_find_job() # self._search_find_first() # return False def _find_changed_cb(self, page, spec): self._update_find_buttons() def _find_updated_cb(self, job, page=None): self._view.find_changed(job, page) def _find_prev_cb(self, button): if self._search_entry_changed: self._search_find_last() else: self._search_find_prev() def _find_next_cb(self, button): if self._search_entry_changed: self._search_find_first() else: self._search_find_next() def _update_find_buttons(self): if self._search_entry_changed: if self._search_entry.props.text != "": self._prev.props.sensitive = False # self._prev.set_tooltip(_('Find last')) self._next.props.sensitive = True self._next.set_tooltip(_('Find first')) else: self._prev.props.sensitive = False self._next.props.sensitive = False else: self._prev.props.sensitive = True self._prev.set_tooltip(_('Find previous')) self._next.props.sensitive = True self._next.set_tooltip(_('Find next')) class ViewToolbar(Gtk.Toolbar): __gtype_name__ = 'ViewToolbar' __gsignals__ = { 'go-fullscreen': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([])), 'toggle-index-show': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([bool])), 'toggle-tray-show': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([bool])), } def __init__(self): Gtk.Toolbar.__init__(self) self._view = None self._navigator_button = ToggleToolButton('view-list') self._navigator_button.set_tooltip(_('Table of contents')) self._navigator_button.connect('toggled', self.__navigator_toggled_cb) self.insert(self._navigator_button, -1) self._spacer_navigator = Gtk.SeparatorToolItem() self._spacer_navigator.props.draw = False self.insert(self._spacer_navigator, -1) self._zoom_out = ToolButton('zoom-out') self._zoom_out.set_tooltip(_('Zoom out')) self._zoom_out.connect('clicked', self._zoom_out_cb) self.insert(self._zoom_out, -1) self._zoom_out.show() self._zoom_in = ToolButton('zoom-in') self._zoom_in.set_tooltip(_('Zoom in')) self._zoom_in.connect('clicked', self._zoom_in_cb) self.insert(self._zoom_in, -1) self._zoom_in.show() self._zoom_to_width = ToolButton('zoom-to-width') self._zoom_to_width.set_tooltip(_('Zoom to width')) self._zoom_to_width.connect('clicked', self._zoom_to_width_cb) self.insert(self._zoom_to_width, -1) self._zoom_to_width.show() self._zoom_to_fit = ToolButton('zoom-best-fit') self._zoom_to_fit.set_tooltip(_('Zoom to fit')) self._zoom_to_fit.connect('clicked', self._zoom_to_fit_cb) self.insert(self._zoom_to_fit, -1) self._zoom_to_fit.show() self._zoom_to_original = ToolButton('zoom-original') self._zoom_to_original.set_tooltip(_('Actual size')) self._zoom_to_original.connect('clicked', self._actual_size_cb) self.insert(self._zoom_to_original, -1) self._zoom_to_original.show() spacer = Gtk.SeparatorToolItem() spacer.props.draw = True self.insert(spacer, -1) spacer.show() self._fullscreen = ToolButton('view-fullscreen') self._fullscreen.set_tooltip(_('Fullscreen')) self._fullscreen.connect('clicked', self._fullscreen_cb) self.insert(self._fullscreen, -1) self._fullscreen.show() self.traybutton = ToggleToolButton('tray-show') self.traybutton.set_icon_name('tray-favourite') self.traybutton.connect('toggled', self.__tray_toggled_cb) self.traybutton.props.active = False self.insert(self.traybutton, -1) self.traybutton.show() self._view_notify_zoom_handler = None spacer = Gtk.SeparatorToolItem() spacer.props.draw = True self.insert(spacer, -1) spacer.show() self._rotate_left = ToolButton('rotate_anticlockwise') self._rotate_left.set_tooltip(_('Rotate left')) self._rotate_left.connect('clicked', self._rotate_left_cb) self.insert(self._rotate_left, -1) self._rotate_left.show() self._rotate_right = ToolButton('rotate_clockwise') self._rotate_right.set_tooltip(_('Rotate right')) self._rotate_right.connect('clicked', self._rotate_right_cb) self.insert(self._rotate_right, -1) self._rotate_right.show() def set_view(self, view): self._view = view self._update_zoom_buttons() def show_nav_button(self): self._navigator_button.show() self._spacer_navigator.show() def zoom_in(self): self._view.zoom_in() self._update_zoom_buttons() def _zoom_in_cb(self, button): self.zoom_in() def _rotate_left_cb(self, button): self._view.rotate_left() def _rotate_right_cb(self, button): self._view.rotate_right() def zoom_out(self): self._view.zoom_out() self._update_zoom_buttons() def _zoom_out_cb(self, button): self.zoom_out() def zoom_to_width(self): self._view.zoom_to_width() self._update_zoom_buttons() def _zoom_to_width_cb(self, button): self.zoom_to_width() def __navigator_toggled_cb(self, button): self.emit('toggle-index-show', button.get_active()) def _update_zoom_buttons(self): self._zoom_in.props.sensitive = self._view.can_zoom_in() self._zoom_out.props.sensitive = self._view.can_zoom_out() self._zoom_to_width.props.sensitive = self._view.can_zoom_to_width() self._zoom_to_fit.props.sensitive = self._view.can_zoom_to_width() self._zoom_to_original.props.sensitive = self._view.can_zoom_to_width() self._rotate_left.props.sensitive = self._view.can_rotate() self._rotate_right.props.sensitive = self._view.can_rotate() def _zoom_to_fit_cb(self, menu_item): self._view.zoom_to_best_fit() self._update_zoom_buttons() def _actual_size_cb(self, menu_item): self._view.zoom_to_actual_size() self._update_zoom_buttons() def _fullscreen_cb(self, button): self.emit('go-fullscreen') def __tray_toggled_cb(self, button): self.emit('toggle-tray-show', button.get_active()) if button.props.active: self.traybutton.set_tooltip(_('Show Tray')) else: self.traybutton.set_tooltip(_('Hide Tray')) Read-115~dfsg/comicadapter.py0000644000000000000000000001526512505056153015015 0ustar rootroot# Copyright (C) 2014, Sam Parkinson # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import zipfile from gettext import gettext as _ from gi.repository import GObject from gi.repository import Gtk from sugar3.graphics.alert import Alert from imageview import ImageViewer IMAGE_ENDINGS = ('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff', '.tif') class ComicViewer(GObject.GObject): __gsignals__ = { 'zoom-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([int])), 'page-changed': (GObject.SignalFlags.RUN_FIRST, GObject.TYPE_NONE, ([int, int])) } def setup(self, activity): self._activity = activity self._zip = None self._images = [] self._index = 0 self._rotate = 0 self._old_zoom = 1.0 self._sw = Gtk.ScrolledWindow() self._sw.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS) self._activity._hbox.pack_start(self._sw, True, True, 0) self._sw.show() self._view = ImageViewer() self._view.set_zoom(1.0) self._view.connect('setup-new-surface', self.__new_surface_cb) self._sw.add(self._view) self._view.show() def load_document(self, file_path): try: self._zip = zipfile.ZipFile(file_path.replace('file://', '')) except (zipfile.BadZipfile, IOError): pass files = self._zip.namelist() files.sort() self._images = [i for i in files if i.endswith(IMAGE_ENDINGS)] if len(self._images) == 0: alert = Alert() alert.props.title = _('Can not read Comic Book Archive') alert.props.msg = _('No readable images were found') self._activity.add_alert(alert) return self.set_current_page(0) def load_metadata(self, activity): if activity.metadata.get('view-zoom'): self.set_zoom(activity.metadata.get('view-zoom')) def update_metadata(self, activity): activity.metadata['view-zoom'] = self.get_zoom() def get_current_page(self): return self._index def set_current_page(self, page): if len(self._images) == 0: return from_ = self._index self._index = page filename = self._images[page] data = self._zip.read(filename) self._view.set_data(data) self.emit('page-changed', from_, self._index) def __new_surface_cb(self, view): self._view.set_rotate(self._rotate) self._view.update_adjustments() self._sw.get_hadjustment().set_value(0) self._sw.get_vadjustment().set_value(0) self._view.update_adjustments() self._view.queue_draw() def next_page(self): if self._index + 1 < self.get_pagecount(): self.set_current_page(self._index + 1) def previous_page(self): if self._index - 1 >= 0: self.set_current_page(self._index - 1) def can_rotate(self): return True def rotate_left(self): self._view.rotate_anticlockwise() self._rotate -= 1 if self._rotate == -4: self._rotate = 0 def rotate_right(self): self._view.rotate_clockwise() self._rotate += 1 if self._rotate == 4: self._rotate = 0 def get_pagecount(self): return len(self._images) def connect_zoom_handler(self, handler): self.connect('zoom-changed', handler) def _zoom_changed(self): self.emit('zoom-changed', self.get_zoom()) def get_zoom(self): return self._view.get_zoom() def set_zoom(self, value): self._view.set_zoom(value) self._zoom_changed() def zoom_in(self): self._view.zoom_in() self._zoom_changed() def can_zoom_in(self): return self._view.can_zoom_in() def zoom_out(self): self._view.zoom_out() self._zoom_changed() def can_zoom_out(self): return self._view.can_zoom_out() def can_zoom_to_width(self): return True def zoom_to_width(self): self._view.zoom_to_width() self._zoom_changed() def zoom_to_best_fit(self): self._view.zoom_to_fit() self._zoom_changed() def can_zoom_to_actual_size(self): return True def zoom_to_actual_size(self): self._view.zoom_original() self._zoom_changed() def connect_page_changed_handler(self, handler): self.connect('page-changed', handler) def scroll(self, scrolltype, horizontal): if scrolltype == Gtk.ScrollType.PAGE_BACKWARD: self.previous_page() elif scrolltype == Gtk.ScrollType.PAGE_FORWARD: self.next_page() elif scrolltype == Gtk.ScrollType.STEP_BACKWARD: self._scroll_step(False, horizontal) elif scrolltype == Gtk.ScrollType.STEP_FORWARD: self._scroll_step(True, horizontal) elif scrolltype == Gtk.ScrollType.START: self.set_current_page(1) elif scrolltype == Gtk.ScrollType.END: self.set_current_page(self._document.get_n_pages()) else: pass def _scroll_step(self, forward, horizontal): if horizontal: adj = self._sw.get_hadjustment() else: adj = self._sw.get_vadjustment() value = adj.get_value() step = adj.get_step_increment() if forward: adj.set_value(value + step) else: adj.set_value(value - step) # Not relevant for non-text documents def can_highlight(self): return False def can_do_text_to_speech(self): return False def find_set_highlight_search(self, set_highlight_search): pass def find_next(self): pass def find_previous(self): pass def update_toc(self, activity): pass def handle_link(self, link): pass def get_current_link(self): return '' def get_link_iter(self, link): return None def copy(self): # Copy is for the selected text pass Read-115~dfsg/epubadapter.py0000644000000000000000000002374112517451107014655 0ustar rootrootfrom gi.repository import GObject import logging import epubview # import speech from cStringIO import StringIO _logger = logging.getLogger('read-activity') class EpubViewer(epubview.EpubView): def __init__(self): epubview.EpubView.__init__(self) def setup(self, activity): self.set_screen_dpi(activity.dpi) self.connect('selection-changed', activity._view_selection_changed_cb) activity._hbox.pack_start(self, True, True, 0) self.show_all() self._modified_files = [] # text to speech initialization self.current_word = 0 self.word_tuples = [] def load_document(self, file_path): self.set_document(EpubDocument(self, file_path.replace('file://', ''))) # speech.highlight_cb = self.highlight_next_word # speech.reset_cb = self.reset_text_to_speech # speech.end_text_cb = self.get_more_text def load_metadata(self, activity): self.metadata = activity.metadata if not self.metadata['title_set_by_user'] == '1': title = self._epub._info._get_title() if title: self.metadata['title'] = title if 'Read_zoom' in self.metadata: try: logging.error('Loading zoom %s', self.metadata['Read_zoom']) self.set_zoom(float(self.metadata['Read_zoom'])) except: pass def update_metadata(self, activity): self.metadata = activity.metadata logging.error('Saving zoom %s', self.get_zoom()) self.metadata['Read_zoom'] = self.get_zoom() def zoom_to_width(self): pass def zoom_to_best_fit(self): pass def zoom_to_actual_size(self): pass def can_zoom_to_width(self): return False def can_highlight(self): return True def show_highlights(self, page): # we save the highlights in the page as html pass def toggle_highlight(self, highlight): self._view.set_editable(True) if highlight: self._view.execute_script( 'document.execCommand("backColor", false, "yellow");') else: # need remove the highlight nodes js = """ var selObj = window.getSelection(); var range = selObj.getRangeAt(0); var node = range.startContainer; while (node.parentNode != null) { if (node.localName == "span") { if (node.hasAttributes()) { var attrs = node.attributes; for(var i = attrs.length - 1; i >= 0; i--) { if (attrs[i].name == "style" && attrs[i].value == "background-color: yellow;") { node.removeAttribute("style"); break; }; }; }; }; node = node.parentNode; };""" self._view.execute_script(js) self._view.set_editable(False) # mark the file as modified current_file = self.get_current_file() logging.error('file %s was modified', current_file) if current_file not in self._modified_files: self._modified_files.append(current_file) GObject.idle_add(self._save_page) def _save_page(self): oldtitle = self._view.get_title() self._view.execute_script( "document.title=document.documentElement.innerHTML;") html = self._view.get_title() file_path = self.get_current_file().replace('file:///', '/') logging.error(html) with open(file_path, 'w') as fd: header = """ """ fd.write(header) fd.write(html) fd.write('') self._view.execute_script('document.title=%s;' % oldtitle) def save(self, file_path): if self._modified_files: self._epub.write(file_path) return True return False def in_highlight(self): # Verify if the selection already exist or the cursor # is in a highlighted area page_title = self._view.get_title() js = """ var selObj = window.getSelection(); var range = selObj.getRangeAt(0); var node = range.startContainer; var onHighlight = false; while (node.parentNode != null) { if (node.localName == "span") { if (node.hasAttributes()) { var attrs = node.attributes; for(var i = attrs.length - 1; i >= 0; i--) { if (attrs[i].name == "style" && attrs[i].value == "background-color: yellow;") { onHighlight = true; }; }; }; }; node = node.parentNode; }; document.title=onHighlight;""" self._view.execute_script(js) on_highlight = self._view.get_title() == 'true' self._view.execute_script('document.title = "%s";' % page_title) # the second parameter is only used in the text backend return on_highlight, None def can_do_text_to_speech(self): return False def can_rotate(self): return False def get_marked_words(self): "Adds a mark between each word of text." i = self.current_word file_str = StringIO() file_str.write(' ') end_range = i + 40 if end_range > len(self.word_tuples): end_range = len(self.word_tuples) for word_tuple in self.word_tuples[self.current_word:end_range]: file_str.write('' + word_tuple[2].encode('utf-8')) i = i + 1 self.current_word = i file_str.write('') return file_str.getvalue() def get_more_text(self): pass """ if self.current_word < len(self.word_tuples): speech.stop() more_text = self.get_marked_words() speech.play(more_text) else: if speech.reset_buttons_cb is not None: speech.reset_buttons_cb() """ def reset_text_to_speech(self): self.current_word = 0 def highlight_next_word(self, word_count): pass """ TODO: disabled because javascript can't be executed with the velocity needed self.current_word = word_count self._view.highlight_next_word() return True """ def connect_zoom_handler(self, handler): self._zoom_handler = handler self._view_notify_zoom_handler = \ self.connect('notify::scale', handler) return self._view_notify_zoom_handler def connect_page_changed_handler(self, handler): self.connect('page-changed', handler) def _try_load_page(self, n): if self._ready: self._load_page(n) return False else: return True def set_screen_dpi(self, dpi): return def find_set_highlight_search(self, set_highlight_search): self._view.set_highlight_text_matches(set_highlight_search) def set_current_page(self, n): # When the book is being loaded, calling this does not help # In such a situation, we go into a loop and try to load the # supplied page when the book has loaded completely n += 1 if self._ready: self._load_page(n) else: GObject.timeout_add(200, self._try_load_page, n) def get_current_page(self): return int(self._loaded_page) - 1 def get_current_link(self): # the _loaded_filename include all the path, # need only the part included in the link return self._loaded_filename[len(self._epub._tempdir) + 1:] def update_toc(self, activity): if self._epub.has_document_links(): activity.show_navigator_button() activity.set_navigator_model(self._epub.get_links_model()) return True else: return False def get_link_iter(self, current_link): """ Returns the iter related to a link """ link_iter = self._epub.get_links_model().get_iter_first() while link_iter is not None and \ self._epub.get_links_model().get_value(link_iter, 1) \ != current_link: link_iter = self._epub.get_links_model().iter_next(link_iter) return link_iter def find_changed(self, job, page=None): self._find_changed(job) def handle_link(self, link): self._load_file(link) def setup_find_job(self, text, updated_cb): self._find_job = JobFind(document=self._epub, start_page=0, n_pages=self.get_pagecount(), text=text, case_sensitive=False) self._find_updated_handler = self._find_job.connect('updated', updated_cb) return self._find_job, self._find_updated_handler class EpubDocument(epubview.Epub): def __init__(self, view, docpath): epubview.Epub.__init__(self, docpath) self._page_cache = view def get_n_pages(self): return int(self._page_cache.get_pagecount()) def has_document_links(self): return True def get_links_model(self): return self.get_toc_model() class JobFind(epubview.JobFind): def __init__(self, document, start_page, n_pages, text, case_sensitive=False): epubview.JobFind.__init__(self, document, start_page, n_pages, text, case_sensitive=False) Read-115~dfsg/COPYING0000644000000000000000000004310312366506317013042 0ustar rootroot GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. Read-115~dfsg/readbookmark.py0000644000000000000000000000426512513753504015024 0ustar rootroot# Copyright 2009 One Laptop Per Child # Author: Sayamindu Dasgupta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import json class Bookmark: def __init__(self, data): self.md5 = data[0] self.page_no = data[1] self.content = data[2] self.timestamp = data[3] self.nick = data[4] self.color = data[5] self.local = data[6] def belongstopage(self, page_no): return self.page_no == page_no def is_local(self): return bool(self.local) def get_note_title(self): if self.content == '' or self.content is None: return '' note = json.loads(self.content) return note['title'] def get_note_body(self): if self.content == '' or self.content is None: return '' note = json.loads(self.content) return note['body'] def get_as_dict(self): return {'md5': self.md5, 'page_no': self.page_no, 'content': self.content, 'timestamp': self.timestamp, 'nick': self.nick, 'color': self.color, 'local': self.local} def compare_equal_to_dict(self, _dict): return _dict['md5'] == self.md5 and \ _dict['page_no'] == self.page_no and\ _dict['content'] == self.content and \ _dict['timestamp'] == self.timestamp and \ _dict['nick'] == self.nick and \ _dict['color'] == self.color and \ _dict['local'] == self.local Read-115~dfsg/readdialog.py0000644000000000000000000002150312515245312014443 0ustar rootroot#!/usr/bin/env python # Stolen from the PyGTK demo module by Maik Hertha from gi.repository import Gtk from gi.repository import Gdk from sugar3.graphics import style from sugar3.graphics.toolbutton import ToolButton from gettext import gettext as _ import json class BaseReadDialog(Gtk.Window): def __init__(self, parent_xid, dialog_title): Gtk.Window.__init__(self) self.connect('realize', self.__realize_cb) self.set_decorated(False) self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) self.set_border_width(style.LINE_WIDTH) self.set_resizable(False) width = Gdk.Screen.width() - style.GRID_CELL_SIZE * 4 height = Gdk.Screen.height() - style.GRID_CELL_SIZE * 4 self.set_size_request(width, height) self._parent_window_xid = parent_xid _vbox = Gtk.VBox(spacing=2) self.add(_vbox) self.toolbar = Gtk.Toolbar() label = Gtk.Label() label.set_markup(' %s' % dialog_title) label.set_alignment(0, 0.5) tool_item = Gtk.ToolItem() tool_item.add(label) label.show() self.toolbar.insert(tool_item, -1) tool_item.show() separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) self.toolbar.insert(separator, -1) separator.show() stop = ToolButton(icon_name='dialog-cancel') stop.set_tooltip(_('Cancel')) stop.connect('clicked', self.cancel_clicked_cb) self.toolbar.insert(stop, -1) stop.show() accept = ToolButton(icon_name='dialog-ok') accept.set_tooltip(_('Ok')) accept.connect('clicked', self.accept_clicked_cb) accept.show() self.toolbar.insert(accept, -1) _vbox.pack_start(self.toolbar, False, True, 0) self.toolbar.show() self._event_box = Gtk.EventBox() _vbox.pack_start(self._event_box, True, True, 0) self._canvas = None def set_canvas(self, canvas): if self._canvas is not None: self._event_box.remove(self._canvas) self._event_box.add(canvas) self._canvas = canvas def __realize_cb(self, widget): self.get_window().set_type_hint(Gdk.WindowTypeHint.DIALOG) self.get_window().set_accept_focus(True) self.get_window().set_decorations(Gdk.WMDecoration.BORDER) self.get_window().set_transient_for(self._parent_window_xid) self.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color()) if self._canvas is not None: self._canvas.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color()) self._canvas.grab_focus() self._event_box.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color()) def accept_clicked_cb(self, widget): raise NotImplementedError def cancel_clicked_cb(self, widget): self.destroy() class BookmarkDialog(BaseReadDialog): def __init__(self, parent_xid, dialog_title, page, sidebarinstance): BaseReadDialog.__init__(self, parent_xid, dialog_title) self._sidebarinstance = sidebarinstance self._page = page self._vbox = Gtk.VBox() self.set_canvas(self._vbox) def add_bookmark_widgets(self, bookmark_title, bookmark_content, local, nick=''): thbox = Gtk.HBox() self._vbox.pack_start(thbox, False, False, 0) thbox.set_border_width(style.DEFAULT_SPACING * 2) thbox.set_spacing(style.DEFAULT_SPACING) thbox.show() label_title = Gtk.Label(_('Title:')) label_title.set_use_markup(True) label_title.set_alignment(1, 0.5) label_title.modify_fg(Gtk.StateType.NORMAL, style.COLOR_SELECTION_GREY.get_gdk_color()) thbox.pack_start(label_title, False, False, 0) label_title.show() if local == 1: self._title_entry = Gtk.Entry() self._title_entry.modify_bg(Gtk.StateType.INSENSITIVE, style.COLOR_WHITE.get_gdk_color()) self._title_entry.modify_base(Gtk.StateType.INSENSITIVE, style.COLOR_WHITE.get_gdk_color()) self._title_entry.set_size_request(int(Gdk.Screen.width() / 3), -1) thbox.pack_start(self._title_entry, False, False, 0) self._title_entry.show() if bookmark_title is not None: self._title_entry.set_text(bookmark_title) else: title = Gtk.Label(bookmark_title) thbox.pack_start(title, False, False, 0) # show the nickname hbox = Gtk.HBox() hbox.set_margin_left(style.DEFAULT_SPACING * 2) hbox.set_spacing(style.DEFAULT_SPACING) signed_by = Gtk.Label(_('Author:')) signed_by.set_use_markup(True) signed_by.set_alignment(1, 0.5) signed_by.modify_fg(Gtk.StateType.NORMAL, style.COLOR_SELECTION_GREY.get_gdk_color()) hbox.pack_start(signed_by, False, False, 0) nick_label = Gtk.Label(nick) hbox.pack_start(nick_label, False, False, 0) self._vbox.pack_start(hbox, False, False, 0) hbox.show_all() cvbox = Gtk.VBox() cvbox.set_border_width(style.DEFAULT_SPACING * 2) cvbox.set_spacing(style.DEFAULT_SPACING / 2) cvbox.show() label_content = Gtk.Label(_('Details:')) label_content.set_use_markup(True) label_content.set_alignment(0, 0) label_content.modify_fg(Gtk.StateType.NORMAL, style.COLOR_SELECTION_GREY.get_gdk_color()) cvbox.pack_start(label_content, False, False, 0) label_content.show() if local == 1: sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self._content_entry = Gtk.TextView() self._content_entry.set_wrap_mode(Gtk.WrapMode.WORD) self._content_entry.set_sensitive(local == 1) sw.add(self._content_entry) sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) cvbox.pack_start(sw, True, True, 0) self._content_entry.show() if bookmark_content is not None: buffer = self._content_entry.get_buffer() buffer.set_text(bookmark_content) self._vbox.pack_start(cvbox, True, True, 0) else: content = Gtk.Label(bookmark_content) content.set_alignment(0, 0) cvbox.pack_start(content, False, False, 0) self._vbox.pack_start(cvbox, False, False, 0) def cancel_clicked_cb(self, widget): self._sidebarinstance.notify_bookmark_change() BaseReadDialog.cancel_clicked_cb(self, widget) class BookmarkAddDialog(BookmarkDialog): def __init__(self, parent_xid, dialog_title, bookmark_title, bookmark_content, page, sidebarinstance): BookmarkDialog.__init__(self, parent_xid, dialog_title, page, sidebarinstance) self.add_bookmark_widgets(bookmark_title, bookmark_content, 1) def accept_clicked_cb(self, widget): title = self._title_entry.get_text() details = self._content_entry.get_buffer().props.text content = {'title': title.decode('utf-8'), 'body': details.decode('utf-8')} self._sidebarinstance._real_add_bookmark(self._page, json.dumps(content)) self.destroy() def cancel_clicked_cb(self, widget): self._sidebarinstance.notify_bookmark_change() BaseReadDialog.cancel_clicked_cb(self, widget) class BookmarkEditDialog(BookmarkDialog): def __init__(self, parent_xid, dialog_title, bookmarks, page, sidebarinstance): BookmarkDialog.__init__(self, parent_xid, dialog_title, page, sidebarinstance) for bookmark in bookmarks: self.add_bookmark_widgets(bookmark.get_note_title(), bookmark.get_note_body(), bookmark.local, bookmark.nick) def accept_clicked_cb(self, widget): title = self._title_entry.get_text() details = self._content_entry.get_buffer().props.text content = {'title': title.decode('utf-8'), 'body': details.decode('utf-8')} self._sidebarinstance.del_bookmark(self._page) self._sidebarinstance._real_add_bookmark(self._page, json.dumps(content)) self.destroy() Read-115~dfsg/linkbutton.py0000644000000000000000000001250612514217336014550 0ustar rootroot# Copyright (C) 2007, One Laptop Per Child # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject import StringIO import cairo from gettext import gettext as _ from sugar3.graphics.palette import Palette from sugar3.graphics.tray import TrayButton from sugar3.graphics import style class LinkButton(TrayButton, GObject.GObject): __gtype_name__ = 'LinkButton' __gsignals__ = { 'remove_link': (GObject.SignalFlags.RUN_FIRST, None, ([int])), 'go_to_bookmark': (GObject.SignalFlags.RUN_FIRST, None, ([int])), } def __init__(self, buf, color, title, owner, page, local): TrayButton.__init__(self) # Color read from the Journal may be Unicode, but Rsvg needs # it as single byte string: self._color = color if isinstance(color, unicode): self._color = str(color) self._have_preview = False if buf is not None: self.set_image(buf) else: self.set_empty_image(page) self.page = int(page) self.setup_rollover_options(title, owner, local) def have_preview(self): return self._have_preview def set_image(self, buf): fill = self._color.split(',')[1] stroke = self._color.split(',')[0] self._have_preview = True img = Gtk.Image() str_buf = StringIO.StringIO(buf) thumb_surface = cairo.ImageSurface.create_from_png(str_buf) bg_width, bg_height = style.zoom(120), style.zoom(110) bg_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, bg_width, bg_height) context = cairo.Context(bg_surface) # draw a rectangle in the background with the selected colors context.set_line_width(style.zoom(10)) context.set_source_rgba(*style.Color(fill).get_rgba()) context.rectangle(0, 0, bg_width, bg_height) context.fill_preserve() context.set_source_rgba(*style.Color(stroke).get_rgba()) context.stroke() # add the screenshot dest_x = style.zoom(10) dest_y = style.zoom(20) context.set_source_surface(thumb_surface, dest_x, dest_y) thumb_width, thumb_height = style.zoom(100), style.zoom(80) context.rectangle(dest_x, dest_y, thumb_width, thumb_height) context.fill() pixbuf_bg = Gdk.pixbuf_get_from_surface(bg_surface, 0, 0, bg_width, bg_height) img.set_from_pixbuf(pixbuf_bg) self.set_icon_widget(img) img.show() def set_empty_image(self, page): fill = self._color.split(',')[1] stroke = self._color.split(',')[0] img = Gtk.Image() bg_width, bg_height = style.zoom(120), style.zoom(110) bg_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, bg_width, bg_height) context = cairo.Context(bg_surface) # draw a rectangle in the background with the selected colors context.set_line_width(style.zoom(10)) context.set_source_rgba(*style.Color(fill).get_rgba()) context.rectangle(0, 0, bg_width, bg_height) context.fill_preserve() context.set_source_rgba(*style.Color(stroke).get_rgba()) context.stroke() # add the page number context.set_font_size(style.zoom(60)) text = str(page) x, y = bg_width / 2, bg_height / 2 xbearing, ybearing, width, height, xadvance, yadvance = \ context.text_extents(text) context.move_to(x - width / 2, y + height / 2) context.show_text(text) context.stroke() pixbuf_bg = Gdk.pixbuf_get_from_surface(bg_surface, 0, 0, bg_width, bg_height) img.set_from_pixbuf(pixbuf_bg) self.set_icon_widget(img) img.show() def setup_rollover_options(self, title, info, local): palette = Palette(title, text_maxlen=50) palette.set_secondary_text(info) self.set_palette(palette) menu_item = Gtk.MenuItem(_('Go to Bookmark')) menu_item.connect('activate', self.go_to_bookmark_cb) palette.menu.append(menu_item) menu_item.show() if local == 1: menu_item = Gtk.MenuItem(_('Remove')) menu_item.connect('activate', self.item_remove_cb) palette.menu.append(menu_item) menu_item.show() def item_remove_cb(self, widget): self.emit('remove_link', self.page) def go_to_bookmark_cb(self, widget): self.emit('go_to_bookmark', self.page)