diff -Nru birdfont-0.28/NEWS birdfont-0.31/NEWS --- birdfont-0.28/NEWS 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/NEWS 2013-09-12 13:33:31.000000000 +0000 @@ -1,3 +1,20 @@ +birdfont (0.30) stable; + + * Bug fixes + + -- Johan Mattsson Wed Sep 11 18:39:13 CEST 2013 + +birdfont (0.29) stable; + + * Groups of paths and control points + * Speed optimizations + * Bold and italic styles + * Bug fixes + * TTF units + * Paste in place and paste at cursor + + -- Johan Mattsson Tue Sep 10 12:51:33 CEST 2013 + birdfont (0.28) stable; * Kerning classes diff -Nru birdfont-0.28/README birdfont-0.31/README --- birdfont-0.28/README 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/README 2013-09-12 13:33:31.000000000 +0000 @@ -2,7 +2,7 @@ Birdfont - Font Editor ---------------------- -Birdfont is a font editor which can create vector graphics and export SVG, EOT and TTF fonts. +Birdfont is a font editor which can create vector graphics and export SVG, EOT and TTF fonts. Author: Johan Mattsson and others see AUTHORS for full attribution. License: GNU GPL v3 @@ -27,7 +27,7 @@ Configure, build and install: ./configure ./scripts/linux_build.py -sudo ./birdfont_install +sudo ./install.py BirdFont have two build systems, one very simple python script that builds all binaries at once and one dependency based build system @@ -36,7 +36,15 @@ Configure, build and install with doit: ./configure doit -sudo ./birdfont_install +sudo ./install.py + + +The default prefix is /usr/local on Fedora should BirdFont be compiled with +/usr as prefix. + +./configure --prefix=/usr +./scripts/linux_build.py --prefix=/usr +sudo ./install.py --------------------- @@ -47,7 +55,7 @@ python ./configure --prefix=/opt/birdfont python ./scripts/mac_build.py -sudo python ./birdfont_install +sudo python ./install.py -------- Packages @@ -55,8 +63,7 @@ Windows binaries are avalilable at http://birdfont.org -A Ubuntu package is avalilable at https://launchpad.net -You can apt-get install birdfont form Olivier Bertens repository. +A Ubuntu packages are avalilable at https://launchpad.net A Machintosh binary image is available at http://birdfont.org and a GTK version for Mac can be installed with MacPorts. diff -Nru birdfont-0.28/birdfont/GtkWindow.vala birdfont-0.31/birdfont/GtkWindow.vala --- birdfont-0.28/birdfont/GtkWindow.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont/GtkWindow.vala 2013-09-12 13:33:31.000000000 +0000 @@ -42,7 +42,10 @@ VScrollbar scrollbar; bool scrollbar_supress_signal = false; - /** Text input and callbacks to libbirdfont. */ + DescriptionForm description; + + /** Text input and callbacks. */ + public static bool text_input_is_active = false; TextListener text_listener = new TextListener ("", "", ""); Label text_input_label; Entry text_entry; @@ -50,17 +53,22 @@ Button submit_text_button; public GtkWindow (string title) { - scrollbar = new VScrollbar (new Adjustment (0, 0, 1, 1, 0.01, 0.1));; + scrollbar = new VScrollbar (new Adjustment (0, 0, 1, 1, 0.01, 0.1)); ((Gtk.Window)this).set_title ("BirdFont"); } public void init () { + description = new DescriptionForm (); + clipboard = Clipboard.get_for_display (get_display (), Gdk.SELECTION_CLIPBOARD); scrollbar.value_changed.connect (() => { + double p; + if (!scrollbar_supress_signal) { + p = scrollbar.get_value () / (1 - scrollbar.adjustment.page_size); FontDisplay display = MainWindow.get_current_display (); - display.scroll_to (scrollbar.get_value ()); + display.scroll_to (p); } }); @@ -76,10 +84,6 @@ html_canvas = new WebView (); WebKit.set_cache_model (CacheModel.DOCUMENT_VIEWER); html_canvas.get_settings ().enable_default_context_menu = false; - - html_canvas.title_changed.connect ((p, s) => { - webkit_callback (s); - }); html_box = new ScrolledWindow (null, null); html_box.set_policy (PolicyType.NEVER, PolicyType.AUTOMATIC); @@ -91,12 +95,17 @@ File layout_uri; string uri = ""; FontDisplay fd = tab.get_display (); - bool html = fd.is_html_canvas (); + bool html = fd.get_name () == "Preview"; MainWindow.glyph_canvas.set_current_glyph (fd); scrollbar.set_visible (fd.has_scrollbar ()); - - if (html) { + + if (fd.get_name () == "Description") { + description.update_fields (); + description.canvas.set_visible (true); + html_box.set_visible (false); + glyph_canvas_area.set_visible (false); + } else if (html) { layout_dir = FontDisplay.find_layout_dir (); uri = fd.get_uri (); @@ -123,9 +132,9 @@ File preview_directory = BirdFont.get_preview_directory (); - File f_ttf = font.get_folder ().get_child (@"$(font.get_name ()).ttf"); - File f_eot = font.get_folder ().get_child (@"$(font.get_name ()).eot"); - File f_svg = font.get_folder ().get_child (@"$(font.get_name ()).svg"); + File f_ttf = font.get_folder ().get_child (@"$(font.get_full_name ()).ttf"); + File f_eot = font.get_folder ().get_child (@"$(font.get_full_name ()).eot"); + File f_svg = font.get_folder ().get_child (@"$(font.get_full_name ()).svg"); if (f_ttf.query_exists ()) { f_ttf.delete (); @@ -142,8 +151,8 @@ ExportTool.export_ttf_font (); ExportTool.export_svg_font (); - File r_ttf = preview_directory.get_child (@"$(font.get_name ())$rid.ttf"); - File r_svg = preview_directory.get_child (@"$(font.get_name ())$rid.svg"); + File r_ttf = preview_directory.get_child (@"$(font.get_full_name ())$rid.ttf"); + File r_svg = preview_directory.get_child (@"$(font.get_full_name ())$rid.svg"); if (BirdFont.win32) { f_ttf.copy (r_ttf, FileCopyFlags.NONE); @@ -152,9 +161,9 @@ f_svg.copy (r_svg, FileCopyFlags.NONE); while ((line = dis.read_line (null)) != null) { - line = ((!) line).replace (@"$(font.get_name ()).ttf", @"$(FontDisplay.path_to_uri ((!) f_ttf.get_path ()))?$rid"); - line = ((!) line).replace (@"$(font.get_name ()).eot", @"$(FontDisplay.path_to_uri ((!) f_eot.get_path ()))?$rid"); - line = ((!) line).replace (@"$(font.get_name ()).svg", @"$(FontDisplay.path_to_uri ((!) f_svg.get_path ()))?$rid"); + line = ((!) line).replace (@"$(font.get_full_name ()).ttf", @"$(FontDisplay.path_to_uri ((!) f_ttf.get_path ()))?$rid"); + line = ((!) line).replace (@"$(font.get_full_name ()).eot", @"$(FontDisplay.path_to_uri ((!) f_eot.get_path ()))?$rid"); + line = ((!) line).replace (@"$(font.get_full_name ()).svg", @"$(FontDisplay.path_to_uri ((!) f_svg.get_path ()))?$rid"); sb.append ((!) line); } @@ -176,9 +185,11 @@ html_box.set_visible (html); glyph_canvas_area.set_visible (!html); + description.canvas.set_visible (false); } else { html_box.set_visible (false); glyph_canvas_area.set_visible (true); + description.canvas.set_visible (false); } }); @@ -188,13 +199,11 @@ glyph_canvas_area.set_visible (false); return false; }); - - MainWindow.tabs.add_unique_tab (MainWindow.menu_tab, 60, true); - MainWindow.tabs.select_tab_name ("Menu"); - + canvas_box = new HBox (false, 0); canvas_box.pack_start (glyph_canvas_area, true, true, 0); canvas_box.pack_start (html_box, true, true, 0); + canvas_box.pack_start (description.canvas, true, true, 0); canvas_box.pack_start (scrollbar, false, true, 0); submit_text_button = new Button (); @@ -212,6 +221,7 @@ submit_text_button.clicked.connect (() => { text_listener.signal_submit (text_entry.text); + text_input_is_active = false; }); tab_box = new VBox (false, 0); @@ -240,32 +250,42 @@ } key_press_event.connect ((t, event) => { - FontDisplay fd = MainWindow.glyph_canvas.current_display; - - if (fd is Glyph) { - MainWindow.tools.key_press (event.keyval); + if (!GtkWindow.text_input_is_active) { + FontDisplay fd = MainWindow.glyph_canvas.current_display; + + if (fd is Glyph) { + MainWindow.tools.key_press (event.keyval); + } + + MainWindow.glyph_canvas.key_press (event.keyval); + KeyBindings.add_modifier_from_keyval (event.keyval); } - MainWindow.glyph_canvas.key_press (event.keyval); - KeyBindings.add_modifier_from_keyval (event.keyval); return false; }); key_release_event.connect ((t, event) => { - FontDisplay fd = MainWindow.glyph_canvas.current_display; - - if (fd is Glyph) { - MainWindow.glyph_canvas.key_release (event.keyval); + if (!GtkWindow.text_input_is_active) { + FontDisplay fd = MainWindow.glyph_canvas.current_display; + + if (fd is Glyph) { + MainWindow.glyph_canvas.key_release (event.keyval); + } + + KeyBindings.remove_modifier_from_keyval (event.keyval); } - KeyBindings.remove_modifier_from_keyval (event.keyval); return false; }); show_all (); scrollbar.set_visible (false); + description.canvas.set_visible (false); + hide_text_input (); + + MainWindow.open_recent_files_tab (); } public void set_save_dialog (SaveDialogListener d) { @@ -336,7 +356,7 @@ public void set_scrollbar_position (double position) { scrollbar_supress_signal = true; - scrollbar.adjustment.value = position; + scrollbar.adjustment.value = position * (1 - scrollbar.adjustment.page_size); scrollbar_supress_signal = false; } @@ -473,6 +493,10 @@ load_item.activate.connect (() => { MenuTab.load (); }); load_item.add_accelerator ("activate", accel_group, 'O', Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); + Gtk.MenuItem recent_files_item = new Gtk.MenuItem.with_mnemonic (_("_Recent Files")); + file_menu.append (recent_files_item); + recent_files_item.activate.connect (() => { MainWindow.open_recent_files_tab (); }); + Gtk.MenuItem save_item = new Gtk.MenuItem.with_mnemonic (_("_Save")); file_menu.append (save_item); save_item.activate.connect (() => { MenuTab.save (); }); @@ -484,7 +508,7 @@ Gtk.MenuItem export_item = new Gtk.MenuItem.with_mnemonic (_("_Export")); file_menu.append (export_item); - export_item.activate.connect (() => { ExportTool.export_all (); }); + export_item.activate.connect (() => { MenuTab.export_font (); }); export_item.add_accelerator ("activate", accel_group, 'E', Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); if (!BirdFont.mac) { @@ -522,14 +546,23 @@ paste_item.activate.connect (() => { ClipTool.paste (); }); paste_item.add_accelerator ("activate", accel_group, 'V', Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); + Gtk.MenuItem paste_in_place_item = new Gtk.MenuItem.with_mnemonic (_("Paste _In Place")); + edit_menu.append (paste_in_place_item); + paste_in_place_item.activate.connect (() => { ClipTool.paste_in_place (); }); + paste_in_place_item.add_accelerator ("activate", accel_group, 'V', Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK, Gtk.AccelFlags.VISIBLE); + Gtk.MenuItem select_all_item = new Gtk.MenuItem.with_mnemonic (_("Select All Pa_ths")); edit_menu.append (select_all_item); select_all_item.activate.connect (() => { - Toolbox.select_tool_by_name ("move"); - MainWindow.get_current_glyph ().select_all_paths (); + MainWindow.select_all_paths (); }); select_all_item.add_accelerator ("activate", accel_group, 'A', Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); - + + Gtk.MenuItem search_item = new Gtk.MenuItem.with_mnemonic (_("_Search")); + edit_menu.append (search_item); + search_item.activate.connect (() => { OverView.search (); }); + search_item.add_accelerator ("activate", accel_group, 'F', Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); + Gtk.MenuItem export_svg_item = new Gtk.MenuItem.with_mnemonic (_("_Export Glyph as SVG")); edit_menu.append (export_svg_item); export_svg_item.activate.connect (() => { ExportTool.export_current_glyph (); }); @@ -724,6 +757,16 @@ remove_all_kerning_pairs.activate.connect (() => { MenuTab.remove_all_kerning_pairs (); }); + + kerning_menu.append (new SeparatorMenuItem ()); + + Gtk.MenuItem select_next_kerning_pair = new Gtk.MenuItem.with_mnemonic (" Ctrl+→ " + _("Select _Next Kerning Pair")); + kerning_menu.append (select_next_kerning_pair); + select_next_kerning_pair.activate.connect (() => { KerningDisplay.next_pair (); }); + + Gtk.MenuItem select_previous_kerning_pair = new Gtk.MenuItem.with_mnemonic (" Ctrl+← " + _("Select _Previous Kerning Pair")); + kerning_menu.append (select_previous_kerning_pair); + select_previous_kerning_pair.activate.connect (() => { KerningDisplay.previous_pair (); }); // Add menus Gtk.MenuItem file_launcher = new Gtk.MenuItem.with_mnemonic (_("_File")); @@ -788,7 +831,7 @@ } if (file_chooser.run () == ResponseType.ACCEPT) { - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); fn = file_chooser.get_filename (); } @@ -800,6 +843,7 @@ public void hide_text_input () { text_listener = new TextListener ("", "", ""); text_box.hide (); + text_input_is_active = false; } public void set_text_listener (TextListener listener) { @@ -810,8 +854,10 @@ text_entry.set_text (listener.default_text); text_entry.activate.connect (() => { listener.signal_submit (listener.default_text); + text_input_is_active = false; }); text_entry.grab_focus (); + text_input_is_active = true; } } @@ -1013,6 +1059,8 @@ glyph_canvas.current_display.button_release (2, e.x, e.y); return true; }); + + can_focus = true; } static void set_modifier (int k) { @@ -1075,4 +1123,174 @@ } } +public class DescriptionForm : GLib.Object { + + public ScrolledWindow canvas; + public VBox box; + + Entry postscript_name; + Entry font_name; + Entry style; + CheckButton bold; + CheckButton italic; + Entry weight; + Entry full_name; + Entry id; + Entry version; + + TextView description; + TextView copyright; + + public DescriptionForm () { + box = new VBox (false, 6); + canvas = new ScrolledWindow (null, null); + canvas.set_policy (Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); + + postscript_name = new Entry (); + add_entry (postscript_name, _("PostScript Name")); + postscript_name.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.postscript_name = postscript_name.text; + }); + + font_name = new Entry (); + add_entry (font_name, _("Name")); + font_name.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.name = font_name.text; + }); + + style = new Entry (); + add_entry (style, _("Style")); + style.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.subfamily = style.text; + }); + + bold = new CheckButton.with_label (_("Bold")); + bold.toggled.connect (() => { + Font f = BirdFont.get_current_font (); + f.bold = bold.active;; + }); + box.pack_start (bold, false, false, 0); + + italic = new CheckButton.with_label (_("Italic")); + italic.toggled.connect (() => { + Font f = BirdFont.get_current_font (); + f.italic = italic.active;; + }); + box.pack_start (italic, false, false, 0); + + weight = new Entry (); + add_entry (weight, _("Weight")); + weight.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.set_weight (weight.text); + }); + + full_name = new Entry (); + add_entry (full_name, _("Full name (name and style)")); + full_name.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.full_name = full_name.text; + }); + + id = new Entry (); + add_entry (id, _("Unique identifier")); + id.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.unique_identifier = id.text; + }); + + version = new Entry (); + add_entry (version, _("Version")); + version.changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.version = version.text; + }); + + description = new TextView (); + add_textview (description, _("Description")); + description.get_buffer ().changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.description = description.get_buffer ().text; + }); + description.set_wrap_mode (Gtk.WrapMode.WORD); + + copyright = new TextView (); + add_textview (copyright, _("Copyright")); + copyright.get_buffer ().changed.connect (() => { + Font f = BirdFont.get_current_font (); + f.copyright = copyright.get_buffer ().text; + }); + copyright.set_wrap_mode (Gtk.WrapMode.WORD); + + update_fields (); + + canvas.add_with_viewport (box); + canvas.show_all (); + } + + public void update_fields () { + Font font = BirdFont.get_current_font (); + + return_if_fail (font.postscript_name.validate ()); + return_if_fail (font.name.validate ()); + return_if_fail (font.subfamily.validate ()); + return_if_fail (font.full_name.validate ()); + return_if_fail (font.unique_identifier.validate ()); + return_if_fail (font.version.validate ()); + return_if_fail (font.description.validate ()); + return_if_fail (font.copyright.validate ()); + + postscript_name.set_text (font.postscript_name); + font_name.set_text (font.name); + style.set_text (font.subfamily); + bold.active = font.bold; + italic.active = font.italic; + weight.set_text (font.get_weight ()); + full_name.set_text (font.full_name); + id.set_text (font.unique_identifier); + version.set_text (font.version); + + description.get_buffer ().set_text (font.description.dup ()); + copyright.get_buffer ().set_text (font.copyright.dup ()); + + } + + void add_entry (Entry e, string label) { + VBox vb; + HBox hb; + Label l; + HBox margin; + + margin = new HBox (false, 6); + l = new Label (label); + vb = new VBox (false, 2); + hb = new HBox (false, 2); + hb.pack_start (l, false, false, 0); + vb.pack_start (hb, true, true, 5); + vb.pack_start (e, true, true, 0); + margin.pack_start (vb, true, true, 5); + box.pack_start (margin, false, false, 5); + } + + void add_textview (TextView t, string label) { + VBox vb; + HBox hb; + Label l; + HBox margin; + + margin = new HBox (false, 6); + l = new Label (label); + vb = new VBox (false, 2); + hb = new HBox (false, 2); + hb.pack_start (l, false, false, 0); + vb.pack_start (hb, true, true, 5); + vb.pack_start (t, true, true, 0); + margin.pack_start (vb, true, true, 5); + box.pack_start (margin, false, false, 5); + } +} + } diff -Nru birdfont-0.28/birdfont/Main.vala birdfont-0.31/birdfont/Main.vala --- birdfont-0.28/birdfont/Main.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont/Main.vala 2013-09-12 13:33:31.000000000 +0000 @@ -29,20 +29,55 @@ MainWindow window; string file; BirdFont.BirdFont birdfont = new BirdFont.BirdFont (); + CharDatabaseParser db = new CharDatabaseParser (); + unowned Thread db_thread; + Mutex database_mutex = new Mutex (); + Cond main_loop_idle = new Cond (); + bool in_idle = false; + birdfont.init (arg, null); Gtk.init (ref arg); parse_gtk_rc (); - - native_window = new GtkWindow ("birdfont"); + window = new MainWindow (); + native_window = new GtkWindow ("birdfont"); + window.set_native (native_window); native_window.init (); file = BirdFont.BirdFont.args.get_file (); if (file != "") { - MainWindow.menu_tab.load_font (file); + MainWindow.file_tab.load_font (file); + } + + try { + db_thread = Thread.create (db.load, false); + + // wait until main loop is done + db.sync.connect (() => { + database_mutex.lock (); + IdleSource idle = new IdleSource (); + in_idle = false; + + idle.set_callback (() => { + database_mutex.lock (); + in_idle = true; + main_loop_idle.broadcast (); + database_mutex.unlock (); + return false; + }); + idle.attach (null); + + while (!in_idle) { + main_loop_idle.wait (database_mutex); + } + + database_mutex.unlock (); + }); + } catch (GLib.Error e) { + warning (e.message); } Gtk.main (); diff -Nru birdfont-0.28/birdfont-debug.sh birdfont-0.31/birdfont-debug.sh --- birdfont-0.28/birdfont-debug.sh 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont-debug.sh 2013-09-12 13:33:31.000000000 +0000 @@ -1,4 +1,5 @@ -export LD_LIBRARY_PATH="./build/:$LD_LIBRARY_PATH" +#!/bin/sh +export LD_LIBRARY_PATH="./build/:./build/bin:$LD_LIBRARY_PATH" PKG_PATH=$(dirname "$(readlink -f "$0")") cd "${PKG_PATH}" gdb ./build/bin/birdfont -ex "run "$@"" diff -Nru birdfont-0.28/birdfont-export.sh birdfont-0.31/birdfont-export.sh --- birdfont-0.28/birdfont-export.sh 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont-export.sh 2013-09-12 13:33:31.000000000 +0000 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh export LD_LIBRARY_PATH="./build/:$LD_LIBRARY_PATH" PKG_PATH=$(dirname "$(readlink -f "$0")") cd "${PKG_PATH}" diff -Nru birdfont-0.28/birdfont.sh birdfont-0.31/birdfont.sh --- birdfont-0.28/birdfont.sh 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont.sh 2013-09-12 13:33:31.000000000 +0000 @@ -1,5 +1,5 @@ -#!/bin/bash -export LD_LIBRARY_PATH="./build/:$LD_LIBRARY_PATH" +#!/bin/sh +export LD_LIBRARY_PATH="./build/:./build/bin:$LD_LIBRARY_PATH" PKG_PATH=$(dirname "$(readlink -f "$0")") cd "${PKG_PATH}" ./build/bin/birdfont "$@" diff -Nru birdfont-0.28/birdfont_install birdfont-0.31/birdfont_install --- birdfont-0.28/birdfont_install 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/birdfont_install 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -#!/usr/bin/python -import os -import subprocess -import glob -from optparse import OptionParser -from scripts import config -from scripts import version -from scripts.run import run - -def install (file, dir): - f = dest + prefix + dir + '/' - s = file.rfind ('/') - if s > -1: - f += file[s + 1:] - else: - f += file - print ("install: " + f) - run ('install -d ' + dest + prefix + dir) - run ('install ' + file + ' ' + dest + prefix + dir + '/') - installed.write (f + "\n") - -if not os.path.exists ("build/configured"): - print ("Project is not configured") - exit (1) - -if not os.path.exists ("build/installed"): - print ("Project is not built") - exit (1) - -parser = OptionParser() -parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST") -parser.add_option ("-m", "--bsd-manpages", dest="nogzip", help="don't gzip manpages") - -(options, args) = parser.parse_args() - -if not options.dest: - options.dest = "" - -if not options.nogzip: - bsd_manpages = True -else: - bsd_manpages = False - -prefix = config.PREFIX -dest = options.dest - -# create uninstall file -installed = open ('build/installed', 'w') -installed.write ('build/installed\n') - -# install it: -for file in os.listdir('./layout'): - install ('layout/' + file, '/share/birdfont/layout') - -for file in os.listdir('./icons'): - install ('icons/' + file, '/share/birdfont/icons') - -install ('resources/linux/birdfont.desktop', '/share/applications') -install ('resources/linux/birdfont.png', '/share/icons/hicolor/48x48/apps') - -install ('build/bin/birdfont', '/bin') -install ('build/bin/birdfont-export', '/bin') - -#library -if os.path.isfile ('build/bin/libbirdfont.so.' + version.SO_VERSION): - install ('build/bin/libbirdfont.so.' + version.SO_VERSION, '/lib') - install ('build/bin/libbirdfont.so', '/lib') -else: - install ('build/bin/libbirdfont.' + version.SO_VERSION + '.dylib', '/lib') - install ('build/bin/libbirdfont.dylib', '/lib') - -#manpages -if not bsd_manpages: - install ('build/birdfont.1.gz', '/share/man/man1') - install ('build/birdfont-export.1.gz', '/share/man/man1') -else: - install ('resources/linux/birdfont.1', '/man/man1') - install ('resources/linux/birdfont-export.1', '/man/man1') - -# translations -for lang_dir in glob.glob('build/locale/*'): - lc = lang_dir.replace ('build/locale/', "") - install ('build/locale/' + lc + '/LC_MESSAGES/birdfont.mo', '/share/locale/' + lc + '/LC_MESSAGES' ); - -installed.close () diff -Nru birdfont-0.28/configure birdfont-0.31/configure --- birdfont-0.28/configure 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/configure 2013-09-12 13:33:31.000000000 +0000 @@ -54,13 +54,14 @@ libs = [ 'cairo', 'gdk-pixbuf-2.0', - 'gee-1.0', + 'gee-0.8', 'gio-2.0', 'glib-2.0', 'gtk+-2.0', 'libxml-2.0', 'webkit-1.0', - 'libsoup-2.4' + 'libsoup-2.4', + 'libxml-2.0' ] for lib in libs: diff -Nru birdfont-0.28/debian/changelog birdfont-0.31/debian/changelog --- birdfont-0.28/debian/changelog 2013-08-26 03:54:31.000000000 +0000 +++ birdfont-0.31/debian/changelog 2013-09-27 09:22:54.000000000 +0000 @@ -1,4 +1,16 @@ -birdfont (0.28-1dhor~raring) raring; urgency=low +birdfont (0.31-1dhor~raring) raring; urgency=low + + * Bug fixes + * Groups of paths and control points + * Speed optimizations + * Bold and italic styles + * Bug fixes + * TTF units + * Paste in place and paste at cursor + + -- Dariusz Duma Fri, 27 Sep 2013 11:22:23 +0200 + +birdfont (0.28-1dhor~precise) precise; urgency=low * Kerning classes * Copy and paste paths between windows diff -Nru birdfont-0.28/debian/control birdfont-0.31/debian/control --- birdfont-0.28/debian/control 2013-08-26 03:54:15.000000000 +0000 +++ birdfont-0.31/debian/control 2013-09-27 09:46:55.000000000 +0000 @@ -2,7 +2,7 @@ Section: graphics Priority: extra Maintainer: Dariusz Duma -Build-Depends: debhelper (>= 8.0.0), autotools-dev, valac, libgee-dev, libglib2.0-dev, libgtk2.0-dev, libxml2-dev, libwebkitgtk-dev, unicode-data, python-doit +Build-Depends: debhelper (>= 8.0.0), autotools-dev, valac, libglib2.0-dev, libgtk2.0-dev, libxml2-dev, libwebkitgtk-dev, unicode-data, python-doit, libgee-0.8-dev, libgee-dev Standards-Version: 3.9.4 Homepage: #Vcs-Git: git://git.debian.org/collab-maint/birdfont.git diff -Nru birdfont-0.28/debian/rules birdfont-0.31/debian/rules --- birdfont-0.28/debian/rules 2013-08-25 14:04:14.000000000 +0000 +++ birdfont-0.31/debian/rules 2013-09-27 09:44:52.000000000 +0000 @@ -28,4 +28,4 @@ rm -f .doit.db override_dh_auto_install: - ./install -d $(CURDIR)/debian/birdfont + ./install.py -d $(CURDIR)/debian/birdfont Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/active_edit_point_cubic.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/active_edit_point_cubic.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/active_selected_edit_point.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/active_selected_edit_point.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/active_selected_edit_point_cubic.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/active_selected_edit_point_cubic.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/edit_point.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/edit_point.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/fill_open_path.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/fill_open_path.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/resize.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/resize.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/selected_edit_point.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/selected_edit_point.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/selected_edit_point_cubic.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/selected_edit_point_cubic.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/selected_edit_point_handle.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/selected_edit_point_handle.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/show_all_line_handles.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/show_all_line_handles.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/toolbox_background.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/toolbox_background.png differ Binary files /tmp/GOpJ91Nz_9/birdfont-0.28/icons/ttf_units.png and /tmp/rofC7HKoJe/birdfont-0.31/icons/ttf_units.png differ diff -Nru birdfont-0.28/install birdfont-0.31/install --- birdfont-0.28/install 2013-08-25 14:33:38.000000000 +0000 +++ birdfont-0.31/install 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -#!/usr/bin/python -import os -import subprocess -import glob -from optparse import OptionParser -from scripts import config - -def install (file, dir): - f = dest + prefix + dir + '/' - s = file.rfind ('/') - if s > -1: - f += file[s + 1:] - else: - f += file - print ("install: " + f) - subprocess.check_output ('install -d ' + dest + prefix + dir, shell=True) - subprocess.check_output ('install ' + file + ' ' + dest + prefix + dir + '/', shell=True) - installed.write (f + "\n") - -if not os.path.exists ("build/configured"): - print ("Project is not configured") - exit (1) - -if not os.path.exists ("build/installed"): - print ("Project is not built") - exit (1) - -parser = OptionParser() -parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST") - -(options, args) = parser.parse_args() - -if not options.dest: - options.dest = "" - -prefix = config.PREFIX -dest = options.dest - -# create uninstall file -installed = open ('build/installed', 'w') -installed.write ('build/installed\n') - -# install it: -for file in os.listdir('./layout'): - install ('layout/' + file, '/share/birdfont/layout') - -for file in os.listdir('./icons'): - install ('icons/' + file, '/share/birdfont/icons') - -install ('resources/linux/birdfont.desktop', '/share/applications') -install ('resources/linux/birdfont.png', '/share/icons/hicolor/48x48/apps') - -install ('build/bin/birdfont', '/bin') -install ('build/bin/birdfont-export', '/bin') -install ('build/libbirdfont.so', '/lib') - -install ('build/birdfont.1.gz', '/share/man/man1') -install ('build/birdfont-export.1.gz', '/share/man/man1') - -# translations -for lang_dir in glob.glob('build/locale/*'): - lc = lang_dir.replace ('build/locale/', "") - install ('build/locale/' + lc + '/LC_MESSAGES/birdfont.mo', -'/share/locale/' + lc + '/LC_MESSAGES' ); - -installed.close () diff -Nru birdfont-0.28/install.py birdfont-0.31/install.py --- birdfont-0.28/install.py 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/install.py 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,93 @@ +#!/usr/bin/python +import os +import subprocess +import glob +from optparse import OptionParser +from scripts import config +from scripts import version +from scripts.run import run + +def install (file, dir): + f = dest + prefix + dir + '/' + s = file.rfind ('/') + if s > -1: + f += file[s + 1:] + else: + f += file + print ("install: " + f) + run ('install -d ' + dest + prefix + dir) + run ('install ' + file + ' ' + dest + prefix + dir + '/') + installed.write (f + "\n") + +if not os.path.exists ("build/configured"): + print ("Project is not configured") + exit (1) + +if not os.path.exists ("build/installed"): + print ("Project is not built") + exit (1) + +parser = OptionParser() +parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST") +parser.add_option ("-m", "--bsd-manpages", dest="nogzip", help="don't gzip manpages") + +(options, args) = parser.parse_args() + +if not options.dest: + options.dest = "" + +if not options.nogzip: + bsd_manpages = True +else: + bsd_manpages = False + +prefix = config.PREFIX +dest = options.dest + +# create uninstall file +installed = open ('build/installed', 'w') +installed.write ('build/installed\n') + +# install it: +for file in os.listdir('./layout'): + install ('layout/' + file, '/share/birdfont/layout') + +for file in os.listdir('./icons'): + install ('icons/' + file, '/share/birdfont/icons') + +install ('resources/linux/birdfont.desktop', '/share/applications') +install ('resources/linux/birdfont.png', '/share/icons/hicolor/48x48/apps') + +if os.path.isfile ('build/bin/birdfont'): + install ('build/bin/birdfont', '/bin') + +install ('build/bin/birdfont-export', '/bin') + +#library +if os.path.isfile ('build/bin/libbirdfont.so.' + version.SO_VERSION): + install ('build/bin/libbirdfont.so.' + version.SO_VERSION, '/lib') + install ('build/bin/libbirdfont.so', '/lib') +elif os.path.isfile ('build/libbirdfont.so.' + version.SO_VERSION): + install ('build/libbirdfont.so.' + version.SO_VERSION, '/lib') + install ('build/libbirdfont.so', '/lib') +elif os.path.isfile ('build/bin/libbirdfont.' + version.SO_VERSION + '.dylib'): + install ('build/bin/libbirdfont.' + version.SO_VERSION + '.dylib', '/lib') + install ('build/bin/libbirdfont.dylib', '/lib') +else: + print ("Can not find libbirdfont.") + exit (1) + +#manpages +if not bsd_manpages: + install ('build/birdfont.1.gz', '/share/man/man1') + install ('build/birdfont-export.1.gz', '/share/man/man1') +else: + install ('resources/linux/birdfont.1', '/man/man1') + install ('resources/linux/birdfont-export.1', '/man/man1') + +# translations +for lang_dir in glob.glob('build/locale/*'): + lc = lang_dir.replace ('build/locale/', "") + install ('build/locale/' + lc + '/LC_MESSAGES/birdfont.mo', '/share/locale/' + lc + '/LC_MESSAGES' ); + +installed.close () diff -Nru birdfont-0.28/libbirdfont/BackgroundSelection.vala birdfont-0.31/libbirdfont/BackgroundSelection.vala --- birdfont-0.28/libbirdfont/BackgroundSelection.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/BackgroundSelection.vala 2013-09-12 13:33:31.000000000 +0000 @@ -37,10 +37,11 @@ add_icon = (!) i; } + public override string get_label () { + return _("Backgrounds"); + } + public override string get_name () { - #if translations - _("Backgrounds"); - #endif return "Backgrounds"; } @@ -164,7 +165,7 @@ BirdFont.get_current_font ().add_background_image ((!) file); } - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); collect_background_images (); } @@ -276,7 +277,7 @@ active += (int) (y / 140) * (int) (allocation.width / 140.0); // row if (active != active_box) { - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); active_box = active; } } diff -Nru birdfont-0.28/libbirdfont/BackgroundTool.vala birdfont-0.31/libbirdfont/BackgroundTool.vala --- birdfont-0.28/libbirdfont/BackgroundTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/BackgroundTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -140,7 +140,7 @@ bg.set_img_offset (this.img_offset_x + dx, this.img_offset_y + dy); } - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } diff -Nru birdfont-0.28/libbirdfont/BirdFont.vala birdfont-0.31/libbirdfont/BirdFont.vala --- birdfont-0.28/libbirdfont/BirdFont.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/BirdFont.vala 2013-09-12 13:33:31.000000000 +0000 @@ -34,7 +34,7 @@ bool write_ttf = false; bool write_svg = false; File directory; - + stdout.printf ("birdfont-export version %s\n", VERSION); stdout.printf ("built on %s\n", BUILD_TIMESTAMP); @@ -43,6 +43,9 @@ return -1; } + // FIXME: create a option for this and structure the log messages + // init_logfile (); + for (int i = 1; i < arg.length; i++) { if (arg[i] == "-f" || arg[i] == "--fatal-warnings") { @@ -102,10 +105,10 @@ BirdFont.current_glyph = new Glyph (""); if (!BirdFont.get_current_font ().load (file_name, false)) { - stderr.printf (@"Failed to load font $file_name.\n"); + warning (@"Failed to load font $file_name.\n"); if (!file_name.has_suffix (".bf")) { - stderr.printf (@"Is it a .bf file?\n"); + warning (@"Is it a .bf file?\n"); } return 1; @@ -119,12 +122,12 @@ } if (!specific_formats || write_svg) { - print (_("Writing") + @" $(BirdFont.current_font.get_name ()).svg to $output_directory\n"); + print (@"Writing $(BirdFont.current_font.get_name ()).svg to $output_directory\n"); ExportTool.export_svg_font_path (File.new_for_path (output_directory)); } if (!specific_formats || write_ttf) { - print (_("Writing") + @" $(BirdFont.current_font.get_name ()).ttf to $output_directory\n"); + print (@"Writing $(BirdFont.current_font.get_name ()).ttf to $output_directory\n"); ExportTool.export_ttf_font_path (File.new_for_path (output_directory), false); } @@ -183,6 +186,9 @@ public static string exec_path = ""; public static string bundle_path = ""; + public static bool logging = false; + public static DataOutputStream? logstream = null; + public static Font current_font; public static Glyph current_glyph; @@ -270,8 +276,9 @@ Preferences.set_last_file (get_current_font ().get_path ()); DefaultCharacterSet.create_default_character_sets (); - DefaultCharacterSet.get_glyphs_for_prefered_language (); + DefaultCharacterSet.get_characters_for_prefered_language (); + HeadTable.init (); } public static void set_bundle_path (string path) { @@ -362,4 +369,58 @@ } } +void init_logfile () { + DateTime t; + File settings; + string s; + File log; + + try { + t = new DateTime.now_local (); + settings = BirdFont.get_settings_directory (); + s = t.to_string ().replace (":", "_"); + log = settings.get_child (@"birdfont_$s.log"); + + BirdFont.logstream = new DataOutputStream (log.create (FileCreateFlags.REPLACE_DESTINATION)); + ((!)BirdFont.logstream).put_string ((!) log.get_path ()); + ((!)BirdFont.logstream).put_string ("\n"); + + warning ("Logging to " + (!) log.get_path ()); + } catch (GLib.Error e) { + warning (e.message); + warning ((!) log.get_path ()); + } + + LogLevelFlags levels = LogLevelFlags.LEVEL_ERROR | LogLevelFlags.LEVEL_CRITICAL | LogLevelFlags.LEVEL_WARNING | LogLevelFlags.LEVEL_DEBUG; + Log.set_handler (null, levels, log_warning); + + BirdFont.logging = true; +} + +internal static void log_warning (string? log_domain, LogLevelFlags log_levels, string message) { + if (log_domain != null) { + printd ((!) log_domain); + } + + printd ("\n"); + printd (message); + printd ("\n"); + printd ("\n"); +} + +/** Write debug output to logfile. */ +void printd (string s) { + if (unlikely (BirdFont.logging)) { + try { + if (BirdFont.logstream != null) { + ((!)BirdFont.logstream).put_string (s); + } else { + warning ("No logstream."); + } + } catch (GLib.Error e) { + warning (e.message); + } + } +} + } diff -Nru birdfont-0.28/libbirdfont/BirdFontFile.vala birdfont-0.31/libbirdfont/BirdFontFile.vala --- birdfont-0.28/libbirdfont/BirdFontFile.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/BirdFontFile.vala 2013-09-12 13:33:31.000000000 +0000 @@ -36,7 +36,9 @@ Xml.Node* root; Parser.init (); - + + printd (@"Loading $path\n"); + font.font_file = path; // this will be updated if we are loading a backup file doc = Parser.parse_file (path); @@ -91,7 +93,6 @@ File file = File.new_for_path (path); uint num_kerning_pairs; uint progress; - uint num_glyphs; if (file.query_file_type (0) == FileType.DIRECTORY) { warning (@"Can not save font. $path is a directory."); @@ -120,6 +121,8 @@ os.put_string (@"$(font.postscript_name)\n"); os.put_string (@"$(font.name)\n"); os.put_string (@"$(font.subfamily)\n"); + os.put_string (@"$(font.bold)\n"); + os.put_string (@"$(font.italic)\n"); os.put_string (@"$(font.full_name)\n"); os.put_string (@"$(font.unique_identifier)\n"); os.put_string (@"$(font.version)\n"); @@ -274,6 +277,8 @@ * C - Cubic Bézier path * * T - Tie handles for previous curve + * + * O - Keep open (do not close path) */ public static string get_point_data (Path pl) { StringBuilder data = new StringBuilder (); @@ -281,20 +286,39 @@ EditPoint m; int i = 0; - if (pl.points.length () < 2) { - return ""; + if (pl.points.length () == 0) { + return data.str; + } + + if (pl.points.length () == 1) { + add_start_point (pl.points.first ().data, data); + data.append (" "); + add_next_point (pl.points.first ().data, pl.points.first ().data, data); + + if (pl.is_open ()) { + data.append (" O"); + } + return data.str; + } + + if (pl.points.length () == 2) { + add_start_point (pl.points.first ().data, data); + data.append (" "); + add_next_point (pl.points.first ().data, pl.points.last ().data, data); + data.append (" "); + add_next_point (pl.points.last ().data, pl.points.first ().data, data); + + if (pl.is_open ()) { + data.append (" O"); + } + return data.str; } pl.create_list (); foreach (EditPoint e in pl.points) { if (i == 0) { - if (e.type == PointType.CUBIC || e.type == PointType.LINE_CUBIC) { - add_cubic_start (e, data); - } else { - add_quadratic_start (e, data); - } - + add_start_point (e, data); i++; n = e; continue; @@ -303,28 +327,30 @@ m = (!) n; data.append (" "); add_next_point (m, e, data); - n = e; - - if (e.tie_handles) { - data.append (" "); - data.append (@"T"); - } - + + n = e; i++; } data.append (" "); m = pl.points.first ().data; add_next_point ((!) n, m, data); - - if (m.tie_handles) { - data.append (" "); - data.append (@"T"); + + if (pl.is_open ()) { + data.append (" O"); } return data.str; } + private static void add_start_point (EditPoint e, StringBuilder data) { + if (e.type == PointType.CUBIC || e.type == PointType.LINE_CUBIC) { + add_cubic_start (e, data); + } else { + add_quadratic_start (e, data); + } + } + private static void add_quadratic_start (EditPoint p, StringBuilder data) { data.append (@"S $(p.x),$(p.y)"); } @@ -378,7 +404,12 @@ } else { warning (@"Unknown point type. \nStart handle: $(start.right_handle.type) \nStop handle: $(end.left_handle.type)"); add_cubic (start, end, data); - } + } + + if (end.tie_handles) { + data.append (" "); + data.append (@"T"); + } } private void write_glyph_collection (GlyphCollection gc, DataOutputStream os) throws GLib.Error { @@ -435,7 +466,10 @@ Xml.Node* node = root; for (Xml.Node* iter = node->children; iter != null; iter = iter->next) { - + + printd (iter->name); // FIXME: delete + printd ("\n"); + // this is a backup file set path to the original if (iter->name == "backup") { font.font_file = iter->children->content; @@ -469,6 +503,15 @@ if (iter->name == "postscript_name" && iter->children != null) { font.postscript_name = iter->children->content; + + printd ("PostScript name:"); // FIXME: delete when debugging is done + printd (iter->children->content); + printd ("\n"); + } + + // FIXME: delete when debugging is done + if (iter->name == "postscript_name" && iter->children == null) { + printd ("Found PostScipt name but content for this node is null in libxml.\n"); } if (iter->name == "name" && iter->children != null) { @@ -479,6 +522,14 @@ font.subfamily = iter->children->content; } + if (iter->name == "bold" && iter->children != null) { + font.bold = bool.parse (iter->children->content); + } + + if (iter->name == "italic" && iter->children != null) { + font.italic = bool.parse (iter->children->content); + } + if (iter->name == "full_name" && iter->children != null) { font.full_name = iter->children->content; } @@ -665,6 +716,10 @@ data = attr_content; } } + + if (!font.get_backgrounds_folder ().query_exists ()) { + DirUtils.create ((!) font.get_backgrounds_folder ().get_path (), 0xFFFFFF); + } img_dir = font.get_backgrounds_folder ().get_child ("parts"); @@ -1024,6 +1079,8 @@ ep2.left_handle.angle = ep1.left_handle.angle; ep2.left_handle.length = ep1.left_handle.length; ep2.left_handle.type = ep1.left_handle.type; + + path.close (); } public static Path parse_path_data (string data) { @@ -1032,6 +1089,7 @@ int i = 0; Path path = new Path (); string instruction = ""; + bool open = false; if (data == "") { return path; @@ -1112,13 +1170,21 @@ cubic (path, p[0], p[1], p1[0], p1[1], p2[0], p2[1]); } else if (instruction == "T") { path.points.last ().data.tie_handles = true; + } else if (instruction == "O") { + open = true; } else { warning (@"invalid instruction $instruction"); return path; } } - close (path); + if (!open) { + close (path); + } else { + path.points.remove_link (path.points.last ()); + } + + path.update_region_boundries (); return path; } diff -Nru birdfont-0.28/libbirdfont/CharDatabase.vala birdfont-0.31/libbirdfont/CharDatabase.vala --- birdfont-0.28/libbirdfont/CharDatabase.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/CharDatabase.vala 2013-09-12 13:33:31.000000000 +0000 @@ -12,11 +12,69 @@ Lesser General Public License for more details. */ +using Gee; + namespace BirdFont { -class CharDatabase { +public class CharDatabase { + + public static HashMap entries; + public static HashMultiMap index; + + public static GlyphRange full_unicode_range; + public static bool database_is_loaded = false; public CharDatabase () { + entries = new HashMap (); + index = new HashMultiMap (); + + full_unicode_range = new GlyphRange (); + } + + public static GlyphRange search (string s) { + GlyphRange result = new GlyphRange (); + GlyphRange ucd_result = new GlyphRange (); + unichar c; + string i; + string? iv; + + if (!database_is_loaded) { + show_loading_message (); + } + + return_val_if_fail (result.get_length () == 0, result); + + if (s.has_prefix ("U+") || s.has_prefix ("u+")) { + c = Font.to_unichar (s.down ()); + + if (c != '\0') { + result.add_single (c); + } + } + + if (s.char_count () == 1) { + result.add_single (s.get_char ()); + } + + for (var it = index.get (s).iterator (); it.has_next (); it.next ()) { + iv = it.get (); + if (iv != null) { + i = (string) iv; + c = Font.to_unichar ("U+" + i.down ()); + ucd_result.add_single (c); + } + } + + try { + if (ucd_result.get_length () > 0) { + ucd_result.sort (); + result.parse_ranges (ucd_result.get_all_ranges ()); + } + } catch (MarkupError e) { + warning (e.message); + } + + return result; } public static bool has_ascender (unichar c) { @@ -27,16 +85,9 @@ case 'd': return true; case 'f': return true; case 'h': return true; - case 'i': return true; - case 'j': return true; case 'k': return true; case 'l': return true; } - - if ('à' <= c <= 'å') return true; - if ('è' <= c <= 'ö') return true; - if ('ù' <= c <= 'ă') return true; - if ('ć' <= c <= 'ė') return true; return false; } @@ -53,18 +104,10 @@ return false; } - public static string get_unicode_database_entry (unichar c) { - FileInputStream fin; - DataInputStream din; - string? line; - string data; - string hex_char; - string description = ""; - File file; - - file = get_unicode_database (); - hex_char = Font.to_hex (c).replace ("U+", ""); - + /** Convert from the U+xx form to the unicode database hex value. */ + static string to_database_hex (unichar c) { + string hex_char = Font.to_hex (c).replace ("U+", ""); + if (hex_char.char_count () == 2) { hex_char = "00" + hex_char; } @@ -73,140 +116,39 @@ hex_char = hex_char.substring (1); } - hex_char += "\t"; - hex_char = hex_char.up (); + hex_char = hex_char.up (); + return hex_char; + } + + public static string get_unicode_database_entry (unichar c) { + string description; + string? d; - try { - fin = file.read (); - din = new DataInputStream (fin); - - while ((line = din.read_line (null)) != null) { - data = (!) line; - if (data.has_prefix (hex_char)) { - description = data; - - while ((line = din.read_line (null)) != null) { - data = (!) line; - if (data.has_prefix ("\t")) { - description += "\n"; - description += data; - } else { - break; - } - } - - break; - } - } - - if (description == "") { - warning ("no description found"); - } - - fin.close (); - din.close (); - } catch (GLib.Error e) { - warning (e.message); - stderr.printf ("when reading %s", (!) get_unicode_database ().get_path ()); - } + d = entries.get (to_database_hex (c)); - if (description == "") { + if (d == null) { description = Font.to_hex (c).replace ("U+", "") + "\tUNICODE CHARACTER"; + } else { + description = (!) d; } return description; } - public static void get_full_unicode (GlyphRange glyph_range) { - File file; - FileInputStream fin; - DataInputStream din; - DataOutputStream os; - string? line; - string data; - string[] range; - - try { - file = BirdFont.get_settings_directory ().get_child ("full_unicode_range"); - - if (file.query_exists ()) { - // read cached glyph ranges - fin = file.read (); - din = new DataInputStream (fin); - while ((line = din.read_line (null)) != null) { - data = (!) line; - - if (data == "") { - break; - } - - range = data.split (" - "); - return_if_fail (range.length == 2); - - glyph_range.add_range (Font.to_unichar ("U+" + range[0]), Font.to_unichar ("U+" + range[1])); - } - fin.close (); - din.close (); - } else { - parse_full_unicode_database (glyph_range); - - // write cache - os = new DataOutputStream(file.create (FileCreateFlags.REPLACE_DESTINATION)); - os.put_string (glyph_range.get_all_ranges ()); - os.close (); - } - } catch (GLib.Error e) { - warning (e.message); - } + public static void show_loading_message () { + MainWindow.set_status (_("Loading the unicode character database") + " ..."); } - /** Obtain full unicode range from unicode database. */ - public static void parse_full_unicode_database (GlyphRange glyph_range) { - FileInputStream fin; - DataInputStream din; - string? line; - string data; - string hex_char; - File file; - unichar ch; - - file = get_unicode_database (); - - if (!file.query_exists ()) { - warning ("Can not find unicode database."); - return; + public static void get_full_unicode (GlyphRange glyph_range) { + if (!database_is_loaded) { + show_loading_message (); } - + try { - fin = file.read (); - din = new DataInputStream (fin); - - while ((line = din.read_line (null)) != null) { - data = (!) line; - - if (data.has_prefix ("\t") || data.has_prefix (";") || data.has_prefix ("@")) { - continue; - } - - if (data.index_of ("") != -1) { - continue; - } - - hex_char = "U+" + data.substring (0, data.index_of ("\t")).down (); - - ch = Font.to_unichar (hex_char); - glyph_range.add_single (ch); - } - - fin.close (); - din.close (); - } catch (GLib.Error e) { + glyph_range.parse_ranges (full_unicode_range.get_all_ranges ()); + } catch (MarkupError e) { warning (e.message); - } - } - - static File get_unicode_database () { - return SearchPaths.get_char_database (); + } } } diff -Nru birdfont-0.28/libbirdfont/CharDatabaseParser.vala birdfont-0.31/libbirdfont/CharDatabaseParser.vala --- birdfont-0.28/libbirdfont/CharDatabaseParser.vala 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/libbirdfont/CharDatabaseParser.vala 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,156 @@ +/* + Copyright (C) 2013 Johan Mattsson + + 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 3 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. +*/ + +using Gee; + +namespace BirdFont { + +public class CharDatabaseParser : GLib.Object { + + public signal void sync (); + + GlyphRange utf8 = new GlyphRange (); + + public CharDatabaseParser () { + } + + private void add_entry (string data) { + string[] e; + string[] r; + string[] d; + string index_values; + unichar ch; + string unicode_hex; + + if (data.has_prefix ("@")) { // ignore comments + return; + } + + index_values = data.down (); + index_values = index_values.replace ("\n\tx", ""); + index_values = index_values.replace ("\n\t*", ""); + index_values = index_values.replace ("\n\t=", ""); + index_values = index_values.replace ("\n\t#", ""); + index_values = index_values.replace (" - ", " "); + index_values = index_values.replace ("(", ""); + index_values = index_values.replace (")", ""); + index_values = index_values.replace ("", ""); + index_values = index_values.replace (" a ", " "); + index_values = index_values.replace (" is ", " "); + index_values = index_values.replace (" the ", " "); + + e = index_values.split ("\t"); + + return_if_fail (e.length > 0); + + unicode_hex = e[0].up (); + + ch = Font.to_unichar ("U+" + unicode_hex.down ()); + + Idle.add (() => { + CharDatabase.entries.set (unicode_hex, data); + return false; + }); + sync (); + + utf8.add_single (ch); + + foreach (string s in e) { + r = s.split ("\n"); + foreach (string t in r) { + d = t.split (" "); + foreach (string token in d) { + if (token != "") { + Idle.add (() => { + CharDatabase.index.set (token, unicode_hex); + return false; + }); + sync (); + } + } + } + } + } + + private void parse_all_entries () { + FileInputStream fin; + DataInputStream din; + string? line; + string data; + string description = ""; + File file; + + file = get_unicode_database (); + + try { + fin = file.read (); + din = new DataInputStream (fin); + + line = din.read_line (null); + while (true) { + data = (!) line; + description = data; + + while ((line = din.read_line (null)) != null) { + data = (!) line; + if (data.has_prefix ("\t")) { + description += "\n"; + description += data; + } else { + if (description.index_of ("") == -1) { + add_entry (description); + } + break; + } + } + + if (line == null) { + break; + } + } + + if (description == "") { + warning ("no description found"); + } + + fin.close (); + din.close (); + } catch (GLib.Error e) { + warning (e.message); + warning ("In %s", (!) get_unicode_database ().get_path ()); + } + } + + public int load () { + parse_all_entries (); + + IdleSource idle = new IdleSource (); + idle.set_callback (() => { + CharDatabase.full_unicode_range = utf8; + CharDatabase.show_loading_message (); + CharDatabase.database_is_loaded = true; + ProgressBar.set_progress (0); + return false; + }); + idle.attach (null); + + return 0; + } + + static File get_unicode_database () { + return SearchPaths.get_char_database (); + } +} + +} diff -Nru birdfont-0.28/libbirdfont/CircleTool.vala birdfont-0.31/libbirdfont/CircleTool.vala --- birdfont-0.28/libbirdfont/CircleTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/CircleTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -86,7 +86,7 @@ last_x = x; last_y = y; - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } void press (int button, double x, double y) { @@ -134,7 +134,7 @@ circle = path; - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } diff -Nru birdfont-0.28/libbirdfont/ClipTool.vala birdfont-0.31/libbirdfont/ClipTool.vala --- birdfont-0.28/libbirdfont/ClipTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ClipTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -31,7 +31,29 @@ } } + public static void paste_in_place () { + paste_paths (); + } + + /** Paste at cursor. */ public static void paste () { + Glyph g = MainWindow.get_current_glyph (); + double x, y, w, h; + double dx, dy; + + paste_paths (); + + g.selection_boundries (out x, out y, out w, out h); + + dx = g.motion_x - x - w / 2.0; + dy = g.motion_y - y + h / 2.0; + + foreach (Path path in g.active_paths) { + path.move (dx, dy); + } + } + + static void paste_paths () { bool is_bf_clipboard; FontDisplay fd; string clipboard_data = MainWindow.native_window.get_clipboard_data (); @@ -46,38 +68,87 @@ } } - public static void paste_to_glyph (bool bf_clipboard_data) { + static void paste_to_glyph (bool bf_clipboard_data) { FontDisplay fd = MainWindow.get_current_display (); Glyph? destination = null; string data; - + PathList new_paths; return_if_fail (fd is Glyph); destination = (Glyph) fd; ((!)destination).store_undo_state (); + ((!)destination).clear_active_paths (); data = MainWindow.native_window.get_clipboard_data (); if (bf_clipboard_data) { import_birdfont_clipboard (data); } else if (data != "") { - ImportSvg.import_svg_data (data); + new_paths = ImportSvg.import_svg_data (data); + foreach (Path p in new_paths.paths) { + ((!)destination).active_paths.append (p); + } } ((!)destination).update_view (); } - public static string export_selected_paths_to_birdfont_clipboard () { + static string export_selected_paths_to_birdfont_clipboard () { Glyph glyph = MainWindow.get_current_glyph (); StringBuilder s = new StringBuilder (); + Path new_path; + List paths = new List (); s.append ("\n"); s.append (""); @@ -85,7 +156,16 @@ return s.str; } - public static void import_birdfont_clipboard (string data) { + static bool all_points_selected (Path p) { + foreach (EditPoint ep in p.points) { + if (!ep.is_selected ()) { + return false; + } + } + return true; + } + + static void import_birdfont_clipboard (string data) { string[] paths = data.split ("\nBF "); string d; int i; @@ -102,11 +182,27 @@ } } - public static void import_birdfont_path (string data) { + static void import_birdfont_path (string data) { Glyph glyph = MainWindow.get_current_glyph (); Path path = BirdFontFile.parse_path_data (data); - path.close (); - glyph.add_path (path); + + if (path.points.length () > 0) { + glyph.add_path (path); + glyph.active_paths.append (path); + path.update_region_boundries (); + } + + PenTool.remove_all_selected_points (); + + foreach (Path p in glyph.active_paths) { + if (p.is_open ()) { + foreach (EditPoint e in p.points) { + e.set_selected (true); + } + } + } + + PenTool.update_selection (); } } diff -Nru birdfont-0.28/libbirdfont/CutBackgroundTool.vala birdfont-0.31/libbirdfont/CutBackgroundTool.vala --- birdfont-0.28/libbirdfont/CutBackgroundTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/CutBackgroundTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -80,7 +80,7 @@ x2 = x; y2 = y; - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } }); diff -Nru birdfont-0.28/libbirdfont/DefaultCharactersSet.vala birdfont-0.31/libbirdfont/DefaultCharactersSet.vala --- birdfont-0.28/libbirdfont/DefaultCharactersSet.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/DefaultCharactersSet.vala 2013-09-12 13:33:31.000000000 +0000 @@ -27,14 +27,15 @@ add_language (_("Chinese"), "zh", ""); add_language (_("English"), "en", "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"); - add_language (_("Japanese"), "jp", ""); + add_language (_("Greek"), "el", "Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω"); + add_language (_("Japanese"), "ja", ""); add_language (_("Javanese"), "jv", "ꦀ ꦁ ꦂ ꦃ ꦄ ꦅ ꦆ ꦇ ꦈ ꦉ ꦊ ꦋ ꦌ ꦍ ꦎ ꦏ ꦐ ꦑ ꦒ ꦓ ꦔ ꦕ ꦖ ꦗ ꦘ ꦙ ꦚ ꦛ ꦜ ꦝ ꦞ ꦟ ꦠ ꦡ ꦢ ꦣ ꦤ ꦥ ꦦ ꦧ ꦨ ꦩ ꦪ ꦫ ꦬ ꦭ ꦮ ꦯ ꦰ ꦱ ꦲ ꦳ ꦴ ꦵ ꦶ ꦷ ꦸ ꦹ ꦺ ꦻ ꦼ ꦽ ꦾ ꦿ ꧀ ꧁ ꧂ ꧃ ꧄ ꧅ ꧆ ꧇ ꧈ ꧉ ꧊ ꧋ ꧌ ꧍ ꧏ ꧐ ꧑ ꧒ ꧓ ꧔ ꧕ ꧖ ꧗ ꧘ ꧙ ꧞ ꧟ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z"); add_language (_("Russian"), "ro", "А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я"); add_language (_("Swedish"), "sv", "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö a b c d e f g h i j k l m n o p q r s t u v w x y z å ä ö"); } /** Add a new language to the menu for default character set. - * @param language A localized string of the language. + * @param language A localized string for the name of the language. * @param language_code ISO code * @param characters all characters (including characters with diacritical marks). * For languages with too many glyphs should this string be left empty. @@ -78,7 +79,7 @@ return languages[0]; } - public static string get_glyphs_for_prefered_language () { + public static string get_characters_for_prefered_language () { string lang = get_prefered_language_code (); int i = 0; string characters = ""; @@ -101,7 +102,7 @@ string lower_case, upper_case; string all_characters; - all_characters = get_glyphs_for_prefered_language (); + all_characters = get_characters_for_prefered_language (); if (all_characters != "") { foreach (string c in all_characters.split (" ")) { gr.add_single (c.get_char ()); @@ -261,7 +262,12 @@ CharDatabase.get_full_unicode (gr); if (gr.get_length () == 0) { - gr.add_range ('\0', (unichar) 0xFFF8); + try { + gr.parse_ranges ("null-ͷ ͺ-; ΄-Ί Ό Ύ-Ρ Σ-ԧ Ա-Ֆ ՙ-՟ ա-և ։-֊ ֏ ֑-ׇ א-ת װ-״ ؀-؄ ؆-؛ ؞-܍ ܏-݊ ݍ-ޱ ߀-ߺ ࠀ-࠭ ࠰-࠾ ࡀ-࡛ ࡞ ࢠ ࢢ-ࢬ ࣤ-ࣾ ऀ-ॷ ॹ-ॿ ঁ-ঃ অ-ঌ এ-ঐ ও-ন প-র ল শ-হ ়-ৄ ে-ৈ ো-ৎ ৗ ড়-ঢ় য়-৻ ਁ-ਃ ਅ-ਊ ਏ-ਐ ਓ-ਨ ਪ-ਰ ਲ-ਲ਼ ਵ-ਸ਼ ਸ-ਹ ਼ ਾ-ੂ ੇ-ੈ ੋ-੍ ੑ ਖ਼-ੜ ਫ਼ ੤-ੵ ઁ-ઃ અ-ઍ એ-ઑ ઓ-ન પ-ર લ-ળ વ-હ ઼-ૅ ે-ૉ ો-્ ૐ ૠ-૱ ଁ-ଃ ଅ-ଌ ଏ-ଐ ଓ-ନ ପ-ର ଲ-ଳ ଵ-ହ ଼-ୄ େ-ୈ ୋ-୍ ୖ-ୗ ଡ଼-ଢ଼ ୟ-୷ ஂ-ஃ அ-ஊ எ-ஐ ஒ-க ங-ச ஜ ஞ-ட ண-த ந-ப ம-ஹ ா-ூ ெ-ை ொ-் ௐ ௗ ௤-௺ ఁ-ః అ-ఌ ఎ-ఐ ఒ-న ప-ళ వ-హ ఽ-ౄ ె-ై ొ-్ ౕ-ౖ ౘ-ౙ ౠ-౯ ౸-౿ ಂ-ಃ ಅ-ಌ ಎ-ಐ ಒ-ನ ಪ-ಳ ವ-ಹ ಼-ೄ ೆ-ೈ ೊ-್ ೕ-ೖ ೞ ೠ-೯ ೱ-ೲ ം-ഃ അ-ഌ എ-ഐ ഒ-ഺ ഽ-ൄ െ-ൈ ൊ-ൎ ൗ ൠ-൵ ൹-ൿ ං-ඃ අ-ඖ ක-න ඳ-ර ල ව-ෆ ් ා-ු ූ ෘ-ෟ ෲ-෴ ก-ฺ ฿-๛ ກ-ຂ ຄ ງ-ຈ ຊ ຍ ດ-ທ ນ-ຟ ມ-ຣ ລ ວ ສ-ຫ ອ-ູ ົ-ຽ ເ-ໄ ໆ ່-ໍ ໐-໙ ໜ-ໟ ༀ-ཇ ཉ-ཬ ཱ-ྗ ྙ-ྼ ྾-࿌ ࿎-࿚ က-Ⴥ Ⴧ Ⴭ ა-ቈ ቊ-ቍ ቐ-ቖ ቘ ቚ-ቝ በ-ኈ ኊ-ኍ ነ-ኰ ኲ-ኵ ኸ-ኾ ዀ ዂ-ዅ ወ-ዖ ዘ-ጐ ጒ-ጕ ጘ-ፚ ፝-፼ ᎀ-᎙ Ꭰ-Ᏼ ᐀-᚜ ᚠ-ᛰ ᜀ-ᜌ ᜎ-᜔ ᜠ-᜶ ᝀ-ᝓ ᝠ-ᝬ ᝮ-ᝰ ᝲ-ᝳ ក-៝ ០-៩ ៰-៹ ᠀-᠎ ᠐-᠙ ᠠ-ᡷ ᢀ-ᢪ ᢰ-ᣵ ᤀ-ᤜ ᤠ-ᤫ ᤰ-᤻ ᥀ ᥄-ᥭ ᥰ-ᥴ ᦀ-ᦫ ᦰ-ᧉ ᧐-᧚ ᧞-ᨛ ᨞-ᩞ ᩠-᩼ ᩿-᪉ ᪐-᪙ ᪠-᪭ ᬀ-ᭋ ᭐-᭼ ᮀ-᯳ ᯼-᰷ ᰻-᱉ ᱍ-᱿ ᳀-᳇ ᳐-ᳶ ᴀ-ᷦ ᷼-ἕ Ἐ-Ἕ ἠ-ὅ Ὀ-Ὅ ὐ-ὗ Ὑ Ὓ Ὕ Ὗ-ώ ᾀ-ᾴ ᾶ-ῄ ῆ-ΐ ῖ-Ί ῝-` ῲ-ῴ ῶ-῾  -⁤ -₎ ₐ-ₜ ₠-₹ ⃐-⃰ ℀-↉ ←-⏳ ␀-␦ ⑀-⑊ ①-⛿ ✁-⭌ ⭐-⭙ Ⰰ-Ⱞ ⰰ-ⱞ Ⱡ-ⳳ ⳹-ⴥ ⴧ ⴭ ⴰ-ⵧ ⵯ-⵰ ⵿-ⶖ ⶠ-ⶦ ⶨ-ⶮ ⶰ-ⶶ ⶸ-ⶾ ⷀ-ⷆ ⷈ-ⷎ ⷐ-ⷖ ⷘ-ⷞ ⷠ-⸻ ⺀-⺙ ⺛-⻳ ⼀-⿕ ⿰-⿻  -〿 ぁ-ゖ ゙-ヿ ㄅ-ㄭ ㄱ-ㆎ ㆐-ㆺ ㇀-㇣ ㇰ-㈞ ㈠-㋾ ㌀-㏿ ䷀-䷿ ꀀ-ꒌ ꒐-꓆ ꓐ-ꘫ Ꙁ-ꚗ ꚟ-꛷ ꜀-ꞎ Ꞑ-ꞓ Ꞡ-Ɦ ꟸ-꠫ ꠰-꠹ ꡀ-꡷ ꢀ-꣄ ꣎-꣙ ꣠-ꣻ ꤀-꥓ ꥟-ꥼ ꦀ-꧍ ꧏ-꧙ ꧞-꧟ ꨀ-ꨶ ꩀ-ꩍ ꩐-꩙ ꩜-ꩻ ꪀ-ꫂ ꫛ-꫶ ꬁ-ꬆ ꬉ-ꬎ ꬑ-ꬖ ꬠ-ꬦ ꬨ-ꬮ ꯀ-꯭ ꯰-꯹ ힰ-ퟆ ퟋ-ퟻ 豈-舘 並-龎 ff-st ﬓ-ﬗ יִ-זּ טּ-לּ מּ נּ-סּ ףּ-פּ צּ-﯁ ﯓ-﴿ ﵐ-ﶏ ﶒ-ﷇ ﷰ-﷽ ︀-︙ ︠-︦ ︰-﹒ ﹔-﹦ ﹨-﹫ ﹰ-ﹴ ﹶ-ﻼ !-ᄒ ᅡ-ᅦ ᅧ-ᅬ ᅭ-ᅲ ᅳ-ᅵ ¢-₩ │-○ -� 𐀀-𐀋 𐀍-𐀦 𐀨-𐀺 𐀼-𐀽 𐀿-𐁍 𐁐-𐁝 𐂀-𐃺 𐄀-𐄂 𐄇-𐄳 𐄷-𐆊 𐆐-𐆛 𐇐-𐇽 𐊀-𐊜 𐊠-𐋐 𐌀-𐌞 𐌠-𐌣 𐌰-𐍊 𐎀-𐎝 𐎟-𐏃 𐏈-𐏕 𐐀-𐒝 𐒠-𐒩 𐠀-𐠅 𐠈 𐠊-𐠵 𐠷-𐠸 𐠼 𐠿-𐡕 𐡗-𐡟 𐤀-𐤛 𐤟-𐤹 𐤿 𐦀-𐦷 𐦾-𐦿 𐨀-𐨃 𐨅-𐨆 𐨌-𐨓 𐨕-𐨗 𐨙-𐨳 𐨸-𐨺 𐨿-𐩇 𐩐-𐩘 𐩠-𐩿 𐬀-𐬵 𐬹-𐭕 𐭘-𐭲 𐭸-𐭿 𐰀-𐱈 𐹠-𐹾 𑀀-𑁍 𑁒-𑁯 𑂀-𑃁 𑃐-𑃨 𑃰-𑃹 𑄀-𑄴 𑄶-𑅃 𑆀-𑇈 𑇐-𑇙 𑚀-𑚷 𑛀-𑛉 𒀀-𒍮 𒐀-𒑢 𒑰-𒑳 𓀀-𓐮 𖠀-𖨸 𖼀-𖽄 𖽐-𖽾 𖾏-𖾟 𛀀-𛀁 𝀀-𝃵 𝄀-𝄦 𝄩-𝇝 𝈀-𝉅 𝌀-𝍖 𝍠-𝍱 𝐀-𝚥 𝚨-𝟋 𝟎-𝟿 𞸀-𞸃 𞸅-𞸟 𞸡-𞸢 𞸤 𞸧 𞸩-𞸲 𞸴-𞸷 𞸹 𞸻 𞹂 𞹇 𞹉 𞹋 𞹍-𞹏 𞹑-𞹒 𞹔 𞹗 𞹙 𞹛 𞹝 𞹟 𞹡-𞹢 𞹤 𞹧-𞹪 𞹬-𞹲 𞹴-𞹷 𞹹-𞹼 𞹾 𞺀-𞺉 𞺋-𞺛 𞺡-𞺣 𞺥-𞺩 𞺫-𞺻 𞻰-𞻱 🀀-🀫 🀰-🂓 🂠-🂮 🂱-🂾 🃁-🃏 🃑-🃟 🄀-🄊 🄐-🄮 🄰-🅫 🅰-🆚 🇦-🈂 🈐-🈺 🉀-🉈 🉐-🉑 🌀-🌠 🌰-🌵 🌷-🍼 🎀-🎓 🎠-🏄 🏆-🏊 🏠-🏰 🐀-🐾 👀 👂-📷 📹-📼 🔀-🔽 🕀-🕃 🕐-🕧 🗻-🙀 🙅-🙏 🚀-🛅 🜀-🝳 丽-𪘀 󠀁 󠀠-󠁿 󠄀-󠇯"); + } catch (MarkupError e) { + warning (e.message); + gr.add_range ('\0', (unichar) 0xFFF8); + } } } @@ -271,7 +277,7 @@ } public class DefaultLanguages { - public static List names; + public static List names; public static List codes; public static List characters; diff -Nru birdfont-0.28/libbirdfont/DescriptionTab.vala birdfont-0.31/libbirdfont/DescriptionTab.vala --- birdfont-0.28/libbirdfont/DescriptionTab.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/DescriptionTab.vala 2013-09-12 13:33:31.000000000 +0000 @@ -1,6 +1,5 @@ - /* - Copyright (C) 2012 Johan Mattsson + Copyright (C) 2012 2013 Johan Mattsson This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -15,135 +14,23 @@ namespace BirdFont { -/** Names and description for the TTF Name table. */ +/** Names and description for the TTF Name table. + * The actual tab is implemented in the GTK window. + */ public class DescriptionTab : FontDisplay { - - Font font; - public DescriptionTab () { - font = BirdFont.get_current_font (); - - add_html_callback ("postscript_name", (val) => { - font.postscript_name = val; - }); - - add_html_callback ("name", (val) => { - font.name = val; - }); - - add_html_callback ("subfamily", (val) => { - font.subfamily = val; - }); - - add_html_callback ("full_name", (val) => { - font.full_name = val; - }); - - add_html_callback ("unique_identifier", (val) => { - font.unique_identifier = val; - }); - - add_html_callback ("version", (val) => { - font.version = val; - }); - - add_html_callback ("description", (val) => { - font.description = val; - }); - - add_html_callback ("copyright", (val) => { - font.copyright = val; - }); - } - - public override string get_name () { - return _("Description"); } - public override bool is_html_canvas () { - return true; - } - - public override string get_html () { - StringBuilder c = new StringBuilder (); - - // TODO: trademark, prefered family etc. - // or maybe not, many fields in the name table seems to be irrelevant. - - // TODO: provide good explenations of these fields - - c.append ( -""" - - - - - - - -
-
-

""" + _("Postscript name") + """

-
- -

""" + _("Name") + """

-
- -

""" + _("Style") + " (Regular/Bold/Italic)" + """

-
- -

""" + _("Full name (name and style)") + """

-
- -

""" + _("Unique identifier") + """

-
- -

""" + _("Version") + """

-
- -"""); - - // There is a bug in webkit on windows that makes it imposible - // to display textareas. - if (BirdFont.win32) { - c.append ("""
"""); + public override string get_name () { + return "Description"; } - -c.append ( -""" -

""" + _("Description") + """

- - -

""" + _("Copyright") + """

- -"""); - if (BirdFont.win32) { - c.append ("
"); + public override string get_label () { + return _("Description"); } -c.append ( -""" -
-
- - -"""); - -#if translations - // for xgettext: - _("Postscript name"); - _("Name"); - _("Style"); - _("Full name (name and style)"); - _("Unique identifier"); - _("Version"); - _("Description"); - _("Copyright"); -#endif - return c.str; + public override string get_html () { + return "".dup (); } } diff -Nru birdfont-0.28/libbirdfont/DrawingTools.vala birdfont-0.31/libbirdfont/DrawingTools.vala --- birdfont-0.28/libbirdfont/DrawingTools.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/DrawingTools.vala 2013-09-12 13:33:31.000000000 +0000 @@ -70,7 +70,10 @@ Tool move_tool = new MoveTool ("move"); draw_tools.add_tool (move_tool); - + + Tool resize_tool = new ResizeTool ("resize"); + draw_tools.add_tool (resize_tool); + // quadratic Bézier points Tool quadratic_points = new Tool ("quadratic_points", _("Create quadratic Bézier curves")); quadratic_points.select_action.connect ((self) => { @@ -108,16 +111,32 @@ Tool tie_handles = new Tool ("tie_point", _("Tie curve handles for the selected edit point"), 'w'); tie_handles.select_action.connect ((self) => { bool tie; + EditPoint p; - foreach (EditPoint ep in PenTool.selected_points) { - tie = !ep.tie_handles; + if (PenTool.move_selected_handle) { + p = PenTool.active_handle.parent; + tie = !p.tie_handles; if (tie) { - ep.process_tied_handle (); - ep.set_reflective_handles (false); + p.process_tied_handle (); + p.set_reflective_handles (false); + } + + p.set_tie_handle (tie); + + PenTool.handle_selection.path.update_region_boundries (); + } else { + foreach (PointSelection ep in PenTool.selected_points) { + tie = !ep.point.tie_handles; + + if (tie) { + ep.point.process_tied_handle (); + ep.point.set_reflective_handles (false); + } + + ep.point.set_tie_handle (tie); + ep.path.update_region_boundries (); } - - ep.set_tie_handle (tie); } MainWindow.get_current_glyph ().update_view (); @@ -128,19 +147,20 @@ Tool reflect_handle = new Tool ("symmetric", _("Symmetrical handles"), 'r'); reflect_handle.select_action.connect ((self) => { bool symmetrical; - EditPoint ep; + PointSelection ep; if (PenTool.selected_points.length () > 0) { ep = PenTool.selected_points.first ().data; - symmetrical = ep.reflective_handles; - foreach (EditPoint p in PenTool.selected_points) { - p.set_reflective_handles (!symmetrical); - p.process_symmetrical_handles (); + symmetrical = ep.point.reflective_handles; + foreach (PointSelection p in PenTool.selected_points) { + p.point.set_reflective_handles (!symmetrical); + p.point.process_symmetrical_handles (); if (symmetrical) { - ep.set_tie_handle (false); + ep.point.set_tie_handle (false); } + + p.path.update_region_boundries (); } - MainWindow.get_current_glyph ().update_view (); } }); @@ -317,7 +337,7 @@ bool v = !g.get_xheight_lines_visible (); g.set_xheight_lines_visible (v); self.set_selected (v); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); if (v && !help_lines.is_selected ()) { MainWindow.get_toolbox ().select_tool (help_lines); @@ -332,7 +352,7 @@ bool v = !g.get_margin_lines_visible (); g.set_margin_lines_visible (v); self.set_selected (v); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); if (v && !help_lines.is_selected ()) { MainWindow.get_toolbox ().select_tool (help_lines); @@ -362,7 +382,7 @@ reset_zoom.select_action.connect ((self) => { zoom_tool.store_current_view (); glyph_canvas.get_current_display ().reset_zoom (); - glyph_canvas.redraw_area(0, 0, glyph_canvas.allocation.width, glyph_canvas.allocation.height); + glyph_canvas.redraw_area(0, 0, GlyphCanvas.allocation.width, GlyphCanvas.allocation.height); }); view_tools.add_tool (reset_zoom); @@ -388,7 +408,7 @@ zoom_tool.zoom_full_background_image (); - glyph_canvas.redraw_area(0, 0, glyph_canvas.allocation.width, glyph_canvas.allocation.height); + glyph_canvas.redraw_area(0, 0, GlyphCanvas.allocation.width, GlyphCanvas.allocation.height); } }); view_tools.add_tool (zoom_bg); @@ -430,7 +450,7 @@ ((!)img).set_img_scale (s, s); } - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); }); background_tools.add_tool (background_scale); @@ -447,7 +467,7 @@ show_bg.select_action.connect ((self) => { Glyph g = MainWindow.get_current_glyph (); g.set_background_visible (!g.get_background_visible ()); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); }); background_tools.add_tool (show_bg); @@ -527,11 +547,14 @@ stroke_width.new_value_action.connect((self) => { Glyph g = MainWindow.get_current_glyph (); Path.stroke_width = stroke_width.get_value (); + Path.stroke_width = Math.sqrt (Path.stroke_width); g.redraw_area (0, 0, g.allocation.width, g.allocation.height); Preferences.set ("stroke_width", @"$(Path.stroke_width)"); MainWindow.get_toolbox ().redraw ((int) stroke_width.x, (int) stroke_width.y, 70, 70); }); style_tools.add_tool (stroke_width); + stroke_width.set_max (4); + stroke_width.set_min (0.2); ColorTool handle_color = new ColorTool (_("Handle color")); handle_color.color_updated.connect (() => { @@ -581,6 +604,51 @@ style_tools.add_tool (precision); + Tool show_all_line_handles = new Tool ("show_all_line_handles", _("Show all control point handles or only handles for the selected points.")); + show_all_line_handles.select_action.connect((self) => { + Path.show_all_line_handles = !Path.show_all_line_handles; + Glyph g = MainWindow.get_current_glyph (); + g.redraw_area (0, 0, g.allocation.width, g.allocation.height); + }); + style_tools.add_tool (show_all_line_handles); + + // fill color + ColorTool fill_color = new ColorTool (_("Object color")); + fill_color.color_updated.connect (() => { + Path.fill_color_r = fill_color.color_r; + Path.fill_color_g = fill_color.color_g; + Path.fill_color_b = fill_color.color_b; + Path.fill_color_a = fill_color.color_a; + + Preferences.set ("fill_color_r", @"$(Path.fill_color_r)"); + Preferences.set ("fill_color_g", @"$(Path.fill_color_g)"); + Preferences.set ("fill_color_b", @"$(Path.fill_color_b)"); + Preferences.set ("fill_color_a", @"$(Path.fill_color_a)"); + + Glyph g = MainWindow.get_current_glyph (); + g.redraw_area (0, 0, g.allocation.width, g.allocation.height); + }); + fill_color.set_r (double.parse (Preferences.get ("fill_color_r"))); + fill_color.set_g (double.parse (Preferences.get ("fill_color_g"))); + fill_color.set_b (double.parse (Preferences.get ("fill_color_b"))); + fill_color.set_a (double.parse (Preferences.get ("fill_color_a"))); + style_tools.add_tool (fill_color); + + Tool fill_open_path = new Tool ("fill_open_path", _("Set fill color for open paths.")); + fill_open_path.select_action.connect((self) => { + Path.fill_open_path = !Path.fill_open_path; + Glyph g = MainWindow.get_current_glyph (); + g.redraw_area (0, 0, g.allocation.width, g.allocation.height); + }); + style_tools.add_tool (fill_open_path); + + Tool ttf_units = new Tool ("ttf_units", _("Use TTF units.")); + ttf_units.select_action.connect((self) => { + GridTool.ttf_units = !GridTool.ttf_units; + Preferences.set ("ttf_units", @"$(GridTool.ttf_units)"); + }); + style_tools.add_tool (ttf_units); + draw_tools.set_open (true); draw_tool_modifiers.set_open (true); edit_point_modifiers.set_open (true); @@ -608,8 +676,9 @@ add_expander (style_tools); // Fixa: add_expander (trace); - - add_expander (test_tools); + if (BirdFont.has_argument ("--test")) { + add_expander (test_tools); + } draw_tools.set_persistent (true); draw_tools.set_unique (true); @@ -649,19 +718,20 @@ t.editor_events = true; } + foreach (Tool t in shape_tools.tool) { + t.editor_events = true; + t.persistent = true; + } + move_background.editor_events = true; cut_background.editor_events = true; move_background.persistent = true; cut_background.persistent = true; - + precision.persistent = true; stroke_width.persistent = true; - foreach (Tool t in shape_tools.tool) { - t.persistent = true; - } - // Default selection IdleSource idle = new IdleSource (); idle.set_callback (() => { @@ -742,7 +812,7 @@ grid_width.select_action.connect((self) => { SpinButton sb = (SpinButton) self; GridTool.set_grid_width (sb.get_value ()); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); }); grid_expander.add_tool (grid_width); diff -Nru birdfont-0.28/libbirdfont/DropMenu.vala birdfont-0.31/libbirdfont/DropMenu.vala --- birdfont-0.28/libbirdfont/DropMenu.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/DropMenu.vala 2013-09-12 13:33:31.000000000 +0000 @@ -57,7 +57,7 @@ public MenuAction get_action_no2 () { if (actions.length () < 2) { warning ("No such action"); - return new MenuAction ("NULL"); + return new MenuAction ("None"); } return actions.nth (1).data; diff -Nru birdfont-0.28/libbirdfont/EditPoint.vala birdfont-0.31/libbirdfont/EditPoint.vala --- birdfont-0.28/libbirdfont/EditPoint.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/EditPoint.vala 2013-09-12 13:33:31.000000000 +0000 @@ -323,7 +323,7 @@ new_point.left_handle.angle = left_handle.angle; new_point.left_handle.length = left_handle.length; new_point.left_handle.type = left_handle.type; - + return new_point; } diff -Nru birdfont-0.28/libbirdfont/EmptyTab.vala birdfont-0.31/libbirdfont/EmptyTab.vala --- birdfont-0.28/libbirdfont/EmptyTab.vala 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/libbirdfont/EmptyTab.vala 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,46 @@ +/* + Copyright (C) 2013 Johan Mattsson + + 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 3 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. +*/ + +using Cairo; + +namespace BirdFont { + +public class EmptyTab : FontDisplay { + + string name; + string label; + + public EmptyTab (string name, string label) { + this.name = name; + this.label = label; + } + + public override string get_name () { + return name; + } + + public override string get_label () { + return label; + } + + public override void draw (WidgetAllocation allocation, Context cr) { + cr.save (); + cr.set_source_rgba (242/255.0, 241/255.0, 240/255.0, 1); + cr.rectangle (0, 0, allocation.width, allocation.height); + cr.fill (); + cr.restore (); + } +} + +} diff -Nru birdfont-0.28/libbirdfont/Expander.vala birdfont-0.31/libbirdfont/Expander.vala --- birdfont-0.28/libbirdfont/Expander.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Expander.vala 2013-09-12 13:33:31.000000000 +0000 @@ -21,13 +21,13 @@ public double x = 7; public double y = 5; + public double scroll = 0; public double w = 6; public double h = 5; public double margin = 0; - protected double rotation = 0; protected double opacity = 0.5; protected bool active = false; @@ -38,9 +38,15 @@ bool persist = false; bool unique = false; + double content_height = 0; + public Expander () { } + public double get_content_height () { + return content_height; + } + /** Returns true if tools can be used with the current canvas after * they have been selectes and false if they are a commands to be executed. */ @@ -65,21 +71,32 @@ private void update_tool_position () { double xt = x - 15; - double yt = y - 30; - + double yt = y + scroll - 30; + + if (tool.length () > 0) { + content_height = tool.first ().data.h + 2; + } else { + content_height = 0; + } + foreach (Tool t in tool) { t.x = xt; t.y = yt; xt += t.w + 4; - + if (xt + t.w > 160 - 20) { xt = x - 15; yt += t.h + 2; + content_height += t.h + 2; } } } + public void set_scroll (double scroll) { + this.scroll = scroll; + } + public void set_offset (double ty) { y = ty; @@ -125,8 +142,9 @@ }); } - public bool is_over (double xp, double yp) { - return (x - 7/2.0 <= xp <= x + w + 7/2.0 && y - 7/2.0<= yp <= y + w + 7/2.0); + public bool is_over (double xp, double yp) { + double yt = y + scroll + 2; + return yt - 7 <= yp <= yt + 7 && xp < 17; } public bool set_active (bool a) { @@ -142,17 +160,14 @@ public virtual bool set_open (bool o) { bool r = (open != o); - rotation = (o) ? Math.PI_2 : 0; if (o) { margin = 35 * (int)((tool.length () / 4.0) + 1) ; - rotation = Math.PI_2; if (tool.length () % 4 == 0) { margin -= 35; } } else { margin = 0; - rotation = 0; } open = o; @@ -160,50 +175,44 @@ } public void draw (int wd, int hd, Context cr) { - double lx, ly; + double yt = y + scroll + 2; double ih2 = 5.4 / 2; double iw2 = 5.4 / 2; - + + cr.save (); + cr.set_line_width (0.5); + cr.set_source_rgba (0, 0, 0, 0.25); + cr.move_to (x + w + 7, yt); + cr.line_to (wd - w - x + 4, yt); + cr.stroke (); + cr.restore (); + // box cr.save (); cr.set_line_join (LineJoin.ROUND); - cr.set_line_width(7); - cr.set_source_rgba (176/255.0, 211/255.0, 230/255.0, opacity); - cr.rectangle (x, y, w, h); + cr.set_line_width (7); + cr.set_source_rgba (0.75, 0.75, 0.75, opacity); + cr.rectangle (x, yt - 3, w, h); cr.stroke (); cr.restore (); // arrow cr.save (); - - cr.translate (x + w/2, y + h/2); - cr.rotate (rotation); - + cr.new_path (); cr.set_line_width (1); cr.set_source_rgba (0, 0, 0, opacity); - - cr.new_path (); - cr.move_to (-iw2, -ih2); - cr.line_to (iw2, 0); - cr.line_to (-iw2, +ih2); - + if (!open) { + cr.move_to (x - iw2 + 3, yt - ih2 - 0.7); + cr.line_to (x + iw2 + 3, yt); + cr.line_to (x - iw2 + 3, ih2 + yt - 0.7); + } else { + cr.move_to (x - iw2 + 3, yt - ih2 - 0.7); + cr.line_to (x + iw2 + 3, yt - ih2 - 0.7); + cr.line_to (x + iw2, yt + 2); + } cr.close_path(); cr.stroke (); cr.restore (); - - // separator - cr.save (); - lx = x + w + 7; - ly = y + ih2; - if (lx < wd) { - cr.set_line_width(1); - cr.set_source_rgba (0, 0, 0, 0.2); - cr.move_to (lx, ly); - cr.line_to (wd - w - x + 4, ly); - cr.stroke (); - } - cr.restore (); - } public void draw_content (int w, int h, Context cr) { diff -Nru birdfont-0.28/libbirdfont/ExportTool.vala birdfont-0.31/libbirdfont/ExportTool.vala --- birdfont-0.28/libbirdfont/ExportTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ExportTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -153,12 +153,21 @@ critical (@"$(e.message)"); } } - - public static void export_all () { + /** Font must be saves before export. */ + internal static void export_all () { + Font font = BirdFont.get_current_font (); + + if (font.font_file == null) { + warning ("Font is not saved."); + } else { + do_export (); + } + } + + static void do_export () { bool f; - Preview preview; - + f = export_ttf_font (); if (!f) { warning ("Failed to export ttf font"); @@ -168,16 +177,12 @@ if (!f) { warning ("Failed to export svg font"); } - - // create html file - preview = new Preview (); - preview.get_html_file (); } public static void generate_html_document (string html_file, Font font) { File file = File.new_for_path (html_file); DataOutputStream os; - string name = font.get_name (); + string name = font.get_full_name (); try { os = new DataOutputStream (file.create(FileCreateFlags.REPLACE_DESTINATION)); @@ -464,9 +469,15 @@ try { // create a copy of current font and use it in a separate // export thread - temp_file = current_font.save_backup (); - ttf_file = folder.get_child (current_font.get_name () + ".ttf"); - eot_file = folder.get_child (current_font.get_name () + ".eot"); + + if (async) { + temp_file = current_font.save_backup (); + } else { + temp_file = current_font.get_path (); + } + + ttf_file = folder.get_child (current_font.get_full_name () + ".ttf"); + eot_file = folder.get_child (current_font.get_full_name () + ".eot"); if (ttf_file.query_exists ()) { ttf_file.delete (); @@ -480,7 +491,7 @@ assert (!is_null (ttf_file.get_path ())); assert (!is_null (eot_file.get_path ())); - export_thread = new ExportThread (temp_file, (!) ttf_file.get_path (), (!) eot_file.get_path ()); + export_thread = new ExportThread (temp_file, (!) ttf_file.get_path (), (!) eot_file.get_path (), async); if (async) { spawn_export (folder, temp_file); @@ -522,7 +533,7 @@ public static bool export_svg_font_path (File folder) { Font font = BirdFont.get_current_font (); - string file_name = @"$(font.get_name ()).svg"; + string file_name = @"$(font.get_full_name ()).svg"; File file; SvgFontFormatWriter fo; @@ -550,11 +561,13 @@ private static string ffi; private static string ttf; private static string eot; + private bool async = false; - public ExportThread (string nffi, string nttf, string neot) { + public ExportThread (string nffi, string nttf, string neot, bool async) { ffi = nffi.dup (); ttf = nttf.dup (); eot = neot.dup (); + this.async = async; } public void* run () { @@ -570,18 +583,24 @@ void write_ttf () { OpenFontFormatWriter fo = new OpenFontFormatWriter (); - Font f = new Font (); + Font f; File file = (!) File.new_for_path (ttf); return_if_fail (!is_null (ffi)); return_if_fail (!is_null (ttf)); return_if_fail (!is_null (file)); - return_if_fail (!is_null (f)); return_if_fail (!is_null (fo)); try { - if (!f.load (ffi, false)) { - warning (@"Can't read $ffi"); + if (async) { + printd ("Loading the intermediate file.\n"); + f = new Font (); + if (!f.load (ffi, false)) { + warning (@"Can't read $ffi"); + } + } else { + f = BirdFont.get_current_font (); + printd ("File is already loaded.\n"); } fo.open (file); diff -Nru birdfont-0.28/libbirdfont/FileTab.vala birdfont-0.31/libbirdfont/FileTab.vala --- birdfont-0.28/libbirdfont/FileTab.vala 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/libbirdfont/FileTab.vala 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,442 @@ +/* + Copyright (C) 2013 Johan Mattsson + + 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 3 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. +*/ +using Cairo; +using Math; + +namespace BirdFont { + +public class FileTab : FontDisplay { + + int scroll = 0; + int visible_rows = 0; + double row_height = 30; + double top = 60; + WidgetAllocation allocation = new WidgetAllocation (); + List recent_fonts = new List (); + List backups = new List (); + + public signal void open_file (); + + public FileTab () { + } + + public void load_font (string fn) { + Font font; + SaveDialogListener dialog = new SaveDialogListener (); + + if (MenuTab.suppress_event) { + return; + } + + font = BirdFont.get_current_font (); + + dialog.signal_discard.connect (() => { + Font f; + bool loaded; + + f = BirdFont.new_font (); + f.delete_backup (); + + MainWindow.clear_glyph_cache (); + MainWindow.close_all_tabs (); + + loaded = f.load (fn); + + if (!unlikely (loaded)) { + warning (@"Failed to load fond $fn"); + return; + } + + MainWindow.get_drawing_tools ().remove_all_grid_buttons (); + foreach (string v in f.grid_width) { + MainWindow.get_drawing_tools ().parse_grid (v); + } + + MainWindow.get_drawing_tools ().background_scale.set_value (f.background_scale); + KerningTools.update_kerning_classes (); + MenuTab.select_overview (); + }); + + dialog.signal_save.connect (() => { + MenuTab.save (); + dialog.signal_discard (); + }); + + if (!font.is_modified ()) { + dialog.signal_discard (); + } else { + MainWindow.native_window.set_save_dialog (dialog); + } + } + + public void load_backup (string file_name) { + File backup_file; + + if (MenuTab.suppress_event) { + return; + } + + backup_file = BirdFont.get_backup_directory (); + backup_file = backup_file.get_child (file_name); + load_font ((!) backup_file.get_path ()); + } + + public void delete_backup (string file_name) { + File backup_file; + + if (MenuTab.suppress_event) { + return; + } + + try { + backup_file = BirdFont.get_backup_directory (); + backup_file = backup_file.get_child (file_name); + if (backup_file.query_exists ()) { + backup_file.delete (); + } + } catch (GLib.Error e) { + warning (e.message); + } + + selected_canvas (); + } + + public override void button_release (int button, double ex, double ey) { + int r = (int) rint ((ey - 17) / row_height) + scroll; + int i = 2; // heading + + if (is_null (recent_fonts)) { + warning ("No recent fonts"); + return; + } + + foreach (Font font in recent_fonts) { + if (i == r) { + return_if_fail (font.font_file != null); + load_font ((!) font.font_file); + open_file (); + } + i++; + } + + if (is_null (backups)) { + warning ("No backups"); + return; + } + + i += 2; + foreach (string backup in backups) { + if (i == r) { + if (ex < 35) { + delete_backup (backup); + } else { + load_backup (backup); + open_file (); + } + } + i++; + } + } + + public override void draw (WidgetAllocation allocation, Context cr) { + double y = 0; + int s = 0; + bool color = (scroll % 2) == 0; + + this.allocation = allocation; + + if (scroll == 0) { + y += top; + } + + visible_rows = (int) (allocation.height / row_height); + + cr.save (); + cr.set_source_rgba (1, 1, 1, 1); + cr.rectangle (0, 0, allocation.width, allocation.height); + cr.fill (); + cr.restore (); + + if (recent_fonts.length () == 0 && !has_backup ()) { + cr.save (); + cr.set_source_rgba (0.3, 0.3, 0.3, 1); + cr.set_font_size (18); + cr.move_to (50, top - 9); + cr.show_text (_("No fonts created yet.")); + cr.restore (); + } + + if (scroll == 0 && recent_fonts.length () > 0) { + cr.save (); + cr.set_source_rgba (0.3, 0.3, 0.3, 1); + cr.set_font_size (18); + cr.move_to (50, top - 9); + cr.show_text (_("Recent files")); + cr.restore (); + } + + cr.save (); + cr.set_source_rgba (0.3, 0.3, 0.3, 1); + cr.set_font_size (12); + + foreach (Font font in recent_fonts) { + if (s++ >= scroll) { + draw_file_row (allocation, cr, font, color, y); + y += row_height; + color = !color; + } + } + + if (has_backup ()) { + color = true; + + if (s >= scroll) { + cr.save (); + cr.set_source_rgba (0.3, 0.3, 0.3, 1); + cr.set_font_size (18); + cr.move_to (50, y + 2 * row_height - 9); + cr.show_text (_("Backup")); + cr.restore (); + s += 2; + y += 2 * row_height; + } + + foreach (string backup in backups) { + if (s++ >= scroll) { + draw_backup_row (allocation, cr, backup, color, y); + y += row_height; + color = !color; + } + } + } + + cr.restore (); + } + + private void draw_file_row (WidgetAllocation allocation, Context cr, Font font, bool color, double y) { + File thumbnail; + string fn = (!) font.font_file; + + fn = fn.substring (fn.replace ("\\", "/").last_index_of ("/") + 1); + thumbnail = BirdFont.get_thumbnail_directory ().get_child (fn); + + draw_background (cr, allocation, y, color); + + cr.move_to (50, y + row_height / 2 + 5); + cr.show_text (fn); + } + + private void draw_backup_row (WidgetAllocation allocation, Context cr, string backup, bool color, double y) { + File thumbnail; + thumbnail = BirdFont.get_thumbnail_directory ().get_child (backup); + + draw_background (cr, allocation, y, color); + + cr.move_to (50, y + row_height / 2 + 5); + cr.show_text (backup); + + cr.move_to (35 - 5, y + row_height / 2 + 12 - 14); + cr.line_to (35 - 10, y + row_height / 2 + 12 - 9); + + cr.move_to (35 - 10, y + row_height / 2 + 12 - 14); + cr.line_to (35 - 5, y + row_height / 2 + 12 - 9); + + cr.stroke (); + } + + void draw_background (Context cr, WidgetAllocation allocation, double y, bool color) { + if (color) { + draw_background_color (cr, allocation, y, 224); + } else { + draw_background_color (cr, allocation, y, 239); + } + } + + void draw_background_color (Context cr, WidgetAllocation allocation, double y, int color) { + cr.save (); + cr.set_source_rgba (color/255.0, color/255.0, color/255.0, 1); + cr.rectangle (0, y, allocation.width, row_height); + cr.fill (); + cr.restore (); + } + + public override string get_label () { + return _("Files"); + } + + public override string get_name () { + return "Files"; + } + + public override bool has_scrollbar () { + return true; + } + + public override void scroll_wheel_down (double x, double y) { + uint r = rows (); + + if (r > visible_rows) { + scroll += 2; + } + + if (scroll > r - visible_rows) { + scroll = (int) (r - visible_rows); + } + + if (scroll < 0) { + scroll = 0; + } + + update_scrollbar (); + redraw_area (0, 0, allocation.width, allocation.height); + } + + public override void scroll_wheel_up (double x, double y) { + scroll -= 2; + + if (scroll < 0) { + scroll = 0; + } + + update_scrollbar (); + redraw_area (0, 0, allocation.width, allocation.height); + } + + public override void selected_canvas () { + update_recent_files (); + update_scrollbar (); + + while (backups.length () != 0) { + backups.delete_link (backups.first ()); + } + + backups = get_backups (); + redraw_area (0, 0, allocation.width, allocation.height); + } + + public void update_scrollbar () { + int r = rows (); + + if (r == 0 || visible_rows == 0) { + MainWindow.set_scrollbar_size (0); + MainWindow.set_scrollbar_position (0); + } else { + MainWindow.set_scrollbar_size ((double) visible_rows / r); + MainWindow.set_scrollbar_position ((double) scroll / r); + } + } + + public override void scroll_to (double percent) { + int r = rows (); + scroll = (int) (percent * r); + + if (scroll > r - visible_rows) { + scroll = (int) (r - visible_rows); + } + + redraw_area (0, 0, allocation.width, allocation.height); + } + + int rows () { + int l = (int) (recent_fonts.length () + backups.length ()); + + if (has_backup ()) { + l += 2; + } + + l += 2; + return l; + } + + public void update_recent_files () { + Font font; + + while (recent_fonts.length () != 0) { + recent_fonts.delete_link (recent_fonts.first ()); + } + + foreach (var f in Preferences.get_recent_files ()) { + if (f == "") continue; + + File file = File.new_for_path (f); + + font = new Font (); + + font.set_font_file (f); + + if (file.query_exists ()) { + recent_fonts.append (font); + } + } + + recent_fonts.reverse (); + } + + bool has_backup () { + return backups.length () > 0; + } + + public static void delete_backups () { + FileEnumerator enumerator; + FileInfo? file_info; + string file_name; + File backup_file; + File dir = BirdFont.get_backup_directory (); + + try { + enumerator = dir.enumerate_children (FileAttribute.STANDARD_NAME, 0); + while ((file_info = enumerator.next_file ()) != null) { + file_name = ((!) file_info).get_name (); + backup_file = dir.get_child (file_name); + backup_file.delete (); + } + } catch (Error e) { + warning (e.message); + } + } + + public List get_backups () { + FileEnumerator enumerator; + string file_name; + FileInfo? file_info; + List backups = new List (); + File dir = BirdFont.get_backup_directory (); + Font font = BirdFont.get_current_font (); + + try { + enumerator = dir.enumerate_children (FileAttribute.STANDARD_NAME, 0); + while ((file_info = enumerator.next_file ()) != null) { + file_name = ((!) file_info).get_name (); + + // ignore old backup files + if (file_name.has_prefix ("current_font_")) { + continue; + } + + // ignore backup of the current font + if (file_name == @"$(font.get_name ()).bf") { + continue; + } + + backups.append (file_name); + } + } catch (Error e) { + warning (e.message); + } + + return backups; + } +} + +} diff -Nru birdfont-0.28/libbirdfont/Font.vala birdfont-0.31/libbirdfont/Font.vala --- birdfont-0.28/libbirdfont/Font.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Font.vala 2013-09-12 13:33:31.000000000 +0000 @@ -69,6 +69,10 @@ public string description = ""; public string copyright = ""; + public bool bold = false; + public bool italic = false; + public int weight = 400; + public bool initialised = true; OpenFontFormatReader otf; @@ -92,6 +96,18 @@ bottom_limit = 27; } + public void set_weight (string w) { + int wi = int.parse (w); + + if (wi > 0) { + weight = wi; + } + } + + public string get_weight () { + return @"$weight"; + } + public void touch () { modified = true; } @@ -171,6 +187,10 @@ this.name = n; } + public string get_full_name () { + return full_name; + } + public string get_name () { return name; } @@ -313,6 +333,8 @@ } glyph_cache.insert (glyph_collection.get_unicode (), glyph_collection); + + printd (@"Adding $(glyph_collection.get_current ().get_name ())\n"); } public string get_name_for_character (unichar c) { @@ -465,8 +487,13 @@ temp_file = dir.get_child (@"$(name).bf"); backup_file = (!) ((!) temp_file).get_path (); backup_file = backup_file.replace (" ", "_"); - birdfont_file.write_font_file (backup_file, true); + if (get_path () == backup_file) { + warning ("Refusing to write backup of a backup."); + return backup_file; + } + + birdfont_file.write_font_file (backup_file, true); return backup_file; } @@ -718,18 +745,26 @@ unichar rc = 0; bool r; - if (unlikely (!unicode.has_prefix ("U+"))) { + if (unlikely (!unicode.has_prefix ("U+") && !unicode.has_prefix ("u+"))) { warning (@"All unicode values must begin with U+ ($unicode)"); return '\0'; } - while (r = unicode.get_next_char (ref index, out c)) { - rc <<= 4; - rc += hex_to_oct (c); - - return_val_if_fail (++i <= 6, '\0'); + try { + while (r = unicode.get_next_char (ref index, out c)) { + rc <<= 4; + rc += hex_to_oct (c); + + if (++i > 6) { + throw new ConvertError.FAILED ("i > 6"); + } + } + } catch (ConvertError e) { + warning (@"unicode: $unicode\n"); + warning (e.message); + rc = '\0'; } - + return rc; } @@ -748,7 +783,8 @@ return o.to_string (); } - private static uint8 hex_to_oct (unichar o) { + private static uint8 hex_to_oct (unichar o) + throws ConvertError { StringBuilder s = new StringBuilder (); s.append_unichar (o); @@ -761,7 +797,9 @@ case 'f': return 15; } - return_val_if_fail ('0' <= o <= '9', 0); + if (!('0' <= o <= '9')) { + throw new ConvertError.FAILED (@"Excpecting a number ($(s.str))."); + } return (uint8) (o - '0'); } diff -Nru birdfont-0.28/libbirdfont/FontDisplay.vala birdfont-0.31/libbirdfont/FontDisplay.vala --- birdfont-0.28/libbirdfont/FontDisplay.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/FontDisplay.vala 2013-09-12 13:33:31.000000000 +0000 @@ -16,24 +16,18 @@ namespace BirdFont { -/** Javascripts in webkit do use this callback. */ -public class PropertyFunction { - public delegate void PropertyCallback (string val); - public PropertyCallback call; -} - public abstract class FontDisplay : GLib.Object { - List property = new List (); - List call = new List (); - /** Queue redraw area */ public signal void redraw_area (double x, double y, double w, double h); - /** Name of symbol or set of symbols in display selections like the tab panel. */ public virtual string get_name () { return ""; } + + public virtual string get_label () { + return ""; + } public virtual bool has_scrollbar () { return false; @@ -41,10 +35,6 @@ public virtual void scroll_to (double percent) { } - - public virtual bool is_html_canvas () { - return false; - } public static string path_to_uri (string path) { string uri = path; @@ -149,49 +139,6 @@ return f; } - public void add_html_callback (string prop, PropertyFunction.PropertyCallback cb) { - PropertyFunction pf = new PropertyFunction (); - pf.call = cb; - property.append (prop); - call.append (pf); - } - - public void process_property (string prop) { - string k, v; - int i, j; - PropertyFunction cb; - - if (prop == "" || prop == "done") { - return; - } - - i = prop.index_of (":"); - - if (i <= 0) { - return; - } - - k = prop.substring (0, i); - v = prop.substring (i + 1); - - j = 0; - - foreach (string p in property) { - if (p == k) { - break; - } - j++; - } - - if (j >= property.length ()) { - warning (@"key \"$k\" not found in property list, value: $v"); - return; - } - - cb = call.nth (j).data; - cb.call (v); - } - public static File find_file (string? dir, string name) { return SearchPaths.find_file (dir, name); } diff -Nru birdfont-0.28/libbirdfont/Glyph.vala birdfont-0.31/libbirdfont/Glyph.vala --- birdfont-0.28/libbirdfont/Glyph.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Glyph.vala 2013-09-12 13:33:31.000000000 +0000 @@ -33,18 +33,13 @@ public List path_list; public List active_paths = new List (); - // Control points - public EditPoint? new_point_on_path = null; - public EditPoint? flipping_point_on_path = null; - public EditPoint? last_added_edit_point = null; - // The point where edit event begun double pointer_begin_x = 0; double pointer_begin_y = 0; // Current pointer position - double motion_x = 0; - double motion_y = 0; + public double motion_x = 0; + public double motion_y = 0; // Zoom area double zoom_x1 = 0; @@ -144,7 +139,9 @@ clear_active_paths (); foreach (Path p in path_list) { - active_paths.append (p); + if (p.points.length () > 0) { + active_paths.append (p); + } } } @@ -211,6 +208,46 @@ } } + public void selection_boundries (out double x, out double y, out double w, out double h) { + double px, py, px2, py2; + + px = 10000; + py = 10000; + px2 = -10000; + py2 = -10000; + + foreach (Path p in active_paths) { + if (p.xmin < px) { + px = p.xmin; + } + + if (p.ymin < py) { + py = p.ymin; + } + + if (p.xmax > px2) { + px2 = p.xmax; + } + + if (p.ymax > py2) { + py2 = p.ymax; + } + } + + if (px2 == -10000 || px == 10000) { + warning (@"No box for selected paths. ($(active_paths.length ()))"); + px = 0; + py = 0; + px2 = 0; + py2 = 0; + } + + x = px; + y = py2; + w = px2 - px; + h = py2 - py; + } + /** @return centrum pixel for x coordinates. */ public static double xc () { double c = MainWindow.get_current_glyph ().allocation.width / 2.0; @@ -293,6 +330,7 @@ add_help_lines (); KeyBindings.singleton.set_require_modifier (false); glyph_sequence = Preferences.get ("glyph_sequence"); + MainWindow.native_window.set_scrollbar_size (0); } private void remove_lines () { @@ -418,7 +456,7 @@ public void remove_empty_paths () { foreach (Path p in path_list) { - if (p.points.length () == 0) { + if (p.points.length () < 2) { delete_path (p); remove_empty_paths (); return; @@ -571,10 +609,8 @@ t.move_action (t, (int) x, (int) y); - if (BirdFont.show_coordinates) { - motion_x = x * ivz () - xc () + view_offset_x; - motion_y = yc () - y * ivz () - view_offset_y; - } + motion_x = x * ivz () - xc () + view_offset_x; + motion_y = yc () - y * ivz () - view_offset_y; } public override void button_release (int button, double ex, double ey) { @@ -612,7 +648,7 @@ } public void update_view () { - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } public override void double_click (uint button, double ex, double ey) { @@ -651,21 +687,28 @@ } } - /** Insert new edit point for current path on the appropriate zoom - * level. - */ - public EditPoint add_new_edit_point (int x, int y) { - insert_edit_point (x, y); + /** Add new points to this path. */ + public void set_active_path (Path p) { + unowned List pl; + for (int i = 0; i < path_list.length (); i++) { + pl = path_list.nth (i); + if (pl.data == p) { + path_list.remove_link (pl); + break; + } + } - return_val_if_fail (active_paths.length () > 0, new EditPoint ()); + path_list.append (p); + p.reopen (); - last_added_edit_point = active_paths.last ().data.get_last_point (); - return (!) last_added_edit_point; + warn_if_fail (path_list.last ().data == p); } - public EditPoint get_last_edit_point () { - return_val_if_fail (last_added_edit_point != null, new EditPoint ()); - return (!) last_added_edit_point; + /** Insert new edit point for current path on the appropriate zoom + * level. + */ + public PointSelection add_new_edit_point (int x, int y) { + return insert_edit_point (x, y); } /** Move view port centrum to this coordinate. */ @@ -689,11 +732,15 @@ view_offset_x += x / view_zoom; view_offset_y += y / view_zoom; - + + if (unlikely (allocation.width == 0 || allocation.height == 0)) { + return; + } + view_zoom_x = allocation.width * view_zoom / w; view_zoom_y = allocation.height * view_zoom / h; - // TODO: there is a max zoom level: probably ivz > 0.1 + // TODO: there is a max zoom level if (view_zoom_x * allocation.width < view_zoom_y * allocation.height) { view_zoom = view_zoom_x; @@ -743,37 +790,54 @@ zoom_y2 = ny; } + public static void validate_zoom () { + Glyph g = MainWindow.get_current_glyph (); + if (unlikely (g.view_zoom == 0)) { + warning ("Zoom is zero."); + g.reset_zoom (); + + if (g.view_zoom == 0) { + g.view_zoom = 1; + g.view_offset_x = 0; + g.view_offset_y = 0; + } + } + } + public static double path_coordinate_x (double x) { Glyph g = MainWindow.get_current_glyph (); - return_val_if_fail (g.view_zoom != 0, 0); + validate_zoom (); return x * ivz () - xc () + g.view_offset_x; } public static int reverse_path_coordinate_x (double x) { Glyph g = MainWindow.get_current_glyph (); - return_val_if_fail (g.view_zoom != 0, 0); + validate_zoom (); return (int) Math.rint ((x - g.view_offset_x + xc ()) * g.view_zoom); } public static double precise_reverse_path_coordinate_x (double x) { Glyph g = MainWindow.get_current_glyph (); - return_val_if_fail (g.view_zoom != 0, 0); + validate_zoom (); return (x - g.view_offset_x + xc ()) * g.view_zoom; } public static double path_coordinate_y (double y) { Glyph g = MainWindow.get_current_glyph (); + validate_zoom (); return yc () - y * ivz () - g.view_offset_y; } public static int reverse_path_coordinate_y (double y) { Glyph g = MainWindow.get_current_glyph (); + validate_zoom (); y = Math.rint ((y + g.view_offset_y - yc ()) * g.view_zoom); return (int) (-y); } public static double precise_reverse_path_coordinate_y (double y) { Glyph g = MainWindow.get_current_glyph (); + validate_zoom (); y = (y + g.view_offset_y - yc ()) * g.view_zoom; return -y; } @@ -868,97 +932,36 @@ return min_point; } - private EditPoint insert_edit_point (double x, double y) { - unowned List paths; + private PointSelection insert_edit_point (double x, double y) { double xt, yt; - bool added; Path np; EditPoint inserted; - if (active_paths.length () == 0) { + if (path_list.length () == 0) { np = new Path (); - clear_active_paths (); - active_paths.append (np); path_list.append (np); } - - paths = path_list; - + xt = path_coordinate_x (x); yt = path_coordinate_y (y); - added = false; - - // FIXME: what about removeing this feature - if (new_point_on_path != null) { - return_val_if_fail (active_paths.length () > 0, new EditPoint ()); + return_val_if_fail (path_list.length () > 0, new PointSelection.empty ()); - Path p = new Path (); - EditPoint e = (!) new_point_on_path; - - return_val_if_fail (e.prev != null, new EditPoint ()); - - p.add_point (e); - e.type = PointType.CUBIC; - - e.right_handle.type = PointType.CUBIC; - e.left_handle.type = PointType.CUBIC; - - paths.append (p); - add_active_path (p); - flipping_point_on_path = new_point_on_path; - new_point_on_path = null; - added = true; - return e; - } - - if (!added) { - foreach (Path p in paths) { - if (p.is_open ()) { - p.add (xt, yt); - clear_active_paths (); - add_active_path (p); - added = true; - break; - } - } - } - - if (!added) { - foreach (Path p in paths) { - if (p.is_over (xt, yt)) { - p.add (xt, yt); - paths.append (p); - added = true; - redraw_area (0, 0, allocation.width, allocation.height); - break; - } - } - } - - if (!added) { - if (paths.length () > 0 && paths.last ().data.is_open ()) { - paths.last().data.add (xt, yt); - } - - foreach (var p in path_list) { - p.close (); - } - + if (path_list.last ().data.is_open ()) { + np = path_list.last().data; + np.add (xt, yt); + } else { np = new Path (); - paths.append (np); + path_list.append (np); np.add (xt, yt); - - clear_active_paths (); - add_active_path (np); - } - - assert (active_paths.length () > 0); - assert (active_paths.last ().data.points.length () > 0); + } + + clear_active_paths (); + add_active_path (np); - inserted = active_paths.last ().data.points.data; + inserted = np.points.last ().data; - return inserted; + return new PointSelection (inserted, np); } public void move_selected_edit_point_delta (EditPoint selected_point, double dx, double dy) { @@ -973,7 +976,6 @@ public void move_selected_edit_point_coordinates (EditPoint selected_point, double xt, double yt) { double x, y; - EditPoint p; BirdFont.get_current_font ().touch (); @@ -990,13 +992,7 @@ redraw_area (0, 0, allocation.width, allocation.height); } else { redraw_last_stroke (x, y); - } - - if (flipping_point_on_path != null) { - p = (!) flipping_point_on_path; - p.recalculate_handles (x, y); - redraw_area (0, 0, allocation.width, allocation.height); - } + } } public void move_selected_edit_point (EditPoint selected_point, double x, double y) { @@ -1070,8 +1066,6 @@ } clear_active_paths (); - new_point_on_path = null; - flipping_point_on_path = null; redraw_area (0, 0, allocation.width, allocation.height); @@ -1323,7 +1317,7 @@ public void draw_path (Context cr) { double left, baseline; - + baseline = get_line ("baseline").pos; left = get_line ("left").pos; @@ -1333,7 +1327,16 @@ Svg.draw_svg_path (cr, get_svg_data (), Glyph.xc () + left, Glyph.yc () + baseline); cr.restore (); } - + + if (is_open () && Path.fill_open_path) { + foreach (unowned Path p in path_list) { + cr.save (); + cr.set_source_rgba (Path.fill_color_r, Path.fill_color_g, Path.fill_color_b, Path.fill_color_a); + Svg.draw_svg_path (cr, get_svg_data (), Glyph.xc () + left, Glyph.yc () + baseline); + cr.restore (); + } + } + if (is_open ()) { foreach (unowned Path p in path_list) { p.draw_outline (cr, allocation, view_zoom); @@ -1348,10 +1351,6 @@ } } } - - if (new_point_on_path != null) { - Path.draw_edit_point_center ((!) new_point_on_path, cr); - } } private void draw_zoom_area(Context cr) { @@ -1381,9 +1380,13 @@ } } + public void set_allocation (WidgetAllocation a) { + allocation = a; + } + public override void draw (WidgetAllocation allocation, Context cr) { Tool tool; - + this.allocation = allocation; ImageSurface ps = new ImageSurface (Format.ARGB32, allocation.width, allocation.height); @@ -1396,6 +1399,12 @@ if (background_image != null && background_image_visible) { ((!)background_image).draw (cr, allocation, view_offset_x, view_offset_y, view_zoom); } + + if (unlikely (Preferences.draw_boundries)) { + foreach (unowned Path p in path_list) { + p.draw_boundries (cr, allocation, view_zoom); + } + } draw_background_glyph (allocation, cr); juxtapose (allocation, cr); @@ -1500,6 +1509,8 @@ g.ligature = ligature; g.substitution = substitution; + g.open = open; + return g; } @@ -1522,6 +1533,10 @@ set_glyph_data (g); undo_list.remove_link (undo_list.last ()); + + PenTool.update_selected_points (); + + clear_active_paths (); } void set_glyph_data (Glyph g) { @@ -1531,6 +1546,7 @@ foreach (Path p in g.path_list) { add_path (p); + p.update_region_boundries (); } remove_lines (); @@ -1548,10 +1564,7 @@ foreach (Path p in g.active_paths) { add_active_path (p); } - - open_path (); - close_path (); - + redraw_area (0, 0, allocation.width, allocation.height); } @@ -1684,6 +1697,10 @@ return false; } + static bool in_range (double offset_x, double coordinate_x1, double coordinate_x2) { + return coordinate_x1 <= offset_x <= coordinate_x2; + } + public void juxtapose (WidgetAllocation allocation, Context cr) { string glyph_sequence = Preferences.get ("glyph_sequence"); unichar c; @@ -1696,9 +1713,17 @@ double x, kern; double left, baseline; string last_name; - + + double box_x1, box_x2, box_y1, box_y2; + double marker_x, marker_y; + x = 0; + box_x1 = path_coordinate_x (0); + box_y1 = path_coordinate_y (0); + box_x2 = path_coordinate_x (allocation.width); + box_y2 = path_coordinate_y (allocation.height); + current.append_unichar (glyph.unichar_code); pos = glyph_sequence.index_of (current.str); @@ -1717,20 +1742,27 @@ } else { kern = 0; } + + if (!juxtaposed.is_empty () + && (in_range (left + x + kern, box_x1, box_x2) // the letter is visible + || in_range (left + x + kern + juxtaposed.get_width (), box_x1, box_x2))) { - if (!juxtaposed.is_empty ()) { + marker_x = Glyph.xc () + left + x + kern - glyph.view_offset_x; + marker_y = Glyph.yc () + baseline - glyph.view_offset_y; + cr.save (); cr.scale (glyph.view_zoom, glyph.view_zoom); - cr.translate (-glyph.view_offset_x, -glyph.view_offset_y); cr.set_source_rgba (0, 0, 0, 1); - Svg.draw_svg_path (cr, juxtaposed.get_svg_data (), Glyph.xc () + left + x + kern, Glyph.yc () + baseline); + + Svg.draw_svg_path (cr, juxtaposed.get_svg_data (), marker_x, marker_y); cr.restore (); } - x += juxtaposed.get_width () + KerningClasses.get_instance ().get_kerning (glyph.name, name) + kern; + x += juxtaposed.get_width () + kern; + last_name = name; } - + x = 0; last_name = glyph.name; for (int i = pos - 1; i >= 0; i--) { @@ -1747,17 +1779,21 @@ x -= juxtaposed.get_width (); x -= kern; - if (!juxtaposed.is_empty ()) { + marker_x = Glyph.xc () + left + x; + marker_y = Glyph.yc () + baseline; + if (!juxtaposed.is_empty () + &&(in_range (left + x, box_x1, box_x2) + || in_range (left + x + juxtaposed.get_width (), box_x1, box_x2))) { cr.save (); cr.scale (glyph.view_zoom, glyph.view_zoom); cr.translate (-glyph.view_offset_x, -glyph.view_offset_y); cr.set_source_rgba (0, 0, 0, 1); - Svg.draw_svg_path (cr, juxtaposed.get_svg_data (), Glyph.xc () + left + x, Glyph.yc () + baseline); + Svg.draw_svg_path (cr, juxtaposed.get_svg_data (), marker_x, marker_y); cr.restore (); } last_name = name; - } + } } void draw_background_glyph (WidgetAllocation allocation, Context cr) { diff -Nru birdfont-0.28/libbirdfont/GlyphBackgroundImage.vala birdfont-0.31/libbirdfont/GlyphBackgroundImage.vala --- birdfont-0.28/libbirdfont/GlyphBackgroundImage.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/GlyphBackgroundImage.vala 2013-09-12 13:33:31.000000000 +0000 @@ -434,7 +434,7 @@ } if (prev_handle != active_handle) { - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } diff -Nru birdfont-0.28/libbirdfont/GlyphCanvas.vala birdfont-0.31/libbirdfont/GlyphCanvas.vala --- birdfont-0.28/libbirdfont/GlyphCanvas.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/GlyphCanvas.vala 2013-09-12 13:33:31.000000000 +0000 @@ -24,10 +24,14 @@ public FontDisplay current_display; public signal void signal_redraw_area (int x, int y, int w, int h); - public WidgetAllocation allocation = new WidgetAllocation (); + public static WidgetAllocation allocation = new WidgetAllocation (); public GlyphCanvas () { } + + public static WidgetAllocation get_allocation () { + return allocation; + } public void set_allocation (WidgetAllocation w) { allocation = w.copy (); @@ -78,8 +82,11 @@ signal_redraw_area (x, y, w, h); } - public void redraw () { - signal_redraw_area (0, 0, allocation.width, allocation.height); + public static void redraw () { + GlyphCanvas c = MainWindow.get_glyph_canvas (); + if (!is_null (c)) { + c.signal_redraw_area (0, 0, allocation.width, allocation.height); + } } } diff -Nru birdfont-0.28/libbirdfont/GlyphRange.vala birdfont-0.31/libbirdfont/GlyphRange.vala --- birdfont-0.28/libbirdfont/GlyphRange.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/GlyphRange.vala 2013-09-12 13:33:31.000000000 +0000 @@ -136,6 +136,8 @@ add_single (' '); } else if (w == "divis") { add_single ('-'); + } else if (w == "null") { + add_single ('\0'); } else if (w.index_of ("-") > -1) { parse_range (w); } else { @@ -179,7 +181,11 @@ if (c == '-') { return "divis"; } - + + if (c == '\0') { + return "null"; + } + s.append_unichar (c); return s.str; } @@ -192,17 +198,30 @@ if (c == "divis") { return "-"; } + + if (c == "null") { + return "\0"; + } return c; } private void parse_range (string s) throws MarkupError { string[] r = s.split ("-"); + bool null_range = false; - if (r.length != 2 - || unserialize (r[0]).char_count () != 1 - || unserialize (r[1]).char_count () != 1) { - throw new MarkupError.PARSE (@"$s is not a valid range, it should be on the form A-Z."); + if (r.length == 2 && r[0] == "null" && r[1] == "null") { + null_range = true; + } else if (r.length == 2 && r[0] == "null" && unserialize (r[1]).char_count () == 1) { + null_range = true; + } + + if (!null_range) { + if (r.length != 2 + || unserialize (r[0]).char_count () != 1 + || unserialize (r[1]).char_count () != 1) { + throw new MarkupError.PARSE (@"$s is not a valid range, it should be on the form A-Z."); + } } append_range (unserialize (r[0]).get_char (), unserialize (r[1]).get_char ()); diff -Nru birdfont-0.28/libbirdfont/GlyphTable.vala birdfont-0.31/libbirdfont/GlyphTable.vala --- birdfont-0.28/libbirdfont/GlyphTable.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/GlyphTable.vala 2013-09-12 13:33:31.000000000 +0000 @@ -12,413 +12,67 @@ Lesser General Public License for more details. */ +using Gee; + namespace BirdFont { /** A sorted table of glyphs with search index. */ public class GlyphTable : GLib.Object { - List data = new List (); - List row1 = new List (); - List row2 = new List (); - List row3 = new List (); + TreeMap map; public GlyphTable () { + map = new TreeMap (); } public void remove_all () { - while (data.length () > 0) { - data.remove_link (data.first ()); - } - build_index (); + map.clear (); } public void @for_each (Func func) { - if (unlikely (is_null (data))) { + if (unlikely (is_null (map))) { warning ("No data in table"); return; } - data.foreach ((v) => { - if (unlikely (is_null (v))) { - warning ("No value found in GlyphTable."); - return; - } - - func (v.glyph_collection); - }); + foreach (var entry in map.entries) { + func (entry.value); + } } public bool has_key (string n) { - return find (n) != null; - } - - unowned List? find (string n) { - return find_index (n); - } - - unowned List? find_next (string n) { - return find_next_index (n); + return map.has_key (n); } public void remove (string name) { - unowned List? d = find (name); - - if (d == null) { - warning (@"did not find $name"); - return; - } - - data.remove_link ((!) d); - build_index (); + map.unset (name); } public uint length () { - return data.length (); + return map.size; } public new GlyphCollection? @get (string name) { - unowned List? d = find_index (name); - - if (d == null) { - return null; - } - - return ((!) d).data.glyph_collection; + return map.get (name); } public new GlyphCollection? nth (uint index) { - unowned List? d = data.nth (index); - - if (d == null) { - return null; - } - - return ((!) d).data.glyph_collection; - } - - public bool insert (string key, GlyphCollection g) { - Item item; - unowned List? next; - - if (find (key) != null) { - warning (@"Table does already contains a glyph for key \"$key\"."); - stderr.printf ("char: %u\n", (uint) key.get_char (0)); - return false; - } - - next = find_next (key); - - item = new Item (key, g); - - if (next == null) { - data.append (item); - } else { - data.insert_before ((!) next, item); // _sorted - } - - build_index (); - - if (find (key) == null) { - warning (@"Can not find glyph \"$(key)\"."); - validate_index (); - print_all (); - return false; - } - - return true; - } - - public void print_all () { - int indice = 0; - - print ("Data:\n"); - foreach (Item i in data) { - print (@"key: $(i.name) indice: $(indice)\n"); - indice++; - } - - print ("Index:\n"); - print ("\n"); - print ("row3\n"); - foreach (RowItem i in row3) { - print (@"$(i.item.data.name)\n"); - } - - print ("\n"); - print ("row2\n"); - foreach (RowItem i in row2) { - print (@"$(i.item.data.name)\n"); - } - - print ("\n"); - print ("row1\n"); - foreach (RowItem i in row1) { - print (@"$(i.item.data.name)\n"); - } - } - - static int compare (string an, Item b) { - string? bt = b.name; - string bn = (!) bt; - - uint32 ac = 0; - uint32 bc = 0; - - int i1 = 0; - int i2 = 0; - - return_val_if_fail (bt != null, 0); - - int ca = an.char_count (); - int cb = bn.char_count (); - - if (ca != cb) { - return ca < cb ? 1 : -1; - } - - while (true) { - an.get_next_char (ref i1, out ac); - bn.get_next_char (ref i2, out bc); - - if (ac == bc && ac != 0) { - continue; - } - - if (ac == bc) return 0; - - return (ac < bc) ? 1 : -1; - } - } - - public void build_index () { - uint len; - RowItem r; - - while (row1.length () > 0) { - row1.remove_link (row1.first ()); - } - - while (row2.length () > 0) { - row2.remove_link (row2.first ()); - } - - while (row3.length () > 0) { - row3.remove_link (row3.first ()); - } + uint i = 0; - if (data.length () == 0) { - return; - } - - // row 1 - len = data.length () / 5; - if (len == 0) len++; - for (int i = 0; i < len; i++) { - r = new RowItem (); - r.item = data.nth (i * 5); - r.level = 1; - row1.append (r); - } - r = new RowItem (); - r.item = data.last (); - r.level = 1; - r.last = true; - row1.append (r); - - // row 2 - len = row1.length () / 5; - if (len == 0) len++; - for (int i = 0; i < len; i++) { - r = new RowItem (); - r.next_row = row1.nth (i * 5); - r.item = r.next_row.data.item; - r.level = 2; - row2.append (r); - } - r = new RowItem (); - r.item = data.last (); - r.level = 2; - r.next_row = row1.last (); - r.last = true; - row2.append (r); - - // row 3 - len = row2.length () / 5; - if (len == 0) len++; - for (int i = 0; i < len; i++) { - r = new RowItem (); - r.next_row = row2.nth (i * 5); - r.item = r.next_row.data.item; - r.level = 3; - row3.append (r); - } - r = new RowItem (); - r.item = data.last (); - r.level = 3; - r.next_row = row2.last (); - r.last = true; - row3.append (r); - } - - unowned List? find_next_index (string n) { - unowned List? next = find_next_via_index (n); - return next; - } - - unowned List? find_index (string n) { - unowned List? next = find_next_via_index (n); - - if (next == null) { - return null; - } - - if (compare (n, ((!)next).data) == 0) { - return next; - } - - if (((!)next) != data.first () && compare (n, ((!)next).prev.data) == 0) { - return ((!)next).prev; // fetch previous since we are searching for the next one - } - - return null; - } - - unowned List? find_next_via_index (string n) { - unowned List i = data.first (); - unowned List r; - int cmp; - - if (data.length () == 0) { - return null; - } - - r = row3.first (); - int ti = 0; - while (true) { - cmp = compare (n, r.data.item.data); - - ti++; - - if (cmp == 1) { - break; - } - - if (cmp == 0) { - return r.data.item; - } - - if (r != row3.last ()) { - r = r.next; - } else { - return null; + foreach (var k in map.keys) { + if (i == index) { + return map.get (k); } - } - r = r.data.next_row; - - while (true) { - cmp = compare (n, r.data.item.data); - - if (cmp == -1) { - break; - } - - if (cmp == 0) { - return r.data.item; - } - - if (r == row2.first ()) {; - return r.data.item; - } else r = r.prev; + i++; } - r = r.data.next_row; - - while (true) { - cmp = compare (n, r.data.item.data); - - if (cmp == 1) { - break; - } - - if (cmp == 0) { - return r.data.item; - } - - if (r == row1.last ()) return null; - else r = r.next; - } - i = r.data.item; - - - while (true) { - cmp = compare (n, i.data); - if (cmp == -1) { - // null? - return i.next; - } - - if (cmp == 0) { - return i; - } - - if (i == data.first ()) { - return i; - } else { - i = i.prev; - } - } + return null; } - public bool validate_index () { - int cmp; - Item prev; - int index; - - if (data.length () == 0) { - return true; - } - - prev = data.first ().data; - index = 0; - foreach (Item i in data) { - cmp = compare (prev.name, i); - - if (cmp == 1) { - continue; - } - - if (cmp == 0 && index != 0) { - warning (@"Value is not unique: $(i.name)."); - return false; - } - - if (cmp == -1) { - warning (@"Value is not sorted: $cmp == cmp $(prev.name) $(i.name)."); - return false; - } - - index++; - } - + public bool insert (string key, GlyphCollection g) { + map.set (key, g); return true; } - - class Item : GLib.Object { - public string name; - public GlyphCollection glyph_collection; - - public Item (string n, GlyphCollection gc) { - glyph_collection = gc; - name = n; - } - } - - class RowItem : GLib.Object { - public unowned List next_row; - public unowned List item; - public int level = 0; - public bool last = false; - } } } diff -Nru birdfont-0.28/libbirdfont/GridTool.vala birdfont-0.31/libbirdfont/GridTool.vala --- birdfont-0.28/libbirdfont/GridTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/GridTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -23,6 +23,7 @@ static List vertical; static bool visible = false; + public static bool ttf_units = false; public static double size_x; public static double size_y; @@ -30,8 +31,14 @@ public static List sizes; public GridTool (string n) { + string units; base (n, _("Show grid"), 'g', NONE); + units = Preferences.get ("ttf_units"); + if (units == "true") { + ttf_units = true; + } + horizontal = new List (); vertical = new List (); @@ -45,7 +52,7 @@ select_action.connect((self) => { visible = !visible; update_lines (); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); self.set_selected (visible); @@ -55,7 +62,6 @@ if (visible && !t.is_selected ()) { MainWindow.get_toolbox ().select_tool (t); } - }); press_action.connect((self, b, x, y) => { @@ -73,12 +79,34 @@ } public static void set_grid_width (double w) { + double t = 0; + + if (ttf_units) { + ttf_grid_coordinate (ref w, ref t); + } + size_x = w; size_y = w; update_lines (); } + public static void ttf_grid (ref int pixel_x, ref int pixel_y) { + double coordinate_x = Glyph.path_coordinate_x (pixel_x); + double coordinate_y = Glyph.path_coordinate_y (pixel_y); + + coordinate_x = GlyfData.tie_to_ttf_grid_x (MainWindow.get_current_glyph (), coordinate_x); + coordinate_y = GlyfData.tie_to_ttf_grid_y (BirdFont.get_current_font (), coordinate_y); + + pixel_x = Glyph.reverse_path_coordinate_x (coordinate_x); + pixel_y = Glyph.reverse_path_coordinate_y (coordinate_y); + } + + public static void ttf_grid_coordinate (ref double x, ref double y) { + x = GlyfData.tie_to_ttf_grid_x (MainWindow.get_current_glyph (), x); + y = GlyfData.tie_to_ttf_grid_y (BirdFont.get_current_font (), y); + } + private static void update_lines () { Glyph g = MainWindow.get_current_glyph (); double step = size_y; @@ -139,11 +167,6 @@ } } - - /** Sets x and y the point closest on grid. */ - public static void tie (ref double x, ref double y) { - tie_point (ref x, ref y, false); - } public static void tie_coordinate (ref double x, ref double y) { tie_point (ref x, ref y, true); @@ -248,6 +271,10 @@ return y; } + public static bool has_ttf_grid () { + return ttf_units; + } + public static bool is_visible () { return visible; } diff -Nru birdfont-0.28/libbirdfont/ImportSvg.vala birdfont-0.31/libbirdfont/ImportSvg.vala --- birdfont-0.28/libbirdfont/ImportSvg.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ImportSvg.vala 2013-09-12 13:33:31.000000000 +0000 @@ -33,11 +33,16 @@ import_svg (path); } - public static void import_svg_data (string xml_data) { + public static PathList import_svg_data (string xml_data) { + PathList path_list = new PathList (); + PathList pl; + Path p; + string svg; + string xml; + Glyph glyph; + if (BirdFont.win32) { - string svg; - string xml; - Glyph glyph = MainWindow.get_current_glyph (); + glyph = MainWindow.get_current_glyph (); // Paths xml = xml_data.replace ("id", "__"); @@ -45,7 +50,8 @@ svg = svg_data.substring (0, svg_data.index_of ("\"")); if (svg.has_prefix ("M") || svg.has_prefix ("m")) { - parse_svg_data (svg, glyph); + pl = parse_svg_data (svg, glyph); + path_list.append (pl); } } @@ -53,7 +59,8 @@ xml = xml_data; foreach (string svg_data in xml.split ("get_root_element (); - return_if_fail (root != null); - parse_svg_file (root); + return_val_if_fail (root != null, path_list); + path_list = parse_svg_file (root); delete doc; Parser.cleanup (); } + + return path_list; } public static void import_svg (string path) { @@ -114,70 +123,77 @@ } } - private static void parse_svg_file (Xml.Node* root) { + private static PathList parse_svg_file (Xml.Node* root) { Xml.Node* node; + PathList pl = new PathList (); node = root; for (Xml.Node* iter = node->children; iter != null; iter = iter->next) { if (iter->name == "g") { - parse_layer (iter); + parse_layer (iter, pl); } if (iter->name == "path") { - parse_path (iter); + parse_path (iter, pl); } if (iter->name == "polygon") { - parse_polygon (iter); + parse_polygon (iter, pl); } - } + } + + return pl; } - private static void parse_layer (Xml.Node* node) { + private static void parse_layer (Xml.Node* node, PathList pl) { return_if_fail (node != null); for (Xml.Node* iter = node->children; iter != null; iter = iter->next) { if (iter->name == "path") { - parse_path (iter); + parse_path (iter, pl); } if (iter->name == "g") { - parse_layer (iter); + parse_layer (iter, pl); } if (iter->name == "polygon") { - parse_polygon (iter); + parse_polygon (iter, pl); } } } - private static void parse_polygon (Xml.Node* node) { + private static void parse_polygon (Xml.Node* node, PathList pl) { string attr_name = ""; string attr_content; Glyph glyph = MainWindow.get_current_glyph (); - + Path p; + for (Xml.Attr* prop = node->properties; prop != null; prop = prop->next) { attr_name = prop->name; attr_content = prop->children->content; if (attr_name == "points") { - parse_polygon_data (attr_content, glyph); + p = parse_polygon_data (attr_content, glyph); + pl.paths.append (p); } } } - private static void parse_path (Xml.Node* node) { + private static void parse_path (Xml.Node* node, PathList pl) { string attr_name = ""; string attr_content; Glyph glyph = MainWindow.get_current_glyph (); - + PathList path_list; + for (Xml.Attr* prop = node->properties; prop != null; prop = prop->next) { attr_name = prop->name; attr_content = prop->children->content; if (attr_name == "d") { - parse_svg_data (attr_content, glyph); + path_list = parse_svg_data (attr_content, glyph); + pl.append (path_list); } } } @@ -229,8 +245,10 @@ * @param d svg data * @param glyph add paths to this glyph * @param svg_glyph parse svg glyph (origo in lower left corner) + * + * @return the new paths */ - public static void parse_svg_data (string d, Glyph glyph, bool svg_glyph = false, double units = 1) { + public static PathList parse_svg_data (string d, Glyph glyph, bool svg_glyph = false, double units = 1) { string[] c; string[] command; int ci = 0; @@ -244,9 +262,10 @@ int pi = 0; string data; Font font; - + PathList path_list = new PathList (); + if (d.index_of ("z") == -1) { // ignore all open paths - return; + return path_list; } font = BirdFont.get_current_font (); @@ -729,7 +748,7 @@ for (int i = 0; i < ci; i++) { if (is_null (command[i]) || command[i] == "") { warning ("Parser error."); - return; + return path_list; } if (command[i] == "M") { @@ -750,7 +769,7 @@ if (is_null (path.points.last ().data)) { warning ("Paths must begin with M"); - return; + return path_list; } ep1 = path.points.last ().data; @@ -781,7 +800,7 @@ if (is_null (path.points.last ().data)) { warning ("Paths must begin with M"); - return; + return path_list; } // start with line handles @@ -838,12 +857,14 @@ glyph.add_path (path); glyph.close_path (); - + + path_list.paths.append (path); path = new Path (); } } - + // TODO: Find out if it is possible to tie handles. + return path_list; } static double parse_double (string? s) { @@ -869,7 +890,7 @@ return double.try_parse ((!) s); } - static void parse_polygon_data (string polygon_points, Glyph glyph) { + static Path parse_polygon_data (string polygon_points, Glyph glyph) { string data = add_separators (polygon_points); string[] c = data.split (" "); Path path = new Path (); @@ -880,6 +901,8 @@ glyph.add_path (path); glyph.close_path (); + + return path; } } diff -Nru birdfont-0.28/libbirdfont/KerningClasses.vala birdfont-0.31/libbirdfont/KerningClasses.vala --- birdfont-0.28/libbirdfont/KerningClasses.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/KerningClasses.vala 2013-09-12 13:33:31.000000000 +0000 @@ -308,9 +308,7 @@ classes_kerning.remove_link (classes_kerning.first ()); } - if (!is_null (MainWindow.get_glyph_canvas ())) { // FIXME: reorganize - MainWindow.get_glyph_canvas ().redraw (); - } + GlyphCanvas.redraw (); if (!is_null (MainWindow.get_toolbox ())) { // FIXME: reorganize Toolbox.redraw_tool_box (); diff -Nru birdfont-0.28/libbirdfont/KerningDisplay.vala birdfont-0.31/libbirdfont/KerningDisplay.vala --- birdfont-0.28/libbirdfont/KerningDisplay.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/KerningDisplay.vala 2013-09-12 13:33:31.000000000 +0000 @@ -33,14 +33,16 @@ bool parse_error = false; - KerningList kerning_list = new KerningList (); - public KerningDisplay () { GlyphSequence w = new GlyphSequence (); row = new List (); row.append (w); } + public override string get_label () { + return _("Kerning"); + } + public override string get_name () { return "Kerning"; } @@ -48,15 +50,6 @@ public void show_parse_error () { parse_error = true; } - - public static KerningDisplay get_singleton () { - if (MainWindow.get_current_display () is KerningDisplay) { - return (KerningDisplay) MainWindow.get_current_display (); - } - - warning ("Current display is not for kerning"); - return new KerningDisplay (); - } public override void draw (WidgetAllocation allocation, Context cr) { if (parse_error) { @@ -66,10 +59,6 @@ } } - private void draw_list (WidgetAllocation allocation, Context cr) { - kerning_list.draw (allocation, cr); - } - public void draw_error_message (WidgetAllocation allocation, Context cr) { string line1 = _("The current kerning class is malformed."); string line2 = _("Add single characters separated by space and ranges on the form A-Z."); @@ -441,7 +430,31 @@ row.first ().data.glyph.append ((!) glyph); row.first ().data.ranges.append (range); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); + } + + void set_selected_handle (int handle) { + selected_handle = handle; + + if (selected_handle <= 0) { + selected_handle = 1; + } + + if (selected_handle >= row.first ().data.glyph.length ()) { + selected_handle = (int) row.first ().data.glyph.length () - 1; + } + + GlyphCanvas.redraw (); + } + + public static void previous_pair () { + KerningDisplay d = MainWindow.get_kerning_display (); + d.set_selected_handle (d.selected_handle - 1); + } + + public static void next_pair () { + KerningDisplay d = MainWindow.get_kerning_display (); + d.set_selected_handle (d.selected_handle + 1); } public override void key_press (uint keyval) { @@ -473,15 +486,7 @@ selected_handle++; } - if (selected_handle <= 0) { - selected_handle = 1; - } - - if (selected_handle >= row.first ().data.glyph.length ()) { - selected_handle = (int) row.first ().data.glyph.length () - 1; - } - - set_active_handle_index (selected_handle); + set_selected_handle (selected_handle); } if (KeyBindings.modifier == NONE || KeyBindings.modifier == SHIFT) { @@ -507,7 +512,7 @@ } } - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } public override void motion_notify (double ex, double ey) { @@ -524,7 +529,7 @@ k = (ex - last_handle_x) / y; // y-axis is for variable precision set_kerning (selected_handle, k); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } last_handle_x = ex; @@ -585,7 +590,7 @@ if (active_handle != i - row_index) { set_active_handle_index (i - row_index); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } if (col_index == word.glyph.length () || col_index == 0) { diff -Nru birdfont-0.28/libbirdfont/KerningList.vala birdfont-0.31/libbirdfont/KerningList.vala --- birdfont-0.28/libbirdfont/KerningList.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/KerningList.vala 2013-09-12 13:33:31.000000000 +0000 @@ -84,8 +84,11 @@ cr.show_text (kerning); } + public override string get_label () { + return _("Kerning Pairs"); + } + public override string get_name () { - _("Kerning Pairs"); // translate later return "Kerning Pairs"; } @@ -101,6 +104,10 @@ scroll = (int) (pairs - visible_rows); } + if (visible_rows > pairs) { + scroll = 0; + } + update_scrollbar (); redraw_area (0, 0, allocation.width, allocation.height); } diff -Nru birdfont-0.28/libbirdfont/KerningRange.vala birdfont-0.31/libbirdfont/KerningRange.vala --- birdfont-0.28/libbirdfont/KerningRange.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/KerningRange.vala 2013-09-12 13:33:31.000000000 +0000 @@ -31,7 +31,7 @@ } panel_press_action.connect ((selected, button, tx, ty) => { - KerningDisplay kerning_display = KerningDisplay.get_singleton (); + KerningDisplay kerning_display = MainWindow.get_kerning_display (); if (button == 3 || KeyBindings.modifier == CTRL) { update_kerning_classes (); @@ -67,9 +67,6 @@ glyph_range.set_class (true); malformed = false; - - // FIXME: create gui tool - KerningClasses.get_instance ().print_all (); } catch (MarkupError e) { KerningClasses.get_instance ().print_all (); warning (e.message); @@ -78,7 +75,7 @@ } public void update_kerning_classes () { - KerningDisplay kerning_display = KerningDisplay.get_singleton (); + KerningDisplay kerning_display = MainWindow.get_kerning_display (); TextListener listener = new TextListener (_("Kerning class"), ranges, _("Set")); listener.signal_text_input.connect ((text) => { set_ranges (text); @@ -86,7 +83,7 @@ }); listener.signal_submit.connect (() => { - KerningDisplay.get_singleton ().suppress_input = false; + MainWindow.get_kerning_display ().suppress_input = false; MainWindow.native_window.hide_text_input (); // remove all empty classes diff -Nru birdfont-0.28/libbirdfont/LanguageSelectionTab.vala birdfont-0.31/libbirdfont/LanguageSelectionTab.vala --- birdfont-0.28/libbirdfont/LanguageSelectionTab.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/LanguageSelectionTab.vala 2013-09-12 13:33:31.000000000 +0000 @@ -11,71 +11,148 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. */ +using Cairo; +using Math; namespace BirdFont { public class LanguageSelectionTab : FontDisplay { - public LanguageSelectionTab () { - add_html_callback ("select_language", (val) => { - TabBar tb = MainWindow.get_tab_bar (); - set_prefered_character_set (val); - tb.close_display (this); - Toolbox.select_tool_by_name ("custom_character_set"); - }); + int scroll = 0; + int visible_rows = 0; + WidgetAllocation allocation = new WidgetAllocation (); + + public LanguageSelectionTab () { } - /** @param iso_code language iso code. */ - public static void set_prefered_character_set (string iso_code) { - Preferences.set ("language", iso_code); + void select_language (int row) { + string iso_code; + TabBar tb = MainWindow.get_tab_bar (); + + return_if_fail (0 <= row < DefaultLanguages.codes.length ()); + + iso_code = DefaultLanguages.codes.nth (row).data; + Preferences.set ("language", iso_code); + tb.close_display (this); + Toolbox.select_tool_by_name ("custom_character_set"); } + public override void button_release (int button, double ex, double ey) { + int r = (int) rint ((ey - 17) / 18.0); + if (button == 1 && 0 <= r < DefaultLanguages.codes.length ()) { + select_language (r + scroll); + } + } + + public override void draw (WidgetAllocation allocation, Context cr) { + int y = 20; + int s = 0; + bool color = (scroll % 2) == 0; + + this.allocation = allocation; + + visible_rows = (int) (allocation.height / 18.0); + + cr.save (); + cr.set_source_rgba (1, 1, 1, 1); + cr.rectangle (0, 0, allocation.width, allocation.height); + cr.fill (); + cr.restore (); + + cr.save (); + cr.set_source_rgba (0.3, 0.3, 0.3, 1); + cr.set_font_size (12); + + foreach (string language in DefaultLanguages.names) { + if (s++ >= scroll) { + draw_row (allocation, cr, language, color, y); + y += 18; + color = !color; + } + } + cr.restore (); + } + + private static void draw_row (WidgetAllocation allocation, Context cr, string language, bool color, double y) { + + if (color) { + cr.save (); + cr.set_source_rgba (224/255.0, 224/255.0, 224/255.0, 1); + cr.rectangle (0, y - 14, allocation.width, 18); + cr.fill (); + cr.restore (); + } + + cr.move_to (30, y); + cr.show_text (language); + } + + public override string get_label () { + return _("Character Set"); + } + public override string get_name () { - return _("Character set"); + return "Character Set"; } - public override bool is_html_canvas () { + public override bool has_scrollbar () { return true; } - public override string get_html () { - string headline = _("Select default character set"); - StringBuilder c = new StringBuilder (); - - c.append (""" - - - - - - + public override void scroll_wheel_down (double x, double y) { + uint rows = DefaultLanguages.names.length (); + scroll += 3; + + if (scroll + visible_rows > rows) { + scroll = (int) (rows - visible_rows); + } + + if (scroll < 0) { + scroll = 0; + } + + update_scrollbar (); + redraw_area (0, 0, allocation.width, allocation.height); + } -
-

""" + headline + """

+ public override void scroll_wheel_up (double x, double y) { + scroll -= 3; -
- """); + if (scroll < 0) { + scroll = 0; + } - int i = 0; - string language_code; - foreach (string language in DefaultLanguages.names) { - language_code = DefaultLanguages.codes.nth (i).data; - c.append (""" - -
- """); - i++; - } - - c.append (""" -
-
- -"""); + update_scrollbar (); + redraw_area (0, 0, allocation.width, allocation.height); + } - return c.str; - } + public override void selected_canvas () { + update_scrollbar (); + redraw_area (0, 0, allocation.width, allocation.height); + } + + public void update_scrollbar () { + uint rows = DefaultLanguages.names.length (); + + if (rows == 0 || visible_rows == 0) { + MainWindow.set_scrollbar_size (0); + MainWindow.set_scrollbar_position (0); + } else { + MainWindow.set_scrollbar_size ((double) visible_rows / rows); + MainWindow.set_scrollbar_position ((double) scroll / rows); + } + } + + public override void scroll_to (double percent) { + uint rows = DefaultLanguages.names.length (); + scroll = (int) (percent * rows); + + if (scroll > rows - visible_rows) { + scroll = (int) (rows - visible_rows); + } + + redraw_area (0, 0, allocation.width, allocation.height); + } } } diff -Nru birdfont-0.28/libbirdfont/MainWindow.vala birdfont-0.31/libbirdfont/MainWindow.vala --- birdfont-0.28/libbirdfont/MainWindow.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/MainWindow.vala 2013-09-12 13:33:31.000000000 +0000 @@ -1,18 +1,15 @@ /* Copyright (C) 2012 Johan Mattsson - 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 3 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, see . + 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 3 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. */ namespace BirdFont { @@ -24,10 +21,13 @@ public static MainWindow singleton; public static KeyBindings key_bindings; public static MenuTab menu_tab; + public static FileTab file_tab; public static TooltipArea tool_tip; public static OverView over_view; public static TabBar tabs; public static NativeWindow native_window; + public static KerningDisplay kerning_display; + public static CharDatabase character_database; public MainWindow () { singleton = this; @@ -37,8 +37,35 @@ tabs = new TabBar (); tools = new Toolbox (glyph_canvas, tabs); menu_tab = new MenuTab (); + file_tab = new FileTab (); tool_tip = new TooltipArea (); over_view = new OverView(); + kerning_display = new KerningDisplay (); + character_database = new CharDatabase (); + } + + public static FileTab get_recent_files_tab () { + return file_tab; + } + + public static void open_recent_files_tab () { + IdleSource idle = new IdleSource (); + tabs.add_unique_tab (file_tab); + idle.set_callback (() => { + tabs.select_tab_name ("Files"); + return false; + }); + idle.attach (null); + } + + public static void select_all_paths () { + Tool t = tools.get_current_tool (); + + if (! (t is MoveTool || t is ResizeTool)) { + Toolbox.select_tool_by_name ("move"); + } + + get_current_glyph ().select_all_paths (); } public static DrawingTools get_drawing_tools () { @@ -57,10 +84,6 @@ return glyph_canvas; } - public static OverView get_over_view () { - return over_view; - } - public static Glyph get_current_glyph () { if (unlikely (is_null (BirdFont.current_glyph))) { warning ("No default glyph have been set yet.\n"); @@ -104,7 +127,7 @@ } over_view = new OverView(); - tabs.add_unique_tab (over_view, 100, false); + tabs.add_unique_tab (over_view); return over_view; } @@ -113,7 +136,10 @@ TextListener listener = new TextListener (_("Glyph sequence"), Preferences.get ("glyph_sequence"), _("Close")); listener.signal_text_input.connect ((text) => { Preferences.set ("glyph_sequence", text); - get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); + }); + listener.signal_submit.connect (() => { + MainWindow.native_window.hide_text_input (); }); native_window.set_text_listener (listener); } @@ -152,18 +178,11 @@ } } - get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } public static void close_all_tabs () { - uint i = 0; - uint len = get_tab_bar ().get_length (); - - while (i < len) { - if (!get_tab_bar ().close_tab ((int) i)) { - i++; - } - } + get_tab_bar ().close_all_tabs (); } public static string translate (string s) { @@ -176,6 +195,10 @@ Tool.yield (); } } + + public static KerningDisplay get_kerning_display () { + return kerning_display; + } } } diff -Nru birdfont-0.28/libbirdfont/MenuTab.vala birdfont-0.31/libbirdfont/MenuTab.vala --- birdfont-0.28/libbirdfont/MenuTab.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/MenuTab.vala 2013-09-12 13:33:31.000000000 +0000 @@ -16,292 +16,40 @@ public class MenuTab : FontDisplay { - List recent_fonts = new List (); - /** Ignore actions when export is in progress. */ public static bool suppress_event = false; public MenuTab () { - // html callbacks: - add_html_callback ("load", (val) => { - load_font (val); - }); - - add_html_callback ("load_backup", (val) => { - load_backup (val); - }); - - add_html_callback ("help", (val) => { - MainWindow.get_tool_tip ().show_text (val); - }); - - add_html_callback ("delete_backups", (val) => { - delete_backups (); - MainWindow.get_tab_bar ().select_tab_name ("Files"); - }); - } - - public static void set_suppress_event (bool e) { - suppress_event = e; - } - - public override string get_name () { - return "Files"; - } - - public override bool is_html_canvas () { - return true; - } - - public override string get_html () { - StringBuilder c = new StringBuilder (); - string fn; - - propagate_recent_files (); - - c.append ( -""" - - - - - - - - -"""); - -if (has_backup ()) { - c.append ("""
"""); - c.append ("""

""" + _("Recover") + """

"""); - - foreach (string backup in get_backups ()) { - fn = backup; - - c.append ("""
"); - - c.append ("
"); - c.append (fn); - c.append ("
"); - - c.append ("\"\""); - - c.append ("

"); - c.append ("
\n"); - } - - if (get_backups ().length () > 0) { - c.append ("""
"""); - - c.append ("
"); - c.append (_("Delete all")); - c.append ("
"); - - c.append ("\"\""); - c.append ("

"); - - c.append ("
\n"); } - - c.append ("""
"""); - c.append ("""
"""); -} - -c.append (""" -
-"""); - -foreach (Font font in recent_fonts) { - fn = (!) font.font_file; - fn = fn.substring (fn.replace ("\\", "/").last_index_of ("/") + 1); - - c.append ("""
"); - - c.append ("
"); - c.append (fn); - c.append ("
"); - - c.append ("\"\""); - c.append ("

"); - c.append ("
\n"); -} - -c.append ("
\n"); - -c.append (""" - - -"""); - -#if traslations - // xgettext needs these lines in order to extract strings properly - _("Files"); - _("Recent files") - _("Recover"); - _("Delete all"); -#endif - - return c.str; - } - - bool has_backup () { - return get_backups ().length () > 0; - } - - public static void delete_backups () { - FileEnumerator enumerator; - FileInfo? file_info; - string file_name; - File backup_file; - File dir = BirdFont.get_backup_directory (); - - try { - enumerator = dir.enumerate_children (FileAttribute.STANDARD_NAME, 0); - while ((file_info = enumerator.next_file ()) != null) { - file_name = ((!) file_info).get_name (); - backup_file = dir.get_child (file_name); - backup_file.delete (); + public static void export_font () { + Font font = BirdFont.get_current_font (); + if (font.font_file == null) { + if (MenuTab.save ()) { + ExportTool.export_all (); } - } catch (Error e) { - warning (e.message); + } else { + ExportTool.export_all (); } } - - public List get_backups () { - FileEnumerator enumerator; - string file_name; - FileInfo? file_info; - List backups = new List (); - File dir = BirdFont.get_backup_directory (); - Font font = BirdFont.get_current_font (); - - try { - enumerator = dir.enumerate_children (FileAttribute.STANDARD_NAME, 0); - while ((file_info = enumerator.next_file ()) != null) { - file_name = ((!) file_info).get_name (); - - // ignore old backup files - if (file_name.has_prefix ("current_font_")) { - continue; - } - - // ignore backup of the current font - if (file_name == @"$(font.get_name ()).bf") { - continue; - } - - backups.append (file_name); - } - } catch (Error e) { - warning (e.message); - } - - return backups; + + public static void set_suppress_event (bool e) { + suppress_event = e; } - public void propagate_recent_files () { - Font font; - - while (recent_fonts.length () != 0) { - recent_fonts.delete_link (recent_fonts.first ()); - } - - foreach (var f in Preferences.get_recent_files ()) { - if (f == "") continue; - - File file = File.new_for_path (f); - - font = new Font (); - - font.set_font_file (f); - - if (file.query_exists ()) { - recent_fonts.append (font); - } - } - - recent_fonts.reverse (); + public override string get_label () { + return _("Menu"); } - - public void load_backup (string file_name) { - File backup_file; - - if (suppress_event) { - return; - } - backup_file = BirdFont.get_backup_directory (); - backup_file = backup_file.get_child (file_name); - load_font ((!) backup_file.get_path ()); + public override string get_name () { + return "Menu"; } - - public void load_font (string fn) { - Font font; - SaveDialogListener dialog = new SaveDialogListener (); - if (suppress_event) { - return; - } - - font = BirdFont.get_current_font (); - - dialog.signal_discard.connect (() => { - Font f; - bool loaded; - - f = BirdFont.new_font (); - f.delete_backup (); - - MainWindow.clear_glyph_cache (); - MainWindow.close_all_tabs (); - - loaded = f.load (fn); - - if (!unlikely (loaded)) { - warning (@"Failed to load fond $fn"); - return; - } - - MainWindow.get_drawing_tools ().remove_all_grid_buttons (); - foreach (string v in f.grid_width) { - MainWindow.get_drawing_tools ().parse_grid (v); - } - - MainWindow.get_drawing_tools ().background_scale.set_value (f.background_scale); - KerningTools.update_kerning_classes (); - select_overview (); - }); - - dialog.signal_save.connect (() => { - MenuTab.save (); - dialog.signal_discard (); - }); - - if (!font.is_modified ()) { - dialog.signal_discard (); - } else { - MainWindow.native_window.set_save_dialog (dialog); - } + public override string get_html () { + return "".dup (); } - - private static void select_overview () { + + public static void select_overview () { if (suppress_event) { return; } @@ -491,10 +239,22 @@ } public static void show_kerning_context () { - MainWindow.get_tab_bar ().add_unique_tab (new KerningDisplay (), 85, false); + KerningDisplay kd = MainWindow.get_kerning_display (); + MainWindow.get_tab_bar ().add_unique_tab (kd, 85, false); + } + + public static void preview () { + Font font = BirdFont.get_current_font (); + if (font.font_file == null) { + if (MenuTab.save ()) { + show_preview_tab (); + } + } else { + show_preview_tab (); + } } - public static void preview () { + public static void show_preview_tab () { OverWriteDialogListener dialog = new OverWriteDialogListener (); TabBar tab_bar = MainWindow.get_tab_bar (); FontFormat format = BirdFont.get_current_font ().format; @@ -516,7 +276,7 @@ /** Display the language selection tab. */ public static void select_language () { - MainWindow.get_tab_bar ().add_unique_tab (new LanguageSelectionTab (), 120, false); + MainWindow.get_tab_bar ().add_unique_tab (new LanguageSelectionTab ()); } public static void use_current_glyph_as_background () { diff -Nru birdfont-0.28/libbirdfont/MoveTool.vala birdfont-0.31/libbirdfont/MoveTool.vala --- birdfont-0.28/libbirdfont/MoveTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/MoveTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Johan Mattsson + Copyright (C) 2012 2013 Johan Mattsson This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -19,199 +19,188 @@ class MoveTool : Tool { - bool move_path = false; - double last_x = 0; - double last_y = 0; - - bool resize_path = false; - Path? resized_path = null; - double last_resize_y; - - bool rotate_path = false; - double last_rotate_y; + static bool move_path = false; + static bool moved = false; + static double last_x = 0; + static double last_y = 0; + + static double selection_x = 0; + static double selection_y = 0; + static bool group_selection= false; + static double selection_box_width = 0; static double selection_box_height = 0; static double selection_box_center_x = 0; static double selection_box_center_y = 0; - double rotation = 0; - double last_rotate = 0; - - ImageSurface? resize_handle; public MoveTool (string n) { base (n, _("Move paths"), 'm', CTRL); - - resize_handle = Icons.get_icon ("resize_handle.png"); - + select_action.connect((self) => { }); deselect_action.connect((self) => { - Glyph glyph = MainWindow.get_current_glyph (); - glyph.clear_active_paths (); }); press_action.connect((self, b, x, y) => { - Glyph glyph = MainWindow.get_current_glyph (); - - glyph.store_undo_state (); - - foreach (Path p in glyph.active_paths) { - if (is_over_resize_handle (p, x, y)) { - resize_path = true; - resized_path = p; - last_resize_y = y; - return; - } - - if (is_over_rotate_handle (p, x, y)) { - rotate_path = true; - return; - } - } - - if (resized_path != null) { - if (is_over_resize_handle ((!) resized_path, x, y)) { - resize_path = true; - last_resize_y = y; - rotation = 0; - return; - } - } - - if (!glyph.is_over_selected_path (x, y)) { - if (!glyph.select_path (x, y)) { - glyph.clear_active_paths (); - } - } - - move_path = true; - - last_rotate = 0; - rotation = 0; - last_rotate_y = y; - - update_selection_boundries (); - - last_x = x; - last_y = y; + press (b, x, y); }); release_action.connect((self, b, x, y) => { - Glyph glyph = MainWindow.get_current_glyph (); - - move_path = false; - resize_path = false; - rotate_path = false; - - if (GridTool.is_visible ()) { - foreach (Path p in glyph.active_paths) { - tie_path_to_grid (p, x, y); - } - } + release (b, x, y); }); move_action.connect ((self, x, y) => { - Glyph glyph = MainWindow.get_current_glyph (); - double dx = last_x - x; - double dy = last_y - y; - double p = PenTool.precision; - - if (move_path) { - foreach (Path path in glyph.active_paths) { - path.move (Glyph.ivz () * -dx * p, Glyph.ivz () * dy * p); - } - } - - if (resize_path && can_resize (x, y)) { - resize (x, y); - } + move (x, y); + }); + + key_press_action.connect ((self, keyval) => { + key_press (keyval); + }); + + draw_action.connect ((self, cr, glyph) => { + draw_actions (cr); + }); + } - if (rotate_path) { - rotate (x, y); + public static void draw_actions (Context cr) { + if (group_selection) { + draw_selection_box (cr); + } + } + + public static void key_press (uint32 keyval) { + Glyph g = MainWindow.get_current_glyph (); + + // delete selected paths + if (keyval == Key.DEL || keyval == Key.BACK_SPACE) { + foreach (Path p in g.active_paths) { + g.path_list.remove (p); + g.update_view (); } - if (!rotate_path) { - get_selection_box_boundries (out selection_box_center_x, - out selection_box_center_y, out selection_box_width, - out selection_box_height); + while (g.active_paths.length () > 0) { + g.active_paths.remove_link (g.active_paths.first ()); } + } + + if (is_arrow_key (keyval)) { + move_selected_paths (keyval); + } + } + + public static void move (int x, int y) { + Glyph glyph = MainWindow.get_current_glyph (); + double dx = last_x - x; + double dy = last_y - y; + double p = PenTool.precision; + + if (move_path && (fabs(dx) > 0 || fabs (dy) > 0)) { + moved = true; + foreach (Path path in glyph.active_paths) { + path.move (Glyph.ivz () * -dx * p, Glyph.ivz () * dy * p); + } + } - last_x = x; - last_y = y; + last_x = x; + last_y = y; - MainWindow.get_glyph_canvas ().redraw (); - }); + GlyphCanvas.redraw (); + } + + public static void release (int b, int x, int y) { + Glyph glyph = MainWindow.get_current_glyph (); - key_press_action.connect ((self, keyval) => { - Glyph g = MainWindow.get_current_glyph (); - - // delete selected paths - if (keyval == Key.DEL) { - foreach (Path p in g.active_paths) { - g.path_list.remove (p); - g.update_view (); - } - - while (g.active_paths.length () > 0) { - g.active_paths.remove_link (g.active_paths.first ()); - } + move_path = false; + + if (GridTool.is_visible () && moved) { + foreach (Path p in glyph.active_paths) { + tie_path_to_grid (p, x, y); } - - if (is_arrow_key (keyval)) { - move_selected_paths (keyval); + } else if (GridTool.has_ttf_grid ()) { + foreach (Path p in glyph.active_paths) { + tie_path_to_ttf_grid (p, x, y); } - }); + } - draw_action.connect ((self, cr, glyph) => { - Glyph g = MainWindow.get_current_glyph (); - ImageSurface resize_img = (!) resize_handle; - - foreach (Path p in g.active_paths) { - cr.set_source_surface (resize_img, Glyph.reverse_path_coordinate_x (p.xmax) - 10, Glyph.reverse_path_coordinate_y (p.ymax) - 10); - cr.paint (); + if (group_selection) { + select_group (); + } + + group_selection = false; + moved = false; + } + + public static void press (int b, int x, int y) { + Glyph glyph = MainWindow.get_current_glyph (); + + glyph.store_undo_state (); + group_selection = false; + + if (!glyph.is_over_selected_path (x, y)) { + if (!glyph.select_path (x, y)) { + glyph.clear_active_paths (); } - - if (g.active_paths.length () > 0) { - draw_rotate_handle (cr); + } + + move_path = true; + + update_selection_boundries (); + + last_x = x; + last_y = y; + + if (glyph.active_paths.length () == 0) { + group_selection = true; + selection_x = x; + selection_y = y; + } + + update_boundries_for_selection (); + } + + static void select_group () { + double x1 = Glyph.path_coordinate_x (Math.fmin (selection_x, last_x)); + double y1 = Glyph.path_coordinate_y (Math.fmin (selection_y, last_y)); + double x2 = Glyph.path_coordinate_x (Math.fmax (selection_x, last_x)); + double y2 = Glyph.path_coordinate_y (Math.fmax (selection_y, last_y)); + Glyph glyph = MainWindow.get_current_glyph (); + + glyph.clear_active_paths (); + + foreach (Path p in glyph.path_list) { + if (p.xmin > x1 && p.xmax < x2 && p.ymin < y1 && p.ymax > y2) { + if (p.points.length () > 0) { + glyph.active_paths.append (p); + } } - }); + } } - - static void update_selection_boundries () { + + public static void update_selection_boundries () { get_selection_box_boundries (out selection_box_center_x, out selection_box_center_y, out selection_box_width, out selection_box_height); } - void draw_rotate_handle (Context cr) { - double cx, cy, hx, hy; - - cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); - cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); + static void draw_selection_box (Context cr) { + double x = Math.fmin (selection_x, last_x); + double y = Math.fmin (selection_y, last_y); + + double w = Math.fabs (selection_x - last_x); + double h = Math.fabs (selection_y - last_y); cr.save (); cr.set_source_rgba (0, 0, 0.3, 1); - cr.rectangle (cx - 2.5, cy - 2.5, 5, 5); - cr.fill (); - - hx = cos (rotation) * 75; - hy = sin (rotation) * 75; - - cr.set_line_width (1); - cr.move_to (cx, cy); - cr.line_to (cx + hx, cy + hy); + cr.set_line_width (2); + cr.rectangle (x, y, w, h); cr.stroke (); - - cr.set_source_rgba (0, 0, 0.3, 1); - cr.rectangle (cx + hx - 2.5, cy + hy - 2.5, 5, 5); - cr.fill (); - - cr.restore (); + + cr.restore (); } - static void get_selection_box_boundries (out double x, out double y, out double w, out double h) { + public static void get_selection_box_boundries (out double x, out double y, out double w, out double h) { double px, py, px2, py2; Glyph glyph = MainWindow.get_current_glyph (); @@ -244,7 +233,7 @@ y = py + (h / 2); } - void move_selected_paths (uint key) { + static void move_selected_paths (uint key) { Glyph glyph = MainWindow.get_current_glyph (); double x, y; @@ -275,99 +264,11 @@ glyph.redraw_area (0, 0, glyph.allocation.width, glyph.allocation.height); } - double get_resize_ratio (double x, double y) { - double ratio; - double h; - Path rp; - - return_val_if_fail (!is_null (resized_path), 0); - rp = (!) resized_path; - h = rp.xmax - rp.xmin; - - ratio = 1; - ratio -= 0.7 * PenTool.precision * (Glyph.path_coordinate_y (last_resize_y) - Glyph.path_coordinate_y (y)) / h; - - return ratio; - } - - /** Move resize handle to pixel x,y. */ - void resize (double x, double y) { - Path rp; - double ratio; - double resize_pos_x = 0; - double resize_pos_y = 0; - Glyph glyph = MainWindow.get_current_glyph (); - double selection_minx, selection_miny, dx, dy; - - ratio = get_resize_ratio (x, y); + static void tie_path_to_ttf_grid (Path p, double x, double y) { + tie_path_to_grid (p, x, y, true); + } - return_if_fail (!is_null (resized_path)); - rp = (!) resized_path; - get_selection_min (out resize_pos_x, out resize_pos_y); - - foreach (Path selected_path in glyph.active_paths) { - selected_path.resize (ratio); - } - - // resize paths - foreach (Path selected_path in glyph.active_paths) { - selected_path.resize (ratio); - } - - // move paths relative to the updated xmin and xmax - get_selection_min (out selection_minx, out selection_miny); - dx = resize_pos_x - selection_minx; - dy = resize_pos_y - selection_miny; - foreach (Path selected_path in glyph.active_paths) { - selected_path.move (dx, dy); - } - - last_resize_y = y; - } - - void get_selection_min (out double x, out double y) { - Glyph glyph = MainWindow.get_current_glyph (); - x = double.MAX; - y = double.MAX; - foreach (Path p in glyph.active_paths) { - if (p.xmin < x) { - x = p.xmin; - } - - if (p.ymin < y) { - y = p.ymin; - } - } - } - - bool can_resize (double x, double y) { - Glyph glyph = MainWindow.get_current_glyph (); - double h, w; - double ratio = get_resize_ratio (x, y); - - foreach (Path selected_path in glyph.active_paths) { - h = selected_path.ymax - selected_path.ymin; - w = selected_path.xmax - selected_path.xmin; - - if (selected_path.points.length () == 0) { - continue; - } - - if (h * ratio < 1 || w * ratio < 1) { - return false; - } - } - - return true; - } - - bool is_over_resize_handle (Path p, double x, double y) { - double handle_x = Math.fabs (Glyph.reverse_path_coordinate_x (p.xmax)); - double handle_y = Math.fabs (Glyph.reverse_path_coordinate_y (p.ymax)); - return fabs (handle_x - x + 10) < 20 && fabs (handle_y - y + 10) < 20; - } - - void tie_path_to_grid (Path p, double x, double y) { + static void tie_path_to_grid (Path p, double x, double y, bool ttf_grid = false) { double sx, sy, qx, qy; // tie to grid @@ -376,8 +277,13 @@ qx = p.xmin; qy = p.ymin; - GridTool.tie_coordinate (ref sx, ref sy); - GridTool.tie_coordinate (ref qx, ref qy); + if (ttf_grid) { + GridTool.ttf_grid_coordinate (ref sx, ref sy); + GridTool.ttf_grid_coordinate (ref qx, ref qy); + } else { + GridTool.tie_coordinate (ref sx, ref sy); + GridTool.tie_coordinate (ref qx, ref qy); + } if (Math.fabs (qy - p.ymin) < Math.fabs (sy - p.ymax)) { p.move (0, qy - p.ymin); @@ -392,62 +298,13 @@ } } - /** Move rotate handle to pixel x,y. */ - void rotate (double x, double y) { - double cx, cy, xc, yc, xc2, yc2, a, b, w, h; - Glyph glyph = MainWindow.get_current_glyph (); - double dx, dy; - - cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); - cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); - xc = selection_box_center_x; - yc = selection_box_center_y; - - a = x - cx; - b = y - cy; - - rotation = atan (b / a); - - if (a < 0) { - rotation += PI; - } - - foreach (Path p in glyph.active_paths) { - p.rotate (rotation - last_rotate, selection_box_center_x, selection_box_center_y); - } - - get_selection_box_boundries (out xc2, out yc2, out w, out h); - - dx = -(xc2 - xc); - dy = -(yc2 - yc); - + public static void update_boundries_for_selection () { + Glyph glyph = MainWindow.get_current_glyph (); foreach (Path p in glyph.active_paths) { - p.move (dx, dy); + p.update_region_boundries (); } - - last_rotate = rotation; - - update_selection_boundries (); } - - bool is_over_rotate_handle (Path p, double x, double y) { - double cx, cy, hx, hy; - double size = 10; - bool inx, iny; - - cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); - cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); - - hx = cos (rotation) * 75; - hy = sin (rotation) * 75; - - inx = x - size <= cx + hx - 2.5 <= x + size; - iny = y - size <= cy + hy - 2.5 <= y + size; - - return inx && iny; - } - - + public static void flip_vertical () { flip (true); } @@ -460,7 +317,7 @@ double xc, yc, xc2, yc2, w, h; double dx, dy; Glyph glyph = MainWindow.get_current_glyph (); - + xc = selection_box_center_x; yc = selection_box_center_y; diff -Nru birdfont-0.28/libbirdfont/NativeWindow.vala birdfont-0.31/libbirdfont/NativeWindow.vala --- birdfont-0.28/libbirdfont/NativeWindow.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/NativeWindow.vala 2013-09-12 13:33:31.000000000 +0000 @@ -48,11 +48,6 @@ /** Exit the application. */ public abstract void quit (); - - protected void webkit_callback (string s) { - FontDisplay fd = MainWindow.get_current_display (); - fd.process_property (s); - } } } diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/GlyfData.vala birdfont-0.31/libbirdfont/OpenFontFormat/GlyfData.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/GlyfData.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/GlyfData.vala 2013-09-12 13:33:31.000000000 +0000 @@ -51,13 +51,23 @@ public int16 bounding_box_xmax = 0; public int16 bounding_box_ymax = 0; - private static double UNITS = HeadTable.UNITS; - + private static double UNITS { + get { return HeadTable.UNITS; } + } + public GlyfData (Glyph g) { + Path q; + glyph = g; foreach (Path p in g.path_list) { - paths.append (p.get_quadratic_points ()); + q = p.get_quadratic_points (); + + if (q.points.length () < 2) { + warning (@"A path in $(g.get_name ()) contains less than three points, it will not be exported."); + } else { + paths.append (q); + } } process_end_points (); @@ -91,6 +101,11 @@ continue; } + if (quadratic.points.length () < 2) { + warning ("A path contains less than three points, it will not be exported."); + continue; + } + foreach (EditPoint e in quadratic.points) { end_point++; type = e.get_right_handle ().type; @@ -134,6 +149,18 @@ } } + public static double tie_to_ttf_grid_x (Glyph glyph, double x) { + double ttf_x; + ttf_x = rint (x * UNITS - glyph.left_limit * UNITS); + return (ttf_x / UNITS) + glyph.left_limit; + } + + public static double tie_to_ttf_grid_y (Font font, double y) { + double ttf_y; + ttf_y = rint (y * UNITS + font.base_line * UNITS); + return (ttf_y / UNITS) - font.base_line; + } + void process_x () { double prev = 0; double x; diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/GlyfTable.vala birdfont-0.31/libbirdfont/OpenFontFormat/GlyfTable.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/GlyfTable.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/GlyfTable.vala 2013-09-12 13:33:31.000000000 +0000 @@ -60,19 +60,6 @@ glyphs = new List (); } - public int get_gid_from_unicode (unichar c) { - int i = 0; - foreach (Glyph g in glyphs) { - if (g.unichar_code == c) { - return i; - } - - i++; - } - - return -1; - } - public int get_gid (string name) { int i = 0; @@ -129,6 +116,10 @@ num_glyphs = glyphs.length (); + if (glyphs.length () == 0) { + warning ("No glyphs in glyf table."); + } + foreach (Glyph g in glyphs) { // set values for loca table assert (fd.length () % 4 == 0); @@ -168,6 +159,10 @@ unassigned_glyphs = new List (); + if (font.get_glyph_indice (0) == null) { + warning ("No glyphs in font."); + } + // add glyphs, first all assigned then the unassigned ones for (indice = 0; (gl = font.get_glyph_indice (indice)) != null; indice++) { g = (!) gl; @@ -189,6 +184,7 @@ if (!g.is_unassigned ()) { glyphs.append (g); } else { + printd ("Adding unassigned glyph."); unassigned_glyphs.append (g); } } @@ -260,7 +256,9 @@ // flags nflags = glyf_data.get_nflags (); - if (nflags != npoints) { + if (unlikely (nflags != npoints)) { + print ("glyf table data:\n"); + fd.dump (); warning (@"(nflags != npoints) ($nflags != $npoints) in glyph $(g.name). ncontours: $ncontours"); } assert (nflags == npoints); diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/GposTable.vala birdfont-0.31/libbirdfont/OpenFontFormat/GposTable.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/GposTable.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/GposTable.vala 2013-09-12 13:33:31.000000000 +0000 @@ -32,14 +32,6 @@ public override void parse (FontData dis) throws Error { // Not implemented, freetype2 is used for loading fonts - return_if_fail (offset > 0 && length > 0); - - stdout.printf ("GPOS data:\n"); - dis.seek (offset); - for (int i = 0; i < length; i++) { - stdout.printf ("%x ", dis.read ()); - } - stdout.printf ("\n"); } public void process (GlyfTable glyf_table) throws GLib.Error { @@ -100,27 +92,28 @@ FontData get_pair_pos_format1 () throws GLib.Error { FontData fd = new FontData (); uint16 pair_set_count; + uint coverage_offset = 10 + pairs_offset_length () + pairs_set_length (); create_kerning_pairs (); // FIXME: add more then current maximum of pairs - if (pairs.length () > uint16.MAX) { + if (pairs.length () > uint16.MAX || coverage_offset > uint16.MAX) { print_pairs (); - warning ("Too many kerning pairs."); + warning (@"Too many kerning pairs. $(pairs.length ())"); } pair_set_count = (uint16) pairs.length (); fd.add_ushort (1); // position format // offset to coverage table from beginning of kern pair table - fd.add_ushort (10 + pairs_offset_length () + pairs_set_length ()); + fd.add_ushort ((uint16) coverage_offset); fd.add_ushort (0x0004); // ValueFormat1 (0x0004 is x advance) fd.add_ushort (0); // ValueFormat2 (0 is null) fd.add_ushort (pair_set_count); // n pairs // pair offsets orderd by coverage index - int pair_set_offset = 10 + pairs_offset_length (); + uint pair_set_offset = 10 + pairs_offset_length (); foreach (PairFormat1 k in pairs) { fd.add_ushort ((uint16) pair_set_offset); pair_set_offset += 2; @@ -162,23 +155,16 @@ } } - public int pairs_set_length () { - int len = 0; + public uint pairs_set_length () { + uint len = 0; foreach (PairFormat1 p in pairs) { - len += 2; - foreach (Kern k in p.pairs) { - len += 4; - } + len += 2 + 4 * p.pairs.length (); } return len; } - public int pairs_offset_length () { - int len = 0; - foreach (PairFormat1 k in pairs) { - len += 2; - } - return len; + public uint pairs_offset_length () { + return 2 * pairs.length (); } public int get_pair_index (int gid) { @@ -216,8 +202,6 @@ return; } - print (@"kerning: $left $right $kerning\n"); - pair_index = get_pair_index (gid1); if (pair_index == -1) { pair = new PairFormat1 (); diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/HeadTable.vala birdfont-0.31/libbirdfont/OpenFontFormat/HeadTable.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/HeadTable.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/HeadTable.vala 2013-09-12 13:33:31.000000000 +0000 @@ -41,8 +41,8 @@ uint64 modified; // public static uint16 units_per_em = 4096; FIXME: windows testing - public static uint16 units_per_em = 1000; - public static double UNITS = 10 * (units_per_em / 1000); + public static uint16 units_per_em; + public static double UNITS; const uint8 BASELINE_AT_ZERO = 1 << 0; const uint8 LSB_AT_ZERO = 1 << 1; @@ -52,6 +52,13 @@ public HeadTable (GlyfTable gt) { glyf_table = gt; id = "head"; + init (); + } + + /** Set default value for unit. */ + public static void init () { + units_per_em = 1000; + UNITS = 10 * (units_per_em / 1000); } public uint32 get_adjusted_checksum () { diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/NameTable.vala birdfont-0.31/libbirdfont/OpenFontFormat/NameTable.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/NameTable.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/NameTable.vala 2013-09-12 13:33:31.000000000 +0000 @@ -211,7 +211,7 @@ // platform 1 foreach (string s in text) { - fd.add_str (s); + fd.add_str (s); } // platform 3 diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala birdfont-0.31/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala 2013-09-12 13:33:31.000000000 +0000 @@ -75,8 +75,4 @@ } } -void printd (string s) { - //print (s); -} - } diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/Os2Table.vala birdfont-0.31/libbirdfont/OpenFontFormat/Os2Table.vala --- birdfont-0.28/libbirdfont/OpenFontFormat/Os2Table.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/Os2Table.vala 2013-09-12 13:33:31.000000000 +0000 @@ -16,39 +16,51 @@ class Os2Table : Table { + public static const uint16 ITALIC = 1; + public static const uint16 UNDERSCORE = 1 << 1; + public static const uint16 NEGATIVE = 1 << 2; + public static const uint16 OUTLINED = 1 << 3; + public static const uint16 STRIKEOUT = 1 << 4; + public static const uint16 BOLD = 1 << 5; + public static const uint16 REGULAR = 1 << 6; + public static const uint16 TYPO_METRICS = 1 << 7; + public static const uint16 WWS = 1 << 8; + public static const uint16 OBLIQUE = 1 << 9; + public Os2Table () { id = "OS/2"; } public override void parse (FontData dis) throws Error { - } public void process (GlyfTable glyf_table) { FontData fd = new FontData (); - + Font font = OpenFontFormatWriter.get_current_font (); int16 ascender; int16 descender; + uint16 style = 0; - fd.add_u16 (0x0002); // USHORT Version 0x0000, 0x0001, 0x0002, 0x0003, 0x0004 + fd.add_u16 (0x0002); // version - fd.add_16 (glyf_table.get_average_width ()); // SHORT xAvgCharWidth + fd.add_16 (glyf_table.get_average_width ()); // xAvgCharWidth + + fd.add_u16 ((uint16) font.weight); // usWeightClass (400 is normal, 700 is bold) + + fd.add_u16 (5); // usWidthClass (5 is normal) + fd.add_u16 (0); // fsType - fd.add_u16 (400); // USHORT usWeightClass (400 is normal) - fd.add_u16 (5); // USHORT usWidthClass (5 is normal) - fd.add_u16 (0); // USHORT fsType - - fd.add_16 (40); // SHORT ySubscriptXSize - fd.add_16 (40); // SHORT ySubscriptYSize - fd.add_16 (40); // SHORT ySubscriptXOffset - fd.add_16 (40); // SHORT ySubscriptYOffset - fd.add_16 (40); // SHORT ySuperscriptXSize - fd.add_16 (40); // SHORT ySuperscriptYSize - fd.add_16 (40); // SHORT ySuperscriptXOffset - fd.add_16 (40); // SHORT ySuperscriptYOffset - fd.add_16 (40); // SHORT yStrikeoutSize - fd.add_16 (200); // SHORT yStrikeoutPosition - fd.add_16 (40); // SHORT sFamilyClass + fd.add_16 (40); // ySubscriptXSize + fd.add_16 (40); // ySubscriptYSize + fd.add_16 (40); // ySubscriptXOffset + fd.add_16 (40); // ySubscriptYOffset + fd.add_16 (40); // ySuperscriptXSize + fd.add_16 (40); // ySuperscriptYSize + fd.add_16 (40); // ySuperscriptXOffset + fd.add_16 (40); // ySuperscriptYOffset + fd.add_16 (40); // yStrikeoutSize + fd.add_16 (200); // yStrikeoutPosition + fd.add_16 (0); // sFamilyClass // FIXME: PANOSE fd.add (0); @@ -64,39 +76,53 @@ // FIXME: fd.add_u32 (0); // ulUnicodeRange1 Bits 0-31 - fd.add_u32 (0); // ULONG ulUnicodeRange2 Bits 32-63 - fd.add_u32 (0); // ULONG ulUnicodeRange3 Bits 64-95 - fd.add_u32 (0); // ULONG ulUnicodeRange4 Bits 96-127 + fd.add_u32 (0); // ulUnicodeRange2 Bits 32-63 + fd.add_u32 (0); // ulUnicodeRange3 Bits 64-95 + fd.add_u32 (0); // ulUnicodeRange4 Bits 96-127 fd.add_tag ("----"); // VendID + + // fsSelection (1 for italic 0 for upright) - fd.add_u16 (0); // USHORT fsSelection + if (!font.bold && !font.italic) { + style |= REGULAR; + } + + if (font.bold) { + style |= BOLD; + } + + if (font.italic) { + style |= ITALIC; + } - fd.add_u16 (glyf_table.get_first_char ()); // USHORT usFirstCharIndex - fd.add_u16 (glyf_table.get_last_char ()); // USHORT usLastCharIndex + fd.add_u16 (style); + + fd.add_u16 (glyf_table.get_first_char ()); // usFirstCharIndex + fd.add_u16 (glyf_table.get_last_char ()); // usLastCharIndex ascender = glyf_table.ymax; descender = -glyf_table.ymin; - fd.add_16 (ascender); // SHORT sTypoAscender - fd.add_16 (descender); // SHORT sTypoDescender - fd.add_16 (3); // SHORT sTypoLineGap + fd.add_16 (ascender); // sTypoAscender + fd.add_16 (descender); // sTypoDescender + fd.add_16 (3); // sTypoLineGap - fd.add_u16 (ascender); // USHORT usWinAscent - fd.add_u16 (descender); // USHORT usWinDescent + fd.add_u16 (ascender); // usWinAscent + fd.add_u16 (descender); // usWinDescent - // FIXA: - fd.add_u32 (0); // ULONG ulCodePageRange1 Bits 0-31 - fd.add_u32 (0); // ULONG ulCodePageRange2 Bits 32-63 + // FIXME: + fd.add_u32 (0); // ulCodePageRange1 Bits 0-31 + fd.add_u32 (0); // ulCodePageRange2 Bits 32-63 - fd.add_16 (ascender); // SHORT sxHeight version 0x0002 and later - fd.add_16 (ascender); // SHORT sCapHeight version 0x0002 and later + fd.add_16 (ascender); // sHeight + fd.add_16 (ascender); // sCapHeight - fd.add_16 (0); // USHORT usDefaultChar version 0x0002 and later - fd.add_16 (0x0020); // USHORT usBreakChar version 0x0002 and later, also known as space + fd.add_16 (0); // usDefaultChar + fd.add_16 (0x0020); // usBreakChar also known as space - // FIXA: calculate these values - fd.add_16 (1); // USHORT usMaxContext version 0x0002 and later + // FIXME: calculate these values + fd.add_16 (1); // usMaxContext // padding fd.pad (); diff -Nru birdfont-0.28/libbirdfont/OpenFontFormat/load_font.c birdfont-0.31/libbirdfont/OpenFontFormat/load_font.c --- birdfont-0.28/libbirdfont/OpenFontFormat/load_font.c 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OpenFontFormat/load_font.c 2013-09-12 13:33:31.000000000 +0000 @@ -201,7 +201,7 @@ prev_is_curve = FALSE; f[j] = CUBIC_CURVE; } else { - fprintf (stderr, "WARNING invalid point flags: %d index: %d.\n", flags[i], i); + g_warning ("WARNING invalid point flags: %d index: %d.\n", flags[i], i); prev_is_curve = FALSE; f[j] = ON_CURVE; } @@ -512,7 +512,7 @@ i += 1; } else { g_string_printf (contour, ""); - fprintf (stderr, "WARNING Can not parse outline.\n"); + g_warning ("WARNING Can not parse outline.\n"); *err = 1; i++; } @@ -588,25 +588,25 @@ char_left = get_charcode (face, gid); if (char_left <= 31) { - fprintf (stderr, "Ignoring kerning for control character.\n"); + g_warning ("Ignoring kerning for control character.\n"); return bf; } if (char_left == 0) { - fprintf (stderr, "No character code could be found for left kerning value.\n"); + g_warning ("No character code could be found for left kerning value.\n"); return bf; } for (right = 0; right < face->num_glyphs; right++) { error = FT_Get_Kerning (face, gid, right, FT_KERNING_UNSCALED, &kerning); if (error) { - fprintf (stderr, "Failed to obtain kerning value.\n"); + g_warning ("Failed to obtain kerning value.\n"); break; } char_right = get_charcode (face, right); if (char_left == 0) { - fprintf (stderr, "No character code could be found for right kerning value.\n"); + g_warning ("No character code could be found for right kerning value.\n"); return bf; } @@ -627,7 +627,7 @@ error = FT_Load_Glyph (face, index, FT_LOAD_DEFAULT | FT_LOAD_NO_SCALE); if (error) { - fprintf (stderr, "Failed to obtain height. (%d)\n", error); + g_warning ("Failed to obtain height. (%d)\n", error); return 0; } @@ -653,7 +653,7 @@ error = FT_Load_Glyph (face, index, FT_LOAD_DEFAULT | FT_LOAD_NO_SCALE); if (error) { - fprintf (stderr, "Failed to obtain descender. (%d)\n", error); + g_warning ("Failed to obtain descender. (%d)\n", error); return 0; } @@ -672,17 +672,27 @@ if (name_table_data->encoding_id == 0) { g_string_append_len (str, name_table_data->string, name_table_data->string_len); } else if (name_table_data->encoding_id == 1) { - utf8_str = g_convert (name_table_data->string, name_table_data->string_len, "utf-8", "ucs-2", &read, &written, &error); + + // Unicode BMP (UCS-2) is the right encoding + // utf8_str = g_convert (name_table_data->string, name_table_data->string_len, "utf-8", "ucs-2", &read, &written, &error); + + g_warning ("CONVERT"); + + // DELETE utf-16be + utf8_str = g_convert (name_table_data->string, name_table_data->string_len, "utf-8", "ucs-2be", &read, &written, &error); + if (error == NULL) { g_string_append (str, utf8_str); g_free (utf8_str); } else { - fprintf (stderr, "Error in append_description: %s\n", error->message); + g_warning ("Error in append_description: %s\n", error->message); g_error_free (error); } } else { - fprintf (stderr, "Encoding %u is not supported.\n", name_table_data->encoding_id); + g_warning ("Encoding %u is not supported.\n", name_table_data->encoding_id); } + + g_warning ("name_table_data->encoding_id: %d, plat: %d str: %s \n", name_table_data->encoding_id, name_table_data->platform_id, str->str); } /** Convert font to bf format. @@ -738,6 +748,7 @@ g_string_append (bf, "\n"); } + // FIXME: for some fonts will this return entry 0 (copyright) if (FT_Get_Sfnt_Name (face, 10, &name_table_data) == 0) { // description g_string_append (bf, ""); append_description (bf, &name_table_data); @@ -765,14 +776,14 @@ for (i = 0; i < face->num_glyphs; i++) { error = FT_Load_Glyph (face, i, FT_LOAD_DEFAULT | FT_LOAD_NO_SCALE); if (error) { - fprintf (stderr, "Freetype failed to load glyph %d.\n", (int)i); - fprintf (stderr, "FT_Load_Glyph error %d\n", error); + g_warning ("Freetype failed to load glyph %d.\n", (int)i); + g_warning ("FT_Load_Glyph error %d\n", error); *err = error; return bf; } if (face->glyph->format != ft_glyph_format_outline) { - fprintf (stderr, "Freetype error no outline found in glyph.\n"); + g_warning ("Freetype error no outline found in glyph.\n"); *err = 1; return bf; } @@ -823,7 +834,7 @@ error = FT_OpenType_Validate (face, FT_VALIDATE_BASE | FT_VALIDATE_GDEF | FT_VALIDATE_GPOS | FT_VALIDATE_GSUB | FT_VALIDATE_JSTF, &BASE_table, &GDEF_table, &GPOS_table, &GSUB_table, &JSTF_table); if (error) { - fprintf (stderr, "Freetype validation error %d\n", error); + g_warning ("Freetype validation error %d\n", error); return error; } @@ -850,28 +861,28 @@ error = FT_Init_FreeType (&library); if (error != OK) { - fprintf (stderr, "Freetype init error %d.\n", error); + g_warning ("Freetype init error %d.\n", error); *err = error; return bf; } error = FT_New_Face (library, file, 0, &face); if (error) { - fprintf (stderr, "Freetype font face error %d\n", error); + g_warning ("Freetype font face error %d\n", error); *err = error; return bf; } error = FT_Set_Char_Size (face, 0, 800, 300, 300); if (error) { - fprintf (stderr, "Freetype FT_Set_Char_Size failed, error: %d.\n", error); + g_warning ("Freetype FT_Set_Char_Size failed, error: %d.\n", error); *err = error; return bf; } bf = get_bf_font (face, file, &error); if (error != OK) { - fprintf (stderr, "Failed to parse font.\n"); + g_warning ("Failed to parse font.\n"); *err = error; return bf; } @@ -891,19 +902,19 @@ error = FT_Init_FreeType (&library); if (error != OK) { - fprintf (stderr, "Freetype init error %d\n", error); + g_warning ("Freetype init error %d\n", error); return FALSE; } error = FT_New_Face (library, file, 0, &face); if (error) { - fprintf (stderr, "Freetype font face error %d\n", error); + g_warning ("Freetype font face error %d\n", error); return FALSE; } error = validate_font (face); if (error) { - fprintf (stderr, "Validation failed.\n", error); + g_warning ("Validation failed.\n", error); return FALSE; } diff -Nru birdfont-0.28/libbirdfont/OverView.vala birdfont-0.31/libbirdfont/OverView.vala --- birdfont-0.28/libbirdfont/OverView.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/OverView.vala 2013-09-12 13:33:31.000000000 +0000 @@ -32,9 +32,9 @@ public signal void open_glyph_signal (GlyphCollection c); GlyphRange glyph_range; + string search_query = ""; List visible_items = new List (); - List deleted_glyphs = new List (); bool all_available = true; @@ -51,7 +51,7 @@ gr = new GlyphRange (); set_glyph_range (gr); } - + reset_zoom (); this.open_glyph_signal.connect ((glyph_collection) => { @@ -104,6 +104,26 @@ update_scrollbar (); } + public static void search () { + OverView ow = MainWindow.get_overview (); + TextListener listener = new TextListener (_("Search"), ow.search_query, _("Filter")); + + listener.signal_text_input.connect ((text) => { + OverView o = MainWindow.get_overview (); + o.search_query = text; + }); + + listener.signal_submit.connect (() => { + OverView o = MainWindow.get_overview (); + GlyphRange r = CharDatabase.search (o.search_query); + o.set_glyph_range (r); + MainWindow.native_window.hide_text_input (); + MainWindow.get_tab_bar ().select_tab_name ("Overview"); + }); + + MainWindow.native_window.set_text_listener (listener); + } + public Glyph? get_current_glyph () requires (selected > 0 && selected < visible_items.length ()) { OverViewItem oi = visible_items.nth (selected).data; @@ -210,6 +230,10 @@ public override void next_view () { } + public override string get_label () { + return _("Overview"); + } + public override string get_name () { return "Overview"; } @@ -387,16 +411,6 @@ } void scroll_to_position (int64 r) { - int64 l; - Font f; - - if (all_available) { - f = BirdFont.get_current_font (); - l = f.length (); - } else { - l = glyph_range.length (); - } - if (r < 0) { scroll_top (); return; @@ -408,21 +422,22 @@ } public override void scroll_to (double position) requires (items_per_row > 0) { - int64 r; - double nrows; + double r; + int nrows; Font f; - - position = position / (1 - scroll_size); if (all_available) { f = BirdFont.get_current_font (); - nrows = Math.ceil (f.length () / items_per_row); + nrows = (int) (f.length () / items_per_row); } else { - nrows = Math.ceil (glyph_range.length () / items_per_row); + nrows = (int) (glyph_range.length () / items_per_row); } - r = (int64) (Math.ceil (position * nrows) * items_per_row); - scroll_to_position (r); + view_offset_y = 0; + r = (int64) (position * (nrows - rows + 3)); // 3 invisible rows + r *= items_per_row; + + scroll_to_position ((int64) r); redraw_area (0, 0, allocation.width, allocation.height); } @@ -643,6 +658,11 @@ index = -1; + if (items_per_row <= 0) { + warning ("No items."); + return; + } + if (is_modifier_key (c)) { return; } @@ -657,6 +677,12 @@ selected = i; return; } + + if (i > 1000) { + warning ("selected character not found"); + return; + } + i++; } @@ -774,6 +800,9 @@ public void update_scrollbar () { Font f; double nrows = 0; + double pos = 0; + double size; + double visible_rows; if (rows == 0) { MainWindow.set_scrollbar_size (0); @@ -782,17 +811,22 @@ if (all_available) { f = BirdFont.get_current_font (); nrows = Math.floor ((f.length ()) / rows); + size = f.length (); } else { nrows = Math.floor ((glyph_range.length ()) / rows); + size = glyph_range.length (); } if (nrows <= 0) { nrows = 1; } - scroll_size = rows / nrows; + // FIXME: this is not correct + visible_rows = allocation.height / OverViewItem.height; + scroll_size = visible_rows / nrows; MainWindow.set_scrollbar_size (scroll_size); - MainWindow.set_scrollbar_position ((first_visible / rows) / nrows); + pos = first_visible / (nrows * items_per_row - visible_rows * items_per_row); + MainWindow.set_scrollbar_position (pos); } } @@ -828,6 +862,10 @@ x = (allocation.width - w) / 2.0; } + if (x < 0) { + x = 2; + } + // background cr.save (); cr.set_source_rgba (1, 1, 1, 0.98); diff -Nru birdfont-0.28/libbirdfont/Path.vala birdfont-0.31/libbirdfont/Path.vala --- birdfont-0.28/libbirdfont/Path.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Path.vala 2013-09-12 13:33:31.000000000 +0000 @@ -72,9 +72,16 @@ public static double handle_color_g = 0; public static double handle_color_b = 0; public static double handle_color_a = 1; - + + public static double fill_color_r = 0; + public static double fill_color_g = 0; + public static double fill_color_b = 0; + public static double fill_color_a = 1; + public static double stroke_width = 1; - + public static bool show_all_line_handles = true; + public static bool fill_open_path = false; + public Path () { string width; new_quadratic_points = new List (); @@ -105,6 +112,11 @@ handle_color_g = double.parse (Preferences.get ("handle_color_g")); handle_color_b = double.parse (Preferences.get ("handle_color_b")); handle_color_a = double.parse (Preferences.get ("handle_color_a")); + + fill_color_r = double.parse (Preferences.get ("fill_color_r")); + fill_color_g = double.parse (Preferences.get ("fill_color_g")); + fill_color_b = double.parse (Preferences.get ("fill_color_b")); + fill_color_a = double.parse (Preferences.get ("fill_color_a")); } } } @@ -117,6 +129,22 @@ return points.length () == 0; } + public void draw_boundries (Context cr, WidgetAllocation allocation, double view_zoom) { + double x = Glyph.reverse_path_coordinate_x (xmin); + double y = Glyph.reverse_path_coordinate_y (ymin); + double x2 = Glyph.reverse_path_coordinate_x (xmax); + double y2 = Glyph.reverse_path_coordinate_y (ymax); + + cr.save (); + + cr.set_source_rgba (0, 0, 0.3, 1); + cr.set_line_width (2); + cr.rectangle (x, y, x2 - x, y2 - y); + cr.stroke (); + + cr.restore (); + } + public void draw_outline (Context cr, WidgetAllocation allocation, double view_zoom) { unowned List ep = points; @@ -156,8 +184,9 @@ if (is_editable ()) { // control points for curvature foreach (EditPoint e in ep) { - if (e.selected || e.selected_handle > 0) + if (show_all_line_handles || e.selected || e.selected_handle > 0) { draw_edit_point_handles (e, cr); + } } // control points @@ -638,14 +667,16 @@ public Path copy () { Path new_path = new Path (); + EditPoint p; foreach (var ep in points) { - new_path.add_point (ep.copy ()); + p = ep.copy (); + new_path.add_point (p); } new_path.edit = edit; new_path.open = open; - + new_path.direction_is_set = direction_is_set; new_path.create_list (); return new_path; @@ -857,7 +888,7 @@ second_last_point = last_point; last_point = p; - + return np; } @@ -894,7 +925,7 @@ /** Move path. */ public void move (double delta_x, double delta_y) { - foreach (var ep in points) { + foreach (EditPoint ep in points) { ep.x += delta_x; ep.y += delta_y; } @@ -902,67 +933,66 @@ update_region_boundries (); } - public void update_region_boundries () { - if (points.length () == 0) { - xmax = 0; - xmin = 0; - ymax = 0; - ymin = 0; + private void update_region_boundries_for_point (EditPoint p) { + EditPointHandle left_handle; + EditPointHandle right_handle; + + left_handle = p.get_left_handle (); + right_handle = p.get_right_handle (); + + if (p.x > xmax) { + xmax = p.x; + } + + if (p.x < xmin) { + xmin = p.x; } - // inside and outside in vala lambda functions reveals a tricky problem - // (look at c code). that's the reason for the !new_val expression + if (p.y > ymax) { + ymax = p.y; + } - xmax = -10000; - xmin = 10000; - ymax = -10000; - ymin = 10000; + if (p.y < ymin) { + ymin = p.y; + } + + update_region_boundries_for_handle (left_handle); + update_region_boundries_for_handle (right_handle); + } - double txmax = -10000; - double txmin = 10000; - double tymax = -10000; - double tymin = 10000; + private void update_region_boundries_for_handle (EditPointHandle h) { + if (h.x () > xmax) { + xmax = h.x (); + } - bool new_val = false; - - all_of_path ((cx, cy) => { - if (!new_val) { - txmax = cx; - txmin = cx; - tymax = cy; - tymin = cy; - new_val = true; - } - - if (cx < txmin) { - txmin = cx; - } + if (h.x () < xmin) { + xmin = h.x (); + } - if (cx > txmax) { - txmax = cx; - } - - if (cy < tymin) { - tymin = cy; - } + if (h.y () > ymax) { + ymax = h.y (); + } - if (cy > tymax) { - tymax = cy; - } + if (h.y () < ymin) { + ymin = h.y (); + } + } - return true; - }); - - xmax = txmax; - xmin = txmin; - ymax = tymax; - ymin = tymin; - - if (unlikely (!new_val)) { - // only one point - } else if (unlikely (!got_region_boundries ())) { - warning (@"No new region boundries.\nPoints.length: $(points.length ())"); - print_boundries (); + public void update_region_boundries () { + xmax = -10000; + xmin = 10000; + ymax = -10000; + ymin = 10000; + + if (points.length () == 0) { + xmax = 0; + xmin = 0; + ymax = 0; + ymin = 0; + } + + foreach (EditPoint p in points) { + update_region_boundries_for_point (p); } } @@ -1064,6 +1094,7 @@ } if (points.length () < 2) { + warning ("Less than 2 points in path."); return quadratic_path; } @@ -1244,16 +1275,13 @@ ep.get_right_handle ().set_point_type (PointType.LINE_QUADRATIC); ep.get_left_handle ().set_point_type (PointType.LINE_QUADRATIC); ep.type = PointType.QUADRATIC; - ep.recalculate_linear_handles (); } else if (right == PointType.LINE_CUBIC && left == PointType.LINE_CUBIC) { ep.get_right_handle ().set_point_type (PointType.LINE_CUBIC); ep.get_left_handle ().set_point_type (PointType.LINE_CUBIC); ep.type = PointType.LINE_CUBIC; - ep.recalculate_linear_handles (); } else if (right == PointType.LINE_DOUBLE_CURVE && left == PointType.LINE_DOUBLE_CURVE) { ep.get_right_handle ().set_point_type (PointType.LINE_DOUBLE_CURVE); ep.get_left_handle ().set_point_type (PointType.LINE_DOUBLE_CURVE); - ep.recalculate_linear_handles (); ep.type = PointType.DOUBLE_CURVE; } else if (right == PointType.DOUBLE_CURVE || left == PointType.DOUBLE_CURVE) { double_bezier_vector (position, start.x, start.get_right_handle ().x (), stop.get_left_handle ().x (), stop.x, out x0, out x1); @@ -1295,7 +1323,6 @@ stop.get_left_handle ().length *= 1 - position; start.get_right_handle ().length *= position; - if (right == PointType.QUADRATIC) { // update connected handle if (ep.prev != null) { ep.get_left_handle ().move_to_coordinate_internal ( @@ -1306,6 +1333,11 @@ warning ("ep.prev is null for quadratic point"); } } + + create_list (); + foreach (EditPoint p in points) { + p.recalculate_linear_handles (); + } } /** Get a point on the this path closest to x and y coordinates. */ @@ -1621,7 +1653,7 @@ stderr.printf (@"ymin $ymin \n"); } - public bool got_region_boundries () { + public bool has_region_boundries () { return !(xmax == -10000 || xmin == 10000 || ymax == -10000 || ymin == 10000); } @@ -1792,6 +1824,10 @@ } } + foreach (Path path in path_list.paths) { + path.update_region_boundries (); + } + return path_list; } @@ -2126,7 +2162,7 @@ } public void append_path (Path path) { - if (points.length () == 0) { + if (points.length () == 0 || path.points.length () == 0) { warning ("No points"); return; } diff -Nru birdfont-0.28/libbirdfont/PathList.vala birdfont-0.31/libbirdfont/PathList.vala --- birdfont-0.28/libbirdfont/PathList.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/PathList.vala 2013-09-12 13:33:31.000000000 +0000 @@ -20,6 +20,12 @@ public PathList () { } + public void append (PathList pl) { + foreach (Path p in pl.paths) { + paths.append (p); + } + } + public void clear () { while (paths.length () > 0) { paths.remove_link (paths.first ()); diff -Nru birdfont-0.28/libbirdfont/PenTool.vala birdfont-0.31/libbirdfont/PenTool.vala --- birdfont-0.28/libbirdfont/PenTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/PenTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -22,24 +22,32 @@ private static const double CONTACT_SURFACE = 20; public static bool move_selected = false; - public static bool begin_new_point_on_path = false; public static bool move_point_on_path = false; public static bool edit_active_corner = false; - public static List selected_points = new List (); + public static List selected_points = new List (); public static EditPointHandle active_handle = new EditPointHandle.empty (); public static EditPointHandle selected_handle = new EditPointHandle.empty (); + public static PointSelection handle_selection = new PointSelection.empty (); public static EditPoint? active_edit_point = new EditPoint (); + public static Path active_path = new Path (); + public static EditPoint selected_point = new EditPoint (); - private static bool move_selected_handle = false; + public static bool move_selected_handle = false; private static double last_point_x = 0; private static double last_point_y = 0; + private static bool show_selection_box = false; + private static double selection_box_x = 0; + private static double selection_box_y = 0; + private static double selection_box_last_x = 0; + private static double selection_box_last_y = 0; + public static double precision = 1; private static ImageSurface? tie_icon = null; @@ -75,10 +83,9 @@ glyph.close_path (); move_point_on_path = false; - begin_new_point_on_path = false; }); - press_action.connect ((self, b, x, y) => { + press_action.connect ((self, b, x, y) => { // retain path direction Glyph glyph = MainWindow.get_current_glyph (); clockwise = new List (); @@ -98,11 +105,13 @@ last_point_y = y; press (b, x, y, false); - + if (GridTool.is_visible ()) { tie_pixels (ref x, ref y); + } else if (GridTool.has_ttf_grid ()) { + GridTool.ttf_grid (ref x, ref y); } - + last_point_x = x; last_point_y = y; }); @@ -115,16 +124,23 @@ }); release_action.connect ((self, b, ix, iy) => { - double x = ix; - double y = iy; + double x, y; + + x = ix; + y = iy; join_paths (x, y); active_handle = new EditPointHandle.empty (); + + if (show_selection_box) { + select_points_in_box (); + } move_selected = false; move_selected_handle = false; edit_active_corner = false; + show_selection_box = false; // update path direction if it has changed foreach (Path p in clockwise) { @@ -143,11 +159,14 @@ }); move_action.connect ((self, x, y) => { + selection_box_last_x = x; + selection_box_last_y = y; + move (x, y); }); key_press_action.connect ((self, keyval) => { - if (keyval == Key.DEL) { + if (keyval == Key.DEL || keyval == Key.BACK_SPACE) { delete_selected_points (); } @@ -177,16 +196,40 @@ }); } + public static void select_points_in_box () { + double x1, y1, x2, y2; + Glyph g; + + g = MainWindow.get_current_glyph (); + + x1 = Glyph.path_coordinate_x (fmin (selection_box_x, selection_box_last_x)); + y1 = Glyph.path_coordinate_y (fmin (selection_box_y, selection_box_last_y)); + x2 = Glyph.path_coordinate_x (fmax (selection_box_x, selection_box_last_x)); + y2 = Glyph.path_coordinate_y (fmax (selection_box_y, selection_box_last_y)); + + remove_all_selected_points (); + + foreach (Path p in g.path_list) { + // TODO: Select path only of bounding box is in selection box + foreach (EditPoint ep in p.points) { + if (x1 <= ep.x <= x2 && y2 <= ep.y <= y1) { + add_selected_point (ep, p); + ep.set_selected (true); + } + } + } + } + public static void delete_selected_points () { Glyph g = MainWindow.get_current_glyph (); - foreach (EditPoint p in selected_points) { - p.deleted = true; + foreach (PointSelection p in selected_points) { + p.point.deleted = true; } process_deleted (); - foreach (var p in g.path_list) { + foreach (Path p in g.path_list) { if (p.has_deleted_point ()) { process_deleted (); } @@ -214,11 +257,11 @@ while (selected_points.length () > 0) { selected_points.remove_link (selected_points.first ()); } - //remove_all_selected_points (); + foreach (Path p in g.path_list) { foreach (EditPoint e in p.points) { if (e.is_selected ()) { - selected_points.append (e); + selected_points.append (new PointSelection (e, p)); } } } @@ -243,21 +286,17 @@ DrawingTools.precision.set_value_round (p, false, false); } - public void move (double x, double y) { + public void move (int x, int y) { Glyph glyph = MainWindow.get_current_glyph (); double coordinate_x, coordinate_y; - double px = 0; - double py = 0; + int px = 0; + int py = 0; + EditPoint p; control_point_event (x, y); curve_active_corner_event (x, y); set_default_handle_positions (); - // show new point on path - if (glyph.new_point_on_path != null) { - move_current_point_on_path (x, y); - } - // move control point handles if (move_selected_handle) { set_type_for_moving_handle (); @@ -269,21 +308,29 @@ px = Glyph.reverse_path_coordinate_x (coordinate_x); py = Glyph.reverse_path_coordinate_y (coordinate_y); selected_handle.move_delta ((px - last_point_x), (py - last_point_y)); + } else if (GridTool.has_ttf_grid ()) { + px = x; + py = y; + GridTool.ttf_grid (ref px, ref py); + selected_handle.move_delta ((px - last_point_x), (py - last_point_y)); } else { selected_handle.move_delta ((x - last_point_x) * precision, (y - last_point_y) * precision); } - selected_handle.parent.recalculate_linear_handles (); + handle_selection.path.update_region_boundries (); - // Fixa: redraw line only + // FIXME: redraw line only glyph.redraw_area (0, 0, glyph.allocation.width, glyph.allocation.height); if (GridTool.is_visible ()) { last_point_x = Glyph.precise_reverse_path_coordinate_x (selected_handle.x ()); last_point_y = Glyph.precise_reverse_path_coordinate_y (selected_handle.y ()); + } else if (GridTool.has_ttf_grid ()) { + last_point_x = Glyph.precise_reverse_path_coordinate_x (selected_handle.x ()); + last_point_y = Glyph.precise_reverse_path_coordinate_y (selected_handle.y ()); } else { last_point_x = x; - last_point_y = y; + last_point_y = y; } return; @@ -291,25 +338,34 @@ // move edit point if (move_selected) { - foreach (EditPoint p in selected_points) { + foreach (PointSelection ps in selected_points) { + p = ps.point; if (GridTool.is_visible ()) { coordinate_x = Glyph.path_coordinate_x (x); coordinate_y = Glyph.path_coordinate_y (y); GridTool.tie_coordinate (ref coordinate_x, ref coordinate_y); - px = Glyph.precise_reverse_path_coordinate_x (coordinate_x); - py = Glyph.precise_reverse_path_coordinate_y (coordinate_y); + px = Glyph.reverse_path_coordinate_x (coordinate_x); + py = Glyph.reverse_path_coordinate_y (coordinate_y); + glyph.move_selected_edit_point_delta (p, (px - last_point_x), (py - last_point_y)); + } else if (GridTool.has_ttf_grid ()) { + px = x; + py = y; + GridTool.ttf_grid (ref px, ref py); glyph.move_selected_edit_point_delta (p, (px - last_point_x), (py - last_point_y)); } else { glyph.move_selected_edit_point_delta (p, (x - last_point_x) * precision, (y - last_point_y) * precision); } - p.recalculate_linear_handles (); + ps.path.update_region_boundries (); } } if (GridTool.is_visible ()) { last_point_x = Glyph.precise_reverse_path_coordinate_x (selected_point.x); last_point_y = Glyph.precise_reverse_path_coordinate_y (selected_point.y); + } else if (GridTool.has_ttf_grid ()) { + last_point_x = Glyph.precise_reverse_path_coordinate_x (selected_point.x); + last_point_y = Glyph.precise_reverse_path_coordinate_y (selected_point.y); } else { last_point_x = x; last_point_y = y; @@ -346,19 +402,6 @@ glyph.insert_new_point_on_path (x, y); return; } - - if (is_new_point_from_path_selected ()) { - new_point_on_path_at (x, y); - return; - } - - // add new point on path - if (is_new_point_from_path_selected ()) { - move_selected = true; - move_point_on_path = true; - glyph.new_point_on_path = null; - return; - } // add new point if (button == 3 || (KeyBindings.modifier & LOGO) > 0) { @@ -375,6 +418,14 @@ select_active_point (x, y); } + if (selected_points.length () == 0 && !active_handle.active) { + show_selection_box = true; + selection_box_x = x; + selection_box_y = y; + selection_box_last_x = x; + selection_box_last_y = y; + } + glyph.store_undo_state (); } @@ -414,6 +465,8 @@ } } } + + update_selected_points (); } public static bool is_counter_path (Path path) { @@ -426,16 +479,12 @@ return Path.is_clasped (pl, path); } - - bool is_new_point_from_path_selected () { - return false; - } public void remove_from_selected (EditPoint ep) requires (selected_points.length () > 0) { - for (unowned List e = selected_points.first (); !is_null (e.next); e = e.next) { - if (ep.equals (e.data)) { - ep.set_selected (false); + for (unowned List e = selected_points.first (); !is_null (e.next); e = e.next) { + if (e.data.point.equals (e.data.point)) { + e.data.point.set_selected (false); selected_points.remove_link (e); return; } @@ -449,14 +498,31 @@ control_point_event (x, y); - // continue adding points from the other end + // continue adding points from the other end of the selected path reverse = false; - foreach (Path p in glyph.active_paths) { + + foreach (Path p in glyph.path_list) { + + if (p.is_open () && p.points.length () >= 1 + && (active_edit_point == p.points.first ().data + || active_edit_point == p.points.last ().data)) { + active_path = p; + glyph.set_active_path (p); + + update_selection (); + reverse = true; + control_point_event (x, y); + break; + } + } + + foreach (Path p in glyph.path_list) { if (p.is_open () && p.points.length () > 1 && active_edit_point == p.points.first ().data) { p.reverse (); update_selection (); reverse = true; control_point_event (x, y); + break; } } @@ -480,7 +546,7 @@ } else { ((!)active_edit_point).set_selected (true); selected_point = (!)active_edit_point; - add_selected_point (selected_point); + add_selected_point (selected_point, active_path); last_selected_is_handle = false; } } else { @@ -490,7 +556,7 @@ remove_all_selected_points (); ((!)active_edit_point).set_selected (true); selected_point = (!)active_edit_point; - add_selected_point (selected_point); + add_selected_point (selected_point, active_path); // FIXME: double check active path last_selected_is_handle = false; } } @@ -561,6 +627,7 @@ path.recalculate_linear_handles (); direction_changed = true; active_edit_point = path.points.last ().data; + active_path = path; } // join path with it self @@ -675,9 +742,33 @@ /** Show the user that curves will be tied on release. */ public void draw_on_canvas (Context cr, Glyph glyph) { + if (show_selection_box) { + draw_selection_box (cr); + } + + draw_merge_icon (cr); + } + + void draw_selection_box (Context cr) { + double x, y, w, h; + + x = fmin (selection_box_x, selection_box_last_x); + y = fmin (selection_box_y, selection_box_last_y); + w = fmax (selection_box_x, selection_box_last_x) - x; + h = fmax (selection_box_y, selection_box_last_y) - y; + + cr.save (); + cr.set_source_rgba (0, 0, 0.3, 1); + cr.set_line_width (2); + cr.rectangle (x, y, w, h); + cr.stroke (); + cr.restore (); + } + + void draw_merge_icon (Context cr) { ImageSurface img; double x, y; - + return_if_fail (tie_icon != null); img = (!) tie_icon; @@ -758,70 +849,8 @@ return false; } - - public void move_current_point_on_path (double x, double y) { - Glyph g = MainWindow.get_current_glyph (); - - EditPoint e; - - double rax, ray; - double pax, pay; - - double distance, min; - return_if_fail (g.new_point_on_path != null); - - if (GridTool.is_visible ()) { - GridTool.tie (ref x, ref y); - } - - min = double.MAX; - - foreach (Path p in g.path_list) { - if (p.points.length () < 2) { - continue; - } - - e = new EditPoint (); - - pax = x * Glyph.ivz () + g.view_offset_x - Glyph.xc (); - pay = y * Glyph.ivz () + g.view_offset_y - Glyph.yc (); - - pay *= -1; - - p.get_closest_point_on_path (e, pax, pay); - - distance = Math.sqrt (Math.pow (Math.fabs (pax - e.x), 2) + Math.pow (Math.fabs (pay - e.y), 2)); - - if (distance < min) { - min = distance; - - g.new_point_on_path = e; - - rax = (pax + g.view_offset_x - Glyph.xc ()) / Glyph.ivz (); - ray = (pax + g.view_offset_x - Glyph.xc ()) / Glyph.ivz (); - - g.redraw_area (rax - 5, ray - 5, 10, 10); - } - } - } - - public void set_new_point_on_path (Path ap, int x, int y) { - Glyph g = MainWindow.get_current_glyph (); - - return_if_fail (ap.is_editable ()); - - g.clear_active_paths (); - g.add_active_path (ap); - - if (g.new_point_on_path == null) { - g.new_point_on_path = new EditPoint (0, 0, PointType.FLOATING); - } - - move_current_point_on_path (x, y); - } - - public static void set_active_edit_point (EditPoint? e) { + public static void set_active_edit_point (EditPoint? e, Path path) { Glyph g = MainWindow.get_current_glyph (); foreach (var p in g.path_list) { foreach (var ep in p.points) { @@ -830,6 +859,7 @@ } active_edit_point = e; + active_path = path; if (e != null) { ((!)e).set_active (true); @@ -838,26 +868,28 @@ g.redraw_area (0, 0, g.allocation.width, g.allocation.height); } - EditPoint? get_closest_point (double ex, double ey, out Path? path) { + PointSelection? get_closest_point (double ex, double ey, out Path? path) { double x = Glyph.path_coordinate_x (ex); double y = Glyph.path_coordinate_y (ey); double d = double.MAX; double nd; - EditPoint? ep = null; + PointSelection? ep = null; Glyph g = MainWindow.get_current_glyph (); path = null; foreach (Path current_path in g.path_list) { - foreach (EditPoint e in current_path.points) { - nd = e.get_distance (x, y); - - if (nd < d) { - d = nd; - ep = e; - path = current_path; + if (is_close_to_path (current_path, ex, ey)) { + foreach (EditPoint e in current_path.points) { + nd = e.get_distance (x, y); + + if (nd < d) { + d = nd; + ep = new PointSelection (e, current_path); + path = current_path; + } } - } + } } return ep; @@ -865,8 +897,8 @@ public double get_distance_to_closest_edit_point (double event_x, double event_y) { Path? p; - EditPoint e; - EditPoint? ep = get_closest_point (event_x, event_y, out p); + PointSelection e; + PointSelection? ep = get_closest_point (event_x, event_y, out p); double x = Glyph.path_coordinate_x (event_x); double y = Glyph.path_coordinate_y (event_y); @@ -877,65 +909,78 @@ e = (!) ep; - return e.get_distance (x, y); + return e.point.get_distance (x, y); } public void control_point_event (double event_x, double event_y) { Path? p; - EditPoint? ep = get_closest_point (event_x, event_y, out p); + PointSelection? ep = get_closest_point (event_x, event_y, out p); Glyph g = MainWindow.get_current_glyph (); double x = Glyph.path_coordinate_x (event_x); double y = Glyph.path_coordinate_y (event_y); double distance; - EditPoint e; - - set_active_edit_point (null); + PointSelection e; + int px, py; + double coordinate_x, coordinate_y; + set_active_edit_point (null, new Path ()); if (ep == null) { return; } e = (!) ep; - distance = e.get_distance (x, y) * g.view_zoom; + distance = e.point.get_distance (x, y) * g.view_zoom; if (distance < CONTACT_SURFACE) { - set_active_edit_point (ep); - + set_active_edit_point (e.point, e.path); + if (first_move_action && GridTool.is_visible () && move_selected) { - double coordinate_x = e.x; - double coordinate_y = e.y; + coordinate_x = e.point.x; + coordinate_y = e.point.y; GridTool.tie_coordinate (ref coordinate_x, ref coordinate_y); - int px = Glyph.reverse_path_coordinate_x (coordinate_x); - int py = Glyph.reverse_path_coordinate_y (coordinate_y); + px = Glyph.reverse_path_coordinate_x (coordinate_x); + py = Glyph.reverse_path_coordinate_y (coordinate_y); - last_point_x += Glyph.reverse_path_coordinate_x (e.x) - px; - last_point_y += Glyph.reverse_path_coordinate_y (e.y) - py; + last_point_x += Glyph.reverse_path_coordinate_x (e.point.x) - px; + last_point_y += Glyph.reverse_path_coordinate_y (e.point.y) - py; first_move_action = false; - } + } else if (first_move_action && GridTool.has_ttf_grid () && move_selected) { + coordinate_x = e.point.x; + coordinate_y = e.point.y; + + GridTool.ttf_grid_coordinate (ref coordinate_x, ref coordinate_y); + + px = Glyph.reverse_path_coordinate_x (coordinate_x); + py = Glyph.reverse_path_coordinate_y (coordinate_y); + + last_point_x += Glyph.reverse_path_coordinate_x (e.point.x) - px; + last_point_y += Glyph.reverse_path_coordinate_y (e.point.y) - py; + + first_move_action = false; + } } } public void new_point_action (int x, int y) { Glyph glyph; - EditPoint new_point; + PointSelection new_point; glyph = MainWindow.get_current_glyph (); glyph.open_path (); - new_point = glyph.add_new_edit_point (x, y); - new_point.set_selected (true); - - if (KeyBindings.modifier != SHIFT) { - remove_all_selected_points (); - } - - add_selected_point (new_point); - selected_point = new_point; - add_selected_point (selected_point); + remove_all_selected_points (); + new_point = glyph.add_new_edit_point (x, y); + new_point.point.set_selected (true); + new_point.path.update_region_boundries (); + + selected_point = new_point.point; + active_edit_point = new_point.point; + add_selected_point (selected_point, glyph.active_paths.last ().data); + move_selected = true; - set_point_type (new_point); + set_point_type (selected_point); set_default_handle_positions (); } @@ -974,112 +1019,110 @@ e.recalculate_linear_handles (); } } - - bool new_point_on_path_at (int x, int y) { - EditPoint ep; - Glyph glyph = MainWindow.get_current_glyph (); - int px, py; - - if (glyph.new_point_on_path != null) { - ep = (!)glyph.new_point_on_path; - - begin_new_point_on_path = false; - - px = Glyph.reverse_path_coordinate_x (ep.x); - py = Glyph.reverse_path_coordinate_x (ep.y); - glyph.add_new_edit_point (px, py); - glyph.new_point_on_path = null; - - Toolbox.select_tool_by_name ("new_point"); - - return false; - } + + private bool is_over_handle (double event_x, double event_y) { + Glyph g = MainWindow.get_current_glyph (); + double distance_to_edit_point = g.view_zoom * get_distance_to_closest_edit_point (event_x, event_y); - start_from_new_point_on_path (x, y); - begin_new_point_on_path = true; - - return true; + if (!Path.show_all_line_handles) { + foreach (PointSelection selected_corner in selected_points) { + if (is_close_to_handle (selected_corner.point, event_x, event_y, distance_to_edit_point)) { + return true; + } + } + } else { + foreach (Path p in g.path_list) { + if (is_close_to_path (p, event_x, event_y)) { + foreach (EditPoint ep in p.points) { + if (is_close_to_handle (ep, event_x, event_y, distance_to_edit_point)) { + return true; + } + } + } + } + } + + return false; } - void start_from_new_point_on_path (double x, double y) { - Glyph g = MainWindow.get_current_glyph (); - Path? p = null; - Path pn; + bool is_close_to_path (Path p, double event_x, double event_y) { + double c = CONTACT_SURFACE * Glyph.ivz (); + double x = Glyph.path_coordinate_x (event_x); + double y = Glyph.path_coordinate_y (event_y); - p = g.get_closeset_path (x, y); - - pn = (!)p; - - if (pn.points.length () >= 2) { - pn.set_editable (true); - set_new_point_on_path (pn, 0, 0); - g.open_path (); + if (unlikely (!p.has_region_boundries ())) { + if (p.points.length () > 0) { + warning (@"No bounding box. $(p.points.length ())"); + p.update_region_boundries (); + } } - begin_new_point_on_path = false; - } - - public void begin_from_new_point_on_path () { - begin_new_point_on_path = true; + return p.xmin - c <= x <= p.xmax + c && p.ymin - c <= y <= p.ymax + c; } - - private bool is_over_handle (double event_x, double event_y) { + + private bool is_close_to_handle (EditPoint selected_corner, double event_x, double event_y, double distance_to_edit_point) { double x = Glyph.path_coordinate_x (event_x); double y = Glyph.path_coordinate_y (event_y); Glyph g = MainWindow.get_current_glyph (); - double d_point = g.view_zoom * get_distance_to_closest_edit_point (event_x, event_y); - + double d_point = distance_to_edit_point; double dl, dr; - - foreach (EditPoint selected_corner in selected_points) { - dl = g.view_zoom * selected_corner.get_left_handle ().get_point ().get_distance (x, y); - dr = g.view_zoom * selected_corner.get_right_handle ().get_point ().get_distance (x, y); - if (dl < CONTACT_SURFACE && dl < d_point) { - return true; - } + dl = g.view_zoom * selected_corner.get_left_handle ().get_point ().get_distance (x, y); + dr = g.view_zoom * selected_corner.get_right_handle ().get_point ().get_distance (x, y); + + if (dl < CONTACT_SURFACE && dl < d_point) { + return true; + } - if (dr < CONTACT_SURFACE && dr < d_point) { - return true; - } + if (dr < CONTACT_SURFACE && dr < d_point) { + return true; } - + return false; - } + } - EditPointHandle get_closest_handle (double event_x, double event_y) { + PointSelection get_closest_handle (double event_x, double event_y) { EditPointHandle left, right; double x = Glyph.path_coordinate_x (event_x); double y = Glyph.path_coordinate_y (event_y); EditPointHandle eh = new EditPointHandle.empty(); - + Glyph g = MainWindow.get_current_glyph (); double d = double.MAX; double dn; - - foreach (EditPoint selected_corner in selected_points) { - left = selected_corner.get_left_handle (); - right = selected_corner.get_right_handle (); + Path path = new Path (); + + foreach (Path p in g.path_list) { + if (is_close_to_path (p, event_x, event_y) || p == active_path) { + foreach (EditPoint ep in p.points) { + if (ep.is_selected () || Path.show_all_line_handles) { + left = ep.get_left_handle (); + right = ep.get_right_handle (); - dn = left.get_point ().get_distance (x, y); - - if (dn < d) { - eh = left; - d = dn; - } + dn = left.get_point ().get_distance (x, y); + + if (dn < d) { + eh = left; + d = dn; + path = p; + } - dn = right.get_point ().get_distance (x, y); - - if (dn < d) { - eh = right; - d = dn; + dn = right.get_point ().get_distance (x, y); + + if (dn < d) { + eh = right; + d = dn; + path = p; + } + } + } } } - return eh; + return new PointSelection.handle_selection (eh, path); } private void curve_active_corner_event (double event_x, double event_y) { - EditPointHandle eh; + PointSelection eh; active_handle.active = false; @@ -1088,13 +1131,15 @@ } eh = get_closest_handle (event_x, event_y); - eh.active = true; - active_handle = eh; + eh.handle.active = true; + active_handle = eh.handle; + active_path = eh.path; } private void curve_corner_event (double event_x, double event_y) { MainWindow.get_current_glyph ().open_path (); - + PointSelection p; + if (!is_over_handle (event_x, event_y)) { return; } @@ -1102,18 +1147,21 @@ move_selected_handle = true; last_selected_is_handle = true; selected_handle.selected = false; - selected_handle = get_closest_handle (event_x, event_y); + p = get_closest_handle (event_x, event_y); + selected_handle = p.handle; + handle_selection = p; + active_path = p.path; selected_handle.selected = true; } - public static void add_selected_point (EditPoint p) { - foreach (EditPoint ep in selected_points) { - if (p == ep) { + public static void add_selected_point (EditPoint p, Path path) { + foreach (PointSelection ep in selected_points) { + if (p == ep.point) { return; } } - selected_points.append (p); + selected_points.append (new PointSelection (p, path)); } public static void remove_all_selected_points () { @@ -1124,9 +1172,9 @@ selected_point = new EditPoint (); while (selected_points.length () > 0) { - EditPoint ep = selected_points.first ().data; - ep.set_active (false); - ep.set_selected (false); + PointSelection ep = selected_points.first ().data; + ep.point.set_active (false); + ep.point.set_selected (false); selected_points.remove_link (selected_points.first ()); } @@ -1139,7 +1187,7 @@ } static void move_select_next_point (uint keyval) { - EditPoint next = new EditPoint (); + PointSelection next = new PointSelection.empty (); Glyph g = MainWindow.get_current_glyph(); if (selected_points.length () == 0) { @@ -1163,20 +1211,20 @@ break; } - set_selected_point (next); + set_selected_point (next.point, next.path); g.redraw_area (0, 0, g.allocation.width, g.allocation.height); } - private static EditPoint get_next_point (double angle) + private static PointSelection get_next_point (double angle) requires (selected_points.length () != 0) { - EditPoint e = selected_points.last ().data; - double right_angle = e.right_handle.angle; - double left_angle = e.left_handle.angle; + PointSelection e = selected_points.last ().data; + double right_angle = e.point.right_handle.angle; + double left_angle = e.point.left_handle.angle; double min_right, min_left; double min; - return_val_if_fail (e.next != null, new EditPoint ()); - return_val_if_fail (e.prev != null, new EditPoint ()); + return_val_if_fail (e.point.next != null, new EditPoint ()); + return_val_if_fail (e.point.prev != null, new EditPoint ()); // angle might be greater than 2 PI or less than 0 min_right = double.MAX; @@ -1194,32 +1242,32 @@ } if (min_right < min_left) { - return e.get_next ().data; + return new PointSelection (e.point.get_next ().data, e.path); } - return e.get_prev ().data; + return new PointSelection (e.point.get_prev ().data, e.path); } - private static EditPoint get_next_point_up () { + private static PointSelection get_next_point_up () { return get_next_point (PI / 2); } - private static EditPoint get_next_point_down () { + private static PointSelection get_next_point_down () { return get_next_point (PI + PI / 2); } - private static EditPoint get_next_point_left () { + private static PointSelection get_next_point_left () { return get_next_point (PI); } - private static EditPoint get_next_point_right () { + private static PointSelection get_next_point_right () { return get_next_point (0); } - private static void set_selected_point (EditPoint ep) { + private static void set_selected_point (EditPoint ep, Path p) { remove_all_selected_points (); - add_selected_point (ep); - set_active_edit_point (ep); + add_selected_point (ep, p); + set_active_edit_point (ep, p); edit_active_corner = true; ep.set_selected (true); set_default_handle_positions (); @@ -1250,30 +1298,30 @@ if (!last_selected_is_handle) { if (keyval == Key.UP) { - foreach (EditPoint e in selected_points) { - e.set_position (e.x, e.y + Glyph.ivz ()); - e.recalculate_linear_handles (); + foreach (PointSelection e in selected_points) { + e.point.set_position (e.point.x, e.point.y + Glyph.ivz ()); + e.point.recalculate_linear_handles (); } } if (keyval == Key.DOWN) { - foreach (EditPoint e in selected_points) { - e.set_position (e.x, e.y - Glyph.ivz ()); - e.recalculate_linear_handles (); + foreach (PointSelection e in selected_points) { + e.point.set_position (e.point.x, e.point.y - Glyph.ivz ()); + e.point.recalculate_linear_handles (); } } if (keyval == Key.LEFT) { - foreach (EditPoint e in selected_points) { - e.set_position (e.x - Glyph.ivz (), e.y); - e.recalculate_linear_handles (); + foreach (PointSelection e in selected_points) { + e.point.set_position (e.point.x - Glyph.ivz (), e.point.y); + e.point.recalculate_linear_handles (); } } if (keyval == Key.RIGHT) { - foreach (EditPoint e in selected_points) { - e.set_position (e.x + Glyph.ivz (), e.y); - e.recalculate_linear_handles (); + foreach (PointSelection e in selected_points) { + e.point.set_position (e.point.x + Glyph.ivz (), e.point.y); + e.point.recalculate_linear_handles (); } } @@ -1386,10 +1434,10 @@ } if (selected_points.length () == 1) { - convert_point_to_line (selected_points.first ().data, true); + convert_point_to_line (selected_points.first ().data.point, true); } else { - foreach (EditPoint p in selected_points) { - convert_point_to_line (p, false); + foreach (PointSelection p in selected_points) { + convert_point_to_line (p.point, false); } } } @@ -1463,26 +1511,27 @@ public static void convert_point_types () { Glyph glyph = MainWindow.get_current_glyph (); glyph.store_undo_state (); - EditPoint selected = new EditPoint (); + PointSelection selected = new PointSelection.empty (); bool reset_selected = false; + EditPoint e; if (selected_points.length () == 1) { selected = selected_points.first ().data; - if (selected.next != null) { - selected_points.append (selected.get_next ().data); - selected.get_next ().data.set_selected (true); + if (selected.point.next != null) { + selected_points.append (new PointSelection (selected.point.get_next ().data, selected.path)); + selected.point.get_next ().data.set_selected (true); } - if (selected.prev != null) { - selected_points.append (selected.get_prev ().data); - selected.get_next ().data.set_selected (true); + if (selected.point.prev != null) { + selected_points.append (new PointSelection (selected.point.get_prev ().data, selected.path)); + selected.point.get_next ().data.set_selected (true); } reset_selected = true; } - foreach (EditPoint e in selected_points) { - + foreach (PointSelection ps in selected_points) { + e = ps.point; // convert segments not control points if (e.next == null || !e.get_next ().data.is_selected ()) { continue; @@ -1517,7 +1566,22 @@ if (reset_selected) { remove_all_selected_points (); selected_points.append (selected); - selected.set_selected (true); + selected.point.set_selected (true); + } + } + + public static void update_selected_points () { + Glyph g = MainWindow.get_current_glyph (); + while (selected_points.length () > 0) { + selected_points.remove_link (selected_points.first ()); + } + + foreach (Path p in g.path_list) { + foreach (EditPoint ep in p.points) { + if (ep.is_selected ()) { + selected_points.append (new PointSelection (ep, p)); + } + } } } } diff -Nru birdfont-0.28/libbirdfont/PointSelection.vala birdfont-0.31/libbirdfont/PointSelection.vala --- birdfont-0.28/libbirdfont/PointSelection.vala 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/libbirdfont/PointSelection.vala 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,45 @@ +/* + Copyright (C) 2013 Johan Mattsson + + 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 3 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. +*/ + +using Math; +using Cairo; + +namespace BirdFont { + +public class PointSelection : GLib.Object { + + public EditPointHandle handle; + public EditPoint point; + public Path path; + + public PointSelection (EditPoint ep, Path p) { + path = p; + point = ep; + handle = new EditPointHandle.empty (); + } + + public PointSelection.handle_selection (EditPointHandle h, Path p) { + path = p; + point = new EditPoint (); + handle = h; + } + + public PointSelection.empty () { + path = new Path (); + point = new EditPoint (); + handle = new EditPointHandle.empty (); + } +} + +} diff -Nru birdfont-0.28/libbirdfont/Preferences.vala birdfont-0.31/libbirdfont/Preferences.vala --- birdfont-0.28/libbirdfont/Preferences.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Preferences.vala 2013-09-12 13:33:31.000000000 +0000 @@ -11,6 +11,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. */ + namespace BirdFont { using Gee; @@ -18,6 +19,7 @@ public class Preferences { static Gee.HashMap data; + public static bool draw_boundries = false; public Preferences () { data = new HashMap (); diff -Nru birdfont-0.28/libbirdfont/Preview.vala birdfont-0.31/libbirdfont/Preview.vala --- birdfont-0.28/libbirdfont/Preview.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Preview.vala 2013-09-12 13:33:31.000000000 +0000 @@ -22,10 +22,6 @@ public override string get_name () { return "Preview"; } - - public override bool is_html_canvas () { - return true; - } public override void selected_canvas () { } @@ -36,7 +32,7 @@ public static File get_file () { Font font = BirdFont.get_current_font (); - string path = @"$(font.get_name ()).html"; + string path = @"$(font.get_full_name ()).html"; File dir = font.get_folder (); File file = dir.get_child (path); diff -Nru birdfont-0.28/libbirdfont/ProgressBar.vala birdfont-0.31/libbirdfont/ProgressBar.vala --- birdfont-0.28/libbirdfont/ProgressBar.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ProgressBar.vala 2013-09-12 13:33:31.000000000 +0000 @@ -37,6 +37,8 @@ p = (!) singleton; current_progress = d; p.new_progress (); + + MainWindow.get_tool_tip ().redraw (); } public static double get_progress () { diff -Nru birdfont-0.28/libbirdfont/RectangleTool.vala birdfont-0.31/libbirdfont/RectangleTool.vala --- birdfont-0.28/libbirdfont/RectangleTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/RectangleTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -79,7 +79,7 @@ e.recalculate_linear_handles (); } - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } @@ -88,7 +88,7 @@ press_y = y; resize = true; - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } diff -Nru birdfont-0.28/libbirdfont/ResizeTool.vala birdfont-0.31/libbirdfont/ResizeTool.vala --- birdfont-0.28/libbirdfont/ResizeTool.vala 1970-01-01 00:00:00.000000000 +0000 +++ birdfont-0.31/libbirdfont/ResizeTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -0,0 +1,304 @@ +/* + Copyright (C) 2013 Johan Mattsson + + 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 3 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. +*/ + +using Math; +using Cairo; + +namespace BirdFont { + +class ResizeTool : Tool { + + bool resize_path = false; + Path? resized_path = null; + double last_resize_y; + + ImageSurface? resize_handle; + + static double selection_box_width = 0; + static double selection_box_height = 0; + static double selection_box_center_x = 0; + static double selection_box_center_y = 0; + + static bool rotate_path = false; + static double last_rotate_y; + static double rotation = 0; + static double last_rotate = 0; + + public ResizeTool (string n) { + base (n, _("Resize and rotate paths")); + + resize_handle = Icons.get_icon ("resize_handle.png"); + + select_action.connect((self) => { + }); + + deselect_action.connect((self) => { + }); + + press_action.connect((self, b, x, y) => { + Glyph glyph = MainWindow.get_current_glyph (); + + glyph.store_undo_state (); + + foreach (Path p in glyph.active_paths) { + if (is_over_resize_handle (p, x, y)) { + resize_path = true; + resized_path = p; + last_resize_y = y; + return; + } + } + + if (resized_path != null) { + if (is_over_resize_handle ((!) resized_path, x, y)) { + resize_path = true; + last_resize_y = y; + return; + } + } + + foreach (Path p in glyph.active_paths) { + if (is_over_rotate_handle (p, x, y)) { + rotate_path = true; + return; + } + } + + last_rotate = 0; + rotation = 0; + last_rotate_y = y; + + + MoveTool.press (b, x, y); + }); + + release_action.connect((self, b, x, y) => { + resize_path = false; + rotate_path = false; + MoveTool.release (b, x, y); + }); + + move_action.connect ((self, x, y) => { + if (resize_path && can_resize (x, y)) { + resize (x, y); + } + + if (rotate_path) { + rotate (x, y); + } + + if (!rotate_path) { + MoveTool.update_boundries_for_selection (); + MoveTool.get_selection_box_boundries (out selection_box_center_x, + out selection_box_center_y, out selection_box_width, + out selection_box_height); + } + + GlyphCanvas.redraw (); + MoveTool.move (x, y); + }); + + draw_action.connect ((self, cr, glyph) => { + Glyph g = MainWindow.get_current_glyph (); + ImageSurface resize_img = (!) resize_handle; + + foreach (Path p in g.active_paths) { + cr.set_source_surface (resize_img, Glyph.reverse_path_coordinate_x (p.xmax) - 10, Glyph.reverse_path_coordinate_y (p.ymax) - 10); + cr.paint (); + } + + if (g.active_paths.length () > 0) { + draw_rotate_handle (cr); + } + + MoveTool.draw_actions (cr); + }); + } + + /** Move rotate handle to pixel x,y. */ + static void rotate (double x, double y) { + double cx, cy, xc, yc, xc2, yc2, a, b, w, h; + Glyph glyph = MainWindow.get_current_glyph (); + double dx, dy; + + cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); + cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); + xc = selection_box_center_x; + yc = selection_box_center_y; + + a = x - cx; + b = y - cy; + + rotation = atan (b / a); + + if (a < 0) { + rotation += PI; + } + + foreach (Path p in glyph.active_paths) { + p.rotate (rotation - last_rotate, selection_box_center_x, selection_box_center_y); + } + + MoveTool.get_selection_box_boundries (out xc2, out yc2, out w, out h); + + dx = -(xc2 - xc); + dy = -(yc2 - yc); + + foreach (Path p in glyph.active_paths) { + p.move (dx, dy); + } + + last_rotate = rotation; + + MoveTool.update_selection_boundries (); + } + + static bool is_over_rotate_handle (Path p, double x, double y) { + double cx, cy, hx, hy; + double size = 10; + bool inx, iny; + + cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); + cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); + + hx = cos (rotation) * 75; + hy = sin (rotation) * 75; + + inx = x - size <= cx + hx - 2.5 <= x + size; + iny = y - size <= cy + hy - 2.5 <= y + size; + + return inx && iny; + } + + static void draw_rotate_handle (Context cr) { + double cx, cy, hx, hy; + + cx = Glyph.reverse_path_coordinate_x (selection_box_center_x); + cy = Glyph.reverse_path_coordinate_y (selection_box_center_y); + + cr.save (); + + cr.set_source_rgba (0, 0, 0.3, 1); + cr.rectangle (cx - 2.5, cy - 2.5, 5, 5); + cr.fill (); + + hx = cos (rotation) * 75; + hy = sin (rotation) * 75; + + cr.set_line_width (1); + cr.move_to (cx, cy); + cr.line_to (cx + hx, cy + hy); + cr.stroke (); + + cr.set_source_rgba (0, 0, 0.3, 1); + cr.rectangle (cx + hx - 2.5, cy + hy - 2.5, 5, 5); + cr.fill (); + + cr.restore (); + } + + double get_resize_ratio (double x, double y) { + double ratio; + double h; + Path rp; + + return_val_if_fail (!is_null (resized_path), 0); + rp = (!) resized_path; + h = rp.xmax - rp.xmin; + + ratio = 1; + ratio -= 0.7 * PenTool.precision * (Glyph.path_coordinate_y (last_resize_y) - Glyph.path_coordinate_y (y)) / h; + + return ratio; + } + + /** Move resize handle to pixel x,y. */ + void resize (double x, double y) { + Path rp; + double ratio; + double resize_pos_x = 0; + double resize_pos_y = 0; + Glyph glyph = MainWindow.get_current_glyph (); + double selection_minx, selection_miny, dx, dy; + + ratio = get_resize_ratio (x, y); + + return_if_fail (!is_null (resized_path)); + rp = (!) resized_path; + get_selection_min (out resize_pos_x, out resize_pos_y); + + foreach (Path selected_path in glyph.active_paths) { + selected_path.resize (ratio); + } + + // resize paths + foreach (Path selected_path in glyph.active_paths) { + selected_path.resize (ratio); + } + + // move paths relative to the updated xmin and xmax + get_selection_min (out selection_minx, out selection_miny); + dx = resize_pos_x - selection_minx; + dy = resize_pos_y - selection_miny; + foreach (Path selected_path in glyph.active_paths) { + selected_path.move (dx, dy); + } + + last_resize_y = y; + } + + void get_selection_min (out double x, out double y) { + Glyph glyph = MainWindow.get_current_glyph (); + x = double.MAX; + y = double.MAX; + foreach (Path p in glyph.active_paths) { + if (p.xmin < x) { + x = p.xmin; + } + + if (p.ymin < y) { + y = p.ymin; + } + } + } + + bool can_resize (double x, double y) { + Glyph glyph = MainWindow.get_current_glyph (); + double h, w; + double ratio = get_resize_ratio (x, y); + + foreach (Path selected_path in glyph.active_paths) { + h = selected_path.ymax - selected_path.ymin; + w = selected_path.xmax - selected_path.xmin; + + if (selected_path.points.length () == 0) { + continue; + } + + if (h * ratio < 1 || w * ratio < 1) { + return false; + } + } + + return true; + } + + bool is_over_resize_handle (Path p, double x, double y) { + double handle_x = Math.fabs (Glyph.reverse_path_coordinate_x (p.xmax)); + double handle_y = Math.fabs (Glyph.reverse_path_coordinate_y (p.ymax)); + return fabs (handle_x - x + 10) < 20 && fabs (handle_y - y + 10) < 20; + } +} + +} diff -Nru birdfont-0.28/libbirdfont/SpinButton.vala birdfont-0.31/libbirdfont/SpinButton.vala --- birdfont-0.28/libbirdfont/SpinButton.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/SpinButton.vala 2013-09-12 13:33:31.000000000 +0000 @@ -1,3 +1,4 @@ + /* Copyright (C) 2012 Johan Mattsson @@ -43,10 +44,17 @@ panel_press_action.connect ((selected, button, tx, ty) => { double py = Math.fabs (y - ty); - int n; + int n = 0; if (is_selected ()) { - n = (button == 3) ? 10 : 1; + if (button == 1) { + n = 1; + } else if (button == 2) { + n = 10; + } else if (button == 3) { + set_from_text (); + n = 0; + } for (int i = 0; i < n; i++) { if (py < 51) increase (); @@ -87,11 +95,36 @@ scroll_wheel_up_action.connect ((selected) => { increase (); + return true; }); scroll_wheel_down_action.connect ((selected) => { decrease (); + return true; + }); + } + + public void set_from_text () { + TextListener listener = new TextListener (_("Set"), get_display_value (), _("Close")); + + listener.signal_text_input.connect ((text) => { + int new_value = (int) Math.rint (double.parse (text) * 1000); + if (new_value < min) { + set_int_value (@"$min"); + } else if (new_value > max) { + set_int_value (@"$max"); + } else { + set_int_value (@"$new_value"); + } + + Toolbox.redraw_tool_box (); + }); + + listener.signal_submit.connect (() => { + MainWindow.native_window.hide_text_input (); }); + + MainWindow.native_window.set_text_listener (listener); } public void set_max (double max) { @@ -159,7 +192,7 @@ public void set_value (string new_value, bool check_boundries = true, bool emit_signal = true) { string v = new_value; - while (!(v.char_count () >= 5)) { + while (v.char_count () < 5) { if (v.index_of (".") == -1) { v += "."; } else { @@ -169,15 +202,15 @@ return; } + if (v.substring (v.index_of_nth_char (1), 1) != ".") { + warning (@"Expecting \".\" in $v"); + } + deka = (int8) int.parse (v.substring (v.index_of_nth_char (0), 1)); deci = (int8) int.parse (v.substring (v.index_of_nth_char (2), 1)); centi = (int8) int.parse (v.substring (v.index_of_nth_char (3), 1)); milli = (int8) int.parse (v.substring (v.index_of_nth_char (4), 1)); - if (emit_signal) { - new_value_action (this); - } - if (check_boundries && get_value () > max) { set_value_round (max, false); } @@ -185,12 +218,14 @@ if (check_boundries && get_value () < min) { set_value_round (min, false); } + + if (emit_signal) { + new_value_action (this); + } } public void set_value_round (double v, bool check_boundries = true, bool emit_signal = true) { - v *= 1000; - v = Math.rint (v); - set_value (@"$v", check_boundries, emit_signal); + set_value (@"$v".replace (",", "."), check_boundries, emit_signal); } public double get_value () { diff -Nru birdfont-0.28/libbirdfont/TabBar.vala birdfont-0.31/libbirdfont/TabBar.vala --- birdfont-0.28/libbirdfont/TabBar.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/TabBar.vala 2013-09-12 13:33:31.000000000 +0000 @@ -160,13 +160,16 @@ public void close_display (FontDisplay f) { int i = -1; - foreach (var t in tabs) { - ++i; - - if (t.get_display () == f) { - close_tab (i) ; - return; - } + + if (tabs.length () > 1) { + foreach (var t in tabs) { + ++i; + + if (t.get_display () == f) { + close_tab (i) ; + return; + } + } } return_if_fail (i != -1); @@ -174,20 +177,29 @@ public void close_all_tabs () { for (int i = 0; i < get_length (); i++) { - if (close_tab (i)) { + if (close_tab (i, false, true)) { close_all_tabs (); } } } - public bool close_tab (int index, bool background_tab = false) { + public bool close_tab (int index, bool background_tab = false, bool select_new_tab = true) { unowned List? lt; Tab t; + EmptyTab empty_tab_canvas; + Tab empty_tab; if (!(0 <= index < tabs.length ())) { return false; } + if (tabs.length () == 1) { + empty_tab_canvas = new EmptyTab ("", ""); + MainWindow.get_glyph_canvas ().set_current_glyph (empty_tab_canvas); + empty_tab = new Tab (empty_tab_canvas, 0, false); + signal_tab_selected (empty_tab); + } + lt = tabs.nth(index); if (lt == null || ((!) lt).data == null) { @@ -203,14 +215,17 @@ if (t.has_close_button ()) { tabs.delete_link (tabs.nth(index)); - if (!background_tab) { + if (!background_tab && select_new_tab) { select_previous_tab (); } return true; } - select_tab (index); + if (select_new_tab) { + select_tab (index); + } + return false; } @@ -431,11 +446,8 @@ int s = (tabs.length () == 0) ? 0 : selected + 1; if (tab_width < 0) { - //cr.text_extents (display_item.get_name (), out te); // this is not a good estimation, pango might solve it - //tab_width = te.width + 30; - - tab_width = 9 * display_item.get_name ().char_count (); - tab_width += 30; + tab_width = 9 * display_item.get_label ().char_count (); + tab_width += 36; } tabs.insert (new Tab (display_item, tab_width, always_open), s); @@ -485,20 +497,6 @@ } - // this can be removed when tabs are not referenced by name - string translate (string s) { - switch (s) { - case "Overview": - return _("Overview"); - case "Kerning": - return _("Kerning"); - case "Menu": - return _("Menu"); - default: - return s; - } - } - private void draw_tabs (Context cr) { double close_opacity; double offset = 19; @@ -545,7 +543,7 @@ } } - // close + // close (x) if (t.has_close_button ()) { cr.set_line_width (1); @@ -558,13 +556,13 @@ cr.move_to (t.get_width () - 10, height - 14); cr.line_to (t.get_width () - 5, height - 9); - cr.stroke (); + cr.stroke (); } cr.set_source_rgba (0, 0, 0, 1); cr.set_font_size (14); cr.move_to (8, height - 6); - cr.show_text (translate (t.get_label ())); + cr.show_text (t.get_label ()); cr.stroke (); // edges @@ -597,23 +595,9 @@ } } - public void add_empty_tab (string name) { - add_tab (new EmptyTab (name)); + public void add_empty_tab (string name, string label) { + add_tab (new EmptyTab (name, label)); } } -public class EmptyTab : FontDisplay { - - public string name; - - public EmptyTab (string name) { - this.name = name; - } - - public override string get_name () { - return name; - } -} - - } diff -Nru birdfont-0.28/libbirdfont/TestCases.vala birdfont-0.31/libbirdfont/TestCases.vala --- birdfont-0.28/libbirdfont/TestCases.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/TestCases.vala 2013-09-12 13:33:31.000000000 +0000 @@ -24,8 +24,6 @@ add (test_data_reader, "Font data reader"); add (test_argument, "Argument list"); add (test_glyph_ranges, "Glyph ranges"); - add (test_glyph_table, "Glyph table"); - add (test_active_edit_point, "Active edit point"); add (test_hex, "Unicode hex values"); add (test_reverse_path, "Reverse path"); add (test_reverse_random_triangles, "Reverse random paths"); @@ -45,6 +43,7 @@ add (test_freetype, "Freetype"); add (test_preview, "Preview"); add (test_kerning, "Kerning"); + add (test_boundries, "Boundries"); } private void add (Callback callback, string name) { @@ -742,79 +741,6 @@ } } - public static void test_glyph_table () { - GlyphTable table = new GlyphTable (); - List gc = new List (); - List gc_copy; - GlyphCollection g; - - return_if_fail (table.length () == 0); - return_if_fail (table.get ("Some glyph") == null); - - // generate test data - for (uint i = 0; i < 1000; i++) { - gc.append (new GlyphCollection (new Glyph (@"TEST $i", i + 'a'))); - } - - g = gc.first ().data; - if (!table.insert (g.get_unicode (), g)) { - warning (@"Failed to insert $(g.get_name ())"); - return; - } - gc.append (g); - - // insert in random order - gc_copy = gc.copy (); - for (uint i = 0; gc_copy.length () > 0; i++) { - int t = (int) ((gc_copy.length () - 1) * Random.next_double ()); - g = gc_copy.nth (t).data; - - if (!table.insert (g.get_name (), g)) { - warning (@"Failed to insert $(g.get_name ())"); - return; - } - - gc_copy.remove_all (g); - - if (!table.validate_index ()) { - table.print_all (); - warning ("index is invalid"); - return; - } - } - - if (table.length () != gc.length ()) { - warning ("Table length does not match number of glyphs, $(table.length ()) != $(gc.length ())"); - return; - } - - // validate table - for (uint i = 0; i > 1000; i++) { - g = (!) table.get (gc.nth (i).data.get_name ()); - return_if_fail (gc.nth (i).data == g); - } - - // search - for (int i = 0; i < 2000; i++) { - int t = (int) (999 * Random.next_double ()); - if (table.get (@"TEST $t") == null) { - table.print_all (); - warning (@"Did't find TEST $t in glyph table."); - return; - } - } - - // remove - table.remove ("TEST 0"); - table.remove ("TEST 53"); - return_if_fail (table.get ("TEST 0") == null); - return_if_fail (table.get ("TEST 53") == null); - - // search - return_if_fail (table.get ("TEST 52") != null); - return_if_fail (table.get ("TEST 54") != null); - } - public static void test_hex () { test_hex_conv ('H', "U+48", 72); test_hex_conv ('1', "U+31", 49); @@ -869,38 +795,6 @@ test_click_action (pen_tool, 3, 0, 0); Tool.yield (); } - - public static void test_active_edit_point () { - Glyph g; - EditPoint epa, epb; - Tool pen_tool = MainWindow.get_toolbox ().get_tool ("pen_tool"); - - // paint - Toolbox.select_tool_by_name ("pen_tool"); - test_open_next_glyph (); - - g = MainWindow.get_current_glyph (); - - test_click_action (pen_tool, 3, 130, 130); // add point - epa = g.get_last_edit_point (); - - test_click_action (pen_tool, 3, 160, 130); - test_click_action (pen_tool, 3, 160, 160); - epb = g.get_last_edit_point (); - - test_click_action (pen_tool, 1, 130, 160); - - // validate active point - test_move_action (pen_tool, 130, 130); - warn_if_fail (PenTool.active_edit_point == epa); - - test_move_action (pen_tool, 161, 161); - warn_if_fail (PenTool.active_edit_point == epb); - - warn_if_fail (epa != epb); - - // TODO: Test move handle here. - } /** Test path coordinates and reverse path coordinates. */ public static void test_coordinates () { @@ -1453,7 +1347,7 @@ private static void test_kerning () { MenuTab.show_kerning_context (); - KerningDisplay kerning_display = KerningDisplay.get_singleton (); + KerningDisplay kerning_display = MainWindow.get_kerning_display (); unichar a, b; StringBuilder sb1, sb2; string sa, sb; @@ -1478,6 +1372,10 @@ kerning_display.set_kerning_pair (sa, sb, ref r, ref l, Random.int_range (0, 300)); } } + + private static void test_boundries () { + Preferences.draw_boundries = true; + } } } diff -Nru birdfont-0.28/libbirdfont/Tool.vala birdfont-0.31/libbirdfont/Tool.vala --- birdfont-0.28/libbirdfont/Tool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Tool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -50,8 +50,10 @@ public signal void double_click_action (Tool selected, int button, int x, int y); public signal void move_action (Tool selected, int x, int y); public signal void release_action (Tool selected, int button, int x, int y); - public signal void scroll_wheel_up_action (Tool selected); - public signal void scroll_wheel_down_action (Tool selected); + + /** Returns true if tool is listening for scroll wheel actions. */ + public signal bool scroll_wheel_up_action (Tool selected); + public signal bool scroll_wheel_down_action (Tool selected); public signal void key_press_action (Tool selected, uint32 keyval); public signal void key_release_action (Tool selected, uint32 keyval); diff -Nru birdfont-0.28/libbirdfont/ToolCollection.vala birdfont-0.31/libbirdfont/ToolCollection.vala --- birdfont-0.28/libbirdfont/ToolCollection.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ToolCollection.vala 2013-09-12 13:33:31.000000000 +0000 @@ -18,6 +18,8 @@ namespace BirdFont { public abstract class ToolCollection : GLib.Object { + public double scroll = 0; + public double content_height = 0; public abstract unowned List get_expanders (); } diff -Nru birdfont-0.28/libbirdfont/Toolbox.vala birdfont-0.31/libbirdfont/Toolbox.vala --- birdfont-0.28/libbirdfont/Toolbox.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/Toolbox.vala 2013-09-12 13:33:31.000000000 +0000 @@ -34,6 +34,8 @@ ImageSurface? toolbox_background = null; + bool scrolling_toolbox = false; + public Toolbox (GlyphCanvas glyph_canvas, TabBar tab_bar) { drawing_tools = new DrawingTools (glyph_canvas); kerning_tools = new KerningTools (); @@ -84,7 +86,7 @@ if (exp.is_over (x, y)) { exp.set_open (! exp.is_open ()); update_expanders (); - redraw ((int) exp.x - 10, (int) exp.y - 10, allocation_width, (int) (allocation_height - exp.y + 10)); + redraw_tool_box (); } if (exp.is_open ()) { @@ -104,25 +106,70 @@ } public void scroll_up (double x, double y) { - foreach (Expander exp in current_set.get_expanders ()) { - foreach (Tool t in exp.tool) { - if (t.is_over (x, y)) { - t.scroll_wheel_up_action (t); - press_tool = t; + bool action = false; + + if (!scrolling_toolbox) { + foreach (Expander exp in current_set.get_expanders ()) { + foreach (Tool t in exp.tool) { + if (t.is_over (x, y)) { + action = t.scroll_wheel_up_action (t); + press_tool = t; + } } } } + + if (!action) { + current_set.scroll += 35; + + if (current_set.scroll > 0) { + current_set.scroll = 0; + } + + update_expanders (); + suppress_scroll (); + } + + redraw_tool_box (); } public void scroll_down (double x, double y) { - foreach (Expander exp in current_set.get_expanders ()) { - foreach (Tool t in exp.tool) { - if (t.is_over (x, y)) { - t.scroll_wheel_down_action (t); - press_tool = t; + bool action = false; + + if (!scrolling_toolbox) { + foreach (Expander exp in current_set.get_expanders ()) { + foreach (Tool t in exp.tool) { + if (t.is_over (x, y)) { + action = t.scroll_wheel_down_action (t); + press_tool = t; + } } } } + + if (!action) { + current_set.scroll -= 35; + + if (current_set.content_height < allocation_height) { + current_set.scroll = 0; + } else if (current_set.content_height + current_set.scroll < allocation_height) { + current_set.scroll = allocation_height - current_set.content_height; + } + + update_expanders (); + suppress_scroll (); + } + + redraw_tool_box (); + } + + void suppress_scroll () { + scrolling_toolbox = true; + + Timeout.add (2000, () => { + scrolling_toolbox = false; + return false; + }); } public void move (double x, double y) { @@ -242,14 +289,25 @@ public void update_expanders () { Expander? p = null; Expander pp; + + foreach (Expander e in current_set.get_expanders ()) { + e.set_scroll (current_set.scroll); + } + + current_set.content_height = 0; foreach (Expander e in current_set.get_expanders ()) { if (p != null) { pp = (!) p; e.set_offset (pp.y + pp.margin + 9); + current_set.content_height += e.get_content_height () + 9; + } else { + e.set_offset (9); } p = e; } + + current_set.content_height += 40; } private void draw_expanders (int w, int h, Context cr) { diff -Nru birdfont-0.28/libbirdfont/TooltipArea.vala birdfont-0.31/libbirdfont/TooltipArea.vala --- birdfont-0.28/libbirdfont/TooltipArea.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/TooltipArea.vala 2013-09-12 13:33:31.000000000 +0000 @@ -129,13 +129,11 @@ cr.stroke (); cr.restore (); - if (w == 0) { - cr.save (); - cr.set_font_size (14); - cr.move_to (5, 15); - cr.show_text (tool_tip); - cr.restore (); - } + cr.save (); + cr.set_font_size (14); + cr.move_to (5, 15); + cr.show_text (tool_tip); + cr.restore (); } } diff -Nru birdfont-0.28/libbirdfont/VersionList.vala birdfont-0.31/libbirdfont/VersionList.vala --- birdfont-0.28/libbirdfont/VersionList.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/VersionList.vala 2013-09-12 13:33:31.000000000 +0000 @@ -18,6 +18,7 @@ namespace BirdFont { public class VersionList : DropMenu { + int versions = 1; int current_version = 0; public List glyphs = new List (); @@ -85,6 +86,8 @@ private void set_selected_item (MenuAction ma) { int i = ma.index; + Glyph current_glyph = MainWindow.get_current_glyph (); + unowned List g; return_if_fail (0 <= i < glyphs.length ()); @@ -96,6 +99,15 @@ ma.set_selected (true); reload_all_open_glyphs (); + + g = glyphs.nth (current_version); + + if (unlikely (is_null (g.data))) { + warning ("No data in glyph collection."); + } else { + g.data.set_allocation (current_glyph.allocation); + g.data.default_zoom (); + } } /** Reload a glyph when a new version is selected. Updates the path @@ -139,7 +151,7 @@ if (ug == null) { return; } - + updated_glyph = (!) ug; tab.set_display (updated_glyph); updated_glyph.view_zoom = glyph.view_zoom; diff -Nru birdfont-0.28/libbirdfont/ZoomTool.vala birdfont-0.31/libbirdfont/ZoomTool.vala --- birdfont-0.28/libbirdfont/ZoomTool.vala 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/libbirdfont/ZoomTool.vala 2013-09-12 13:33:31.000000000 +0000 @@ -23,7 +23,7 @@ List views = new List (); public ZoomTool (string n) { - base (n, "Zoom"); + base (n, "Zoom", 'z'); select_action.connect((self) => { }); @@ -115,7 +115,7 @@ MainWindow.select_tab (views.nth (view_index).data); MainWindow.get_current_display ().next_view (); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } /** Undo last zoom. */ @@ -128,7 +128,7 @@ MainWindow.select_tab (views.nth (view_index).data); MainWindow.get_current_display ().restore_last_view (); - MainWindow.get_glyph_canvas ().redraw (); + GlyphCanvas.redraw (); } } diff -Nru birdfont-0.28/po/birdfont.pot birdfont-0.31/po/birdfont.pot --- birdfont-0.28/po/birdfont.pot 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/birdfont.pot 2013-09-12 13:33:31.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,47 +17,51 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -85,12 +89,16 @@ msgid "write ttf and eot files\n" msgstr "" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 @@ -114,483 +122,616 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" +#: libbirdfont/DrawingTools.vala:78 +msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" +#: libbirdfont/DrawingTools.vala:86 +msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" +#: libbirdfont/DrawingTools.vala:94 +msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" msgstr "" -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" +#: libbirdfont/DrawingTools.vala:111 +msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" +#: libbirdfont/DrawingTools.vala:147 +msgid "Symmetrical handles" msgstr "" -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" +#: libbirdfont/DrawingTools.vala:169 +msgid "Convert segment to line." msgstr "" -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" msgstr "" -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" +#: libbirdfont/DrawingTools.vala:184 +msgid "Create counter from outline" msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" +#: libbirdfont/DrawingTools.vala:196 +msgid "Move to path to the bottom layer" msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" +#: libbirdfont/DrawingTools.vala:207 +msgid "Flip path vertically" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" +#: libbirdfont/DrawingTools.vala:214 +msgid "Flip path horizontally" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Close" +#: libbirdfont/DrawingTools.vala:222 +msgid "Show full unicode characters set" msgstr "" -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" +#: libbirdfont/DrawingTools.vala:238 +msgid "Show default characters set" msgstr "" -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" +#: libbirdfont/DrawingTools.vala:254 +msgid "Show all characters in the font" msgstr "" -#: libbirdfont/MenuTab.vala:155 -msgid "Files" +#: libbirdfont/DrawingTools.vala:268 +msgid "Delete selected glyph" msgstr "" -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" +#: libbirdfont/DrawingTools.vala:323 +msgid "Show guidelines" msgstr "" -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" +#: libbirdfont/DrawingTools.vala:334 +msgid "Show guidelines for x-height and baseline" msgstr "" -#: libbirdfont/MenuTab.vala:444 -msgid "Open" +#: libbirdfont/DrawingTools.vala:349 +msgid "Show guidelines at top and bottom margin" msgstr "" -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" +#: libbirdfont/DrawingTools.vala:367 +msgid "Zoom in" msgstr "" -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" +#: libbirdfont/DrawingTools.vala:374 +msgid "Zoom out" msgstr "" -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." +#: libbirdfont/DrawingTools.vala:381 +msgid "Zoom to scale 1:1" msgstr "" -#: libbirdfont/OverView.vala:849 -msgid "See also:" +#: libbirdfont/DrawingTools.vala:389 +msgid "Show full glyph" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" +#: libbirdfont/DrawingTools.vala:396 +msgid "Zoom in at region boundries" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" +#: libbirdfont/DrawingTools.vala:403 +msgid "Zoom in background image" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" +#: libbirdfont/DrawingTools.vala:416 +msgid "Previous view" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." +#: libbirdfont/DrawingTools.vala:422 +msgid "Next view" msgstr "" -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" +#: libbirdfont/DrawingTools.vala:436 +msgid "Set size for background image" msgstr "" -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" +#: libbirdfont/DrawingTools.vala:466 +msgid "Show/hide background image" msgstr "" -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." +#: libbirdfont/DrawingTools.vala:474 +msgid "Insert a new background image" msgstr "" -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" +#: libbirdfont/DrawingTools.vala:479 +msgid "Creating thumbnails" msgstr "" -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" +#: libbirdfont/DrawingTools.vala:498 +msgid "Set contrast for background image" msgstr "" -#: libbirdfont/TabBar.vala:492 -msgid "Overview" +#: libbirdfont/DrawingTools.vala:517 +msgid "Stroke color" msgstr "" -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" +#: libbirdfont/DrawingTools.vala:539 +msgid "Stroke width" msgstr "" -#: libbirdfont/TabBar.vala:496 -msgid "Menu" +#: libbirdfont/DrawingTools.vala:559 +msgid "Handle color" msgstr "" -#: libbirdfont/Toolbox.vala:87 -msgid "Create quadratic Bézier curves" +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" msgstr "" -#: libbirdfont/Toolbox.vala:95 -msgid "Create cubic Bézier curves" +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." msgstr "" -#: libbirdfont/Toolbox.vala:103 -msgid "Quadratic path with two line handles" +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" msgstr "" -#: libbirdfont/Toolbox.vala:111 -msgid "Tie curve handles for the selected edit point" +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." msgstr "" -#: libbirdfont/Toolbox.vala:131 -msgid "Symmetrical handles" +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." msgstr "" -#: libbirdfont/Toolbox.vala:152 -msgid "Convert segment to line." +#: libbirdfont/DrawingTools.vala:805 +msgid "Set size for grid" msgstr "" -#: libbirdfont/Toolbox.vala:163 -msgid "Create counter from outline" +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." msgstr "" -#: libbirdfont/Toolbox.vala:175 -msgid "Move to path to the bottom layer" +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." msgstr "" -#: libbirdfont/Toolbox.vala:186 -msgid "Flip path vertically" +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." msgstr "" -#: libbirdfont/Toolbox.vala:193 -msgid "Flip path horizontally" +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" +#: libbirdfont/FileTab.vala:205 +msgid "Backup" msgstr "" -#: libbirdfont/Toolbox.vala:228 -msgid "Show full unicode characters set" +#: libbirdfont/FileTab.vala:271 +msgid "Files" msgstr "" -#: libbirdfont/Toolbox.vala:244 -msgid "Show default characters set" +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" msgstr "" -#: libbirdfont/Toolbox.vala:260 -msgid "Show all characters in the font" +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" msgstr "" -#: libbirdfont/Toolbox.vala:274 -msgid "Delete selected glyph" +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" msgstr "" -#: libbirdfont/Toolbox.vala:329 -msgid "Show guidelines" +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." msgstr "" -#: libbirdfont/Toolbox.vala:340 -msgid "Show guidelines for x-height and baseline" +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." msgstr "" -#: libbirdfont/Toolbox.vala:355 -msgid "Show guidelines at top and bottom margin" +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." msgstr "" -#: libbirdfont/Toolbox.vala:373 -msgid "Zoom in" +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" msgstr "" -#: libbirdfont/Toolbox.vala:380 -msgid "Zoom out" +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" msgstr "" -#: libbirdfont/Toolbox.vala:387 -msgid "Zoom to scale 1:1" +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." msgstr "" -#: libbirdfont/Toolbox.vala:395 -msgid "Show full glyph" +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:402 -msgid "Zoom in at region boundries" +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" msgstr "" -#: libbirdfont/Toolbox.vala:409 -msgid "Zoom in background image" +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:422 -msgid "Previous view" +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" msgstr "" -#: libbirdfont/Toolbox.vala:428 -msgid "Next view" +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" msgstr "" -#: libbirdfont/Toolbox.vala:435 -msgid "Set size for background image" +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" msgstr "" -#: libbirdfont/Toolbox.vala:465 -msgid "Show/hide background image" +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" msgstr "" -#: libbirdfont/Toolbox.vala:473 -msgid "Insert a new background image" +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" msgstr "" -#: libbirdfont/Toolbox.vala:478 -msgid "Creating thumbnails" +#: libbirdfont/MenuTab.vala:194 +msgid "Open" msgstr "" -#: libbirdfont/Toolbox.vala:497 -msgid "Set contrast for background image" +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" msgstr "" -#: libbirdfont/Toolbox.vala:516 -msgid "Stroke color" +#: libbirdfont/OverView.vala:109 +msgid "Search" msgstr "" -#: libbirdfont/Toolbox.vala:538 -msgid "Stroke width" +#: libbirdfont/OverView.vala:109 +msgid "Filter" msgstr "" -#: libbirdfont/Toolbox.vala:555 -msgid "Handle color" +#: libbirdfont/OverView.vala:234 +msgid "Overview" msgstr "" -#: libbirdfont/Toolbox.vala:803 -msgid "Set size for grid" +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" msgstr "" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "" + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "" + +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" diff -Nru birdfont-0.28/po/de.po birdfont-0.31/po/de.po --- birdfont-0.28/po/de.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/de.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,9 +6,9 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" -"PO-Revision-Date: 2013-07-06 00:03+0000\n" -"Last-Translator: Mezzenstein \n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" +"PO-Revision-Date: 2013-09-03 14:27+0000\n" +"Last-Translator: Anonymous Pootle User\n" "Language-Team: LANGUAGE \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -16,52 +16,56 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.5.0-beta1\n" -"X-POOTLE-MTIME: 1373068991.0\n" +"X-POOTLE-MTIME: 1378218447.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Verwendung" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "DATEI" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPTION" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "Zeige Koordinaten in Strukturanzeige" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "Beenden wenn Testfall fehlschlägt" # betrachten oder behandeln? -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "Warnungen als Fehler betrachten" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "Diese Meldung anzeigen" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "aktiviere Macintosh Anpassung" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "Nicht übersetzen" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "Pause nach jedem Befehl in Teststruktur machen" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "Testfall ausführen" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" -msgstr "" +msgstr "Hintergründe" #: libbirdfont/BackgroundTool.vala:36 msgid "Move, resize and rotate background image" @@ -87,13 +91,17 @@ msgid "write ttf and eot files\n" msgstr "TTF- und EOT-Datei speichern\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Ausgabeverzeichnis nicht auffindbar" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Schreiben" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "Kreis" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -101,504 +109,676 @@ #: libbirdfont/DefaultCharactersSet.vala:25 msgid "Default language" -msgstr "" +msgstr "Standardsprache" #: libbirdfont/DefaultCharactersSet.vala:26 msgid "Private use area" -msgstr "" +msgstr "Privatgenutzter Bereich" #: libbirdfont/DefaultCharactersSet.vala:28 msgid "Chinese" -msgstr "" +msgstr "Chinesisch" #: libbirdfont/DefaultCharactersSet.vala:29 msgid "English" -msgstr "" +msgstr "Englisch" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" -msgstr "" +msgid "Japanese" +msgstr "Japanisch" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" -msgstr "" +msgid "Javanese" +msgstr "Javanesisch" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "Russisch" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" -msgstr "" +msgstr "Schwedisch" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "Beschreibung" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "Postscript Name" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Name" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "Stil" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "Eindeutiger Bezeichner" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Version" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "Urheberrecht" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Raster anzeigen" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importieren" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Glyphen-Abfolge" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Wiederherstellen" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "Alles löschen" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Letzte Dateien" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Speichern" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Öffnen" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Pfade verbinden" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Pfade verschieben" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Keine Glyphen in dieser Ansicht vorhanden" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "Siehe auch:" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Abbrechen" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Rechtsklick zum Hinzufügen von neuen Punkten, Linksklick zum Verschieben von " -"Punkten" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "und Doppelklick zum Hinzufügen eines neuen Punktes zum Pfad." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Speichern?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Verwerfen" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Übersicht" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Unterschneidung" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menü" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "Erstelle quadratische Bézierkurven" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "Erstelle kubische Bézierkurven" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "Quadratischer Pfad mit zwei Griffen" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "Ausgewählte Punkte umwandeln" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Pfade verbinden" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "Counter aus Außenlinie erstellen" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Pfad auf die unterste Ebene verschieben" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" -msgstr "" +msgstr "Pfad vertikal spiegeln" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" -msgstr "" +msgstr "Pfad horizontal spiegeln" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Präzision festlegen" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Zeige ganzen Unicode-Zeichensatz" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Zeige Standard-Zeichensatz" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" -msgstr "" +msgstr "Zeige alle in der Schriftart enthaltene Zeichen" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Lösche markiertes Zeichen" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "Zeige Hilfslinien" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "Zeige Hilfslinien für x-Höhe und Grundlinie" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "Zeige Hilfslinien beim oberen und unteren Außenabstand" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Vergrößern" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Verkleinern" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Auf Maßstab 1:1 vergrößern" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Gesamtes Zeichen anzeigen" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "In Bereichsgrenzen zoomen" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Hintergrundbild vergrößern" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Vorherige Ansicht" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Nächste Ansicht" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Größe des Hintergrundbildes festlegen" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Zeige/verstecke Hintergrundbild" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Neues Hintergrundbild einfügen" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Miniaturbilder werden erstellt" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Kontrast für Hintergrundbild festlegen" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Konturfarbe" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Pinselbreite" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Griff-Farbe" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Präzision festlegen" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Größe für Raster festlegen" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Letzte Dateien" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "Dateien" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Raster anzeigen" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importieren" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Unterschneidung" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +#, fuzzy +msgid "Kerning:" +msgstr "Unterschneidung" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Glyphen-Abfolge" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "Schließen" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menü" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Speichern" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Öffnen" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Pfade verschieben" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Übersicht" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Keine Glyphen in dieser Ansicht vorhanden" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "Siehe auch:" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "TTF-Datei überschreiben?" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "Überschreiben" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Abbrechen" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Rechtsklick zum Hinzufügen von neuen Punkten, Linksklick zum Verschieben von " +"Punkten" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "und Doppelklick zum Hinzufügen eines neuen Punktes zum Pfad." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "Rechteck" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Speichern?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Verwerfen" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Neue Version" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Version" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Neu" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Öffnen" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Speichern" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Speichern _unter" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exportieren" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Vorschau" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" -msgstr "" - -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Unterschneidung" +msgstr "Name und Beschreibung" -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Beenden" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Rückgängig" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Kopieren" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "_Einfügen" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 +#, fuzzy msgid "Select All Pa_ths" +msgstr "_Wähle alle Pfade aus" + +#: birdfont/GtkWindow.vala:559 +msgid "_Search" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:564 +#, fuzzy msgid "_Export Glyph as SVG" -msgstr "" +msgstr "_Alle Pfade auswählen" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importiere SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 +#, fuzzy msgid "Close _Path" -msgstr "" +msgstr "Schließe _Pfad" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 +#, fuzzy msgid "_Glyph Sequence" +msgstr "Glyphen-Abfolge" + +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" msgstr "" -#: birdfont/GtkWindow.vala:556 -msgid "_Select Point Above" +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:593 +#, fuzzy +msgid "_Select Point Above" +msgstr "_Übergeordneten Punkt anwählen" + +#: birdfont/GtkWindow.vala:597 +#, fuzzy msgid "Select _Next Point" -msgstr "" +msgstr "Wähle _nächsten Punkt" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 +#, fuzzy msgid "Select _Previous Point" -msgstr "" +msgstr "_Vorherigen Punkt auswählen" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 +#, fuzzy msgid "Select Point _Below" -msgstr "" +msgstr "_Untergeordneten Punkt auswählen" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 +#, fuzzy msgid "_Next Tab" -msgstr "" +msgstr "_Nächster Reiter" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 +#, fuzzy msgid "_Previous Tab" -msgstr "" +msgstr "_Vorheriger Reiter" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Reiter schließen" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 +#, fuzzy msgid "Close _All Tabs" -msgstr "" +msgstr "_Alle Reiter schließen" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 +#, fuzzy msgid "_Create Path" -msgstr "" +msgstr "_Pfad erstellen" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Zoom" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 +#, fuzzy msgid "_Create Counter Path" -msgstr "" +msgstr "_Gegenpfad erzeugen" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Verschieben" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Zeige _alle Unicode-Zeichen" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 +#, fuzzy msgid "Show De_fault Characters Set" -msgstr "" +msgstr "Zeige Standardzeichen" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 +#, fuzzy msgid "Show Characters in Font" -msgstr "" +msgstr "Zeige in Schriftart enthaltene Zeichen" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 +#, fuzzy msgid "Add New _Grid Item" -msgstr "" +msgstr "Neues _Gitterelement hinzufügen" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 +#, fuzzy msgid "Remove Gr_id Item" -msgstr "" +msgstr "Gitterelement _entfernen" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 +#, fuzzy msgid "_Zoom In" -msgstr "" +msgstr "_Vergrößern" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 +#, fuzzy msgid "Zoom _Out" -msgstr "" +msgstr "_Verkleinern" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 +#, fuzzy msgid "Zoom to _Scale 1:1" +msgstr "Zoom auf Originalgröße setzen" + +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Datei" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Bearbeiten" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Reiter" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "Werkzeug" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Unterschneidung" + +#: birdfont/GtkWindow.vala:1148 +#, fuzzy +msgid "PostScript Name" +msgstr "Postscript Name" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Name" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "Stil" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +#, fuzzy +msgid "Full name (name and style)" +msgstr "Vollständiger Name (Name und Schriftstil)" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "Eindeutiger Bezeichner" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "Urheberrecht" + +#~ msgid "Writing" +#~ msgstr "Schreiben" + +#~ msgid "Character set" +#~ msgstr "Zeichensatz" + +#, fuzzy +#~ msgid "Select default character set" +#~ msgstr "Zeige Standard-Zeichensatz" + +#~ msgid "Recover" +#~ msgstr "Wiederherstellen" + +#~ msgid "Delete all" +#~ msgstr "Alles löschen" + #~ msgid "Full name (name & style)" #~ msgstr "Vollständiger Name (Name und Schriftstil)" diff -Nru birdfont-0.28/po/fa.po birdfont-0.31/po/fa.po --- birdfont-0.28/po/fa.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/fa.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-04-17 12:43+0000\n" "Last-Translator: Anonymous Pootle User\n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1366202639.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "کاربرد" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "فایل" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "انتخاب" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "نمایش هماهنگ در منوی glyph" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,12 +90,16 @@ msgid "write ttf and eot files\n" msgstr "" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 @@ -115,483 +123,616 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" +#: libbirdfont/DrawingTools.vala:78 +msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" +#: libbirdfont/DrawingTools.vala:86 +msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" +#: libbirdfont/DrawingTools.vala:94 +msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" msgstr "" -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" +#: libbirdfont/DrawingTools.vala:111 +msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" +#: libbirdfont/DrawingTools.vala:147 +msgid "Symmetrical handles" msgstr "" -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" +#: libbirdfont/DrawingTools.vala:169 +msgid "Convert segment to line." msgstr "" -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" msgstr "" -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" +#: libbirdfont/DrawingTools.vala:184 +msgid "Create counter from outline" msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" +#: libbirdfont/DrawingTools.vala:196 +msgid "Move to path to the bottom layer" msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" +#: libbirdfont/DrawingTools.vala:207 +msgid "Flip path vertically" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" +#: libbirdfont/DrawingTools.vala:214 +msgid "Flip path horizontally" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Close" +#: libbirdfont/DrawingTools.vala:222 +msgid "Show full unicode characters set" msgstr "" -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" +#: libbirdfont/DrawingTools.vala:238 +msgid "Show default characters set" msgstr "" -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" +#: libbirdfont/DrawingTools.vala:254 +msgid "Show all characters in the font" msgstr "" -#: libbirdfont/MenuTab.vala:155 -msgid "Files" +#: libbirdfont/DrawingTools.vala:268 +msgid "Delete selected glyph" msgstr "" -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" +#: libbirdfont/DrawingTools.vala:323 +msgid "Show guidelines" msgstr "" -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" +#: libbirdfont/DrawingTools.vala:334 +msgid "Show guidelines for x-height and baseline" msgstr "" -#: libbirdfont/MenuTab.vala:444 -msgid "Open" +#: libbirdfont/DrawingTools.vala:349 +msgid "Show guidelines at top and bottom margin" msgstr "" -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" +#: libbirdfont/DrawingTools.vala:367 +msgid "Zoom in" msgstr "" -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" +#: libbirdfont/DrawingTools.vala:374 +msgid "Zoom out" msgstr "" -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." +#: libbirdfont/DrawingTools.vala:381 +msgid "Zoom to scale 1:1" msgstr "" -#: libbirdfont/OverView.vala:849 -msgid "See also:" +#: libbirdfont/DrawingTools.vala:389 +msgid "Show full glyph" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" +#: libbirdfont/DrawingTools.vala:396 +msgid "Zoom in at region boundries" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" +#: libbirdfont/DrawingTools.vala:403 +msgid "Zoom in background image" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" +#: libbirdfont/DrawingTools.vala:416 +msgid "Previous view" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." +#: libbirdfont/DrawingTools.vala:422 +msgid "Next view" msgstr "" -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" +#: libbirdfont/DrawingTools.vala:436 +msgid "Set size for background image" msgstr "" -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" +#: libbirdfont/DrawingTools.vala:466 +msgid "Show/hide background image" msgstr "" -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." +#: libbirdfont/DrawingTools.vala:474 +msgid "Insert a new background image" msgstr "" -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" +#: libbirdfont/DrawingTools.vala:479 +msgid "Creating thumbnails" msgstr "" -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" +#: libbirdfont/DrawingTools.vala:498 +msgid "Set contrast for background image" msgstr "" -#: libbirdfont/TabBar.vala:492 -msgid "Overview" +#: libbirdfont/DrawingTools.vala:517 +msgid "Stroke color" msgstr "" -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" +#: libbirdfont/DrawingTools.vala:539 +msgid "Stroke width" msgstr "" -#: libbirdfont/TabBar.vala:496 -msgid "Menu" +#: libbirdfont/DrawingTools.vala:559 +msgid "Handle color" msgstr "" -#: libbirdfont/Toolbox.vala:87 -msgid "Create quadratic Bézier curves" +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" msgstr "" -#: libbirdfont/Toolbox.vala:95 -msgid "Create cubic Bézier curves" +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." msgstr "" -#: libbirdfont/Toolbox.vala:103 -msgid "Quadratic path with two line handles" +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" msgstr "" -#: libbirdfont/Toolbox.vala:111 -msgid "Tie curve handles for the selected edit point" +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." msgstr "" -#: libbirdfont/Toolbox.vala:131 -msgid "Symmetrical handles" +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." msgstr "" -#: libbirdfont/Toolbox.vala:152 -msgid "Convert segment to line." +#: libbirdfont/DrawingTools.vala:805 +msgid "Set size for grid" msgstr "" -#: libbirdfont/Toolbox.vala:163 -msgid "Create counter from outline" +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." msgstr "" -#: libbirdfont/Toolbox.vala:175 -msgid "Move to path to the bottom layer" +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." msgstr "" -#: libbirdfont/Toolbox.vala:186 -msgid "Flip path vertically" +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." msgstr "" -#: libbirdfont/Toolbox.vala:193 -msgid "Flip path horizontally" +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" +#: libbirdfont/FileTab.vala:205 +msgid "Backup" msgstr "" -#: libbirdfont/Toolbox.vala:228 -msgid "Show full unicode characters set" +#: libbirdfont/FileTab.vala:271 +msgid "Files" msgstr "" -#: libbirdfont/Toolbox.vala:244 -msgid "Show default characters set" +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" msgstr "" -#: libbirdfont/Toolbox.vala:260 -msgid "Show all characters in the font" +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" msgstr "" -#: libbirdfont/Toolbox.vala:274 -msgid "Delete selected glyph" +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" msgstr "" -#: libbirdfont/Toolbox.vala:329 -msgid "Show guidelines" +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." msgstr "" -#: libbirdfont/Toolbox.vala:340 -msgid "Show guidelines for x-height and baseline" +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." msgstr "" -#: libbirdfont/Toolbox.vala:355 -msgid "Show guidelines at top and bottom margin" +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." msgstr "" -#: libbirdfont/Toolbox.vala:373 -msgid "Zoom in" +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" msgstr "" -#: libbirdfont/Toolbox.vala:380 -msgid "Zoom out" +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" msgstr "" -#: libbirdfont/Toolbox.vala:387 -msgid "Zoom to scale 1:1" +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." msgstr "" -#: libbirdfont/Toolbox.vala:395 -msgid "Show full glyph" +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:402 -msgid "Zoom in at region boundries" +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" msgstr "" -#: libbirdfont/Toolbox.vala:409 -msgid "Zoom in background image" +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:422 -msgid "Previous view" +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" msgstr "" -#: libbirdfont/Toolbox.vala:428 -msgid "Next view" +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" msgstr "" -#: libbirdfont/Toolbox.vala:435 -msgid "Set size for background image" +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" msgstr "" -#: libbirdfont/Toolbox.vala:465 -msgid "Show/hide background image" +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" msgstr "" -#: libbirdfont/Toolbox.vala:473 -msgid "Insert a new background image" +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" msgstr "" -#: libbirdfont/Toolbox.vala:478 -msgid "Creating thumbnails" +#: libbirdfont/MenuTab.vala:194 +msgid "Open" msgstr "" -#: libbirdfont/Toolbox.vala:497 -msgid "Set contrast for background image" +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" msgstr "" -#: libbirdfont/Toolbox.vala:516 -msgid "Stroke color" +#: libbirdfont/OverView.vala:109 +msgid "Search" msgstr "" -#: libbirdfont/Toolbox.vala:538 -msgid "Stroke width" +#: libbirdfont/OverView.vala:109 +msgid "Filter" msgstr "" -#: libbirdfont/Toolbox.vala:555 -msgid "Handle color" +#: libbirdfont/OverView.vala:234 +msgid "Overview" msgstr "" -#: libbirdfont/Toolbox.vala:803 -msgid "Set size for grid" +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" msgstr "" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "" + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "" + +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" diff -Nru birdfont-0.28/po/it.po birdfont-0.31/po/it.po --- birdfont-0.28/po/it.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/it.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" -"PO-Revision-Date: 2013-04-28 15:30+0000\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" +"PO-Revision-Date: 2013-08-12 09:37+0000\n" "Last-Translator: Anonymous Pootle User\n" "Language-Team: LANGUAGE \n" "Language: it\n" @@ -16,51 +16,55 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.5.0-beta1\n" -"X-POOTLE-MTIME: 1367163056.0\n" +"X-POOTLE-MTIME: 1376300225.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Utilizzo" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "FILE" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPZIONE" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "Mostra coordinate in vista Glyph" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "Esci se un test fallisce" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "Considera gli avvertimenti come errori" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "Mostra questo messaggio" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "Abilita modifiche Machintosh" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "Pausa prima di ogni commando in modalità test" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "Esegui test" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" -msgstr "" +msgstr "Sfondi" #: libbirdfont/BackgroundTool.vala:36 msgid "Move, resize and rotate background image" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "Scrivi files TTF e EOT\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Impossibile trovare la directory di output" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Scrittura in corso" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -100,504 +108,668 @@ #: libbirdfont/DefaultCharactersSet.vala:25 msgid "Default language" -msgstr "" +msgstr "Lingua predefinita" #: libbirdfont/DefaultCharactersSet.vala:26 msgid "Private use area" -msgstr "" +msgstr "Area ad uso privato" #: libbirdfont/DefaultCharactersSet.vala:28 msgid "Chinese" -msgstr "" +msgstr "Cinese" #: libbirdfont/DefaultCharactersSet.vala:29 msgid "English" -msgstr "" +msgstr "Inglese" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" -msgstr "" +msgid "Japanese" +msgstr "Giapponese" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" -msgstr "" +msgid "Javanese" +msgstr "Giavanese" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "Russo" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" -msgstr "" +msgstr "Svedese" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Nome" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Versione" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Mostra griglia" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importa" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Sequenza glyph" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Ripristina" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "File recenti" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Salva" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Apri" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Unisci destinazioni" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Sposta percorso" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Nessun Glyph in questa modalità" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Annulla" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Tasto destro del mouse per aggiungere nuovi punti, click sinistro per " -"spostare i punti" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "e doppio clic per aggiungere un nuovo punto al percorso." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Salvare?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Ignora" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Panoramica" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Crenatura" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menù" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "Unisci punti di curvatura per il punto di modifica selezionato" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Unisci destinazioni" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "Crea contatore da contorno" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Muovi dal percorso al livello sotto" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Imposta precisione" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Mostra tutte set caratteri Unicode" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Mostra set caratteri predefinito" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 +#, fuzzy msgid "Show all characters in the font" -msgstr "" +msgstr "Mostra tutti i caratteri nel font" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Cancella il glyph selezionato" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "Mostra linee guida per l'altezza X e di base" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "Mostra linee guida ai margini superiore e inferiore" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Ingrandisci" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Riduci" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Ingrandimento scala 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Mostra tutti i glyph" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "Ingrandisci i limiti regione" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Ingrandisci sfondo" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Vista precedente" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Vista successiva" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Imposta dimensioni sfondo" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Mostra/nascondi sfondo" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Inserisci nuovo sfondo" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Crea miniature" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Imposta contrasto per lo sfondo" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Colore tratto" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Spessore tratto" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Gestisci colore" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Imposta precisione" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Imposta la dimensione per la griglia" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "File recenti" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Mostra griglia" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importa" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Crenatura" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Sequenza glyph" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menù" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Salva" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Apri" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Sposta percorso" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Panoramica" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Nessun Glyph in questa modalità" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Annulla" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Tasto destro del mouse per aggiungere nuovi punti, click sinistro per " +"spostare i punti" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "e doppio clic per aggiungere un nuovo punto al percorso." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Salvare?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Ignora" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Nuova versione" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Versione" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Nuovo" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Apri" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Salva" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "S_alva come" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Esporta" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Anteprima" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Crenatura" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Chiudi" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Annulla" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Copia" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "_Incolla" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 +#, fuzzy msgid "Select All Pa_ths" +msgstr "_Seleziona tutti i percorsi" + +#: birdfont/GtkWindow.vala:559 +msgid "_Search" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:564 +#, fuzzy msgid "_Export Glyph as SVG" -msgstr "" +msgstr "_Esporta glyph in SVG" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importa SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 +#, fuzzy msgid "Close _Path" -msgstr "" +msgstr "Chiudi _percorso" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 +#, fuzzy msgid "_Glyph Sequence" +msgstr "Sequenza glyph" + +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" msgstr "" -#: birdfont/GtkWindow.vala:556 -msgid "_Select Point Above" +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:593 +#, fuzzy +msgid "_Select Point Above" +msgstr "_Seleziona punto superiore" + +#: birdfont/GtkWindow.vala:597 +#, fuzzy msgid "Select _Next Point" -msgstr "" +msgstr "Seleziona _ il prossimo punto" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 +#, fuzzy msgid "Select _Previous Point" -msgstr "" +msgstr "Seleziona il punto _precedente" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 +#, fuzzy msgid "Select Point _Below" -msgstr "" +msgstr "Seleziona il punto _sotto" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 +#, fuzzy msgid "_Next Tab" -msgstr "" +msgstr "_Scheda successiva" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 +#, fuzzy msgid "_Previous Tab" -msgstr "" +msgstr "_Scheda precedente" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Chiudi scheda" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 +#, fuzzy msgid "Close _All Tabs" -msgstr "" +msgstr "_Chiudi tutte le schede" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 +#, fuzzy msgid "_Create Path" -msgstr "" +msgstr "_Crea percorso" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "In_grandimento" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 +#, fuzzy msgid "_Create Counter Path" -msgstr "" +msgstr "_Crea contatore percorso" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Sposta" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Mostra set _caratteri unicode" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 +#, fuzzy msgid "Show De_fault Characters Set" -msgstr "" +msgstr "Mostra set _caratteri default" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 +#, fuzzy msgid "Show Characters in Font" -msgstr "" +msgstr "Mostra caratteri nel font" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 +#, fuzzy msgid "Add New _Grid Item" -msgstr "" +msgstr "Aggiungi nuovo oggetto alla _griglia" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 +#, fuzzy msgid "Remove Gr_id Item" -msgstr "" +msgstr "Rimuovere oggetto _griglia" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 +#, fuzzy msgid "_Zoom In" -msgstr "" +msgstr "_Ingrandisci" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 +#, fuzzy msgid "Zoom _Out" -msgstr "" +msgstr "_Diminuisci" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 +#, fuzzy msgid "Zoom to _Scale 1:1" +msgstr "_Ingrandisci in scala 1:1" + +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_File" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Modifica" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Scheda" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Strumenti" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Crenatura" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Nome" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "Scrittura in corso" + +#, fuzzy +#~ msgid "Select default character set" +#~ msgstr "Mostra set caratteri predefinito" + +#~ msgid "Recover" +#~ msgstr "Ripristina" + #~ msgid "Export" #~ msgstr "Esporta" diff -Nru birdfont-0.28/po/ja.po birdfont-0.31/po/ja.po --- birdfont-0.28/po/ja.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/ja.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-03-28 02:29+0000\n" "Last-Translator: Anonymous Pootle User\n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1364437758.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "使い方" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "ファイル" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "オプション" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "グリフ表示時に調整を表示する" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "テストケースが失敗したら終了する" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "警告を致命的なものとして扱う" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "このメッセージを表示する" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "Machintosh 用カスタマイズを有効にする" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "テストスイート内の各コマンド間にスリープする" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "テストケースを実行する" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "ttfおよびeotファイルへ書き出す\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "出力先ディレクトリが見つかりません" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "書き出し中" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,487 +123,626 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "名前" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "バージョン" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "グリッドを表示" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "インポート" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "グリフシーケンス" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "復元" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "最近使ったファイル" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "保存する" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "開く" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "パスを結合する" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "パスを移動する" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "この表示内にはグリフがありません。" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "キャンセル" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "新しい点を追加するには右クリック、点を移動するには左クリックを、" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "そして新しい点をパスに追加するにはダブルクリックです。" - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "保存しますか?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "破棄" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "グリフ一覧" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "カーニング" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "メニュー" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "選択された編集ポイントをカーブ・ハンドルを結びます。" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "パスを結合する" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "アウトラインからカウンタを生成する" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "最下層へのパスに移動します" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "精度を設定" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "全てのUnicode文字セットを表示する" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "デフォルトの文字セットを表示する" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "選択したグリフを削除" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "x-height とベースラインの基準線を表示" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "上下マージンの基準線を表示" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "拡大" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "縮小" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "1:1 スケールに調整" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "グリフ全体を表示" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "境界線に対して拡大" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "背景画像を拡大" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "一つ前の表示" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "次の表示" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "背景画像のサイズを設定" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "背景画像を表示/非表示" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "新しい背景画像を挿入" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "サムネイルを作成" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "背景画像のコントラストを設定" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "ストローク色" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "ストローク幅" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "色調整" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "精度を設定" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "サイズをグリッドに合わせる" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "最近使ったファイル" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "グリッドを表示" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "インポート" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "カーニング" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "グリフシーケンス" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "メニュー" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "保存する" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "開く" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "パスを移動する" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "グリフ一覧" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "この表示内にはグリフがありません。" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "キャンセル" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "新しい点を追加するには右クリック、点を移動するには左クリックを、" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "そして新しい点をパスに追加するにはダブルクリックです。" + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "保存しますか?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "破棄" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "新しいバージョン" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "バージョン" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "新規(_N)" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "開く(_O)" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "保存(_S)" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "名前を付けて保存" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "エクスポート(_E)" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "プレビュー(_P)" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "カーニング(_K)" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "終了(_Q)" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "元に戻す(_U)" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "コピー(_C)" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "貼り付け(_P)" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "SVGのインポート(_I)" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "タブを閉じる(_C)" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "ズーム(_Z)" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "移動(_M)" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "フルセットのUnicode文字を表示" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "ファイル(_F)" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "編集(_E)" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "タブ(_T)" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "ツール(_O)" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "カーニング(_K)" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "名前" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "書き出し中" + +#~ msgid "Recover" +#~ msgstr "復元" + #~ msgid "Export" #~ msgstr "エクスポート" diff -Nru birdfont-0.28/po/nl.po birdfont-0.31/po/nl.po --- birdfont-0.28/po/nl.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/nl.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-03-24 20:07+0000\n" "Last-Translator: Sven \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1364155678.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Gebruik" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "BESTAND" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPTIE" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "toon coördinaten in glief zicht" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "afsluiten als een test case faalt" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "behandel waarschuwing als fataal" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "toon dit bericht" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "Macintosh aanpassingen aanzetten" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "sluimer tussen elke opdracht in test suite" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "test case uitvoeren" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "schrijf ttf en oet bestanden\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Kan output locatie niet vinden" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Schrijven" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,491 +123,630 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Naam" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Versie" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Toon rooster" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importeren" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Glief volgorde" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Herstellen" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Recente bestanden" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Opslaan" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "_Openen" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Paden samenvoegen" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Paden verplaatsen" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Annuleren" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Rechts klik om nieuwe punten toe te voegen, links klik om punten te " -"verplaatsen" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "en dubbel klik om nieuwe punten op het pad te plaatsen" - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Opslaan?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Verwerpen" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Overzicht" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Overhang" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menu" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Paden samenvoegen" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "Creëer tegenstelling van omlijning" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Verplaats naar pad naar de onderste laag" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Stel precisie in" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Toon volledig unicode karater set" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Toon standaard karakter set" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Verwijder geselecteerde glief" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 #, fuzzy msgid "Show guidelines for x-height and baseline" msgstr "Toon hulplijnen voor x-hoogte en basislijn" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 #, fuzzy msgid "Show guidelines at top and bottom margin" msgstr "Toon hulplijnen aan boven- en ondermarge" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Inzoomen" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Uitzoomen" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Zoom naar schaal 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Toon volledig glief" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "Zoom in op regio grenzen" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Zoom in op achtergrond afbeelding" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Vorige weergave" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Volgende weergave" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Stel grootte in voor achtergrond afbeelding" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Toon/verberg achtergrond afbeelding" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Voeg een nieuwe achtergrond afbeelding toe" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Creëer miniaturen" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Stel contrast voor achtergrond afbeelding in" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Lijnkleur" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Lijnbreedte" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Kleur greep" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Stel precisie in" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Stel grootte voor rooster in" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Recente bestanden" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Toon rooster" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importeren" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Overhang" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Glief volgorde" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menu" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Opslaan" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "_Openen" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Paden verplaatsen" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Overzicht" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Annuleren" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Rechts klik om nieuwe punten toe te voegen, links klik om punten te " +"verplaatsen" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "en dubbel klik om nieuwe punten op het pad te plaatsen" + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Opslaan?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Verwerpen" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Nieuwe versie" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Versie" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Nieuw" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Openen" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Opslaan" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Opslaan _als" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exporteer" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Voorbeeld" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Overhang" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Afsluiten" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Ongedaan maken" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Kopiëren" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "_Plakken" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_SVG importeren" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Sluit tabblad" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Zoomen" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Verplaatsen" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Toon _volledig unicode karakter set" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Bestand" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Bewerk" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Tabblad" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "H_ulpmiddelen" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Overhang" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Naam" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "Schrijven" + +#~ msgid "Recover" +#~ msgstr "Herstellen" + #~ msgid "Export" #~ msgstr "Exporteren" diff -Nru birdfont-0.28/po/oc.po birdfont-0.31/po/oc.po --- birdfont-0.28/po/oc.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/oc.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-05-06 12:45+0000\n" "Last-Translator: Cédric \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1367844308.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Utilizacion" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "FICHIÈR" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPCION" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "afichar las coordenadas dins l'imatge del glyph" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "quitar en cas de fracàs del tèst d'una casa" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "Tractar los avertiments coma d'errors" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "afichar aqueste messatge" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "autorizar las personalizacions de Mac" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "aviar lo tèst de casa" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "enregistrar al format ttf e eot.\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Impossible de trobar lo dorsièr de sortida" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Escritura" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,487 +123,626 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Nom" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Version" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Afichar la grasilha" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importar" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Sequéncia del glyph" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Recuperar" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Fichièrs recents" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Enregistrar" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Dobrir" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Fusionar los camins" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Cambiar los camins" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Pas cap de glyph dins aqueste apercebut." - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Anullar" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "Clic drech per apondre de punts, clic esquèrra per los suprimir" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "e clic doble per apondre de punts sul fuèlh." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Enregistrar ?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Abandonar" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Resumit" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Interletratge" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menú" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "Crear un punt de corba per la linha seleccionada." -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Fusionar los camins" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Desplaçar lo fuèlh cap al calc" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Definir la precision" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Afichar tota la lista dels caractèrs unicode." -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Afichar lo jòc de caractèrs per defaut." -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Escafar lo glyph seleccionat." -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Zoom avant" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Zoom arrièr" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Zoom a l'escala 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Afichar lo glyph complet" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Zoom sus l'imatge de rèire plan." -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Visualizacion precedenta" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Visualizacion seguenta" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Definir la talha de l'imatge de rèire plan." -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Afichar / amagar l'imatge de rèire plan." -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Creacion de miniaturas" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Definir lo contraste dels imatges de fons." -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Color del contorn" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Definir la precision" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Definir las dimensions de la grasilha." -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Fichièrs recents" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Afichar la grasilha" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importar" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Interletratge" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Sequéncia del glyph" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menú" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Enregistrar" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Dobrir" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Cambiar los camins" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Resumit" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Pas cap de glyph dins aqueste apercebut." + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Anullar" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "Clic drech per apondre de punts, clic esquèrra per los suprimir" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "e clic doble per apondre de punts sul fuèlh." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Enregistrar ?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Abandonar" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Version novèla" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Version" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Novèl" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Dobrir" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Enregistrar" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Enregistrar _jos" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exportar" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Previsualizacion" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Interletratge" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Sortir" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Anullar" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Copiar" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "_Pegar" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importar SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Tampar l'onglet" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Zoom" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Desplaçar" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Afichar _tota la lista dels caractèrs unicode" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Fichièr" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Edicion" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Onglet" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Aisina" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Interletratge" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Nom" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "Escritura" + +#~ msgid "Recover" +#~ msgstr "Recuperar" + #~ msgid "Export" #~ msgstr "Exportar" diff -Nru birdfont-0.28/po/pt.po birdfont-0.31/po/pt.po --- birdfont-0.28/po/pt.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/pt.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-06-07 09:06+0000\n" "Last-Translator: dgarcia \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1370595960.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Utilização" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "FICHEIRO" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPÇÃO" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "mostrar esta mensagem" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "ativar personalizações do Machintosh" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "gravar ficheiros ttf e eot\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Não é possível encontrar a diretoria de destino" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Gravação" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,491 +123,630 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Nome" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Versão" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Mostrar Grelha" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importar" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Recuperar" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Ficheiros Recentes" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Guardar" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Abrir" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Unir Caminhos" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Mover Caminhos" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Cancelar" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Clique direito para adicionar novos pontos, clique esquerdo para mover os " -"pontos" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "e clique duplo para adicionar novo ponto no caminho." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Guardar?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Ignorar" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Resumo" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Espaçamento" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menu" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Unir Caminhos" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Definir Precisão" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Zoom +" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Zoom -" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Zoom à escala 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 #, fuzzy msgid "Zoom in background image" msgstr "Cortar imagem de fundo" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Visualização Anterior" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Visualização Seguinte" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Definir o tamanho da imagem de fundo" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Mostrar/Ocultar a imagem de fundo" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Inserir uma nova imagem de fundo" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Criação de Miniaturas" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Definir o contraste para a imagem de fundo" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Cor da Pincelada" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Largura da Pincelada " -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Gerir Cor" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Definir Precisão" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Definir o tamanho para a grelha" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Ficheiros Recentes" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Mostrar Grelha" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importar" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Espaçamento" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menu" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Guardar" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Abrir" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Mover Caminhos" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Resumo" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Cancelar" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Clique direito para adicionar novos pontos, clique esquerdo para mover os " +"pontos" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "e clique duplo para adicionar novo ponto no caminho." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Guardar?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Ignorar" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Nova Versão" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Versão" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Novo" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Abrir" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Guardar" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Guardar_Como ..." -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exportar" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Pré-visualizar" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Espaçamento" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Sair" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "An_ular" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Copiar" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "Co_lar" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importar SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Fechar Separador" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 #, fuzzy msgid "_Zoom" msgstr "_Zoom" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Mover" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Mostrar Conjunto de _Carateres Completo Unicode" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Ficheiro" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Editar" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Separador" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Ferramenta" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Espaçamento" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Nome" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "Gravação" + +#~ msgid "Recover" +#~ msgstr "Recuperar" + #~ msgid "Export" #~ msgstr "Exportar" diff -Nru birdfont-0.28/po/pt_BR.po birdfont-0.31/po/pt_BR.po --- birdfont-0.28/po/pt_BR.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/pt_BR.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-07-08 20:36+0000\n" "Last-Translator: Luiz Fernando \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1373315779.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Uso" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "ARQUIVO" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPÇÃO" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "exibir coordenadas na visualização de caracteres" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "sair se um caso de teste falhar" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "tratar avisos como fatais" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "exibir esta mensagem" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "permitir personalização para Macintosh" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "pausar entre cada comando na suíte de testes" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "executar caso de teste" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "salvar arquivos ttf e eot\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Não foi possível encontrar a pasta de destino" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Gravando" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,489 +123,632 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c ç d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C Ç D E F G H I J K L M O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "Descrição" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "Nome Postscript" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Nome" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "Estilo" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "Identificador único" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Versão" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "Direito autoral" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Exibir grade" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importar" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Sequência de caracteres" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Recuperar" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "Remover todos" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Arquivos recentes" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Salvar" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Abrir" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Mesclar caminhos" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Mover caminhos" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Nenhum caractere para exibição." - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "Veja também:" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Cancelar" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Clique com o botão da direita para adicionar pontos, clique com a esquerda " -"para mover" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "e utilize o clique duplo para adicionar um ponto ao caminho." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Salvar?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Descartar" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Visão geral" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Espaçamento entre caracteres" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menu" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "Vincular alças de ajuste para o ponto selecionado" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Mesclar caminhos" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "Inverter caminho" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Mover para caminho para camada inferior" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Definir precisão" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Exibir sequência de caracteres unicode completa" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Exibir sequência de caracteres padrão" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Excluír caractere selecionado" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "Exibir guias" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "Exibir guias para x-height e baseline" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "Exibir guias de margem superior e inferior" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Aumentar zoom" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Diminuir zoom" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Zoom para escala 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Ajustar para caractere" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "Ajustar para limites do caractere" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Ajustar zoom para imagem de fundo" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Visualização anterior" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Próxima visualização" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Definir tamanho da imagem de fundo" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Exibir/ocultar a imagem de fundo" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Inserir nova imagem de fundo" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Gerar miniaturas" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Definir contraste para a imagem de fundo" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Espessura do contorno" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Espessura do contorno" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Cor das alças de ajuste" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Definir precisão" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Cor das alças de ajuste" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Arquivos recentes" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Exibir grade" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importar" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Espaçamento entre caracteres" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Sequência de caracteres" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menu" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Salvar" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Abrir" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Mover caminhos" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Visão geral" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Nenhum caractere para exibição." + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "Veja também:" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Cancelar" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Clique com o botão da direita para adicionar pontos, clique com a esquerda " +"para mover" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "e utilize o clique duplo para adicionar um ponto ao caminho." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Salvar?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Descartar" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Nova versão" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Versão" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Novo" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Abrir" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Salvar" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Salvar _como" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exportar" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Visualizar" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Ajustar espaçamento" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "Sai_r" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Desfazer" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Copiar" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "Co_lar" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importar SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Fechar aba" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Ampliar" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Mover" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "_Exibir sequência de caracteres unicode completa" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Arquivo" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Editar" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Aba" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Ferramenta" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Ajustar espaçamento" + +#: birdfont/GtkWindow.vala:1148 +#, fuzzy +msgid "PostScript Name" +msgstr "Nome Postscript" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Nome" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "Estilo" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "Identificador único" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "Direito autoral" + +#~ msgid "Writing" +#~ msgstr "Gravando" + +#~ msgid "Recover" +#~ msgstr "Recuperar" + +#~ msgid "Delete all" +#~ msgstr "Remover todos" + #~ msgid "Full name (name & style)" #~ msgstr "Nome completo (nome e estilo)" diff -Nru birdfont-0.28/po/ru.po birdfont-0.31/po/ru.po --- birdfont-0.28/po/ru.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/ru.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" -"PO-Revision-Date: 2013-03-14 23:21+0000\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" +"PO-Revision-Date: 2013-09-10 22:45+0000\n" "Last-Translator: Anonymous Pootle User\n" "Language-Team: LANGUAGE \n" "Language: ru\n" @@ -17,51 +17,55 @@ "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.5.0-beta1\n" -"X-POOTLE-MTIME: 1363303262.0\n" +"X-POOTLE-MTIME: 1378853143.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Применить" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "ФАЙЛ" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "ПАРАМЕТРЫ" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "показывать координаты в окне редактора" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "выйти, если тест неудачен" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "рассматривать предупреждение как критическую ошибку" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "показать это сообщение" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "включить настройки Machintosh" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "Не переводить" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "пауза между действиями в тестовом режиме" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "запустить тест" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" -msgstr "" +msgstr "Фоны" #: libbirdfont/BackgroundTool.vala:36 msgid "Move, resize and rotate background image" @@ -87,13 +91,17 @@ msgid "write ttf and eot files\n" msgstr "записать ttf и eot файлы\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Выходной каталог не найден" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Запись" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "Загружается база данных символов юникода" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "Круг" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -101,505 +109,666 @@ #: libbirdfont/DefaultCharactersSet.vala:25 msgid "Default language" -msgstr "" +msgstr "Язык по умолчанию" #: libbirdfont/DefaultCharactersSet.vala:26 msgid "Private use area" -msgstr "" +msgstr "Область пользователя" #: libbirdfont/DefaultCharactersSet.vala:28 msgid "Chinese" -msgstr "" +msgstr "Китайский" #: libbirdfont/DefaultCharactersSet.vala:29 msgid "English" -msgstr "" +msgstr "Английский" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" -msgstr "" +msgid "Japanese" +msgstr "Японский" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" -msgstr "" +msgid "Javanese" +msgstr "Яванский" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "Русский" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" -msgstr "" +msgstr "Шведский" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Название" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Версия" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "" +msgstr "Описание" -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Показать сетку" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Импортировать" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Последовательность глифов" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Восстановить" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Последние файлы" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Сохранить" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Открыть" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Объединить контуры" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Перемещение контура" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Не показывать глифы" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Отмена" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Кликните правой кнопкой мыши, чтобы добавить новые узлы, зажмите левую " -"кнопку мыши, чтобы перемещать узлы" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "и двойной клик чтобы добавить новый узел на контур." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Сохранить?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Не сохранять" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Обзор" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Кернинг" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Меню" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" -msgstr "" +msgstr "Создать квадратную кривую Безье" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" -msgstr "" +msgstr "Создать кубическую кривую Безье" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" -msgstr "" +msgstr "Путь с двумя управляющими рычагами" + +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "Преобразовать выбранные точки" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "Рычаги управления узла" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" -msgstr "" +msgstr "Симметричные рычаги" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." -msgstr "" +msgstr "Конвертировать сегмент в линию" -#: libbirdfont/Toolbox.vala:163 -#, fuzzy +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Объединить контуры" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" -msgstr "Создание общего контура" +msgstr "Создать контур из линии" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Переместить контур на слой ниже" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Чуствительность рычагов" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Показать полный набор символов Unicode" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Показать набор символов по умолчанию" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 +#, fuzzy msgid "Show all characters in the font" -msgstr "" +msgstr "Показать все символы шрифта" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Удалить выбранный глиф" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "Показать ограничители для строчных литер" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "Показать ограничители верхних и нижних полей" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Увеличить" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Уменьшить" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Масштабировать 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Показать глиф полностью" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "Увеличить границы области" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Увеличить фоновое изображение" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Предыдущая вкладка" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Следующая вкладка" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Установить размер фонового изображения" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Показать/Спрятать фоновое изображение" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Вставить новое фоновое изображение" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Создание эскизов" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Установите контраст для фонового изображения" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Цвет контура" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Толщина контура" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Цвет рычага" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Чуствительность рычагов" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Установить размер сетки" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "" + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Последние файлы" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "Резервная копия" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "Файлы" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Показать сетку" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Импортировать" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Кернинг" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +#, fuzzy +msgid "Kerning:" +msgstr "Кернинг" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Последовательность глифов" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Меню" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Сохранить" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Открыть" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Перемещение контура" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Обзор" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Не показывать глифы" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Отмена" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Кликните правой кнопкой мыши, чтобы добавить новые узлы, зажмите левую " +"кнопку мыши, чтобы перемещать узлы" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "и двойной клик чтобы добавить новый узел на контур." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Сохранить?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Не сохранять" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Новая версия" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Версия" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Новый" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Открыть" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +#, fuzzy +msgid "_Recent Files" +msgstr "Последние файлы" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Сохранить" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Сохранить _как" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Экспортировать" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Предпросмотр" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Кернинг" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Выйти" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Отменить" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Копировать" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "_Вставить" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 +#, fuzzy msgid "Select All Pa_ths" +msgstr "_Выделить все контуры" + +#: birdfont/GtkWindow.vala:559 +msgid "_Search" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:564 +#, fuzzy msgid "_Export Glyph as SVG" -msgstr "" +msgstr "_Экспортировать глиф как SVG" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Импортировать SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 +#, fuzzy msgid "Close _Path" -msgstr "" +msgstr "_Замкнуть контур" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 +#, fuzzy msgid "_Glyph Sequence" +msgstr "Последовательность глифов" + +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" msgstr "" -#: birdfont/GtkWindow.vala:556 -msgid "_Select Point Above" +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:593 +#, fuzzy +msgid "_Select Point Above" +msgstr "_Выбрать узел выше" + +#: birdfont/GtkWindow.vala:597 +#, fuzzy msgid "Select _Next Point" -msgstr "" +msgstr "_Выбрать следующий узел" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 +#, fuzzy msgid "Select _Previous Point" -msgstr "" +msgstr "_Выбрать предыдущий узел" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 +#, fuzzy msgid "Select Point _Below" -msgstr "" +msgstr "_Выбрать узел ниже" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 +#, fuzzy msgid "_Next Tab" -msgstr "" +msgstr "_Следующая вкладка" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 +#, fuzzy msgid "_Previous Tab" -msgstr "" +msgstr "_Предыдущая вкладка" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Закрыть вкладку" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 +#, fuzzy msgid "Close _All Tabs" -msgstr "" +msgstr "_Закрыть все вкладки" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 +#, fuzzy msgid "_Create Path" -msgstr "" +msgstr "_Создать контур" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Масштабирование" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 +#, fuzzy msgid "_Create Counter Path" -msgstr "" +msgstr "_Объединить контуры" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Переместить" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "_Показать полный набор символов Unicode" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 +#, fuzzy msgid "Show De_fault Characters Set" -msgstr "" +msgstr "_Показать набор символов по умолчанию" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 +#, fuzzy msgid "Show Characters in Font" -msgstr "" +msgstr "_Показать символы шрифта" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 +#, fuzzy msgid "Add New _Grid Item" -msgstr "" +msgstr "_Добавить новый элемент сетки" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 +#, fuzzy msgid "Remove Gr_id Item" -msgstr "" +msgstr "_Удалить элемент сетки" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 +#, fuzzy msgid "_Zoom In" -msgstr "" +msgstr "_Увеличить" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 +#, fuzzy msgid "Zoom _Out" -msgstr "" +msgstr "_Уменьшить" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 +#, fuzzy msgid "Zoom to _Scale 1:1" +msgstr "_Масштабировать 1:1" + +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Файл" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Правка" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Вкладки" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Инструменты" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Кернинг" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Название" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "" + +#~ msgid "Writing" +#~ msgstr "Запись" + +#~ msgid "Recover" +#~ msgstr "Восстановить" + #~ msgid "Export" #~ msgstr "Экспортировать" diff -Nru birdfont-0.28/po/sv.po birdfont-0.31/po/sv.po --- birdfont-0.28/po/sv.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/sv.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" -"PO-Revision-Date: 2013-08-04 19:46+0000\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" +"PO-Revision-Date: 2013-09-09 21:16+0000\n" "Last-Translator: Johan \n" "Language-Team: LANGUAGE \n" "Language: sv\n" @@ -16,49 +16,53 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.5.0-beta1\n" -"X-POOTLE-MTIME: 1375645611.0\n" +"X-POOTLE-MTIME: 1378761416.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Användning" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "FIL" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "FLAGGOR" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "visa koordinater i redigeringsfönstret" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "avsluta om ett test misslyckas" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "behandla varningar som fel" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "visa detta meddelande" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "använd inställningar Machintosh" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "Översätt inte" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "vänta mellan varje test" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "utför automatisk testning" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "Bakgrunder" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "skriv ttf- och eot-filer\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "Kan inte hitta mappen som filerna ska skrivas till" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Skriver" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "Laddar unicode databasen" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "Cirkel" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,491 +123,650 @@ msgstr "Engelska" #: libbirdfont/DefaultCharactersSet.vala:30 +msgid "Greek" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:31 msgid "Japanese" msgstr "Japanska" -#: libbirdfont/DefaultCharactersSet.vala:31 +#: libbirdfont/DefaultCharactersSet.vala:32 msgid "Javanese" msgstr "Javanesiska" -#: libbirdfont/DefaultCharactersSet.vala:32 +#: libbirdfont/DefaultCharactersSet.vala:33 msgid "Russian" msgstr "Ryska" -#: libbirdfont/DefaultCharactersSet.vala:33 +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "Svenska" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z å ä ö" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "Beskrivning" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "Postscript namn" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "Namn" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "Stil" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "Hela namnet (namn och stil)" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "Unik identifierare" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Version" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "Upphovsrätt" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Visa rutnät" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "Importera" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "Teckenuppsättning" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "Visa standard tecken" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "Teckensekvens" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "Stäng" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Återställ" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "Radera alla" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "Filer" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Senast använda filer" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "Spara" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "Öppna" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "Sammanfoga slingor" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "Flytta objekt" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "Inga tecken att visa." - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "Se även:" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "Skriv över TTF filen?" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "Skriv över" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "Avbryt" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "Ja, fråga inte igen." - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" -"Högerklicka eller använd vänster kommandotangent för att lägga till nya " -"punkter" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "" -"Högerklicka för att lägga till nya punkter, vänsterklicka för att flytta " -"punkter" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "och dubbelklicka för att lägga till ny punkt på slingan." - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "Spara?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "Spara inte" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "Översikt" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "Kerning" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Meny" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "Skapa kvadratiska Bézier slingor" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "Skapa kubiska Bézier slingor" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" msgstr "Kvadratisk slinga med två linjehandtag" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "Konvertera markerade punkter" + +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "Knyt handtagen för den valda kontrollpunkten" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" msgstr "Symmetriska handtag" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." msgstr "Konvertera segmentet till linje." -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "Sammanfoga slingor" + +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" msgstr "Skapa insida från kontur" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "Flytta slingan till bottenlagret" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" msgstr "Vänd slingan vertikalt" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" msgstr "Vänd slingan horisontellt" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "Ställ in precision" - -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "Visa alla unicodetecken" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "Visa förvald teckenkodning" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" msgstr "Visa alla typsnittets tecken" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "Radera markerade tecken" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "Visa stödlinjer" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "Visa stödlinjer för x-höjd och baslinje" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "Visa stödlinjer för botten- och toppmarginaler" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "Zooma in" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "Zooma ut" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "Visa i skala 1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "Visa hela" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "Visa avgränsningar" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "Visa hela bakgrundsbilden" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "Föregående vy" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "Nästa vy" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "Ställ in storleken på bakgrundsbilden" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "Visa/dölj bakgrundsbilden" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "Lägg till en ny bakgrundsbild" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "Skapar miniatyrbilder" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "Ställ in bakgrundsbildens kontrast" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "Linjefärg" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "Linjebredd" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "Handtagsfärg" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "Ställ in precision" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "Visa handtag för alla punkter eller endast för de valda punkterna." + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "Objektfärg" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "Välj fyllnadsfärg för öppna slingor." + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "Använd TTF enheter." + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "Ställ in storleken på rutmönstret" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "Skriver TTF och EOT filer." + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "Skriver SVG fil." + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "Ingen font är skapad än." + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Senast använda filer" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "Säkerhetskopior" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "Filer" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Visa rutnät" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "Importera" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "Kerning" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "Klassen är inte i rätt format." + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" +"Lägg till enstaka tecken med med separerade av mellanslag och sekvenser av " +"tecken på formen A-Z." + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" +"Skriv ”space” för att justera avståndet mot mellanslag och ”divis” för att " +"justera avståndet mot -." + +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" +msgstr "Kerning:" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "Kerning par" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" +"Högerklicka för att redigera klassen och vänsterklicka för att justera " +"avståndet för de tecken som ingår i klassen." + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "Kerning klass" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "Lägg till" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "Skapa en ny kerning klass" + +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" +msgstr "Teckenuppsättning" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "Teckensekvens" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "Stäng" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Meny" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "Spara" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "Öppna" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "Flytta objekt" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "Sök" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "Filtrera" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "Översikt" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "Inga tecken att visa." + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "Se även:" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "Skriv över TTF filen?" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "Skriv över" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "Avbryt" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "Ja, fråga inte igen." + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "" +"Högerklicka eller använd vänster kommandotangent för att lägga till nya " +"punkter" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "" +"Högerklicka för att lägga till nya punkter, vänsterklicka för att flytta " +"punkter" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "och dubbelklicka för att lägga till ny punkt på slingan." + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "Rektangel" + +#: libbirdfont/ResizeTool.vala:39 +#, fuzzy +msgid "Resize and rotate paths" +msgstr "Ändra storlek på slingor" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "Spara?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "Spara inte" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "Ny version" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Version" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "_Ny" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "_Öppna" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "S_enast använda filer" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "_Spara" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "Spara so_m" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "_Exportera" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "_Förhandsgranska" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "Namn och _beskrivning" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "_Kerning" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "Välj _teckentabell" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "_Avsluta" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "_Ångra" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "_Kopiera" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "Klistra _in" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "Klistra in på _plats" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "_Markera alla slingor" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "_Sök" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "_Exportera tecken som SVG" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "_Importera SVG" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "Stäng _slinga" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "_Teckensekvens" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "Använd tecken som _bakgrund" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "_Ta bort bakgrundstecknet" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "Välj punkten _ovanför" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "Välj punkten till _höger" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "Välj punkten till _vänster" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "Välj punkten _nedanför" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "_Nästa flik" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "_Föregående flik" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "_Stäng flik" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "Stäng _alla flikar" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "Skapa _kontur" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "_Zoom" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "Skapa _insida" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "_Flytta" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "Visa alla _unicode tecken" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "Visa _svenska tecken" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "Visa alla typsnittets tecken" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "Lägg till storlek för nytt _rutnät" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "Ta bort storlek för rut_nätet" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "_Zooma in" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "Zooma _ut" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "Visa i skala _1:1" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "Visa kerning _flik" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "_Lista alla kerning par" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "_Ta bort alla kerning par" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "Välj _nästa kerning par" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "Välj _föregående kerning par" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "_Arkiv" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "_Redigera" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "_Flik" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "_Verktyg" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "_Kerning" + +#: birdfont/GtkWindow.vala:1148 +#, fuzzy +msgid "PostScript Name" +msgstr "PostScript namn" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "Namn" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "Stil" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "Fet" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "Kursiv" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "Linjebredd" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "Hela namnet (namn och stil)" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "Unik identifierare" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "Upphovsrätt" + +#~ msgid "Writing" +#~ msgstr "Skriver" + +#~ msgid "Postscript name" +#~ msgstr "Postscript namn" + +#~ msgid "Character set" +#~ msgstr "Teckenuppsättning" + +#~ msgid "Select default character set" +#~ msgstr "Visa standard tecken" + +#~ msgid "Recover" +#~ msgstr "Återställ" + +#~ msgid "Delete all" +#~ msgstr "Radera alla" + #~ msgid "Full name (name & style)" #~ msgstr "Hela namnet (namn & stil)" diff -Nru birdfont-0.28/po/tr.po birdfont-0.31/po/tr.po --- birdfont-0.28/po/tr.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/tr.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" "PO-Revision-Date: 2013-07-06 20:15+0000\n" "Last-Translator: Servet \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,51 @@ "X-Generator: Pootle 2.5.0-beta1\n" "X-POOTLE-MTIME: 1373141719.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "Kullanım" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "DOSYA" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "SEÇENEK" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "bu mesajı göster" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "Machintosh özelleştirmelerini etkinleştir" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" msgstr "" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "Yazılıyor" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -115,487 +123,629 @@ msgstr "" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" +msgid "Japanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" +msgid "Javanese" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" msgstr "" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" +#: libbirdfont/DrawingTools.vala:78 +msgid "Create quadratic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" +#: libbirdfont/DrawingTools.vala:86 +msgid "Create cubic Bézier curves" msgstr "" -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" +#: libbirdfont/DrawingTools.vala:94 +msgid "Quadratic path with two line handles" msgstr "" -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" msgstr "" -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" +#: libbirdfont/DrawingTools.vala:111 +msgid "Tie curve handles for the selected edit point" msgstr "" -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "Sürüm" +#: libbirdfont/DrawingTools.vala:147 +msgid "Symmetrical handles" +msgstr "" -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "Telif Hakkı" +#: libbirdfont/DrawingTools.vala:169 +msgid "Convert segment to line." +msgstr "" -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "Izgarayı göster" +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "" -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "İçe Aktar" +#: libbirdfont/DrawingTools.vala:184 +msgid "Create counter from outline" +msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" +#: libbirdfont/DrawingTools.vala:196 +msgid "Move to path to the bottom layer" msgstr "" -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" +#: libbirdfont/DrawingTools.vala:207 +msgid "Flip path vertically" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" +#: libbirdfont/DrawingTools.vala:214 +msgid "Flip path horizontally" msgstr "" -#: libbirdfont/MainWindow.vala:109 -msgid "Close" +#: libbirdfont/DrawingTools.vala:222 +msgid "Show full unicode characters set" msgstr "" -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "Kurtar" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "Tümünü sil" +#: libbirdfont/DrawingTools.vala:238 +msgid "Show default characters set" +msgstr "" -#: libbirdfont/MenuTab.vala:155 -msgid "Files" +#: libbirdfont/DrawingTools.vala:254 +msgid "Show all characters in the font" msgstr "" -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "Son dosyalar" +#: libbirdfont/DrawingTools.vala:268 +msgid "Delete selected glyph" +msgstr "" -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" +#: libbirdfont/DrawingTools.vala:323 +msgid "Show guidelines" msgstr "" -#: libbirdfont/MenuTab.vala:444 -msgid "Open" +#: libbirdfont/DrawingTools.vala:334 +msgid "Show guidelines for x-height and baseline" msgstr "" -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" +#: libbirdfont/DrawingTools.vala:349 +msgid "Show guidelines at top and bottom margin" msgstr "" -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" +#: libbirdfont/DrawingTools.vala:367 +msgid "Zoom in" +msgstr "Yakınlaştır" + +#: libbirdfont/DrawingTools.vala:374 +msgid "Zoom out" +msgstr "Uzaklaştır" + +#: libbirdfont/DrawingTools.vala:381 +msgid "Zoom to scale 1:1" msgstr "" -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." +#: libbirdfont/DrawingTools.vala:389 +msgid "Show full glyph" msgstr "" -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "Ayrıca bakınız:" +#: libbirdfont/DrawingTools.vala:396 +msgid "Zoom in at region boundries" +msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" +#: libbirdfont/DrawingTools.vala:403 +msgid "Zoom in background image" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" +#: libbirdfont/DrawingTools.vala:416 +msgid "Previous view" +msgstr "Önceki görünüm" + +#: libbirdfont/DrawingTools.vala:422 +msgid "Next view" +msgstr "Sonraki görünüm" + +#: libbirdfont/DrawingTools.vala:436 +msgid "Set size for background image" msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "İptal" +#: libbirdfont/DrawingTools.vala:466 +msgid "Show/hide background image" +msgstr "" -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." +#: libbirdfont/DrawingTools.vala:474 +msgid "Insert a new background image" msgstr "" -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" +#: libbirdfont/DrawingTools.vala:479 +msgid "Creating thumbnails" +msgstr "Küçük resimler oluşturuluyor" + +#: libbirdfont/DrawingTools.vala:498 +msgid "Set contrast for background image" msgstr "" -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" +#: libbirdfont/DrawingTools.vala:517 +msgid "Stroke color" msgstr "" -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." +#: libbirdfont/DrawingTools.vala:539 +msgid "Stroke width" msgstr "" -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" +#: libbirdfont/DrawingTools.vala:559 +msgid "Handle color" msgstr "" -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" msgstr "" -#: libbirdfont/TabBar.vala:492 -msgid "Overview" +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." msgstr "" -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" msgstr "" -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "Menü" +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" -#: libbirdfont/Toolbox.vala:87 -msgid "Create quadratic Bézier curves" +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." msgstr "" -#: libbirdfont/Toolbox.vala:95 -msgid "Create cubic Bézier curves" +#: libbirdfont/DrawingTools.vala:805 +msgid "Set size for grid" msgstr "" -#: libbirdfont/Toolbox.vala:103 -msgid "Quadratic path with two line handles" +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." msgstr "" -#: libbirdfont/Toolbox.vala:111 -msgid "Tie curve handles for the selected edit point" +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." msgstr "" -#: libbirdfont/Toolbox.vala:131 -msgid "Symmetrical handles" +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." msgstr "" -#: libbirdfont/Toolbox.vala:152 -msgid "Convert segment to line." +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "Son dosyalar" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" msgstr "" -#: libbirdfont/Toolbox.vala:163 -msgid "Create counter from outline" +#: libbirdfont/FileTab.vala:271 +msgid "Files" msgstr "" -#: libbirdfont/Toolbox.vala:175 -msgid "Move to path to the bottom layer" +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "Izgarayı göster" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "İçe Aktar" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" msgstr "" -#: libbirdfont/Toolbox.vala:186 -msgid "Flip path vertically" +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." msgstr "" -#: libbirdfont/Toolbox.vala:193 -msgid "Flip path horizontally" +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." msgstr "" -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." msgstr "" -#: libbirdfont/Toolbox.vala:228 -msgid "Show full unicode characters set" +#: libbirdfont/KerningDisplay.vala:204 +msgid "Kerning:" msgstr "" -#: libbirdfont/Toolbox.vala:244 -msgid "Show default characters set" +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" msgstr "" -#: libbirdfont/Toolbox.vala:260 -msgid "Show all characters in the font" +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." msgstr "" -#: libbirdfont/Toolbox.vala:274 -msgid "Delete selected glyph" +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:329 -msgid "Show guidelines" +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" msgstr "" -#: libbirdfont/Toolbox.vala:340 -msgid "Show guidelines for x-height and baseline" +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" msgstr "" -#: libbirdfont/Toolbox.vala:355 -msgid "Show guidelines at top and bottom margin" +#: libbirdfont/LanguageSelectionTab.vala:91 +msgid "Character Set" msgstr "" -#: libbirdfont/Toolbox.vala:373 -msgid "Zoom in" -msgstr "Yakınlaştır" +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "" -#: libbirdfont/Toolbox.vala:380 -msgid "Zoom out" -msgstr "Uzaklaştır" +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "" -#: libbirdfont/Toolbox.vala:387 -msgid "Zoom to scale 1:1" +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "Menü" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" msgstr "" -#: libbirdfont/Toolbox.vala:395 -msgid "Show full glyph" +#: libbirdfont/MenuTab.vala:194 +msgid "Open" msgstr "" -#: libbirdfont/Toolbox.vala:402 -msgid "Zoom in at region boundries" +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" msgstr "" -#: libbirdfont/Toolbox.vala:409 -msgid "Zoom in background image" +#: libbirdfont/OverView.vala:109 +msgid "Search" msgstr "" -#: libbirdfont/Toolbox.vala:422 -msgid "Previous view" -msgstr "Önceki görünüm" +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" -#: libbirdfont/Toolbox.vala:428 -msgid "Next view" -msgstr "Sonraki görünüm" +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "" -#: libbirdfont/Toolbox.vala:435 -msgid "Set size for background image" +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." msgstr "" -#: libbirdfont/Toolbox.vala:465 -msgid "Show/hide background image" +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "Ayrıca bakınız:" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" msgstr "" -#: libbirdfont/Toolbox.vala:473 -msgid "Insert a new background image" +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" msgstr "" -#: libbirdfont/Toolbox.vala:478 -msgid "Creating thumbnails" -msgstr "Küçük resimler oluşturuluyor" +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "İptal" -#: libbirdfont/Toolbox.vala:497 -msgid "Set contrast for background image" +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." msgstr "" -#: libbirdfont/Toolbox.vala:516 -msgid "Stroke color" +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" msgstr "" -#: libbirdfont/Toolbox.vala:538 -msgid "Stroke width" +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" msgstr "" -#: libbirdfont/Toolbox.vala:555 -msgid "Handle color" +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." msgstr "" -#: libbirdfont/Toolbox.vala:803 -msgid "Set size for grid" +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" msgstr "" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "Sürüm" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" msgstr "" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" msgstr "" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:559 +msgid "_Search" +msgstr "" + +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" msgstr "" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" msgstr "" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" msgstr "" -#: birdfont/GtkWindow.vala:556 +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" +msgstr "" + +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" +msgstr "" + +#: birdfont/GtkWindow.vala:593 msgid "_Select Point Above" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:597 msgid "Select _Next Point" msgstr "" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" msgstr "" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" msgstr "" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 msgid "_Next Tab" msgstr "" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 msgid "_Previous Tab" msgstr "" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 msgid "Close _All Tabs" msgstr "" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" msgstr "" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" msgstr "" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" msgstr "" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 msgid "Show Characters in Font" msgstr "" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 msgid "Add New _Grid Item" msgstr "" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 msgid "Remove Gr_id Item" msgstr "" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 msgid "_Zoom In" msgstr "" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 msgid "Zoom _Out" msgstr "" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "" + +#: birdfont/GtkWindow.vala:1148 +msgid "PostScript Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "Telif Hakkı" + +#~ msgid "Writing" +#~ msgstr "Yazılıyor" + +#~ msgid "Recover" +#~ msgstr "Kurtar" + +#~ msgid "Delete all" +#~ msgstr "Tümünü sil" + #~ msgid "Preview" #~ msgstr "Önizleme" diff -Nru birdfont-0.28/po/zh_CN.po birdfont-0.31/po/zh_CN.po --- birdfont-0.28/po/zh_CN.po 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/po/zh_CN.po 2013-09-12 13:33:31.000000000 +0000 @@ -6,9 +6,9 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-04 21:47+0200\n" -"PO-Revision-Date: 2013-08-02 12:31+0000\n" -"Last-Translator: Wei \n" +"POT-Creation-Date: 2013-09-11 18:34+0200\n" +"PO-Revision-Date: 2013-09-11 10:34+0000\n" +"Last-Translator: Johan \n" "Language-Team: LANGUAGE \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" @@ -16,51 +16,55 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Pootle 2.5.0-beta1\n" -"X-POOTLE-MTIME: 1375446676.0\n" +"X-POOTLE-MTIME: 1378895682.0\n" -#: libbirdfont/Argument.vala:231 +#: libbirdfont/Argument.vala:234 msgid "Usage" msgstr "用法" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "FILE" msgstr "FILE" -#: libbirdfont/Argument.vala:233 +#: libbirdfont/Argument.vala:236 msgid "OPTION" msgstr "OPTION" -#: libbirdfont/Argument.vala:235 +#: libbirdfont/Argument.vala:238 msgid "show coordinate in glyph view" msgstr "在字形视图中显示坐标" -#: libbirdfont/Argument.vala:236 +#: libbirdfont/Argument.vala:239 msgid "exit if a test case failes" msgstr "当测试案例失败后退出" -#: libbirdfont/Argument.vala:237 +#: libbirdfont/Argument.vala:240 msgid "treat warnings as fatal" msgstr "将警告当作错误" -#: libbirdfont/Argument.vala:238 +#: libbirdfont/Argument.vala:241 msgid "show this message" msgstr "显示这条消息" -#: libbirdfont/Argument.vala:239 +#: libbirdfont/Argument.vala:242 msgid "enable Machintosh customizations" msgstr "启用Mac电脑自定义" -#: libbirdfont/Argument.vala:240 +#: libbirdfont/Argument.vala:243 +msgid "don't translate" +msgstr "" + +#: libbirdfont/Argument.vala:244 msgid "sleep between each command in test suite" msgstr "在测试程序的每条命令间休眠" -#: libbirdfont/Argument.vala:241 +#: libbirdfont/Argument.vala:245 msgid "run test case" msgstr "执行测试案例" -#: libbirdfont/BackgroundSelection.vala:42 +#: libbirdfont/BackgroundSelection.vala:41 msgid "Backgrounds" -msgstr "" +msgstr "背景" #: libbirdfont/BackgroundTool.vala:36 msgid "Move, resize and rotate background image" @@ -86,13 +90,17 @@ msgid "write ttf and eot files\n" msgstr "写入TTF及EOT文件\n" -#: libbirdfont/BirdFont.vala:117 +#: libbirdfont/BirdFont.vala:120 msgid "Can't find output directory" msgstr "无法找到输出目录" -#: libbirdfont/BirdFont.vala:122 libbirdfont/BirdFont.vala:127 -msgid "Writing" -msgstr "正在写入" +#: libbirdfont/CharDatabase.vala:139 +msgid "Loading the unicode character database" +msgstr "" + +#: libbirdfont/CircleTool.vala:36 +msgid "Circle" +msgstr "" #: libbirdfont/CutBackgroundTool.vala:34 msgid "Crop background image" @@ -100,502 +108,665 @@ #: libbirdfont/DefaultCharactersSet.vala:25 msgid "Default language" -msgstr "" +msgstr "默认语言" #: libbirdfont/DefaultCharactersSet.vala:26 msgid "Private use area" -msgstr "" +msgstr "私用空间" #: libbirdfont/DefaultCharactersSet.vala:28 msgid "Chinese" -msgstr "" +msgstr "中文" #: libbirdfont/DefaultCharactersSet.vala:29 msgid "English" -msgstr "" +msgstr "英语" #: libbirdfont/DefaultCharactersSet.vala:30 -msgid "Japanese" +msgid "Greek" msgstr "" #: libbirdfont/DefaultCharactersSet.vala:31 -msgid "Javanese" -msgstr "" +msgid "Japanese" +msgstr "日语" #: libbirdfont/DefaultCharactersSet.vala:32 -msgid "Russian" -msgstr "" +msgid "Javanese" +msgstr "爪哇语" #: libbirdfont/DefaultCharactersSet.vala:33 +msgid "Russian" +msgstr "俄语" + +#: libbirdfont/DefaultCharactersSet.vala:34 msgid "Swedish" -msgstr "" +msgstr "瑞典语" #. / All lower case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:111 +#: libbirdfont/DefaultCharactersSet.vala:112 msgid "a b c d e f g h i j k l m n o p q r s t u v w x y z" msgstr "a b c d e f g h i j k l m n o p q r s t u v w x y z" #. / All upper case letters in alphabetic order separated by space -#: libbirdfont/DefaultCharactersSet.vala:114 +#: libbirdfont/DefaultCharactersSet.vala:115 msgid "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" msgstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" -#: libbirdfont/DescriptionTab.vala:60 libbirdfont/DescriptionTab.vala:143 +#: libbirdfont/DescriptionTab.vala:29 birdfont/GtkWindow.vala:1211 msgid "Description" msgstr "描述" -#: libbirdfont/DescriptionTab.vala:137 -msgid "Postscript name" -msgstr "Postscript 名称" - -#: libbirdfont/DescriptionTab.vala:138 -msgid "Name" -msgstr "名称" - -#: libbirdfont/DescriptionTab.vala:139 -msgid "Style" -msgstr "样式" - -#: libbirdfont/DescriptionTab.vala:140 -msgid "Full name (name and style)" -msgstr "" - -#: libbirdfont/DescriptionTab.vala:141 -msgid "Unique identifier" -msgstr "唯一标识符" - -#: libbirdfont/DescriptionTab.vala:142 libbirdfont/VersionList.vala:158 -msgid "Version" -msgstr "版本" - -#: libbirdfont/DescriptionTab.vala:144 -msgid "Copyright" -msgstr "版权" - -#: libbirdfont/GridTool.vala:33 -msgid "Show grid" -msgstr "显示网格" - -#: libbirdfont/ImportSvg.vala:27 -msgid "Import" -msgstr "导入" - -#: libbirdfont/LanguageSelectionTab.vala:34 -msgid "Character set" -msgstr "" - -#: libbirdfont/LanguageSelectionTab.vala:42 -msgid "Select default character set" -msgstr "" - -#: libbirdfont/MainWindow.vala:109 -msgid "Glyph sequence" -msgstr "字形序列" - -#: libbirdfont/MainWindow.vala:109 -msgid "Close" -msgstr "" - -#: libbirdfont/MenuTab.vala:78 libbirdfont/MenuTab.vala:157 -msgid "Recover" -msgstr "恢复" - -#: libbirdfont/MenuTab.vala:105 libbirdfont/MenuTab.vala:158 -msgid "Delete all" -msgstr "全部删除" - -#: libbirdfont/MenuTab.vala:155 -msgid "Files" -msgstr "" - -#: libbirdfont/MenuTab.vala:156 -msgid "Recent files" -msgstr "最近打开的文件" - -#: libbirdfont/MenuTab.vala:326 libbirdfont/SaveDialogListener.vala:28 -msgid "Save" -msgstr "保存" - -#: libbirdfont/MenuTab.vala:444 -msgid "Open" -msgstr "打开" - -#: libbirdfont/MergeTool.vala:20 -msgid "Merge paths" -msgstr "合并路径" - -#: libbirdfont/MoveTool.vala:42 -msgid "Move paths" -msgstr "移动路径" - -#: libbirdfont/OverView.vala:334 -msgid "No glyphs in this view." -msgstr "在此视图中没有字形。" - -#: libbirdfont/OverView.vala:849 -msgid "See also:" -msgstr "另见:" - -#: libbirdfont/OverWriteDialogListener.vala:24 -msgid "Overwrite TTF file?" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:25 -msgid "Overwrite" -msgstr "" - -#: libbirdfont/OverWriteDialogListener.vala:26 -msgid "Cancel" -msgstr "取消" - -#: libbirdfont/OverWriteDialogListener.vala:27 -msgid "Yes, don't ask again." -msgstr "" - -#: libbirdfont/PenTool.vala:56 -msgid "Right click or use left command key and click to add new points" -msgstr "" - -#: libbirdfont/PenTool.vala:58 -msgid "Right click to add new points, left click to move points" -msgstr "右键单击以增加新点,左键单击以移动点" - -#: libbirdfont/PenTool.vala:61 -msgid "and double click to add new point on path." -msgstr "双击可以在已有路径上增加新点。" - -#: libbirdfont/SaveDialogListener.vala:27 -msgid "Save?" -msgstr "保存?" - -#: libbirdfont/SaveDialogListener.vala:29 -msgid "Discard" -msgstr "放弃" - -#: libbirdfont/TabBar.vala:492 -msgid "Overview" -msgstr "概览" - -#: libbirdfont/TabBar.vala:494 -msgid "Kerning" -msgstr "字距" - -#: libbirdfont/TabBar.vala:496 -msgid "Menu" -msgstr "菜单" - -#: libbirdfont/Toolbox.vala:87 +#: libbirdfont/DrawingTools.vala:78 msgid "Create quadratic Bézier curves" msgstr "创建二次贝塞尔曲线" -#: libbirdfont/Toolbox.vala:95 +#: libbirdfont/DrawingTools.vala:86 msgid "Create cubic Bézier curves" msgstr "创建三次贝塞尔曲线" -#: libbirdfont/Toolbox.vala:103 +#: libbirdfont/DrawingTools.vala:94 msgid "Quadratic path with two line handles" -msgstr "两柄二次路径" +msgstr "双柄二次路径" + +#: libbirdfont/DrawingTools.vala:102 +msgid "Convert selected points" +msgstr "" -#: libbirdfont/Toolbox.vala:111 +#: libbirdfont/DrawingTools.vala:111 msgid "Tie curve handles for the selected edit point" msgstr "对选定编辑点连接曲柄" -#: libbirdfont/Toolbox.vala:131 +#: libbirdfont/DrawingTools.vala:147 msgid "Symmetrical handles" -msgstr "" +msgstr "对称控制柄" -#: libbirdfont/Toolbox.vala:152 +#: libbirdfont/DrawingTools.vala:169 msgid "Convert segment to line." -msgstr "" +msgstr "将此分段转换为直线" + +#: libbirdfont/DrawingTools.vala:177 +msgid "Merge paths" +msgstr "合并路径" -#: libbirdfont/Toolbox.vala:163 +#: libbirdfont/DrawingTools.vala:184 msgid "Create counter from outline" -msgstr "从轮廓创建计数器" +msgstr "从轮廓创建孔" -#: libbirdfont/Toolbox.vala:175 +#: libbirdfont/DrawingTools.vala:196 msgid "Move to path to the bottom layer" msgstr "将路径移动到底层" -#: libbirdfont/Toolbox.vala:186 +#: libbirdfont/DrawingTools.vala:207 msgid "Flip path vertically" -msgstr "" +msgstr "垂直翻转路径" -#: libbirdfont/Toolbox.vala:193 +#: libbirdfont/DrawingTools.vala:214 msgid "Flip path horizontally" -msgstr "" - -#: libbirdfont/Toolbox.vala:203 -msgid "Set precision" -msgstr "设置精度" +msgstr "水平翻转路径" -#: libbirdfont/Toolbox.vala:228 +#: libbirdfont/DrawingTools.vala:222 msgid "Show full unicode characters set" msgstr "显示完整的Unicode字符集" -#: libbirdfont/Toolbox.vala:244 +#: libbirdfont/DrawingTools.vala:238 msgid "Show default characters set" msgstr "显示默认字符集" -#: libbirdfont/Toolbox.vala:260 +#: libbirdfont/DrawingTools.vala:254 msgid "Show all characters in the font" -msgstr "" +msgstr "显示字体中的全部字符" -#: libbirdfont/Toolbox.vala:274 +#: libbirdfont/DrawingTools.vala:268 msgid "Delete selected glyph" msgstr "删除选定的字形" -#: libbirdfont/Toolbox.vala:329 +#: libbirdfont/DrawingTools.vala:323 msgid "Show guidelines" msgstr "显示准则" -#: libbirdfont/Toolbox.vala:340 +#: libbirdfont/DrawingTools.vala:334 msgid "Show guidelines for x-height and baseline" msgstr "显示x-高度线及底线" -#: libbirdfont/Toolbox.vala:355 +#: libbirdfont/DrawingTools.vala:349 msgid "Show guidelines at top and bottom margin" msgstr "显示顶线及底部边缘线" -#: libbirdfont/Toolbox.vala:373 +#: libbirdfont/DrawingTools.vala:367 msgid "Zoom in" msgstr "放大" -#: libbirdfont/Toolbox.vala:380 +#: libbirdfont/DrawingTools.vala:374 msgid "Zoom out" msgstr "缩小" -#: libbirdfont/Toolbox.vala:387 +#: libbirdfont/DrawingTools.vala:381 msgid "Zoom to scale 1:1" msgstr "缩放至1:1" -#: libbirdfont/Toolbox.vala:395 +#: libbirdfont/DrawingTools.vala:389 msgid "Show full glyph" msgstr "显示完整字形" -#: libbirdfont/Toolbox.vala:402 +#: libbirdfont/DrawingTools.vala:396 msgid "Zoom in at region boundries" msgstr "在区域范围内缩放" -#: libbirdfont/Toolbox.vala:409 +#: libbirdfont/DrawingTools.vala:403 msgid "Zoom in background image" msgstr "缩放背景图像" -#: libbirdfont/Toolbox.vala:422 +#: libbirdfont/DrawingTools.vala:416 msgid "Previous view" msgstr "上一个视图" -#: libbirdfont/Toolbox.vala:428 +#: libbirdfont/DrawingTools.vala:422 msgid "Next view" msgstr "下一个视图" -#: libbirdfont/Toolbox.vala:435 +#: libbirdfont/DrawingTools.vala:436 msgid "Set size for background image" msgstr "设置背景图像的大小" -#: libbirdfont/Toolbox.vala:465 +#: libbirdfont/DrawingTools.vala:466 msgid "Show/hide background image" msgstr "显示或隐藏背景图像" -#: libbirdfont/Toolbox.vala:473 +#: libbirdfont/DrawingTools.vala:474 msgid "Insert a new background image" msgstr "插入新的背景图像" -#: libbirdfont/Toolbox.vala:478 +#: libbirdfont/DrawingTools.vala:479 msgid "Creating thumbnails" msgstr "创建缩略图" -#: libbirdfont/Toolbox.vala:497 +#: libbirdfont/DrawingTools.vala:498 msgid "Set contrast for background image" msgstr "设置背景图像的对比度" -#: libbirdfont/Toolbox.vala:516 +#: libbirdfont/DrawingTools.vala:517 msgid "Stroke color" msgstr "笔划颜色" -#: libbirdfont/Toolbox.vala:538 +#: libbirdfont/DrawingTools.vala:539 msgid "Stroke width" msgstr "笔划宽度" -#: libbirdfont/Toolbox.vala:555 +#: libbirdfont/DrawingTools.vala:559 msgid "Handle color" msgstr "柄颜色" -#: libbirdfont/Toolbox.vala:803 +#: libbirdfont/DrawingTools.vala:583 +msgid "Set precision" +msgstr "设置精度" + +#: libbirdfont/DrawingTools.vala:607 +msgid "Show all control point handles or only handles for the selected points." +msgstr "" + +#: libbirdfont/DrawingTools.vala:616 +msgid "Object color" +msgstr "" + +#: libbirdfont/DrawingTools.vala:637 +msgid "Set fill color for open paths." +msgstr "" + +#: libbirdfont/DrawingTools.vala:645 +msgid "Use TTF units." +msgstr "" + +#: libbirdfont/DrawingTools.vala:805 msgid "Set size for grid" msgstr "设置网格大小" -#: libbirdfont/VersionList.vala:29 +#: libbirdfont/ExportTool.vala:516 +msgid "Writing TTF and EOT files." +msgstr "" + +#: libbirdfont/ExportTool.vala:530 +msgid "Writing SVG file." +msgstr "正在写入SVG文件." + +#: libbirdfont/FileTab.vala:172 +msgid "No fonts created yet." +msgstr "" + +#: libbirdfont/FileTab.vala:181 +msgid "Recent files" +msgstr "最近打开的文件" + +#: libbirdfont/FileTab.vala:205 +msgid "Backup" +msgstr "" + +#: libbirdfont/FileTab.vala:271 +msgid "Files" +msgstr "文件" + +#: libbirdfont/GridTool.vala:35 +msgid "Show grid" +msgstr "显示网格" + +#: libbirdfont/ImportSvg.vala:27 +msgid "Import" +msgstr "导入" + +#: libbirdfont/KerningDisplay.vala:43 +msgid "Kerning" +msgstr "字距" + +#: libbirdfont/KerningDisplay.vala:63 +msgid "The current kerning class is malformed." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:64 +msgid "Add single characters separated by space and ranges on the form A-Z." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:65 +msgid "Type “space” to kern the space character and “divis” to kern -." +msgstr "" + +#: libbirdfont/KerningDisplay.vala:204 +#, fuzzy +msgid "Kerning:" +msgstr "字距" + +#: libbirdfont/KerningList.vala:88 +msgid "Kerning Pairs" +msgstr "" + +#: libbirdfont/KerningRange.vala:49 +msgid "" +"Right click to edit the class and left click to kern glyphs in the class." +msgstr "" + +#: libbirdfont/KerningRange.vala:79 +msgid "Kerning class" +msgstr "" + +#: libbirdfont/KerningRange.vala:79 libbirdfont/SpinButton.vala:108 +msgid "Set" +msgstr "" + +#: libbirdfont/KerningTools.vala:33 +msgid "Create new kerning class" +msgstr "" + +#: libbirdfont/LanguageSelectionTab.vala:91 +#, fuzzy +msgid "Character Set" +msgstr "字符集" + +#: libbirdfont/MainWindow.vala:132 +msgid "Glyph sequence" +msgstr "字形序列" + +#: libbirdfont/MainWindow.vala:132 libbirdfont/SpinButton.vala:108 +msgid "Close" +msgstr "关闭" + +#: libbirdfont/MenuTab.vala:41 +msgid "Menu" +msgstr "菜单" + +#: libbirdfont/MenuTab.vala:74 libbirdfont/SaveDialogListener.vala:28 +msgid "Save" +msgstr "保存" + +#: libbirdfont/MenuTab.vala:194 +msgid "Open" +msgstr "打开" + +#: libbirdfont/MoveTool.vala:37 +msgid "Move paths" +msgstr "移动路径" + +#: libbirdfont/OverView.vala:109 +msgid "Search" +msgstr "" + +#: libbirdfont/OverView.vala:109 +msgid "Filter" +msgstr "" + +#: libbirdfont/OverView.vala:234 +msgid "Overview" +msgstr "概览" + +#: libbirdfont/OverView.vala:372 +msgid "No glyphs in this view." +msgstr "在此视图中没有字形。" + +#: libbirdfont/OverView.vala:905 +msgid "See also:" +msgstr "另见:" + +#: libbirdfont/OverWriteDialogListener.vala:24 +msgid "Overwrite TTF file?" +msgstr "覆盖 TTF 文件?" + +#: libbirdfont/OverWriteDialogListener.vala:25 +msgid "Overwrite" +msgstr "覆盖" + +#: libbirdfont/OverWriteDialogListener.vala:26 +msgid "Cancel" +msgstr "取消" + +#: libbirdfont/OverWriteDialogListener.vala:27 +msgid "Yes, don't ask again." +msgstr "是的,不再询问" + +#: libbirdfont/PenTool.vala:67 +msgid "Right click or use left command key and click to add new points" +msgstr "右键单击或使用左侧 command 键加单击以增加新点" + +#: libbirdfont/PenTool.vala:69 +msgid "Right click to add new points, left click to move points" +msgstr "右键单击以增加新点,左键单击以移动点" + +#: libbirdfont/PenTool.vala:72 +msgid "and double click to add new point on path." +msgstr "双击可以在已有路径上增加新点。" + +#: libbirdfont/RectangleTool.vala:30 +msgid "Rectangle" +msgstr "" + +#: libbirdfont/ResizeTool.vala:39 +msgid "Resize and rotate paths" +msgstr "" + +#: libbirdfont/SaveDialogListener.vala:27 +msgid "Save?" +msgstr "保存?" + +#: libbirdfont/SaveDialogListener.vala:29 +msgid "Discard" +msgstr "放弃" + +#: libbirdfont/VersionList.vala:30 msgid "New version" msgstr "新版本" -#: birdfont/GtkWindow.vala:463 +#: libbirdfont/VersionList.vala:170 birdfont/GtkWindow.vala:1204 +msgid "Version" +msgstr "版本" + +#: birdfont/GtkWindow.vala:486 msgid "_New" msgstr "新建(_N)" -#: birdfont/GtkWindow.vala:468 +#: birdfont/GtkWindow.vala:491 msgid "_Open" msgstr "打开(_O)" -#: birdfont/GtkWindow.vala:473 +#: birdfont/GtkWindow.vala:496 +msgid "_Recent Files" +msgstr "最近打开的文件 (_R)" + +#: birdfont/GtkWindow.vala:500 msgid "_Save" msgstr "保存(_S)" -#: birdfont/GtkWindow.vala:478 +#: birdfont/GtkWindow.vala:505 msgid "Save _as" msgstr "另存为(_A)" -#: birdfont/GtkWindow.vala:482 +#: birdfont/GtkWindow.vala:509 msgid "_Export" msgstr "导出(_E)" -#: birdfont/GtkWindow.vala:488 +#: birdfont/GtkWindow.vala:515 msgid "_Preview" msgstr "预览(_P)" -#: birdfont/GtkWindow.vala:494 +#: birdfont/GtkWindow.vala:521 msgid "Name and _Description" -msgstr "" +msgstr "名称和描述(_D)" -#: birdfont/GtkWindow.vala:498 -msgid "_Kerning" -msgstr "字距(_K)" - -#: birdfont/GtkWindow.vala:503 +#: birdfont/GtkWindow.vala:525 msgid "Select _Character Set" -msgstr "" +msgstr "选择字符集(_C)" -#: birdfont/GtkWindow.vala:507 +#: birdfont/GtkWindow.vala:529 msgid "_Quit" msgstr "退出(_Q)" -#: birdfont/GtkWindow.vala:512 +#: birdfont/GtkWindow.vala:534 msgid "_Undo" msgstr "撤销(_U)" -#: birdfont/GtkWindow.vala:517 +#: birdfont/GtkWindow.vala:539 msgid "_Copy" msgstr "复制(_C)" -#: birdfont/GtkWindow.vala:522 +#: birdfont/GtkWindow.vala:543 msgid "_Paste" msgstr "粘贴(_P)" -#: birdfont/GtkWindow.vala:527 +#: birdfont/GtkWindow.vala:547 +msgid "Paste _In Place" +msgstr "" + +#: birdfont/GtkWindow.vala:552 msgid "Select All Pa_ths" +msgstr "选择所有路径(_T)" + +#: birdfont/GtkWindow.vala:559 +msgid "_Search" msgstr "" -#: birdfont/GtkWindow.vala:535 +#: birdfont/GtkWindow.vala:564 msgid "_Export Glyph as SVG" -msgstr "" +msgstr "导出字形为SVG文件(_E)" -#: birdfont/GtkWindow.vala:539 +#: birdfont/GtkWindow.vala:568 msgid "_Import SVG" msgstr "导入SVG文件(_I)" -#: birdfont/GtkWindow.vala:544 +#: birdfont/GtkWindow.vala:573 msgid "Close _Path" -msgstr "" +msgstr "关闭路径(_P)" -#: birdfont/GtkWindow.vala:549 +#: birdfont/GtkWindow.vala:578 msgid "_Glyph Sequence" +msgstr "字形序列(_G)" + +#: birdfont/GtkWindow.vala:583 +msgid "Set Glyph _Background" msgstr "" -#: birdfont/GtkWindow.vala:556 -msgid "_Select Point Above" +#: birdfont/GtkWindow.vala:587 +msgid "_Remove Glyph Background" msgstr "" -#: birdfont/GtkWindow.vala:560 +#: birdfont/GtkWindow.vala:593 +msgid "_Select Point Above" +msgstr "选择上层点(_S)" + +#: birdfont/GtkWindow.vala:597 +#, fuzzy msgid "Select _Next Point" -msgstr "" +msgstr "选择下个点(_N)" -#: birdfont/GtkWindow.vala:564 +#: birdfont/GtkWindow.vala:601 msgid "Select _Previous Point" -msgstr "" +msgstr "选择上个点(_P)" -#: birdfont/GtkWindow.vala:568 +#: birdfont/GtkWindow.vala:605 msgid "Select Point _Below" -msgstr "" +msgstr "选择下层点 (_B)" -#: birdfont/GtkWindow.vala:573 +#: birdfont/GtkWindow.vala:610 +#, fuzzy msgid "_Next Tab" -msgstr "" +msgstr "下个标签(_N)" -#: birdfont/GtkWindow.vala:586 +#: birdfont/GtkWindow.vala:623 +#, fuzzy msgid "_Previous Tab" -msgstr "" +msgstr "上个标签(_P)" -#: birdfont/GtkWindow.vala:599 +#: birdfont/GtkWindow.vala:636 msgid "_Close tab" msgstr "关闭标签(_C)" -#: birdfont/GtkWindow.vala:613 +#: birdfont/GtkWindow.vala:650 +#, fuzzy msgid "Close _All Tabs" -msgstr "" +msgstr "关闭所有标签(_A)" -#: birdfont/GtkWindow.vala:621 +#: birdfont/GtkWindow.vala:658 msgid "_Create Path" -msgstr "" +msgstr "创建路径(_C)" -#: birdfont/GtkWindow.vala:628 +#: birdfont/GtkWindow.vala:665 msgid "_Zoom" msgstr "创建孔路径(_C)" -#: birdfont/GtkWindow.vala:634 +#: birdfont/GtkWindow.vala:671 msgid "_Create Counter Path" -msgstr "" +msgstr "创建孔路径(_C)" -#: birdfont/GtkWindow.vala:641 +#: birdfont/GtkWindow.vala:678 msgid "_Move" msgstr "移动(_M)" -#: birdfont/GtkWindow.vala:648 +#: birdfont/GtkWindow.vala:685 msgid "Show _full unicode characters set" msgstr "显示完整Unicode字符集(_F)" -#: birdfont/GtkWindow.vala:655 +#: birdfont/GtkWindow.vala:692 msgid "Show De_fault Characters Set" -msgstr "" +msgstr "显示默认字符集(_F)" -#: birdfont/GtkWindow.vala:662 +#: birdfont/GtkWindow.vala:699 +#, fuzzy msgid "Show Characters in Font" -msgstr "" +msgstr "显示字体中所有字符" -#: birdfont/GtkWindow.vala:669 +#: birdfont/GtkWindow.vala:706 +#, fuzzy msgid "Add New _Grid Item" -msgstr "" +msgstr "添加新网格(_G)" -#: birdfont/GtkWindow.vala:675 +#: birdfont/GtkWindow.vala:712 +#, fuzzy msgid "Remove Gr_id Item" -msgstr "" +msgstr "删除此网格(_I)" -#: birdfont/GtkWindow.vala:681 +#: birdfont/GtkWindow.vala:718 +#, fuzzy msgid "_Zoom In" -msgstr "" +msgstr "放大(_Z)" -#: birdfont/GtkWindow.vala:688 +#: birdfont/GtkWindow.vala:725 +#, fuzzy msgid "Zoom _Out" -msgstr "" +msgstr "缩小(_O)" -#: birdfont/GtkWindow.vala:695 +#: birdfont/GtkWindow.vala:732 msgid "Zoom to _Scale 1:1" +msgstr "缩放至 1:1(_S)" + +#: birdfont/GtkWindow.vala:740 +msgid "Show Kerning _Tab" +msgstr "" + +#: birdfont/GtkWindow.vala:747 +msgid "_List Kerning Pairs" +msgstr "" + +#: birdfont/GtkWindow.vala:753 +msgid "_Remove All Kerning Pairs" msgstr "" -#: birdfont/GtkWindow.vala:703 +#: birdfont/GtkWindow.vala:761 +msgid "Select _Next Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:765 +msgid "Select _Previous Kerning Pair" +msgstr "" + +#: birdfont/GtkWindow.vala:770 msgid "_File" msgstr "文件(_F)" -#: birdfont/GtkWindow.vala:706 +#: birdfont/GtkWindow.vala:773 msgid "_Edit" msgstr "编辑(_E)" -#: birdfont/GtkWindow.vala:709 +#: birdfont/GtkWindow.vala:776 msgid "_Tab" msgstr "标签(_T)" -#: birdfont/GtkWindow.vala:712 +#: birdfont/GtkWindow.vala:779 msgid "T_ool" msgstr "工具(_T)" +#: birdfont/GtkWindow.vala:782 +msgid "_Kerning" +msgstr "字距(_K)" + +#: birdfont/GtkWindow.vala:1148 +#, fuzzy +msgid "PostScript Name" +msgstr "Postscript 名称" + +#: birdfont/GtkWindow.vala:1155 +msgid "Name" +msgstr "名称" + +#: birdfont/GtkWindow.vala:1162 +msgid "Style" +msgstr "样式" + +#: birdfont/GtkWindow.vala:1168 +msgid "Bold" +msgstr "" + +#: birdfont/GtkWindow.vala:1175 +msgid "Italic" +msgstr "" + +#: birdfont/GtkWindow.vala:1183 +msgid "Weight" +msgstr "" + +#: birdfont/GtkWindow.vala:1190 +msgid "Full name (name and style)" +msgstr "全名(名称和样式)" + +#: birdfont/GtkWindow.vala:1197 +msgid "Unique identifier" +msgstr "唯一标识符" + +#: birdfont/GtkWindow.vala:1219 +msgid "Copyright" +msgstr "版权" + +#~ msgid "Writing" +#~ msgstr "正在写入" + +#~ msgid "Postscript name" +#~ msgstr "Postscript 名称" + +#~ msgid "Character set" +#~ msgstr "字符集" + +#~ msgid "Select default character set" +#~ msgstr "选择默认字符集" + +#~ msgid "Recover" +#~ msgstr "恢复" + +#~ msgid "Delete all" +#~ msgstr "全部删除" + #~ msgid "Full name (name & style)" #~ msgstr "全名(名字和样式)" diff -Nru birdfont-0.28/scripts/build.py birdfont-0.31/scripts/build.py --- birdfont-0.28/scripts/build.py 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/build.py 2013-09-12 13:33:31.000000000 +0000 @@ -49,6 +49,7 @@ run(cc + " " + cflags + """ \ -c build/libbirdfont/*.c \ + -fPIC \ -D 'GETTEXT_PACKAGE="birdfont"' \ $(pkg-config --cflags gee-1.0) \ $(pkg-config --cflags libxml-2.0) \ @@ -159,7 +160,7 @@ $(pkg-config --cflags gdk-pixbuf-2.0) \ $(pkg-config --cflags webkit-1.0) \ -I ./build/libbirdfont/""") - run("mv ./*.o build/birdfont/") + run("mv ./*.o build/birdfont/") run(cc + " " + ldflags + """ \ build/birdfont/*.o \ diff -Nru birdfont-0.28/scripts/export.sh birdfont-0.31/scripts/export.sh --- birdfont-0.28/scripts/export.sh 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/export.sh 2013-09-12 13:33:31.000000000 +0000 @@ -21,9 +21,12 @@ mkdir -p export cd export +version=$(cat ../../scripts/version.py | grep "VERSION = '" | grep -v "SO_VERSION" | sed -e "s:VERSION = '::" | sed "s:'.*::g") + +rm -rf birdfont-$version + git clone --no-hardlinks --local $rep -version=$(cat ../../scripts/version.py | grep "VERSION = '" | grep -v "SO_VERSION" | sed -e "s:VERSION = '::" | sed "s:'.*::g") mv birdfont birdfont-$version @@ -34,7 +37,8 @@ gzip birdfont-$version.tar -mv birdfont-$version.tar.gz ../ +rm -rf ../birdfont-$version.tar.gz +mv birdfont-$version.tar.gz ../ rm -rf ../export/birdfont-$version diff -Nru birdfont-0.28/scripts/linux_build.py birdfont-0.31/scripts/linux_build.py --- birdfont-0.28/scripts/linux_build.py 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/linux_build.py 2013-09-12 13:33:31.000000000 +0000 @@ -18,15 +18,37 @@ import configfile from run import run import version +from optparse import OptionParser -prefix = "" -valac = "valac" +parser = OptionParser() +parser.add_option("-p", "--prefix", dest="prefix", help="install prefix", metavar="PREFIX") +parser.add_option("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST") +parser.add_option("-c", "--cc", dest="cc", help="select the C compiler", metavar="CC") +parser.add_option("-f", "--cflags", dest="cflags", help="set compiler flags", metavar="CFLAGS") +parser.add_option("-l", "--ldflags", dest="ldflags", help="set linker flags", metavar="LDFLAGS") +parser.add_option("-v", "--valac", dest="valac", help="select vala compiler", metavar="VALAC") + +(options, args) = parser.parse_args() + +if not options.prefix: + options.prefix = "/usr/local" +if not options.cc: + options.cc = "gcc" +if not options.cflags: + options.cflags = "" +if not options.ldflags: + options.ldflags = "" +if not options.valac: + options.valac = "valac" + +prefix = options.prefix +valac = options.valac valaflags = "" -cc = "gcc" -cflags = "" -ldflags = "" -library_cflags = "" -library_ldflags= ""; +cc = options.cc +cflags = options.cflags +ldflags = options.ldflags +library_cflags = options.cflags +library_ldflags= options.ldflags library = "libbirdfont.so." + version.SO_VERSION configfile.write_config (prefix) diff -Nru birdfont-0.28/scripts/mac_build.py birdfont-0.31/scripts/mac_build.py --- birdfont-0.28/scripts/mac_build.py 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/mac_build.py 2013-09-12 13:33:31.000000000 +0000 @@ -27,6 +27,7 @@ parser.add_option("-f", "--cflags", dest="cflags", help="set compiler flags", metavar="CFLAGS") parser.add_option("-l", "--ldflags", dest="ldflags", help="set linker flags", metavar="LDFLAGS") parser.add_option("-v", "--valac", dest="valac", help="select vala compiler", metavar="VALAC") +parser.add_option("-n", "--nogtk", dest="nogtk", help="do not compile the gtk application", metavar="NOGTK", default=False, action="store_false") (options, args) = parser.parse_args() @@ -56,6 +57,8 @@ compile_translations() build.libbirdfont(prefix, cc, library_cflags, library_ldflags, valac, valaflags, library) build.birdfont_export(prefix, cc, cflags, ldflags, valac, valaflags, library) -build.birdfont_gtk(prefix, cc, cflags, ldflags, valac, valaflags, library) + +if not options.nogtk: + build.birdfont_gtk(prefix, cc, cflags, ldflags, valac, valaflags, library) print ("Done") diff -Nru birdfont-0.28/scripts/run.py birdfont-0.31/scripts/run.py --- birdfont-0.28/scripts/run.py 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/run.py 2013-09-12 13:33:31.000000000 +0000 @@ -19,7 +19,7 @@ import subprocess def run(cmd): - cmd = "bash -c \"" + cmd.replace ("\"", "\\\"") + "\"" + cmd = "sh -c \"" + cmd.replace ("\"", "\\\"") + "\"" process = subprocess.Popen (cmd, shell=True) process.communicate()[0] if not process.returncode == 0: diff -Nru birdfont-0.28/scripts/version.py birdfont-0.31/scripts/version.py --- birdfont-0.28/scripts/version.py 2013-08-24 20:18:42.000000000 +0000 +++ birdfont-0.31/scripts/version.py 2013-09-12 13:33:31.000000000 +0000 @@ -16,5 +16,5 @@ along with this program. If not, see . """ -VERSION = '0.28' -SO_VERSION = '5' +VERSION = '0.30' +SO_VERSION = '7'