Xacobeo-0.15000755001750001750 012211074713 14536 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/AUTHORS000444001750001750 36212211074713 15724 0ustar00erodriguezerodriguez000000000000Main developer(s) ================= Emmanuel Rodriguez Contributors - the people who sent patches ========================================== Jozef Kutej Lars Dieckow Xacobeo-0.15/README000444001750001750 334412211074713 15557 0ustar00erodriguezerodriguez000000000000Xacobeo ======= This CPAN package provides a simple GUI for building and running XPath queries. It consists of a graphical user interface which shows the content of an XML document and allows the user to write and execute arbitrary XPath queries. Once a query has been executed its results are displayed in the application. The main goal of this program is to provide a view of the XML document as an XML parser sees it. Thus, each element and attribute is prefixed with a namespace if the node uses one in the original document, this is no matter if in the original document it was declared with a default namespace, if it inherited the parent's namespace or if it was using a prefix. The program registers automatically the namespaces declared in the document. This allows the XPath expressions to use namespaces automatically without any configuration. INSTALLATION To install this module type the following: perl Build.PL ./Build ./Build test ./Build install PROJECT The project is now hosted on github (http://github.com/potyl/xacobeo/) which provides the latest source code and a simple bug tracking. Even tough github provides a download facility, the project's source code bundles will always be published through CPAN. It's easier this way for the project and after all this is a Perl project! BUGS Please when possible try to submit the bugs through the github issue tracker (http://github.com/potyl/xacobeo/issues) otherwise simply create a ticket through RT. COPYRIGHT AND LICENCE Copyright (C) 2008-2009 by Emmanuel Rodriguez This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. Xacobeo-0.15/Build.PL000444001750001750 335212211074713 16172 0ustar00erodriguezerodriguez000000000000#!/usr/bin/perl use strict; use warnings; use inc::MyBuilder; use File::Spec::Functions; my %requires = ( perl => '5.6.1', 'Pod::Usage' => 0, 'Getopt::Long' => 0, 'Glib' => 0, 'Gtk2' => '1.100', 'Time::HiRes' => 0, 'XML::LibXML' => 0, 'File::Spec::Functions' => 0, 'FindBin' => 0, 'Carp' => 0, 'Exporter' => 0, 'DynaLoader' => 0, 'Data::Dumper' => 0, 'Gtk2::SourceView2' => 0, 'Locale::TextDomain' => 0, 'parent' => 0, 'Gtk2::Ex::Entry::Pango' => '0.07', 'File::BaseDir' => 0, ); my %configure_requires = ( 'ExtUtils::Depends' => 0, 'ExtUtils::PkgConfig' => 0, 'ExtUtils::ParseXS' => 0, 'File::Spec::Functions' => 0, 'File::Path' => 0, 'Gtk2' => 0, ); my $build = inc::MyBuilder->new( module_name => 'Xacobeo', license => 'perl', dist_author => 'Emmanuel Rodriguez ', dist_version_from => catfile('lib', 'Xacobeo.pm'), # Installation files script_file => [ catfile('bin', 'xacobeo') ], # Dependencies requires => \%requires, configure_requires => \%configure_requires, build_requires => { 'Test::More' => 0, 'File::Slurp' => 0, 'Test::Exception' => 0, %configure_requires, }, meta_merge => { resources => { homepage => 'http://code.google.com/p/xacobeo/', bugtracker => 'http://code.google.com/p/xacobeo/issues/list', repository => 'http://github.com/potyl/xacobeo', }, }, add_to_cleanup => [ catfile ('lib', 'Xacobeo', 'XS.xs'), catfile ('lib', 'Xacobeo', 'libxml2-perl.typemap'), ], ); $build->create_build_script(); Xacobeo-0.15/META.yml000444001750001750 455212211074713 16152 0ustar00erodriguezerodriguez000000000000--- abstract: 'XPath (XML Path Language) visualizer.' author: - 'Emmanuel Rodriguez ' build_requires: ExtUtils::CBuilder: 0 ExtUtils::Depends: 0 ExtUtils::ParseXS: 0 ExtUtils::PkgConfig: 0 File::Path: 0 File::Slurp: 0 File::Spec::Functions: 0 Gtk2: 0 Test::Exception: 0 Test::More: 0 configure_requires: ExtUtils::Depends: 0 ExtUtils::ParseXS: 0 ExtUtils::PkgConfig: 0 File::Path: 0 File::Spec::Functions: 0 Gtk2: 0 Module::Build: 0.38 dynamic_config: 1 generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.110440' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: Xacobeo provides: Xacobeo: file: lib/Xacobeo.pm version: 0.15 Xacobeo::Accessors: file: lib/Xacobeo/Accessors.pm version: 0 Xacobeo::App: file: lib/Xacobeo/App.pm version: 0 Xacobeo::Conf: file: lib/Xacobeo/Conf.pm version: 0 Xacobeo::Document: file: lib/Xacobeo/Document.pm version: 0 Xacobeo::Error: file: lib/Xacobeo/Error.pm version: 0 Xacobeo::GObject: file: lib/Xacobeo/GObject.pm version: 0 Xacobeo::I18n: file: lib/Xacobeo/I18n.pm version: 0 Xacobeo::Plugin: file: lib/Xacobeo/Plugin.pm version: 0 Xacobeo::Timer: file: lib/Xacobeo/Timer.pm version: 0 Xacobeo::UI::DomView: file: lib/Xacobeo/UI/DomView.pm version: 0 Xacobeo::UI::SourceView: file: lib/Xacobeo/UI/SourceView.pm version: 0 Xacobeo::UI::Statusbar: file: lib/Xacobeo/UI/Statusbar.pm version: 0 Xacobeo::UI::Window: file: lib/Xacobeo/UI/Window.pm version: 0 Xacobeo::UI::XPathEntry: file: lib/Xacobeo/UI/XPathEntry.pm version: 0 Xacobeo::Utils: file: lib/Xacobeo/Utils.pm version: 0 Xacobeo::XS: file: lib/Xacobeo/XS.pm version: 0 requires: Carp: 0 Data::Dumper: 0 DynaLoader: 0 Exporter: 0 File::BaseDir: 0 File::Spec::Functions: 0 FindBin: 0 Getopt::Long: 0 Glib: 0 Gtk2: 1.100 Gtk2::Ex::Entry::Pango: 0.07 Gtk2::SourceView2: 0 Locale::TextDomain: 0 Pod::Usage: 0 Time::HiRes: 0 XML::LibXML: 0 parent: 0 perl: v5.6.1 resources: bugtracker: http://code.google.com/p/xacobeo/issues/list homepage: http://code.google.com/p/xacobeo/ license: http://dev.perl.org/licenses/ repository: http://github.com/potyl/xacobeo version: 0.15 Xacobeo-0.15/Changes000444001750001750 1234512211074713 16213 0ustar00erodriguezerodriguez000000000000Changelog for Xacobeo. 0.15 Mon Aug 26 22:43:25 CEST 2013 - RT 88132: Don't use qw() without parenthesis (support perl 5.18). - RT 88131: Add Keywords to the .desktop file. 0.14 Wed Apr 14 20:33:05 CEST 2010 - Issue 49 in xacobeo: syntax and spelling Pod fixes. 0.13 Sun Dec 27 15:55:39 CET 2009 - Issue 47: Double clicking on a DomView node can fail to select the right node. - Issue 40: create XPath expression from DOM. - Issue 36: l10n of strings Prefix and URI missing. - Issue 37: l10n es fr wrong for msgid 12 "Document node is missing". - Issue 34: l10n of desktop entry. - Fix a warning when an element resets the namespace declaration to the default namespace (xmlns=""). - Core objects are now descendents of Glib::Objects. 0.12 Sun Dec 13 23:49:03 CET 2009 - GUI rewritten by hand, no more glade. - Less dependencies: Englis, Gtk2::GladeXML, Class::Accessor::Fast. - Add an experimental plugin system with a sample plugin. - The default namespace for namesapces without a prefix is now 'ns'. - More text translated. 0.11 Mon Nov 23 20:57:30 CET 2009 - Expand the first level by default - Unit test fixes: error messages changed in libxml 2.7.3 (patch by Jozef Kutej). 0.10 Tue Nov 17 22:08:35 CET 2009 - Issue 10: Link the DOM tree with the XML source. - Issue 39: link DOM tree with text view (duplicate of 10). - Using Gtk2::SourceView2. 0.09 Sun Nov 15 20:13:16 CET 2009 - Merged most of the perl critic branch. - Added the files AUTHORS and HACKING. 0.08 Thu Apr 16 21:20:01 CEST 2009 - New release with all the changes from the 0.08_XX releases. 0.08_01 Sat Apr 11 14:33:14 CEST 2009 - Added support for HTML documents (command line only). - The default namespace (xmlns="") is no longer registered. - Namespaces are found in the right order (affects default, default1, etc). - German translation by Lars Dieckow. - Fixed the build dependencies (patch by Lars Dieckow). 0.07 Thu Feb 19 20:20:00 CET 2009 - New release with all the changes from the 0.07_XX releases. 0.07_02 Mon Feb 16 09:26:49 CET 2009 - Corrected a typo in the French translation. 0.07_01 Sun Feb 15 13:58:14 CET 2009 - Issue 30: Crashes when reading non XML files. - Issue 20: Clear the XPath results when loading a new document. 0.06 Wed Feb 11 19:45:58 CET 2009 - New release with all the changes from the 0.06_XX releases. 0.06_03 Tue Feb 10 22:18:29 CET 2009 - Issue 23: Results view loses the syntax highlighting. - Issue 26: Tests require File::Slurp. - Issue 29: Results view is editable. - Updated the translations. - Build.PL is using both configure_requires and build_requires. 0.06_02 Sat Feb 7 11:57:57 CET 2009 - Issue 19: Add a version number to the about dialog. - Issue 25: Internationalize the application. 0.06_01 Sun Jan 18 20:21:11 CET 2009 - Issue 21: XML display has no line numbers. 0.05 Mon Jan 5 19:13:00 CET 2009 - New release with all the changes from the 0.05_XX releases. 0.05_02 Sun Jan 4 08:49:28 CET 2009 - The XPath entry has a default text when empty. 0.05_01 Sat Jan 3 13:04:55 CET 2009 - Issue 14: Performance issues. - The program uses now XS for speeding up the slow parts. - Updated the syntax highlighting styles. - Added the namespace XML http://www.w3.org/XML/1998/namespace to all results. 0.04 Mon Dec 1 10:04:26 CET 2008 - New release with all the changes from the 0.04_XX releases. 0.04_02 Fri Nov 28 20:44:39 CET 2008 - Issue 15: In the README it says perl Makefile.PL but there is only Build.PL. - Issue 16: SVG icons are not supported by all installations of GTK. 0.04_01 Thu Nov 27 21:19:11 CET 2008 - Speed improvement: the namespaces are found through XPath. - RT #41178: notify user that the xpath is not correct (patch by Jozef Kutej). - RT #41180: show tree element in results text view (patch by Jozef Kutej). - RT #41187: include filename in application title (patch by Jozef Kutej). 0.03 Sat Nov 22 10:23:26 CET 2008 - New release with all the changes from the 0.03_XX releases. 0.03_03 Fri Nov 21 22:10:46 CET 2008 - Issue 13: No support for namespaces in the XML source view. 0.03_02 Mon Nov 17 15:24:27 CET 2008 - Added the XML declaration to the source view. - Can evaluate XPath expressions that return a boolean, a number or a literal. - The XML declaration has an encoding even if the original document is missing one. - Added support for CDATA sections. - Issue 12: Escape XML reserved characters within text elements. 0.03_01 Mon Nov 17 14:13:12 CET 2008 - Fixed Issue 1: dh-make-perl doesn't generate a proper debian/rules file. - Fixed Issue 2: Document source view doesn't has broken UTF-8. - Fixed Issue 9: Add syntax highlighting to the source view editor. 0.02 Wed Nov 12 21:59:40 CET 2008 - New release with changes from 0.02_01 and 0.02_02. 0.02_02 Wed Nov 12 10:42:47 CET 2008 - Fixed the path to the Glade file. 0.02_01 Tue Nov 11 22:11:28 CET 2008 - Using Module::Build which provides a better installation path. - Added a menu item and icon in the Desktop's main menu. - Added an application menu. - Can load new a different file at runtime. - The results tab is shown automatically when a search is performed. 0.01 Fri Oct 24 20:59:27 CET 2008 - First official release. 0.01_01 Thu Oct 23 22:12:56 CET 2008 - First release. Xacobeo-0.15/MANIFEST.SKIP000444001750001750 45212211074713 16552 0ustar00erodriguezerodriguez000000000000^target/ [.]git/ [.]gitignore ^blib/ ^_build/ ^Build$ ^pm_to_blib$ ^Makefile$ ^MANIFEST[.]SKIP$ ^Xacobeo ^COMMANDS[.]txt$ ^xs/.*[.]o$ ^lib/Xacobeo/XS[.](o|xs)$ ^lib/Xacobeo/libxml2-perl[.]typemap$ ^main$ ^examples/ ^tmp/ ^debian/ ^po/.*[.]po~$ ^run[.]pl$ ^[.]valgrind$ ^MYMETA\.yml$ ^MYMETA\.json$ Xacobeo-0.15/META.json000444001750001750 761012211074713 16320 0ustar00erodriguezerodriguez000000000000{ "abstract" : "XPath (XML Path Language) visualizer.", "author" : [ "Emmanuel Rodriguez " ], "dynamic_config" : 1, "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.110440", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "Xacobeo", "prereqs" : { "build" : { "requires" : { "ExtUtils::CBuilder" : 0, "ExtUtils::Depends" : 0, "ExtUtils::ParseXS" : 0, "ExtUtils::PkgConfig" : 0, "File::Path" : 0, "File::Slurp" : 0, "File::Spec::Functions" : 0, "Gtk2" : 0, "Test::Exception" : 0, "Test::More" : 0 } }, "configure" : { "requires" : { "ExtUtils::Depends" : 0, "ExtUtils::ParseXS" : 0, "ExtUtils::PkgConfig" : 0, "File::Path" : 0, "File::Spec::Functions" : 0, "Gtk2" : 0, "Module::Build" : "0.38" } }, "runtime" : { "requires" : { "Carp" : 0, "Data::Dumper" : 0, "DynaLoader" : 0, "Exporter" : 0, "File::BaseDir" : 0, "File::Spec::Functions" : 0, "FindBin" : 0, "Getopt::Long" : 0, "Glib" : 0, "Gtk2" : "1.100", "Gtk2::Ex::Entry::Pango" : "0.07", "Gtk2::SourceView2" : 0, "Locale::TextDomain" : 0, "Pod::Usage" : 0, "Time::HiRes" : 0, "XML::LibXML" : 0, "parent" : 0, "perl" : "v5.6.1" } } }, "provides" : { "Xacobeo" : { "file" : "lib/Xacobeo.pm", "version" : "0.15" }, "Xacobeo::Accessors" : { "file" : "lib/Xacobeo/Accessors.pm", "version" : 0 }, "Xacobeo::App" : { "file" : "lib/Xacobeo/App.pm", "version" : 0 }, "Xacobeo::Conf" : { "file" : "lib/Xacobeo/Conf.pm", "version" : 0 }, "Xacobeo::Document" : { "file" : "lib/Xacobeo/Document.pm", "version" : 0 }, "Xacobeo::Error" : { "file" : "lib/Xacobeo/Error.pm", "version" : 0 }, "Xacobeo::GObject" : { "file" : "lib/Xacobeo/GObject.pm", "version" : 0 }, "Xacobeo::I18n" : { "file" : "lib/Xacobeo/I18n.pm", "version" : 0 }, "Xacobeo::Plugin" : { "file" : "lib/Xacobeo/Plugin.pm", "version" : 0 }, "Xacobeo::Timer" : { "file" : "lib/Xacobeo/Timer.pm", "version" : 0 }, "Xacobeo::UI::DomView" : { "file" : "lib/Xacobeo/UI/DomView.pm", "version" : 0 }, "Xacobeo::UI::SourceView" : { "file" : "lib/Xacobeo/UI/SourceView.pm", "version" : 0 }, "Xacobeo::UI::Statusbar" : { "file" : "lib/Xacobeo/UI/Statusbar.pm", "version" : 0 }, "Xacobeo::UI::Window" : { "file" : "lib/Xacobeo/UI/Window.pm", "version" : 0 }, "Xacobeo::UI::XPathEntry" : { "file" : "lib/Xacobeo/UI/XPathEntry.pm", "version" : 0 }, "Xacobeo::Utils" : { "file" : "lib/Xacobeo/Utils.pm", "version" : 0 }, "Xacobeo::XS" : { "file" : "lib/Xacobeo/XS.pm", "version" : 0 } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "http://code.google.com/p/xacobeo/issues/list" }, "homepage" : "http://code.google.com/p/xacobeo/", "license" : [ "http://dev.perl.org/licenses/" ], "repository" : { "url" : "http://github.com/potyl/xacobeo" } }, "version" : "0.15" } Xacobeo-0.15/MANIFEST000444001750001750 206112211074713 16023 0ustar00erodriguezerodriguez000000000000bin/xacobeo Changes examples/cliboard.plugin examples/Xacobeo/Ex/ClipboardLoad.pm inc/MyBuilder.pm lib/Xacobeo.pm lib/Xacobeo/Accessors.pm lib/Xacobeo/App.pm lib/Xacobeo/Conf.pm lib/Xacobeo/Document.pm lib/Xacobeo/Error.pm lib/Xacobeo/GObject.pm lib/Xacobeo/I18n.pm lib/Xacobeo/Plugin.pm lib/Xacobeo/Timer.pm lib/Xacobeo/UI/DomView.pm lib/Xacobeo/UI/SourceView.pm lib/Xacobeo/UI/Statusbar.pm lib/Xacobeo/UI/Window.pm lib/Xacobeo/UI/XPathEntry.pm lib/Xacobeo/Utils.pm lib/Xacobeo/XS.pm Build.PL MANIFEST MANIFEST.SKIP META.json META.yml HACKING AUTHORS README commands share/applications/xacobeo.desktop share/xacobeo/xacobeo.svg share/pixmaps/xacobeo.png t/document.t t/object.t t/Xacobeo-XS.t tests/beers.xml tests/SVG.svg tests/xorg.xml tests/sample.xml tests/sample.xml.expected tests/stocks.xml tests/countries.xml tests/empty-pi.xml tests/empty.xml tests/namespaces.xml xs/code.c xs/code.h xs/libxml2-perl.typemap xs/libxml.c xs/libxml.h xs/logger.c xs/logger.h xs/main.c xs/ppport.h xs/XS.xs xt/perlcritic.t xt/perlcriticrc po/de.po po/es.po po/fr.po po/messages.pot Xacobeo-0.15/commands000555001750001750 653612211074713 16434 0ustar00erodriguezerodriguez000000000000#!/usr/bin/make -f # Local installation place DEST=target # Default test file FILE=tests/sample.xml VERSION=$(shell perl -le "print `grep VERSION lib/Xacobeo.pm`") PACKAGE=Xacobeo EMAIL=$(shell git config --global user.email) PERL_MODULES=$(shell find lib/Xacobeo/ -type f -name '*.pm') # Compiler stuff LIBRARIES=gtk+-2.0 libxml-2.0 ifdef DEBUG DEBUG_ARGS=-DHAS_DEBUG else DEBUG_ARGS=-D__EMPTY endif CFLAGS=$(shell pkg-config --cflags $(LIBRARIES); perl -MExtUtils::Embed -e ccopts) LIBS=$(shell pkg-config --libs $(LIBRARIES) ; perl -MExtUtils::Embed -e ldopts) CC=gcc $(DEBUG_ARGS) -g -std=c99 -Werror -Wall -Wextra -pedantic-errors -pedantic \ -Wshadow \ -Wunused-parameter \ -Wmissing-field-initializers \ -Wmissing-noreturn \ -Wmissing-declarations \ -Wmissing-prototypes \ -Wmissing-format-attribute \ -Wpointer-arith \ -Wwrite-strings \ -Wformat \ -Wformat-nonliteral \ -Wformat-security \ -Wswitch-default \ -Winit-self \ -Wundef \ -Waggregate-return \ -Wnested-externs \ -Wno-unused-function .PHONY: info info: @echo "VERSION $(VERSION)" @echo "CFLAGS $(CFLAGS)" @echo "LIBS $(LIBS)" @echo "CC $(CC)" perl-build: Build Build: Build.PL perl Build.PL --config ccflags="$(DEBUG_ARGS)" build: i18n Build ./Build .PHONY: install install: $(DEST)/local/bin/xacobeo $(DEST)/local/bin/xacobeo: build rm -rf $(DEST) || true ./Build install --install_base $(DEST) .PHONY: fakeinstall fakeinstall: build ./Build fakeinstall --install_base /usr .PHONY: run run: install PERL5LIB=$(DEST)/lib/perl5 $(DEST)/bin/xacobeo $(FILE) .PHONY: dist dist: $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION).tar.gz: build ./Build dist .PHONY: distcheck distcheck: build ./Build distcheck .PHONY: test test: xs ./Build test .PHONY: tag tag: git tag "$(VERSION)" .PHONY: push push: git push --tags origin master .PHONY: upload upload: dist cpan-upload -verbose -mailto "$(EMAIL)" -user potyl "$(PACKAGE)-$(VERSION).tar.gz" .PHONY: release release: clean test dist distcheck tag push upload @echo "Release $(PACKAGE) $(VERSION) done." .PHONY: xs xs: build commands xs/main.o: xs/main.c $(CC) $(CFLAGS) -o $@ -c $< xs/logger.o: xs/logger.c $(CC) $(CFLAGS) -o $@ -c $< xs/code.o: xs/code.c $(CC) $(CFLAGS) -o $@ -c $< xs/libxml.o: xs/libxml.c $(CC) $(CFLAGS) -Wno-unused-parameter -o $@ -c $< main: xs/main.o xs/code.o xs/logger.o xs/libxml.o $(CC) $(LIBS) -o $@ xs/main.o xs/code.o xs/logger.o xs/libxml.o .PHONY: all all: main xs .PHONY: leaks leaks: main valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes --suppressions=.valgrind ./main --quit $(FILE) .PHONY: clean clean: - [ -f Build ] && ./Build clean > /dev/null 2>&1 || true -rm -rf $(PACKAGE)-*/ 2> /dev/null || true -rm $(PACKAGE)-*.tar.gz 2> /dev/null || true -rm libxacobeo-perl_* 2> /dev/null || true -rm Build 2> /dev/null || true -rm -rf _build 2> /dev/null || true -rm -f main xs/*.o || true -rm -f lib/Xacobeo/XS.xs lib/Xacobeo/XS.c lib/Xacobeo/libxml2-perl.typemap || true .PHONY: i18n i18n: po/messages.pot po/*.po po/messages.pot: bin/xacobeo $(PERL_MODULES) xgettext --language=Perl \ --keyword \ --keyword=__ \ --keyword=__x \ --keyword=__n:1,2 \ --keyword=__nx:1,2 \ --keyword=__xn \ --keyword=N__ \ -o $@ bin/xacobeo $(PERL_MODULES) po/%.po: po/messages.pot msgmerge --update $@ $< Xacobeo-0.15/HACKING000444001750001750 321612211074713 15664 0ustar00erodriguezerodriguez000000000000HACKING Xacobeo =============== Feel free to hack Xacobeo and to send patches. The application's code should be documented well enough for anyone to jump in and to have fun. The latest version of the code is available at: http://github.com/potyl/xacobeo Xacobeo is mainly written in Perl and has some bits of XS (C functions) in order to improve its performance. Ideally all hacking should be done in Perl and C should be used as a last resort. The application relies heavily on XML::LibXML and indirectly on libxml2. All XML operations are performed through these libraries. Xacobeo is translated into other languages through GNU's standard gettext mechanism (thanks to Locale::TextDomain). When adding code make sure that all output is marked to be translated by using the proper i18n functions (__ and friends). Take a look at perldoc lib/Xacobeo/I18n.pm. Command line utilities ---------------------- Xacobeo provides a built-in script: 'commands' that makes the testing of the application easier. This script is used to build, test, run, translate and even release Xacobeo. To build the application simply do: ./commands build To test your changes: ./commands test To run the application without installing it: ./commands run You can change the default input file through the parameter FILE: ./commands run FILE=tests/SVG.svg To find memory leaks in newly added XS code do: ./commands leaks To update the I18n .po files run: ./commands i18n To check that all your new files will be uploaded to CPAN do: ./command distcheck To clean your working folder: ./command clean The script 'commands' provides more utilities, make sure to peek at the file. Xacobeo-0.15/po000755001750001750 012211074713 15154 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/po/messages.pot000444001750001750 1021112211074713 17657 0ustar00erodriguezerodriguez000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-27 20:37+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: lib/Xacobeo/App.pm:178 #, perl-brace-format msgid "Failed to load plugin described by {file}; {error}" msgstr "" #: lib/Xacobeo/App.pm:184 #, perl-brace-format msgid "Failed to scan folder {folder}; {error}" msgstr "" #: lib/Xacobeo/App.pm:215 msgid "File is not describing a Xacobeo plugin" msgstr "" #: lib/Xacobeo/App.pm:224 #, perl-brace-format msgid "Error while load package {package}; {error}" msgstr "" #: lib/Xacobeo/App.pm:227 #, perl-brace-format msgid "Package {package} failed to return a plugin" msgstr "" #: lib/Xacobeo/App.pm:235 #, perl-brace-format msgid "Can't load script {script}; {error}" msgstr "" #: lib/Xacobeo/App.pm:238 #, perl-brace-format msgid "Script {script} failed to return a plugin" msgstr "" #: lib/Xacobeo/App.pm:242 msgid "File is missing the key Package or Script" msgstr "" #: lib/Xacobeo/UI/SourceView.pm:210 msgid "Node is undef" msgstr "" #: lib/Xacobeo/UI/Window.pm:193 msgid "No document" msgstr "" #: lib/Xacobeo/UI/Window.pm:304 #, perl-format msgid "Found %d result in %0.3fs" msgid_plural "Found %d results in %0.3fs" msgstr[0] "" msgstr[1] "" #: lib/Xacobeo/UI/Window.pm:309 msgid "XPath query issued an error" msgstr "" #: lib/Xacobeo/UI/Window.pm:359 msgid "Load document" msgstr "" #: lib/Xacobeo/UI/Window.pm:367 #, perl-brace-format msgid "Can't read {file}: {error}" msgstr "" #: lib/Xacobeo/UI/Window.pm:383 #, perl-format msgid "Document loaded in %.3f second" msgid_plural "Document loaded in %.3f seconds" msgstr[0] "" msgstr[1] "" #: lib/Xacobeo/UI/Window.pm:420 msgid "Syntax Highlight" msgstr "" #: lib/Xacobeo/UI/Window.pm:429 msgid "DOM Tree" msgstr "" #: lib/Xacobeo/UI/Window.pm:494 msgid "Open file..." msgstr "" #: lib/Xacobeo/UI/Window.pm:537 #, perl-brace-format msgid "About {name}" msgstr "" #: lib/Xacobeo/UI/Window.pm:552 msgid "Simple XPath viewer" msgstr "" #: lib/Xacobeo/UI/Window.pm:567 msgid "_File" msgstr "" #: lib/Xacobeo/UI/Window.pm:568 msgid "_Help" msgstr "" #: lib/Xacobeo/UI/Window.pm:575 msgid "_Open" msgstr "" #: lib/Xacobeo/UI/Window.pm:577 msgid "Open a file" msgstr "" #: lib/Xacobeo/UI/Window.pm:583 msgid "_Quit" msgstr "" #: lib/Xacobeo/UI/Window.pm:585 msgid "Quit" msgstr "" #: lib/Xacobeo/UI/Window.pm:593 msgid "_About" msgstr "" #: lib/Xacobeo/UI/Window.pm:595 msgid "About" msgstr "" #: lib/Xacobeo/UI/Window.pm:643 msgid "XPath:" msgstr "" #: lib/Xacobeo/UI/Window.pm:649 msgid "XPath Expression..." msgstr "" #: lib/Xacobeo/UI/Window.pm:654 msgid "Evaluate" msgstr "" #: lib/Xacobeo/UI/Window.pm:694 msgid "Results" msgstr "" #: lib/Xacobeo/UI/Window.pm:698 msgid "Prefix" msgstr "" #: lib/Xacobeo/UI/Window.pm:699 msgid "URI" msgstr "" #: lib/Xacobeo/UI/Window.pm:704 msgid "Namespaces" msgstr "" #: lib/Xacobeo/UI/DomView.pm:145 msgid "Element" msgstr "" #: lib/Xacobeo/UI/DomView.pm:153 msgid "ID name" msgstr "" #: lib/Xacobeo/UI/DomView.pm:156 msgid "ID value" msgstr "" #: lib/Xacobeo/UI/DomView.pm:179 msgid "_Jump to" msgstr "" #: lib/Xacobeo/UI/DomView.pm:181 msgid "Show the node" msgstr "" #: lib/Xacobeo/UI/DomView.pm:187 msgid "_Copy XPath" msgstr "" #: lib/Xacobeo/UI/DomView.pm:189 msgid "Copy the node's XPath" msgstr "" #: lib/Xacobeo/Timer.pm:151 #, perl-format msgid "Time: %-20s %.4fs\n" msgstr "" #: lib/Xacobeo/Timer.pm:152 msgid "Unnamed" msgstr "" #: lib/Xacobeo/Document.pm:136 lib/Xacobeo/Document.pm:176 msgid "Parameter 'type' must be defined" msgstr "" #: lib/Xacobeo/Document.pm:279 msgid "Document node is missing" msgstr "" #: lib/Xacobeo/Document.pm:394 #, perl-brace-format msgid "Namespace {name} has no URI" msgstr "" Xacobeo-0.15/po/es.po000444001750001750 1321312211074713 16300 0ustar00erodriguezerodriguez000000000000# English translations for xacobeo-i package. # Copyright (C) 2009 THE xacobeo-i'S COPYRIGHT HOLDER # This file is distributed under the same license as the xacobeo-i package. # Emmanuel Rodriguez , 2009. # msgid "" msgstr "" "Project-Id-Version: xacobeo-i 18n\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-27 20:37+0100\n" "PO-Revision-Date: 2009-12-27 20:42+0100\n" "Last-Translator: Emmanuel Rodriguez \n" "Language-Team: English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Xacobeo/App.pm:178 #, perl-brace-format msgid "Failed to load plugin described by {file}; {error}" msgstr "Imposible de cargar el plugin descrito en le fichero {file}; {error}" #: lib/Xacobeo/App.pm:184 #, perl-brace-format msgid "Failed to scan folder {folder}; {error}" msgstr "Imposible de leer la carpeta {folder}; {error}" #: lib/Xacobeo/App.pm:215 msgid "File is not describing a Xacobeo plugin" msgstr "El fichier no describe un plugin de Xacobeo" #: lib/Xacobeo/App.pm:224 #, perl-brace-format msgid "Error while load package {package}; {error}" msgstr "Error cargando el paquete {package}; {error}" #: lib/Xacobeo/App.pm:227 #, perl-brace-format msgid "Package {package} failed to return a plugin" msgstr "El paquete {package} no consiguió devolver un plugin" #: lib/Xacobeo/App.pm:235 #, perl-brace-format msgid "Can't load script {script}; {error}" msgstr "Imposible de leer {script}: {error}" #: lib/Xacobeo/App.pm:238 #, perl-brace-format msgid "Script {script} failed to return a plugin" msgstr "El escripto {script} no consiguió devolver un plugin" #: lib/Xacobeo/App.pm:242 msgid "File is missing the key Package or Script" msgstr "El fichero no tiene la llave Package or Script" #: lib/Xacobeo/UI/SourceView.pm:210 msgid "Node is undef" msgstr "Nudo es undef" #: lib/Xacobeo/UI/Window.pm:193 msgid "No document" msgstr "Sin documento" #: lib/Xacobeo/UI/Window.pm:304 #, perl-format msgid "Found %d result in %0.3fs" msgid_plural "Found %d results in %0.3fs" msgstr[0] "%d resultado encotrado en %0.3fs" msgstr[1] "%d resultados encotrados en %0.3fs" #: lib/Xacobeo/UI/Window.pm:309 msgid "XPath query issued an error" msgstr "La expression XPath dió con un error" #: lib/Xacobeo/UI/Window.pm:359 msgid "Load document" msgstr "Lectura del documento" #: lib/Xacobeo/UI/Window.pm:367 #, perl-brace-format msgid "Can't read {file}: {error}" msgstr "Imposible de leer {file}: {error}" #: lib/Xacobeo/UI/Window.pm:383 #, perl-format msgid "Document loaded in %.3f second" msgid_plural "Document loaded in %.3f seconds" msgstr[0] "Documento leido en %.3f segundo" msgstr[1] "Documento leido en %.3f segundos" #: lib/Xacobeo/UI/Window.pm:420 msgid "Syntax Highlight" msgstr "Coloreado de sintaxis" #: lib/Xacobeo/UI/Window.pm:429 msgid "DOM Tree" msgstr "Arbol DOM" #: lib/Xacobeo/UI/Window.pm:494 msgid "Open file..." msgstr "Abrir fichero..." #: lib/Xacobeo/UI/Window.pm:537 #, perl-brace-format msgid "About {name}" msgstr "Acerca de {name}" #: lib/Xacobeo/UI/Window.pm:552 msgid "Simple XPath viewer" msgstr "Simple interfaz para XPath" #: lib/Xacobeo/UI/Window.pm:567 msgid "_File" msgstr "_Archivo" #: lib/Xacobeo/UI/Window.pm:568 msgid "_Help" msgstr "A_yuda" #: lib/Xacobeo/UI/Window.pm:575 msgid "_Open" msgstr "_Abrir un fichero" #: lib/Xacobeo/UI/Window.pm:577 msgid "Open a file" msgstr "Abrir un fichero" #: lib/Xacobeo/UI/Window.pm:583 msgid "_Quit" msgstr "_Quitar" #: lib/Xacobeo/UI/Window.pm:585 msgid "Quit" msgstr "Quitar" #: lib/Xacobeo/UI/Window.pm:593 msgid "_About" msgstr "A_cerca" #: lib/Xacobeo/UI/Window.pm:595 msgid "About" msgstr "Acerca" #: lib/Xacobeo/UI/Window.pm:643 msgid "XPath:" msgstr "XPath:" #: lib/Xacobeo/UI/Window.pm:649 msgid "XPath Expression..." msgstr "Expresión XPath..." #: lib/Xacobeo/UI/Window.pm:654 msgid "Evaluate" msgstr "Evaluar" #: lib/Xacobeo/UI/Window.pm:694 msgid "Results" msgstr "Resultados" #: lib/Xacobeo/UI/Window.pm:698 msgid "Prefix" msgstr "Prefijo" #: lib/Xacobeo/UI/Window.pm:699 msgid "URI" msgstr "URI" #: lib/Xacobeo/UI/Window.pm:704 msgid "Namespaces" msgstr "Espacios de nombres" #: lib/Xacobeo/UI/DomView.pm:145 msgid "Element" msgstr "Elemento" #: lib/Xacobeo/UI/DomView.pm:153 msgid "ID name" msgstr "ID nombre" #: lib/Xacobeo/UI/DomView.pm:156 msgid "ID value" msgstr "ID valor" #: lib/Xacobeo/UI/DomView.pm:179 msgid "_Jump to" msgstr "Enseñar" #: lib/Xacobeo/UI/DomView.pm:181 msgid "Show the node" msgstr "Enseñar el nudo" #: lib/Xacobeo/UI/DomView.pm:187 msgid "_Copy XPath" msgstr "Copiar XPath" #: lib/Xacobeo/UI/DomView.pm:189 msgid "Copy the node's XPath" msgstr "Copiar el XPath del nudo" #: lib/Xacobeo/Timer.pm:151 #, perl-format msgid "Time: %-20s %.4fs\n" msgstr "Tiempo: %-20s %.4fs\n" #: lib/Xacobeo/Timer.pm:152 msgid "Unnamed" msgstr "Sin nombre" #: lib/Xacobeo/Document.pm:136 #: lib/Xacobeo/Document.pm:176 msgid "Parameter 'type' must be defined" msgstr "El parametro 'type' tiene que estar definido" #: lib/Xacobeo/Document.pm:279 msgid "Document node is missing" msgstr "Falta el nudo principal del documento" #: lib/Xacobeo/Document.pm:394 #, perl-brace-format msgid "Namespace {name} has no URI" msgstr "El espacio de nombre {name} no tiene URI" #~ msgid "Unsupported document type {type}" #~ msgstr "El typo de documento {type} no esta suportado" #~ msgid "Can't create widget {name} because method {function} is missing" #~ msgstr "" #~ "Imposible de crear el widget {name} porque la funcción {function} no " #~ "existe" #~ msgid "Copyright (C) 2008-2009 by Emmanuel Rodriguez." #~ msgstr "Copyright (C) 2008-2009 by Emmanuel Rodriguez." Xacobeo-0.15/po/de.po000444001750001750 1301412211074713 16260 0ustar00erodriguezerodriguez000000000000# German translations for Xacobeo # Copyright (C) 2009, the Xacobeo contributors # This file is distributed under the same license as the Xacobeo package. # # Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 , 2009. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-27 20:37+0100\n" "PO-Revision-Date: 2009-12-23 00:43+0100\n" "Last-Translator: Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.0\n" #: lib/Xacobeo/App.pm:178 #, perl-brace-format msgid "Failed to load plugin described by {file}; {error}" msgstr "Konnte das in {file} beschriebene Plugin nicht laden; {error}" #: lib/Xacobeo/App.pm:184 #, perl-brace-format msgid "Failed to scan folder {folder}; {error}" msgstr "Konnte Verzeichnis {folder} nicht abfragen; {error}" #: lib/Xacobeo/App.pm:215 msgid "File is not describing a Xacobeo plugin" msgstr "Datei beschreibt kein Plugin für Xacobeo" #: lib/Xacobeo/App.pm:224 #, perl-brace-format msgid "Error while load package {package}; {error}" msgstr "Fehler während des Ladens des Pakets {package}; {error}" #: lib/Xacobeo/App.pm:227 #, perl-brace-format msgid "Package {package} failed to return a plugin" msgstr "Paket {package} lieferte kein Plugin zurück" #: lib/Xacobeo/App.pm:235 #, perl-brace-format msgid "Can't load script {script}; {error}" msgstr "Skript {script} kann nicht geladen werden; {error}" #: lib/Xacobeo/App.pm:238 #, perl-brace-format msgid "Script {script} failed to return a plugin" msgstr "Script {script} lieferte kein Plugin zurück" #: lib/Xacobeo/App.pm:242 msgid "File is missing the key Package or Script" msgstr "In der Datei fehlen die Schlüssel Package oder Script" #: lib/Xacobeo/UI/SourceView.pm:210 msgid "Node is undef" msgstr "Knoten ist undef" #: lib/Xacobeo/UI/Window.pm:193 msgid "No document" msgstr "Kein Dokument" #: lib/Xacobeo/UI/Window.pm:304 #, perl-format msgid "Found %d result in %0.3fs" msgid_plural "Found %d results in %0.3fs" msgstr[0] "%d Ergebnis in %0.3fs gefunden" msgstr[1] "%d Ergebnisse in %0.3fs gefunden" #: lib/Xacobeo/UI/Window.pm:309 msgid "XPath query issued an error" msgstr "Fehler bei der XPath-Abfrage" #: lib/Xacobeo/UI/Window.pm:359 msgid "Load document" msgstr "Dokument laden" #: lib/Xacobeo/UI/Window.pm:367 #, perl-brace-format msgid "Can't read {file}: {error}" msgstr "{file} kann nicht gelesen werden: {error}" #: lib/Xacobeo/UI/Window.pm:383 #, perl-format msgid "Document loaded in %.3f second" msgid_plural "Document loaded in %.3f seconds" msgstr[0] "Dokument wurde in %.3f Sekunde geladen" msgstr[1] "Dokument wurde in %.3f Sekunden geladen" #: lib/Xacobeo/UI/Window.pm:420 msgid "Syntax Highlight" msgstr "Syntaxhervorhebung" #: lib/Xacobeo/UI/Window.pm:429 msgid "DOM Tree" msgstr "DOM-Baum" #: lib/Xacobeo/UI/Window.pm:494 msgid "Open file..." msgstr "Datei öffnen…" #: lib/Xacobeo/UI/Window.pm:537 #, perl-brace-format msgid "About {name}" msgstr "Über {name}" #: lib/Xacobeo/UI/Window.pm:552 msgid "Simple XPath viewer" msgstr "Ein einfaches Anzeigeprogramm für XPath" #: lib/Xacobeo/UI/Window.pm:567 msgid "_File" msgstr "_Datei" #: lib/Xacobeo/UI/Window.pm:568 msgid "_Help" msgstr "_Hilfe" #: lib/Xacobeo/UI/Window.pm:575 msgid "_Open" msgstr "Ö_ffnen" #: lib/Xacobeo/UI/Window.pm:577 msgid "Open a file" msgstr "Datei öffnen" #: lib/Xacobeo/UI/Window.pm:583 msgid "_Quit" msgstr "Be_enden" #: lib/Xacobeo/UI/Window.pm:585 msgid "Quit" msgstr "Beenden" #: lib/Xacobeo/UI/Window.pm:593 msgid "_About" msgstr "Ü_ber" #: lib/Xacobeo/UI/Window.pm:595 msgid "About" msgstr "Über" #: lib/Xacobeo/UI/Window.pm:643 msgid "XPath:" msgstr "XPath:" #: lib/Xacobeo/UI/Window.pm:649 msgid "XPath Expression..." msgstr "XPath-Ausdruck..." #: lib/Xacobeo/UI/Window.pm:654 msgid "Evaluate" msgstr "Auswerten" #: lib/Xacobeo/UI/Window.pm:694 msgid "Results" msgstr "Ergebnisse" #: lib/Xacobeo/UI/Window.pm:698 msgid "Prefix" msgstr "Präfix" #: lib/Xacobeo/UI/Window.pm:699 msgid "URI" msgstr "URI" #: lib/Xacobeo/UI/Window.pm:704 msgid "Namespaces" msgstr "Namensräume" #: lib/Xacobeo/UI/DomView.pm:145 msgid "Element" msgstr "Element" #: lib/Xacobeo/UI/DomView.pm:153 msgid "ID name" msgstr "ID-Name" #: lib/Xacobeo/UI/DomView.pm:156 msgid "ID value" msgstr "ID-Wert" #: lib/Xacobeo/UI/DomView.pm:179 msgid "_Jump to" msgstr "" #: lib/Xacobeo/UI/DomView.pm:181 msgid "Show the node" msgstr "" #: lib/Xacobeo/UI/DomView.pm:187 msgid "_Copy XPath" msgstr "" #: lib/Xacobeo/UI/DomView.pm:189 msgid "Copy the node's XPath" msgstr "" #: lib/Xacobeo/Timer.pm:151 #, perl-format msgid "Time: %-20s %.4fs\n" msgstr "Zeit: %-20s %.4fs\n" #: lib/Xacobeo/Timer.pm:152 msgid "Unnamed" msgstr "Unbenannt" #: lib/Xacobeo/Document.pm:136 lib/Xacobeo/Document.pm:176 msgid "Parameter 'type' must be defined" msgstr "Parameter 'type' muss definiert sein" #: lib/Xacobeo/Document.pm:279 msgid "Document node is missing" msgstr "Dokumentenknoten fehlt" #: lib/Xacobeo/Document.pm:394 #, perl-brace-format msgid "Namespace {name} has no URI" msgstr "Namensraum {name} hat keinen URI" #~ msgid "Unsupported document type {type}" #~ msgstr "Dokumententyp {type} wird nicht unterstützt" #~ msgid "Can't create widget {name} because method {function} is missing" #~ msgstr "" #~ "Widget {name} konnte nicht erzeugt werden, weil die Funktion {function} " #~ "fehlt" #~ msgid "Copyright (C) 2008-2009 by Emmanuel Rodriguez." #~ msgstr "Copyright (C) 2008-2009, Emmanuel Rodriguez" Xacobeo-0.15/po/fr.po000444001750001750 1327612211074713 16311 0ustar00erodriguezerodriguez000000000000# English translations for xacobeo-i package. # Copyright (C) 2009 THE xacobeo-i'S COPYRIGHT HOLDER # This file is distributed under the same license as the xacobeo-i package. # Emmanuel Rodriguez , 2009. # msgid "" msgstr "" "Project-Id-Version: xacobeo-i 18n\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-27 20:37+0100\n" "PO-Revision-Date: 2009-12-27 20:40+0100\n" "Last-Translator: Emmanuel Rodriguez \n" "Language-Team: English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Xacobeo/App.pm:178 #, perl-brace-format msgid "Failed to load plugin described by {file}; {error}" msgstr "Erreur pendant la lecture du plugin décrit par {file}; {error}" #: lib/Xacobeo/App.pm:184 #, perl-brace-format msgid "Failed to scan folder {folder}; {error}" msgstr "Erreur pendant la lecture du dossier {folder}; {error}" #: lib/Xacobeo/App.pm:215 msgid "File is not describing a Xacobeo plugin" msgstr "Le fichier ne décrit pas un plugin Xacobeo" #: lib/Xacobeo/App.pm:224 #, perl-brace-format msgid "Error while load package {package}; {error}" msgstr "Erreur pendant le chargement du paquet {package}; {error}" #: lib/Xacobeo/App.pm:227 #, perl-brace-format msgid "Package {package} failed to return a plugin" msgstr "Le paquet {package} n'a pas retourné de plugin" #: lib/Xacobeo/App.pm:235 #, perl-brace-format msgid "Can't load script {script}; {error}" msgstr "Impossible de lire le script {script}: {error}" #: lib/Xacobeo/App.pm:238 #, perl-brace-format msgid "Script {script} failed to return a plugin" msgstr "Le scripte {script} n'a pas retourné de plugin" #: lib/Xacobeo/App.pm:242 msgid "File is missing the key Package or Script" msgstr "Le fichier est sans la clé Package ou Script" #: lib/Xacobeo/UI/SourceView.pm:210 msgid "Node is undef" msgstr "Nœud est undef" #: lib/Xacobeo/UI/Window.pm:193 msgid "No document" msgstr "Pas de document" #: lib/Xacobeo/UI/Window.pm:304 #, perl-format msgid "Found %d result in %0.3fs" msgid_plural "Found %d results in %0.3fs" msgstr[0] "%d résultat a été trouvé en %0.3fs" msgstr[1] "%d résultats ont été trouvés en %0.3fs" #: lib/Xacobeo/UI/Window.pm:309 msgid "XPath query issued an error" msgstr "La requête XPath a retournée une erreur" #: lib/Xacobeo/UI/Window.pm:359 msgid "Load document" msgstr "Chargement du document" #: lib/Xacobeo/UI/Window.pm:367 #, perl-brace-format msgid "Can't read {file}: {error}" msgstr "Impossible de lire {file}: {error}" #: lib/Xacobeo/UI/Window.pm:383 #, perl-format msgid "Document loaded in %.3f second" msgid_plural "Document loaded in %.3f seconds" msgstr[0] "Document chargé en %.3f seconde" msgstr[1] "Document chargé en %.3f secondes" #: lib/Xacobeo/UI/Window.pm:420 msgid "Syntax Highlight" msgstr "Coloration syntaxique" #: lib/Xacobeo/UI/Window.pm:429 msgid "DOM Tree" msgstr "Arbre DOM" #: lib/Xacobeo/UI/Window.pm:494 msgid "Open file..." msgstr "Ouvrir fichier..." #: lib/Xacobeo/UI/Window.pm:537 #, perl-brace-format msgid "About {name}" msgstr "À propos de {name}" #: lib/Xacobeo/UI/Window.pm:552 msgid "Simple XPath viewer" msgstr "Simple visualiseur XPath" #: lib/Xacobeo/UI/Window.pm:567 msgid "_File" msgstr "_Fichier" #: lib/Xacobeo/UI/Window.pm:568 msgid "_Help" msgstr "Aid_e" #: lib/Xacobeo/UI/Window.pm:575 msgid "_Open" msgstr "_Ouvrir" #: lib/Xacobeo/UI/Window.pm:577 msgid "Open a file" msgstr "Ouvrir un fichier" #: lib/Xacobeo/UI/Window.pm:583 msgid "_Quit" msgstr "_Quitter" #: lib/Xacobeo/UI/Window.pm:585 msgid "Quit" msgstr "Quitter" #: lib/Xacobeo/UI/Window.pm:593 msgid "_About" msgstr "À _propos" #: lib/Xacobeo/UI/Window.pm:595 msgid "About" msgstr "À propos" #: lib/Xacobeo/UI/Window.pm:643 msgid "XPath:" msgstr "XPath:" #: lib/Xacobeo/UI/Window.pm:649 msgid "XPath Expression..." msgstr "Expression XPath..." #: lib/Xacobeo/UI/Window.pm:654 msgid "Evaluate" msgstr "Évaluer" #: lib/Xacobeo/UI/Window.pm:694 msgid "Results" msgstr "Résultats" #: lib/Xacobeo/UI/Window.pm:698 msgid "Prefix" msgstr "Préfixe" #: lib/Xacobeo/UI/Window.pm:699 msgid "URI" msgstr "URI" #: lib/Xacobeo/UI/Window.pm:704 msgid "Namespaces" msgstr "Espace de noms" #: lib/Xacobeo/UI/DomView.pm:145 msgid "Element" msgstr "Element" #: lib/Xacobeo/UI/DomView.pm:153 msgid "ID name" msgstr "ID nom" #: lib/Xacobeo/UI/DomView.pm:156 msgid "ID value" msgstr "ID valeur" #: lib/Xacobeo/UI/DomView.pm:179 msgid "_Jump to" msgstr "Aller vers" #: lib/Xacobeo/UI/DomView.pm:181 msgid "Show the node" msgstr "Montrer le noeud" #: lib/Xacobeo/UI/DomView.pm:187 msgid "_Copy XPath" msgstr "Copier XPath" #: lib/Xacobeo/UI/DomView.pm:189 msgid "Copy the node's XPath" msgstr "Copier l'expression XPath du noeud" #: lib/Xacobeo/Timer.pm:151 #, perl-format msgid "Time: %-20s %.4fs\n" msgstr "Temps: %-20s %.4fs\n" #: lib/Xacobeo/Timer.pm:152 msgid "Unnamed" msgstr "Sans nom" #: lib/Xacobeo/Document.pm:136 #: lib/Xacobeo/Document.pm:176 msgid "Parameter 'type' must be defined" msgstr "Le paramètre 'type' doit être défini" #: lib/Xacobeo/Document.pm:279 msgid "Document node is missing" msgstr "Le noeud du document est manquant" #: lib/Xacobeo/Document.pm:394 #, perl-brace-format msgid "Namespace {name} has no URI" msgstr "L'espace de noms {name} n'a pas d'URI d'associé" #~ msgid "Unsupported document type {type}" #~ msgstr "Le document type {type} n'est pas suporté" #~ msgid "Can't create widget {name} because method {function} is missing" #~ msgstr "" #~ "Imposible de créer le widget {name} parce que la méthode {function} n'est " #~ "pas définie" #~ msgid "Copyright (C) 2008-2009 by Emmanuel Rodriguez." #~ msgstr "Copyright (C) 2008-2009 by Emmanuel Rodriguez." Xacobeo-0.15/bin000755001750001750 012211074713 15306 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/bin/xacobeo000555001750001750 665712211074713 17027 0ustar00erodriguezerodriguez000000000000#!/usr/bin/perl =head1 NAME xacobeo - Graphical interface for running XPath queries. =head1 SYNOPSIS xacobeo [OPTION]... [file [xpath]] Options: -h, --help brief help message -v, --version display the version of Xacobeo, XML::LibXML and libxml2 that are used and exit --html parse the input file as an HTML document Where I is a XML document and I a XPath query. =head1 OPTIONS =over 8 =item B<--help> Print a brief help message and exits. =item B<--html> Parse the file in the command line using the HTML parser. =back =head1 DESCRIPTION This program provides a simple graphical user interface (GUI) for executing XPath queries and seeing their results. The GUI tries to provide all the elements that are needed in order to write, test and execute XPath queries without too many troubles. It displays the Document Object Model (DOM) and the namespaces used. The program registers the namespaces automatically and each element is displayed with its associated namespaces. All is performed with the idea of being able of running an XPath query as soon as possible without having to fight with the document's namespaces and by seeing automatically under which namespace each element is. This program is not an XML editor, at least not at this point, it's meant to be used for constructing and executing XPath queries. =head1 RATIONALE The main idea behind this application is to provide a simple way for building XPath queries that will be latter integrated in to a program or XSLT transformation paths. Therefore, this program goal is to load an XML document and to display it as an XML parser sees it. Thus each node element is prefixed with its namespace. =head1 IMPLEMENTATION This program uses L (libxml2) for all XML manipulations and L for the graphical interface. =head1 LIMITATIONS For the moment, the program focuses only on XPath and doesn't allow the XML document to be edited. =head1 AUTHOR Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut use strict; use warnings; use open qw(:std :utf8); use Glib qw(TRUE FALSE); use Gtk2 qw(-init); use Pod::Usage; use Getopt::Long qw(:config auto_help); use XML::LibXML; use Xacobeo; use Xacobeo::App; exit main() unless caller; # # Main entry point of the program # sub main { # Parse the command line options my $type = 'xml'; my $do_version = 0; GetOptions( 'html' => sub { $type = 'html' }, 'version|v' => \$do_version, ) or pod2usage(2); if ($do_version) { printf "Xacobeo version: %8s\n", $Xacobeo::VERSION; printf "Compiled with libxml: %8s\n", XML::LibXML::LIBXML_DOTTED_VERSION; printf "Running with libxml: %8s\n", XML::LibXML::LIBXML_RUNTIME_VERSION; printf "XML::LibXML version: %8s\n", $XML::LibXML::VERSION; return 0; } # Create a new instance of this application my $xacobeo = Xacobeo::App->get_app(); # Create the first window my $window = $xacobeo->new_window(); if (@ARGV) { my ($source, $xpath) = @ARGV; $window->load_file($source, $type); $window->set_xpath($xpath) if defined $xpath; } $xacobeo->load_plugins(); # Start the main loop Gtk2->main(); return 0; } Xacobeo-0.15/xt000755001750001750 012211074713 15171 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/xt/perlcritic.t000444001750001750 310412211074713 17651 0ustar00erodriguezerodriguez000000000000#!perl use strict; use warnings FATAL => 'all'; use File::Spec qw(); if (!require Test::Perl::Critic) { Test::More::plan( skip_all => 'Test::Perl::Critic required for testing PBP compliance'); } Test::Perl::Critic->import( -profile => File::Spec->catfile(qw(xt perlcriticrc)), -severity => 2, -exclude => [ # These disabled policy violates should be cleared up over time. # Can't see a straightforward way to turn those into todo (TAP). # Things which should be ignored outright go into the rc file instead. 'ErrorHandling::RequireUseOfExceptions', # rework with X::Error.pm 'Subroutines::ProhibitExportingUndeclaredSubs', # trips on the XS subs, will file P::C bug with patch later 'CodeLayout::RequireUseUTF8', # should not trigger if use 5.006, will file P::C bug with patch later 'CodeLayout::ProhibitHardTabs', # contradicts docs, clearly a P::C bug 'Modules::RequireVersionVar', # waiting for other solution proposal 'ErrorHandling::RequireCarping', # change to log console 'Documentation::PodSpelling', # will do later # following are undiscussed improvements 'Subroutines::ProhibitManyArgs', 'ControlStructures::ProhibitCascadingIfElse', 'Documentation::RequirePodSections', 'ControlStructures::ProhibitPostfixControls', 'CodeLayout::RequireTidyCode', 'Documentation::RequirePodAtEnd', # later 'Documentation::RequireEndBeforeLastPod', ], ); Test::Perl::Critic::all_critic_ok(); Xacobeo-0.15/xt/perlcriticrc000444001750001750 253012211074713 17736 0ustar00erodriguezerodriguez000000000000colour-severity-5 = dark magenta colour-severity-4 = dark red colour-severity-3 = dark yellow colour-severity-2 = dark blue colour-severity-1 = black verbose = %f line %l col %c\n [%s] %p (%e) = %m\n %r\n # file line column severity explanation sourcecode # policy description [-ValuesAndExpressions::ProhibitAccessOfPrivateData] # see bug http://rt.cpan.org/Public/Bug/Display.html?id=35440 [-Editor::RequireEmacsFileVariables] # no one uses Emacs here [-Miscellanea::RequireRcsKeywords] # git faq says rcs keywords are a stupid idea # http://git.or.cz/gitwiki/GitFaq#head-4a0afe71a2bb7734777a8b0b345e0308aefdbd40 [Documentation::RequirePodSections] lib_sections = NAME | VERSION | SYNOPSIS | DESCRIPTION | INTERFACE | EXPORTS | DIAGNOSTICS | CONFIGURATION AND ENVIRONMENT | DEPENDENCIES | INCOMPATIBILITIES | BUGS AND LIMITATIONS | TO DO | MAINTAINER | SEE ALSO [Bangs::ProhibitCommentedOutCode] commentedcoderegex = \$(?!Id)[A-Za-z_].*=/ # should not trigger on the RCS variable [Tics::ProhibitLongLines] # terminal width hard_max = 124 [InputOutput::RequireCheckedSyscalls] functions = :builtins exclude_functions = print [Documentation::PodSpelling] spell_command = aspell list -l en [Modules::RequireExplicitInclusion] exempt_packages = /^Gtk2::.*/ /^XML::LibXML::.*/ Glib::Type Glib::Error Xacobeo-0.15/t000755001750001750 012211074713 15001 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/t/Xacobeo-XS.t000444001750001750 307512211074713 17240 0ustar00erodriguezerodriguez000000000000#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2; use FindBin; use lib "$FindBin::Bin"; BEGIN { use_ok('Xacobeo::XS') }; use Xacobeo::UI::SourceView; use Xacobeo::Document; use Xacobeo::Utils 'scrollify'; use Glib qw(TRUE FALSE); use Gtk2 qw(-init); use FindBin; use File::Slurp qw(slurp); use Encode 'decode'; exit tests() unless caller; sub tests { my $window = Gtk2::Window->new(); my $textview = Xacobeo::UI::SourceView->new(); $textview->set_show_line_numbers(TRUE); $textview->set_highlight_current_line(TRUE); $window->set_size_request(800, 600); $window->add(scrollify($textview)); $window->signal_connect(destroy => sub { Gtk2->main_quit(); }); foreach my $file ('sample.xml') { my $filename = File::Spec->catfile($FindBin::Bin, File::Spec->updir, 'tests', $file); my $document = Xacobeo::Document->new_from_file($filename, 'xml'); $textview->set_document($document); $textview->load_node($document->documentNode); my $buffer = $textview->get_buffer; my $text = $buffer->get_text($buffer->get_start_iter, $buffer->get_end_iter, TRUE); my $expected = expected($filename); if ($text ne $expected) { my @got = split /\n/, $text; my @expected = split /\n/, $expected; is_deeply(\@got, \@expected, "Generated the proper XML for $file"); # Start the GUI's main loop $window->show_all(); Gtk2->main(); } else { ok("XML rendered properly $file"); } } return 0; } sub expected { my ($file) = @_; $file .= '.expected'; my $content = decode('UTF-8', slurp($file)); chomp ($content); return $content; } Xacobeo-0.15/t/document.t000444001750001750 2167112211074713 17170 0ustar00erodriguezerodriguez000000000000#!/usr/bin/perl use strict; use warnings; use Test::More tests => 53; use Test::Exception; use Data::Dumper; use Carp; BEGIN { use_ok('Xacobeo::Document'); } use XML::LibXML qw(XML_XML_NS); my $FOLDER = "tests"; my @XML_NS = (XML_XML_NS() => 'xml'); my $LibXML_VERSION = XML::LibXML::LIBXML_RUNTIME_VERSION; exit main() unless caller; sub main { test_without_namespaces(); test_namespaces1(); test_namespaces2(); test_namespaces3(); test_namespaces4(); test_namespaces5(); test_empty_document(); test_empty_pi_document(); return 0; } sub test_without_namespaces { my $document = Xacobeo::Document->new_from_file("$FOLDER/xorg.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), {@XML_NS}, 'Document without namespaces' ); my $got; # Look for a non existing node $got = $document->find('//x'); is_deeply( $got->size, 0, 'Nodes from a non existing element' ); # Find an existing node set $got = $document->find('//description[@xml:lang="es"]'); is($got->size, 461, 'A lot of nodes'); my $regex_invalid; my $regex_ns; my $regex_syntax; my $regex_func; if ($LibXML_VERSION >= 20703) { $regex_invalid = qr/^XPath error : Invalid expression/; $regex_ns = qr/^XPath error : Undefined namespace prefix/; $regex_syntax = qr/^XPath error : Invalid predicate/; $regex_func = qr/^ error : xmlXPathCompOpEval: function aaa not found\nXPath error : Unregistered function/; } elsif ($LibXML_VERSION >= 20632) { $regex_invalid = qr/^XPath error : Invalid expression/; $regex_ns = qr/^ error : xmlXPathCompiledEval: evaluation failed/; $regex_syntax = qr/^XPath error : Invalid predicate/; $regex_func = qr/^XPath error : Unregistered function/; } else { $regex_invalid = qr/^Invalid expression/; $regex_ns = qr/^Undefined namespace prefix\nxmlXPathCompiledEval: evaluation failed/; $regex_syntax = qr/^Invalid predicate/; $regex_func = qr/^xmlXPathCompOpEval: function aaa not found/; } # Test that an invalid xpath expression throws an error throws_ok {$document->find('//x/')} $regex_invalid, q(throws 'Invalid expression'); # Fails because the namespace doesn't exist throws_ok {$document->find('/x:html//x:a[@href]')} $regex_ns, q(throws 'Undefined namespace'); # Fails because the syntax is invalid throws_ok {$document->find('/html//a[@href')} $regex_syntax, q(throws 'Invalid predicate'); # Fails because the function aaa() is not defined throws_ok {$document->find('aaa(1)')} $regex_func, q(throws 'Unregistered function/function not found'); # This is fine $got = $document->validate('/xkbConfigRegistry'); ok($got, 'Validate XPath query'); } sub test_namespaces1 { my $document = Xacobeo::Document->new_from_file("$FOLDER/SVG.svg", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), { 'http://purl.org/dc/elements/1.1/' => 'dc', 'http://web.resource.org/cc/' => 'cc', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' => 'rdf', 'http://www.inkscape.org/namespaces/inkscape' => 'inkscape', 'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' => 'sodipodi', 'http://www.w3.org/1999/xlink' => 'xlink', 'http://www.w3.org/2000/svg' => 'ns', @XML_NS, }, 'SVG namespaces' ); my $got; # Find a existing node set $got = $document->find('//ns:text'); is($got->size, 12, 'Count for SVG text elements'); # Get some text strings $got = $document->find('//ns:text/ns:tspan/text()'); is_deeply( [ map { $_->nodeValue } $got->get_nodelist ], [ '', '', '', '', '', '', 'find('//ns:svg/ns:metadata/rdf:RDF/cc:Work/dc:type'); is_deeply( [ map { $_->toString } $got->get_nodelist ], [ '', ], 'Mixing namespaces in SVG' ); } sub test_namespaces2 { my $document = Xacobeo::Document->new_from_file("$FOLDER/beers.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), { 'http://www.w3.org/1999/xhtml' => 'ns', @XML_NS, }, 'Beers namespaces' ); my $got; # Find the table header $got = $document->find('//ns:th/ns:td[count(.//node()) = 1]/text()'); is_deeply( [ map { $_->data } $got->get_nodelist ], [ qw(Name Origin Description) ], 'Got the table header' ); # Try to find all nodes in the default namespace $got = $document->find('//ns:*'); is($got->size, 9, "Got 9 in the default namespace"); } sub test_namespaces3 { my $document = Xacobeo::Document->new_from_file("$FOLDER/stocks.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), { 'urn:schemas-microsoft-com:office:excel' => 'x', 'http://www.w3.org/TR/REC-html40' => 'html', 'urn:schemas-microsoft-com:office:office' => 'o', 'urn:schemas-microsoft-com:office:spreadsheet' => 'ss', @XML_NS, }, "Extract 'stocks.xml' namespaces" ); } sub test_namespaces4 { my $document = Xacobeo::Document->new_from_file("$FOLDER/sample.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), { 'urn:x-is-simple' => 'x', 'urn:m&n' => 'ns', @XML_NS, }, "Extract 'sample.xml' namespaces" ); my $got; # Find some stuff $got = $document->find('//*'); is($got->size, 11, "Find all elements"); $got = $document->find('//ns:*'); is($got->size, 1, "Find all elements in the default namespace"); is($got->[0]->nodeName, 'no-content'); $got = $document->find('//x:*'); is($got->size, 1, "Find all elements in the namespace 'x'"); is($got->[0]->nodeName, 'x:div'); } sub test_namespaces5 { my $document = Xacobeo::Document->new_from_file("$FOLDER/namespaces.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), { 'http://www.example.org/a' => 'a', 'http://www.example.org/b' => 'b', 'http://www.example.org/c' => 'c', 'http://www.example.org/x' => 'ns', 'http://www.example.org/y' => 'ns1', @XML_NS, }, "Extract 'namespaces.xml' namespaces" ); my $got; # Find some stuff $got = $document->find('//*'); is($got->size, 17, "Find all elements"); $got = $document->find('//a:*'); is($got->size, 5, "Find all elements in the namespace 'a'"); is_deeply( [ map { $_->nodeName } $got->get_nodelist ], [ qw(a:p a:span c:div g4 a:p) ], "Match element names for namespace 'a'" ); $got = $document->find('//b:*'); is($got->size, 1, "Find all elements in the namespace 'b'"); is($got->[0]->nodeName, 'b:i'); $got = $document->find('//c:tag'); is($got->size, 1, "Find all elements in the namespace 'c'"); is($got->[0]->nodeName, 'c:tag'); $got = $document->find('//ns:*'); is($got->size, 2, "Find all elements in the 1st default namespace"); is($got->[0]->nodeName, 'g1'); $got = $document->find('//ns1:*'); is($got->size, 2, "Find all elements in the 2nd default namespace"); is_deeply( [ map { $_->nodeName } $got->get_nodelist ], [ qw(g2 b) ], "Match element names for namespace 'ns1'" ); } # Reads an empty file (there's no document) sub test_empty_document { my $document = Xacobeo::Document->new_from_file("$FOLDER/empty.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), {@XML_NS}, 'Document without namespaces' ); # libxml 2.7.3 returns XML::LibXML::Document for empty documents if ($document->documentNode) { cmp_ok($LibXML_VERSION, '>=', 20703, 'libxml 2.7.3 or greater'); isa_ok($document->documentNode, 'XML::LibXML::Document', 'there is a document'); is($document->documentNode->hasChildNodes, 0, 'no child nodes'); } else { is($document->documentNode, undef, 'there is no node'); throws_ok {$document->find('/')} qr/^Document node is missing/, q(throws 'Document node is missing'); throws_ok {$document->find('42')} qr/^Document node is missing/, q(again throws 'Document node is missing'); } } # Reads a document that has only the XML PI (Document without root element) sub test_empty_pi_document { my $document = Xacobeo::Document->new_from_file("$FOLDER/empty-pi.xml", 'xml'); isa_ok($document, 'Xacobeo::Document'); is_deeply( $document->namespaces(), {@XML_NS}, 'Document without namespaces' ); isa_ok($document->documentNode, 'XML::LibXML::Document', "Parsed an XML document"); is($document->documentNode->getDocumentElement, undef); my $list = $document->find('/'); is($list->size, 1); my $root = $list->get_node(0); isa_ok($root, 'XML::LibXML::Document'); my @child = $root->childNodes; is(scalar(@child), 0); } �����������������������������������������������������������������������Xacobeo-0.15/t/object.t�����������������������������������������������������������������������������000444��001750��001750�� 2200�12211074713� 16563� 0����������������������������������������������������������������������������������������������������ustar�00erodriguez����������������������erodriguez����������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl use strict; use warnings; use Test::More tests => 10; use Data::Dumper; use Gtk2 '-init'; use Xacobeo::GObject; Xacobeo::GObject->register_package( 'Gtk2::Entry' => properties => [ Glib::ParamSpec->object( 'ui-manager', 'UI Manager', "The UI Manager that provides the UI.", 'Gtk2::UIManager', ['readable', 'writable'], ), ], ); exit main() unless caller; sub main { my $count = 0; my $object = __PACKAGE__->new(); $object->signal_connect('notify::ui-manager', sub { ++$count; }); is($count, 0); my $ui1 = Gtk2::UIManager->new(); my $ui2 = Gtk2::UIManager->new(); is($object->get_ui_manager, undef, "Property not set yet"); $object->set_ui_manager($ui1); is($object->get_ui_manager, $ui1, "Property is set"); is($object->ui_manager, $ui1, "Property is set"); is($count, 1); $object->set_ui_manager($ui2); is($object->get_ui_manager, $ui2, "Property is changed"); is($count, 2); # Doesn't fire an notify signal $object->ui_manager($ui1); is($object->get_ui_manager, $ui1, "Property is changed"); is($object->ui_manager, $ui1, "Property is set"); is($count, 2); return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Xacobeo-0.15/tests����������������������������������������������������������������������������������000755��001750��001750�� 0�12211074713� 15700� 5����������������������������������������������������������������������������������������������������ustar�00erodriguez����������������������erodriguez����������������������000000��000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������Xacobeo-0.15/tests/stocks.xml�����������������������������������������������������������������������000444��001750��001750�� 4347�12211074713� 20075� 0����������������������������������������������������������������������������������������������������ustar�00erodriguez����������������������erodriguez����������������������000000��000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������� me 1996-10-14T23:33:28Z 2006-10-29T19:42:06Z 11.6360 False False Company Name Ticker 1 Aecon Group Inc. (ARE) are
3 R1C1:R354C3 False False Xacobeo-0.15/tests/SVG.svg000444001750001750 7345712211074713 17255 0ustar00erodriguezerodriguez000000000000 image/svg+xml <svg version="1.0" xml> <defs> <use xlink:href="#box_gr <use xlink:href="#circle <!--add more content--> <linearGradient x1="99.7" <?xml version="1.0"en> </defs> <circle cx1="90" r="4" </svg> <use xlink:href="#circle <line x1="100" y1="300" Xacobeo-0.15/tests/xorg.xml000444001750001750 266772212211074713 17644 0ustar00erodriguezerodriguez000000000000 pc101 Generic 101-key PC Generies 101-sleutel PC Generic 101-key PC Стандартна 101 клавишна PC клавиатура Obecné PC 101 kláves Generisk 101-taster PC Τυπικός Ηλεκ. Υπολογιστής 101-πλήκτρων Generic 101-key PC PC genérico 101 teclas Yleinen 101-näppäiminen PC PC générique 101 touches általános 101 gombos PC Generica 101 tasti PC Algemeen 101-toetsen PC Обычный 101-клавишный PC Všeobecná PC 101 kláves Splošna tipkovnica s 101 tipko PC Generic 101-key PC Обична са 101 тастером Obična sa 101 tasterom Allmän 101-tangenters PC Soysal 101 tuşlu PC Звичайна 101-клавішна для ПК PC chung 101 phím 通用 101 键电脑 一般 101鍵 鍵盤 pc102 Generic 102-key (Intl) PC Generies 102-sleutel (Intl) PC Generic 102-key (Intl) PC Стандартна 102 клавишна PC клавиатура Obecné PC 102 kláves (mez.) Generisk 102-taster (Intl) PC Τυπικός Ηλεκ. Υπολογιστής 102-πλήκτρων (Διεθνές) Generic 102-key (Intl) PC PC genérico 102 teclas (intl) Yleinen 102-näppäiminen (kansainvälinen) PC PC générique 102 touches (intl) általános 102 gombos (nemzetközi) PC Generica 102 tasti (Intl) PC Algemeen 102-toetsen (internationaal) PC Обычный 102-клавишный PC Všeobecná PC 102 kláves (medz.) Splošna tipkovnica s 102 tipkama (Intl) PC Generic 102-key (Intl) PC Обична са 102 тастера (међунар.) Obična sa 102 tastera (međunar.) Allmän 102-tangenters (internationell) PC Soysal 102 tuşlu (Uluslararası) PC Звичайна 102-клавішна для ПК PC chung 102 phím (Intl) 通用 102 键(国际)电脑 一般 102鍵 (國際) 鍵盤 pc104 Generic 104-key PC Generies 104-sleutel PC Generic 104-key PC Стандартна 104 клавишна PC клавиатура Obecné PC 104 kláves Generisk 104-taster PC Τυπικός Ηλεκ. Υπολογιστής 104-πλήκτρων Generic 104-key PC PC genérico 104 teclas Yleinen 104-näppäiminen PC PC générique 104 touches általános 104 gombos PC Generica 104 tasti PC Algemeen 104-toetsen PC Обычный 104-клавишный PC Všeobecná PC 104 kláves Splošna tipkovnica s 104 tipkami PC Generic 104-key PC Обична са 104 тастера Obična sa 104 tastera Allmän 104-tangenters PC Soysal 104 tuşlu PC Звичайна 104-клавішна для ПК PC chung 104 phím 通用 104 键电脑 一般 104鍵 鍵盤 pc105 Generic 105-key (Intl) PC Generies 105-sleutel (Intl) PC Generic 105-key (Intl) PC Стандартна 105 клавишна PC клавиатура Obecné PC 105 kláves (mez.) Generisk 105-taster (Intl) PC Τυπικός Ηλεκ. Υπολογιστής 105-πλήκτρων (Διεθνές) Generic 105-key (Intl) PC PC genérico 105 teclas (intl) Yleinen 105-näppäiminen (kansainvälinen) PC PC générique 105 touches (intl) általános 105 gombos (nemzetközi) PC Generica 105 tasti (Intl) PC Algemeen 105-toetsen (internationaal) PC Обычный 105-клавишный (инт.) РС Všeobecná 105-kláv. (medzinár.) PC Splošna tipkovnica s 105 tipkami (Intl) PC Generic 105-key (Intl) PC Обична са 105 тастера (међунар.) Obična sa 105 tastera (međunar.) Allmän 105-tangenters (internationell) PC Soysal 105 tuşlu (uluslararası) PC Звичайна 105-клавішна для ПК PC chung 105 phím (Intl) 通用 105 键(国际)电脑 一般 105 鍵 (國際) 鍵盤 dell101 Dell 101-key PC Dell 101-key PC Dell 101-key PC 101 клавишна PC клавиатура на Dell Dell PC 101 kláves Dell 101-taster PC Dell 101-key PC Dell PC 101 teclas Dell 101-näppäiminen PC Dell PC 101 touches Dell 101-key PC Dell 101 tasti PC Dell 101-toetsen PC Dell 101-клавишный PC DELL PC 101 kláves Dell tipkovnica s 101 tipko PC Dell 101-key PC Dell 101-тастер PC Dell 101-taster PC Dell 101-tangenters PC Dell 101 tuşlu PC Dell 101-клавішна для ПК Dell PC 101 phím Dell 101 键电脑 戴爾 101 鍵 鍵盤 everex Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote Everex STEPnote flexpro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro Keytronic FlexPro microsoft Microsoft Natural Microsoft Natuurlik Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Microsoft Natural Микрософт Натурал Mikrosoft Natural Microsoft Natural Microsoft Basit Microsoft Natural Microsoft Natural 微软自然键盘 微軟自然鍵盤 omnikey101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate OmniKey 101 Northgate Omnikey 101 winbook Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook Model XP5 Winbook kiểu mẫu XP5 Winbook Model XP5 Winbook XP5 鍵盤 jp106 Japanese 106-key Japanees 106-sleutel Yaponca 106-düymə японска 106-клавишна Japonské 106 kláves Japansk 106-taster Japanese 106-key Japonés 106 teclas japanilainen 106-näppäiminen Japonais 106 touches japán 106 gombos Giapponese 106 tasti Japans 106-toetsen Японская 106-клавишная Japonskáé106 kláves Japonska tipkovnica s 106 tipkami Japoneze 106-pulsantë јапански са 106 тастера japanski sa 106 tastera Japansk 106-tangenters Japonca 106 tuşlu Японська 106-клавішна Nhật bản 106 phím 日语 106 键 日文 106鍵 鍵盤 pc98 PC-98xx Series PC-98xx Reeks PC-98xx Seriyaları PC-98xx серии PC-98xx řada PC-98xx-serien PC-98xx Series PC-98xx Series PC-98xx-sarja PC-98xx Series PC-98xx Series Serie PC-98xx PC-98xx serie PC-98xx Séria PC-98xx PC-98xx Serije Seritë PC-98xx PC-98xx серија PC-98xx serija PC-98xx-serien PC-98xx Serisi Моделі PC-98xx Sê ri PC-98xx PC-98xx 系列 PC-98xx 系列 a4techKB21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 A4Tech KB-21 a4techKBS8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 A4Tech KBS-8 abnt2 Brazilian ABNT2 Braziliaans ABNT2 Brazilya düzülüşü ABNT2 бразилска ABNT2 Brazilské ABNT2 Brasiliansk ABNT2 Brazilian ABNT2 ABNT2 brasileño brasilialainen ABNT2 ABNT2 brésilien brazil ABNT2 Brasiliana ABNT2 Braziliaans ABNT2 ABNT2 Brazílska ABNT2 Brazilska ABNT2 Braziliane ABNT2 бразилска ABNT2 brazilska ABNT2 Brasiliansk ABNT2 Brazilya dili ABNT2 Бразильська ABTN2 ABNT2 của Bra-zil 巴西 ABNT2 巴西 ABNT2 鍵盤 airkey Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V Acer AirKey V acpi ACPI Standard ACPI Standaard ACPI Standartı Standard ACPI ACPI-standard ACPI Standard ACPI Estándard ACPI-standardi ACPI standard ACPI szabvány Standard ACPI ACPI standaard Стандартная ACPI Štandard ACPI ACPI Standard ACPI Standart ACPI стандард ACPI standard ACPI-standard ACPI Standardı Типова ACPI ACPI Tiêu chuẩn ACPI 标准 ACPI 標準 azonaRF2300 Azona RF2300 wireless Internet Keyboard Azona RF2300 wireless Internet Keyboard Azona RF2300 wireless Internet Keyboard Azona RF2300 -langaton Internet-näppäimistö Azona RF2300 Internet sans fil Azona RF2300 Internet Keyboard wireless Azona RF2300 draadloos internettoetsenbord Azona RF2300 wireless Internet Keyboard Azona RF2300 brezžična Internet Tipkovnica Azona RF2300 бежична Интернет тастатура Azona RF2300 bežična Internet tastatura Azona RF2300 wireless Internet Keyboard Bàn phím không dây Internet Azona RF2300 Azona RF2300 無線網際鍵盤 scorpius Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Напредни Шкорпион КИ Napredni Škorpion KI Advance Scorpius KI Advance Scorpius KI Advance Scorpius KI Nâng cao Scorpius KI 高级 Scorpius KI 進階 Scorpius KI brother Brother Internet Keyboard Brother Internetsleutelbord Brother Internet Keyboard Brother Internet Keyboard Brother Internet Keyboard Brother Internet Keyboard Brother Internet Keyboard Brother-Internet-näppäimistö Brother Internet Brother Internet Keyboard Brother Internet Keyboard Brother internet toetsenbord Brother Internet Keyboard Brother Internet Keyboard Brother Internet Tipkovnica Tastiera Internet Brother Brother Интернет тастатура Brother Internet tastatura Brother Internettangentbord Brother Örütbağ Klavyesi Brother Internet Keyboard Bàn phím Internet Brother Brother 网际键盘 Brother 網際鍵盤 btc5113rf BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF-multimedie BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF Multimedia BTC 5113RF мултимедијална BTC 5113RF multimedijalna BTC 5113RF Multimedia BTC 5113RF Çokluortam BTC 5113RF мультимедія BTC 5113RF Phim nhạc BTC 5113RF 多媒体 BTC 5113RF 多媒體 btc5126t BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T BTC 5126T btc9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 BTC 9000 btc9000a BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A BTC 9000A btc9001ah BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC·9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH BTC 9001AH btc5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 BTC 5090 cherryblue Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd Cherry Blue Line CyBo@rd cherryblueb Cherry CyMotion Master XPress cherrybluea Cherry Blue Line CyBo@rd (alternate option) Cherry Blue Line CyBo@rd (alternatief) Cherry Blue Line CyBo@rd (alternate option) Cherry Blue Line CyBo@rd (alternativní volba) Cherry Blue Line CyBo@rd (alternativ) Cherry Blue Line CyBo@rd (alternate option) Cherry Blue Line CyBo@rd (alternate option) Cherry Blue Line CyBo@rd (vaihtoehtoinen valinta) Cherry Blue Line CyBo@rd (autre option) Cherry Blue Line CyBo@rd (másik lehetőség) Cherry Blue Line CyBo@rd (opzione alternativa) Cherry Blue Line CyBo@rd (alternatieve optie) Cherry Blue Line CyBo@rd (альтернативный вариант) Cherry Blue Line CyBo@rd (alternatívna voľba) Cherry Blue Line CyBo@rd (druga izbira) Cherry Blue Line CyBo@rd (opcioni alterno) Cherry Blue Line CyBo@rd (друга могућност) Cherry Blue Line CyBo@rd (druga mogućnost) Cherry Blue Line CyBo@rd (alternativ) Cherry Blue Line CyBo@rd (diğer seçenek) Cherry Blue Line CyBo@rd (альтернативний варіант) Cherry Blue Line CyBo@rd (luân phiên tùy chọn) Cherry Blue Line CyBo@rd (替代选项) Cherry Blue Line CyBo@rd (替代選項) cherrycyboard Cherry CyBo@rd USB-Hub Cherry CyBo@rd USB-Hub Cherry CyBo@rd USB-Hub Cherry CyBo@rd USB-Hub chicony Chicony Internet Keyboard Chicony Internetsleutelbord Chicony Internet Keyboard Интернет клавиатура на Chicony Chicony Internet Keyboard Chicony Internet Keyboard Chicony Internet Keyboard Chicony Internet Keyboard Chicony-Internet-näppäimistö Chicony Internet Chicony Internet Keyboard Chicony Internet Keyboard Chicony internet toetsenbord Chicony Internet Keyboard Chicony Internet Keyboard Chicony Internet Tipkovnica Tastiera Internet Chicony Chicony Интернет тастатура Chicony Internet tastatura Chicony Internettangentbord Chicony Örütbağ Klavyesi Інтернет-клавіатура Chicony Bàn phím Internet Chicony Chicony Internet 键盘 Chicony 網際網路鍵盤 chicony9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 Chicony KB-9885 compaqeak8 Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access -näppäimistö Compaq Easy Access Compaq Easy Access Keyboard Compaq tastiera Easy Access Compaq Easy Access toetsenbord Compaq Easy Access Keyboard Compaq Easy Access Keyboard Compaq Easy Access Tipkovnica Tastiera Compaq Easy Access Compaq тастатура за лак приступ Compaq tastatura za lak pristup Compaq Easy Access-tangentbord Compaq Kolay Erişim Klavyesi Compaq Easy Access Keyboard Bàn phím Truy cập Dễ dàng của Compaq Compaq Easy Access 键盘 康柏輕鬆存取鍵盤 compaqik7 Compaq Internet Keyboard (7 keys) Compaq Internet Keyboard (7 sleutels) Compaq Internet Keyboard (7 düymə) Интернет клавиатура на Compaq (със 7 допълнителни клавиша) Compaq Internet Keyboard (7 kláves) Compaq Internet Keyboard (7 taster) Compaq Internet Keyboard (7 keys) Compaq Internet Keyboard (7 keys) Compaq-Internet-näppäimistö (7 näppäintä) Compaq Internet (7 touches) Compaq Internet Keyboard (7 gombos) Compaq Internet Keyboard (7 tasti) Compaq internet toetsenbord (7 toetsen) Compaq Internet Keyboard (7 клавиш) Compaq Internet Keyboard (7 kláves) Compaq Internet Tipkovnica (7 tipk) Tastiera Internet Compaq (7 pulsante) Compaq Интернет тастатура (7 тастера) Compaq Internet tastatura (7 tastera) Compaq Internettangentbord (7 tangenter) Örütbağ Klavyesi (7 tuşlu) Compaq Internet Keyboard (7 клавіш) Bàn phím Internet Compaq (7 phím) Compaq 网际键盘(7键) 康柏網際鍵盤(7鍵) compaqik13 Compaq Internet Keyboard (13 keys) Compaq Internet Keyboard (13 sleutels) Compaq Internet Keyboard (13 düymə) Интернет клавиатура на Compaq (с 13 допълнителни клавиша) Compaq Internet Keyboard (13 kláves) Compaq Internet Keyboard (13 taster) Compaq Internet Keyboard (13 keys) Compaq Internet Keyboard (13 keys) Compaq-Internet-näppäimistö (13 näppäintä) Compaq Internet (13 touches) Compaq Internet Keyboard (13 gombos) Compaq Internet Keyboard (13 tasti) Compaq internet toetsenbord (13 toetsen) Compaq Internet Keyboard (13 клавиш) Compaq Internet Keyboard (13 kláves) Compaq Internet Tipkovnica (13 tipk) Tatiera Internet Compaq (13 pulsante) Compaq Интернет тастатура (13 тастера) Compaq Internet tastatura (13 tastera) Compaq Internettangentbord (13 tangenter) Compaq Örütbağ Klavyesi (13 tuşlu) Compaq Internet Keyboard (13 клавіш) Bàn phím Internet Compaq (13 phím) Compaq 网际键盘(13键) 康柏網際鍵盤(13鍵) compaqik18 Compaq Internet Keyboard (18 keys) Compaq Internet Keyboard (18 sleutels) Compaq Internet Keyboard (18 düymə) Compaq Internet Keyboard (18 kláves) Compaq Internet Keyboard (18 taster) Compaq Internet Keyboard (18 keys) Compaq Internet Keyboard (18 keys) Compaq-Internet-näppäimistö (18 näppäintä) Compaq Internet (18 touches) Compaq Internet Keyboard (18 gombos) Compaq Internet Keyboard (18 tasti) Compaq internet toetsenbord (18 toetsen) Compaq Internet Keyboard (18 клавиш) Compaq Internet Keyboard (18 kláves) Compaq Internet Tipkovnica (18 tipk) Tastiera Internet Compaq (18 pulsante) Compaq Интернет тастатура (18 тастера) Compaq Internet tastatura (18 tastera) Compaq Internettangentbord (18 tangenter) Compaq Örütbağ Klavyesi (18 tuşlu) Compaq Internet Keyboard (18 клавіш) Bàn phím Internet Compaq (18 phím) Compaq 网际键盘(18键) 康柏網際鍵盤(18鍵) cymotionlinux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux Cherry CyMotion Master Linux armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard Laptop/notebook Compaq (eg. Armada) Laptop Keyboard Laptop/notebook Compaq (məs. Armada) Laptop Klaviaturası Laptop/notebook Compaq (např. Armada) Laptop Keyboard Bærbar Compaq (fx Armada) Laptop Keyboard Laptop/notebook Compaq (eg. Armada) Laptop Keyboard Laptop/notebook Compaq (eg. Armada) Laptop Keyboard Kannettava Compaq (esim. Armada) kannettavan näppäimistö Compaq portable (p.e. Armada) Laptop/notebook Compaq (pl. Armada) Laptop Keyboard Compaq Laptop tastiera per portatile (es. Armada) Laptop/notebook Compaq (bijv. Armada) laptop toetsenbord Клавиатура для компьютеров Compaq (например Armada) Laptop/notebook Compaq (napr. Armada) Laptop Keyboard Laptop/notebook Compaq (eg. Armada) Laptop Tipkovnica Tastierë laptop për Laptop/notebook Compaq (p.sh. Armada) Тастатуре преносних рачунара из Compaq-а (нпр. Armada) Tastature prenosnih računara iz Compaq-a (npr. Armada) Laptop-tangentbord för bärbar Compaq-dator (t.ex. Armada) Laptop/notebook Compaq (örn. Armada) Dizüstü Klavyesi Клавіатура для комп'ютерів Compaq (напр., Armada) Bàn phím nhỏ gọn cho máy xách tay/notebook Compaq (ví dụ Armada) 便携/笔记本 Compaq(如 Armada)便携键盘 可攜式/筆記型 康柏 (如 Armada) 可攜式鍵盤 presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard Laptop/notebook Compaq (eg. Presario) Internet Keyboard Laptop/notebook Compaq (məs. Presario) İnternet Klaviaturası Laptop/notebook Compaq (např. Presario) Internet Keyboard Bærbar Compaq (fx Presario) Internet Keyboard Laptop/notebook Compaq (eg. Presario) Internet Keyboard Laptop/notebook Compaq (eg. Presario) Internet Keyboard Kannettava Compaq (esim. Armada) Internet-näppäimistö Compaq portable Internet (p.e. Presario) Laptop/notebook Compaq (pl. Presario) Internet Keyboard Compaq Internet Keyboard per portatile (es. Presario) Laptop/notebook Compaq (bijv. Presario) internet toetsenbord "Интернет" клавиатура для компьютеров Compaq (например Presario) Laptop/notebook Compaq (napr. Presario) Internet Keyboard Laptop/notebook Compaq (eg. Presario) Internet Tipkovnica Tastierë për Internet për Laptop/notebook Compaq (p.sh. Presario) Тастатуре преносних рачунара из Compaq-а (нпр. Presario) Tastature prenosnih računara iz Compaq-a (npr. Presario) Internettangentbord för bärbar Compaq-dator (t.ex. Presario) Laptop/notebook Compaq (örn. Presario) Örütbağ Klavyesi Інтернет-клавіатура для ноутбуків Compaq (напр., Presario) Bàn phím Internet cho máy xách tay/notebook Compaq (ví dụ Presario) 便携/笔记本 Compaq(如自由人)网际键盘 可攜式/筆記型 康柏 (如 Presario) 網際鍵盤 ipaq Compaq iPaq Keyboard Compaq iPaq Keyboard Compaq iPaq Keyboard Клавиатура на Compaq iPaq Compaq iPaq Keyboard Compaq iPaq Keyboard Compaq iPaq Keyboard Compaq iPaq Keyboard Compaq iPaq-näppäimistö Compaq iPaq Compaq iPaq Keyboard Compaq tastiera iPaq Compaq iPaq toetsenbord Compaq iPaq Keyboard Compaq iPaq Keyboard Compaq iPaq Tipkovnica Tastiera Compaq iPaq Compaq iPaq тастатура Compaq iPaq tastatura Compaq iPaq-tangentbord Compaq iPaq Klavyesi Compaq iPaq Keyboard Bàn phím iPaq Compaq Compaq iPaq 键盘 康柏 iPaq 鍵盤 dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell Dell 戴爾 dellusbmm Dell USB Multimedia Keybard Dell USB Multimedia Keybard Dell USB Multimedia Keyboard Dell USB мултимедијална тастатура inspiron Laptop/notebook Dell Inspiron 6xxx/8xxx Laptop/notebook Dell Inspiron 6xxx/8xxx Настольная/портативная для Dell Inspiron 6xxx/8xxx Тастатуре преносних рачунара Dell Inspiron 6xxx/8xxx dexxa Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa-langaton työpöytänäppäimistö Dexxa Desktop sans fil Dexxa Wireless Desktop Keyboard Dexxa tastiera Wireless Desktop Dexxa Wireless Desktop toetsenbord Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Keyboard Dexxa Wireless Desktop Tipkovnica Tastierë Dexxa Wireless Desktop Dexxa бежична тастатура Dexxa bežična tastatura Dexxa trådlöst skrivbordstangentbord Dexxa Kablosuz Masaüstü Klavyesi Dexxa Wireless Desktop Keyboard Bàn phím Không dây Dexxa cho Desktop Dexxa 无线桌面键盘 Dexxa 無線桌面鍵盤 diamond Diamond 9801 / 9802 series Diamond 9801 / 9802 series Diamond 9801 / 9802 seryaları Diamond řada 9801 / 9802 Diamond 9801 / 9802-serien Diamond 9801 / 9802 series Diamond 9801 / 9802 series Diamond 9801/9802-sarja Diamond 9801 / 9802 series Diamond 9801 / 9802 series Diamond serie 9801/9802 Diamond 9801 / 9802 serie Модели Diamond 9801/9802 Diamond séria 9801 / 9802 Diamond 9801 / 9802 serija Seritë Diamond 9801 / 9802 Diamond 9801 / 9802 серија Diamond 9801 / 9802 serija Diamond 9801/9802-serien Diamond 9801 / 9802 serileri Моделі Diamond 9801/9802 Sê ri Diamond 9801 / 9802 Diamond 9801 / 9802 系列 Diamond 9801 / 9802 系列 dtk2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 Ennyah DKB-1008 genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM-näppäimistö KWD-910 Genius Comfy KB-16M / Genius MM KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM toetsenbord KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Tipkovnica KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius ММ тастатура KWD-910 Genius Comfy KB-16M / Genius MM tastatura KWD-910 Genius Comfy KB-16M / Genius MM-tangentbord KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Comfy KB-16M / Genius MM Keyboard KWD-910 Genius Tiện lợi KB-16M / Bàn phím Genius MM KWD-910 通用 Comfy KB-16M / Genius MM 键盘 KWD-910 昆盈 Comfy KB-16M / 昆盈 MM 鍵盤 KWD-910 geniuscomfy Genius Comfy KB-12e Genius Comfy KB-12e Genius Comfy KB-12e Genius Comfy KB-12e geniuscomfy2 Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-rulla Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll Genius Comfy KB-21e-Scroll 昆盈 Comfy KB-21e-Scroll gyration Gyration Gyration Gyration Gyration Gyration Gyration Gyration Гирашн Gyration tipkovnica Gyration Gyration Çekimsel Sự chuyển hồi 回轉 hpi6 Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Интернет клавиатура на Hewlett-Packard Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard-Internet-näppäimistö Hewlett-Packard Internet Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard internet toetsenbord Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Keyboard Hewlett-Packard Internet Tipkovnica Tastierë për Internet Hewlett-Packard Hewlett-Packard Интернет тастатура Hewlett-Packard Internet tastatura Hewlett-Packard Internettangentbord Hewlett-Packard Örütbağ Klavyesi Hewlett-Packard Internet Keyboard Bàn phím Internet Hewlett-Packard 惠普网际键盘 惠普網際鍵盤 hp2501 Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501-multimedianäppäimistö Hewlett-Packard SK-2501 Multimedia Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard Multimedia Keyboard SK-2501 Hewlett-Packard SK-2501 multimedia toetsenbord Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedia Keyboard Hewlett-Packard SK-2501 Multimedijska Tipkovnica Tastierë multimediale Hewlett-Packard SK-2501 Hewlett-Packard SK-2501 мултимедијална тастатура Hewlett-Packard SK-2501 multimedijalna tastatura Hewlett-Packard SK-2501 multimediatangentbord Hewlett-Packard SK-2501 Çokluortam Klavyesi Hewlett-Packard SK-2501 Multimedia Keyboard Bàn phím phim nhạc Hewlett-Packard SK-2501 惠普 SK-2501 多媒体键盘 惠普 SK-2501 多媒體鍵盤 hp2505 Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Интернет клавиатура на Hewlett-Packard SK-2505 Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505-Internet-näppäimistö Hewlett-Packard SK-2505 Internet Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard Internet Keyboard SK-2505 Hewlett-Packard SK-2505 internet toetsenbord Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Keyboard Hewlett-Packard SK-2505 Internet Tipkovnica Tastierë për Internet Hewlett-Packard SK-2505 Hewlett-Packard SK-2505 Интернет тастатура Hewlett-Packard SK-2505 Internet tastatura Hewlett-Packard SK-2505 Internettangentbord Hewlett-Packard SK-2505 Örütbağ Klavyesi Hewlett-Packard SK-2505 Internet Keyboard Bàn phím Internet Hewlett-Packard SK-2505 惠普 SK-2505 网际键盘 惠普 SK-2505 網際鍵盤 hpxe3gc Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC Hewlett-Packard Omnibook XE3 GC 惠普 Omnibook XE3 GC 惠普 Omnibook XE3 GC hpxe3gf Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF Hewlett-Packard Omnibook XE3 GF 惠普 Omnibook XE3 CF 惠普 Omnibook XE3 CF hpxt1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard Omnibook XT1000 惠普 Omnibook XT1000 惠普 Omnibook XT1000 hpzt11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavillion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx Hewlett-Packard Pavilion ZT11xx 惠普 Pavilion ZT11xx 惠普 Pavilion ZT11xx hp500fa Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA Hewlett-Packard Omnibook 500 FA 惠普 Omnibook 500 FA 惠普 Omnibook 500 FA hp5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard·Omnibook·5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx Hewlett-Packard Omnibook 5xx 惠普 Omnibook 5xx 惠普 Omnibook 5xx hp6000 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard·Omnibook·6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard Omnibook 6000/6100 惠普 Omnibook 6000/6100 惠普 Omnibook 6000/6100 honeywell_euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell Euroboard Honeywell 欧洲键盘 Honeywell 歐洲鍵盤 rapidaccess IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Rapid Access IBM Hızlı Erişim IBM Rapid Access Truy cập nhanh IBM IBM Rapid Access IBM Rapid Access rapidaccess2 IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Rapid Access II IBM Hızlı Erişim II IBM Rapid Access II Truy cập nhanh IBM II IBM Rapid Access II IBM Rapid Access II rapidaccess2a IBM Rapid Access II (alternate option) IBM Rapid Access II (alternate option) IBM Rapid Access II (alternate option) IBM Rapid Access II (alternativní volba) IBM Rapid Access II (alternativ) IBM Rapid Access II (alternate option) IBM Rapid Access II (opción alternativa) IBM Rapid Access II (vaihtoehtoinen) IBM Rapid Access II (autre option) IBM Rapid Access II (másik lehetőség) IBM Rapid Access II (opzione alternativa) IBM Rapid Access II (alternatieve optie) IBM Rapid Access II (альтернативный вариант) IBM Rapid Access II (alternatívna voľba) IBM Rapid Access II (druga izbira) IBM Rapid Access II (opcioni alternativ) IBM Rapid Access II (друга могућност) IBM Rapid Access II (druga mogućnost) IBM Rapid Access II (alternativ) IBM Hızlı Erişim II (diğer seçenek) IBM Rapid Access II (альтернативний варіант) Truy cập nhanh IBM II (luân phiên tùy chọn) IBM Rapid Access II(替代选项) IBM Rapid Access II(替代選項) thinkpad IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM·ThinkPad·560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E IBM ThinkPad 560Z/600/600E/A22E logiaccess Logitech Access Keyboard Logitech Access Keyboard Logitech Access Keyboard Logitech Access Keyboard Logitech Access Logitech Access Keyboard Logitech Access toetsenbord Logitech Access Keyboard Logitech Access Tipkovnica Logitech Access тастатура Logitech Access tastatura Logitech Access Keyboard Bàn phím Truy cập Logitech 羅技 Access 鍵盤 ltcd Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Cordless Desktop Logitech Kablosuz Masaüstü Logitech Cordless Desktop Logitech Cordless Desktop 罗技无影手 羅技無影手 logicdit Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch Logitech Kablosuz Masaüstü iTouch Logitech Cordless Desktop iTouch Logitech Cordless Desktop iTouch 罗技网际无影手 羅技網際無影手 logicdp Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro Logitech Kablosuz Masaüstü Pro Logitech Cordless Desktop Pro Logitech Cordless Desktop Pro 罗技无影手高级版 羅技無影手進階版 logicdpa Logitech Cordless Desktop Pro (alternate option) Logitech Cordless Desktop Pro (alternatiewe opsie) Logitech Cordless Desktop Pro (alternate option) Logitech Cordless Desktop Pro (alternativní volba) Logitech Cordless Desktop Pro (alternativ) Logitech Cordless Desktop Pro (alternate option) Logitech Cordless Desktop Pro (opción alternativa) Logitech Cordless Desktop Pro (vaihtoehtoinen) Logitech Cordless Desktop Pro (autre option) Logitech Cordless Desktop Pro (másik lehetőség) Logitech Cordless Desktop Pro (opzione alternativa) Logitech Cordless Desktop Pro (alternatieve optie) Logitech Cordless Desktop Pro (альтернативный вариант) Logitech Cordless Desktop Pro (alternatívna voľba) Logitech Cordless Desktop Pro (alternate option) Logitech Cordless Desktop Pro (opcioni alternativ) Logitech Cordless Desktop Pro (додатна могућност) Logitech Cordless Desktop Pro (dodatna mogućnost) Logitech Cordless Desktop Pro (alternativ) Logitech Kablosuz Masaüstü Pro (diğer seçenek) Logitech Cordless Desktop Pro (альтернативний варіант) Logitech Cordless Desktop Pro (luân phiên tùy chọn) 罗技无影手高级版(替代选项) 羅技無影手進階版(替代選項) logicdpa2 Logitech Cordless Desktop Pro (alternate option2) Logitech Cordless Desktop Pro (alternatiewe opsie2) Logitech Cordless Desktop Pro (alternate option2) Logitech Cordless Desktop Pro (alternativní volba 2) Logitech Cordless Desktop Pro (alternativ 2) Logitech Cordless Desktop Pro (alternate option2) Logitech Cordless Desktop Pro (opción alternativa 2) Logitech Cordless Desktop Pro (vaihtoehtoinen2) Logitech Cordless Desktop Pro (autre option 2) Logitech Cordless Desktop Pro (harmadik lehetőség) Logitech Cordless Desktop Pro (opzione alternativa 2) Logitech Cordless Desktop Pro (alternatieve optie2) Logitech Cordless Desktop Pro (альтернативный вариант 2) Logitech Cordless Desktop Pro (alternatívna voľba2) Logitech Cordless Desktop Pro (alternate option2) Logitech Cordless Desktop Pro (opcioni i dytë alternativ) Logitech Cordless Desktop Pro (додатна могућност 2) Logitech Cordless Desktop Pro (dodatna mogućnost 2) Logitech Cordless Desktop Pro (alternativ2) Logitech Kablosuz Masaüstü Pro (diğer 2. seçenek) Logitech Cordless Desktop Pro (альтернативний варіант 2) Logitech Cordless Desktop Pro (luân phiên tùy chọn2) 罗技无影手高级版(替代选项) 羅技無影手進階版(替代選項) logicdo Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optisch Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical Logitech Kablosuz Masaüstü Optik Logitech Cordless Desktop Optical Logitech Cordless Desktop Optical 罗技无影手光学组合 羅技無影手光學組合 logicfn Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator Logitech Kablosuz Özgür/Masaüstü Tarayıcı Logitech Cordless Freedom/Desktop Navigator Logitech Cordless Freedom/Desktop Navigator 罗技极光无影手组合/桌面导航器 羅技極光無影手組合/桌面導航器 logicdn Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator Logitech Kablosuz Masaüstü Tarayıcı Logitech Cordless Desktop Navigator Logitech Cordless Desktop Navigator 罗技无影手桌面导航器 羅技無影手桌面導航器 logidak Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access toetsenbord Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard Logitech Deluxe Access Tipkovnica Tastierë Logitech Deluxe Access Logitech Deluxe Access тастатура Logitech Deluxe Access tastatura Logitech Deluxe Access-tangentbord Logitech Deluxe Erişim Klavyesi Logitech Deluxe Access Keyboard Logitech Deluxe Access Keyboard 罗技强手键盘 羅技強手鍵盤 logiitc Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (modelo Y-RB6) Logitech iTouch Cordless Keyboard (malli Y-RB6) Logitech iTouch Cordless (modèle Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (modello Y-RB6) Logitech iTouch draadloos toetsenbord (model Y-RB6) Logitech iTouch Cordless Keyboard (модель Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Brezžična Tipkovnica (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless тастатура (модел Y-RB6) Logitech iTouch Cordless tastatura (model Y-RB6) Logitech iTouch Cordless Keyboard (modell Y-RB6) Logitech iTouch Kablosuz Klavyesi (model Y-RB6) Logitech iTouch Cordless Keyboard (модель Y-RB6) Bàn phím Không dây Logitech iTouch (mẫu mã Y-RB6) 罗技 iTouch 无影手键盘(型号 Y-RB6) 羅技 iTouch 無影手鍵盤(型號 Y-RB6) logiik Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Интернет клавиатура на Logitech Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Logitech Internet Keyboard Logitech Internet Keyboard Logitech internet toetsenbord Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Tipkovnica Tastierë për Internet Logitech Logitech Интернет тастатура Logitech Internet tastatura Logitech Internettangentbord Logitech Örütbağ Klavyesi Logitech Internet Keyboard Bàn phím Internet Logitech 罗技网际键盘 羅技網際鍵盤 itouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch Logitech iTouch 罗技 iTouch 羅技 iTouch logiitc Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (modelo Y-RB6) Logitech iTouch Cordless Keyboard (malli Y-RB6) Logitech iTouch Cordless (modèle Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless Keyboard (modello Y-RB6) Logitech iTouch draadloos toetsenbord (model Y-RB6) Logitech iTouch Cordless Keyboard (модель Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Brezžična Tipkovnica (model Y-RB6) Logitech iTouch Cordless Keyboard (model Y-RB6) Logitech iTouch Cordless тастатура (модел Y-RB6) Logitech iTouch Cordless tastatura (model Y-RB6) Logitech iTouch Cordless Keyboard (modell Y-RB6) Logitech iTouch Kablosuz Klavyesi (model Y-RB6) Logitech iTouch Cordless Keyboard (модель Y-RB6) Bàn phím Không dây Logitech iTouch (mẫu mã Y-RB6) 罗技 iTouch 无影手键盘(型号 Y-RB6) 羅技 iTouch 無影手鍵盤(型號 Y-RB6) logiik Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Интернет клавиатура на Logitech Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Logitech Internet Keyboard Logitech Internet Keyboard Logitech internet toetsenbord Logitech Internet Keyboard Logitech Internet Keyboard Logitech Internet Tipkovnica Tastierë për Internet Logitech Logitech Интернет тастатура Logitech Internet tastatura Logitech Internettangentbord Logitech Örütbağ Klavyesi Logitech Internet Keyboard Bàn phím Internet Logitech 罗技网际键盘 羅技網際鍵盤 logiink Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech клавиатура за Интернет навигация Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet Navigator toetsenbord Logitech Internet Navigator Keyboard Logitech Internet Navigator Keyboard Logitech Internet NavigatorTipkovnica Tastierë Logitech Internet Navigator Logitech Интернет навигатор тастатура Logitech Internet navigator tastatura Logitech Internet Navigator-tangentbord Logitech Örütbağ Tarayıcı Klavyesi Logitech Internet Navigator Keyboard Bàn phím Logitech Internet Navigator 罗技网际导航键盘 羅技網際導航鍵盤 itouchin Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch -näppäimistö Internet Navigator Logitech iTouch Internet Navigator Logitech iTouch Keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch toetsenbord Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch tipkovnica Internet Navigator Logitech iTouch keyboard Internet Navigator Logitech iTouch тастатура Интернет навигатор Logitech iTouch tastatura Internet navigator Logitech iTouch-tangentbord Internet Navigator Logitech iTouch klavyesi Örütbağ Tarayıcı Logitech iTouch keyboard Internet Navigator Logitech iTouch keyboard Internet Navigator 罗技 iTouch 键盘网际导航器 羅技 iTouch 鍵盤網際導航器 logiinkse Logitech iTouch Internet Navigator Keyboard SE Logitech iTouch Internet Navigator Keyboard SE logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB) Logitech iTouch Internet Navigator Keyboard SE (USB) logiultrax Logitech Ultra-X Keyboard Logitech Ultra-X Keyboard Logitech Ultra-X-näppäimistö Logitech Ultra-X Logitech Ultra-X Keyboard Logitech Ultra-X toetsenbord Logitech Ultra-X Keyboard Logitech Ultra-X Tipkovnica Logitech Ultra-X тастатура Logitech Ultra-X tastatura Logitech Ultra-X Keyboard 羅技銀幻手鍵盤 mx1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 Memorex MX1998 mx2500 Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access-näppäimistö Memorex MX2500 EZ-Access Memorex MX2500 EZ-Access billentyűzet Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access toetsenbord Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Keyboard Memorex MX2500 EZ-Access Tipkovnica Tastierë Memorex MX2500 EZ-Access Memorex MX2500 EZ-Access тастатура Memorex MX2500 EZ-Access tastatura Memorex MX2500 EZ-Access-tangentbord Memorex MX2500 EZ Erişim Klavyesi Memorex MX2500 EZ-Access Keyboard Bàn phím Memorex MX2500 EZ-Access Memorex MX2500 EZ-Access 键盘 Memorex MX2500 EZ-Access 鍵盤 mx2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 Memorex MX2750 microsoftinet Microsoft Internet Keyboard Microsoft Internetsleutelbord Microsoft Internet Keyboard Интернет клавиатура на Microsoft Microsoft Internet Keyboard Microsoft Internet Keyboard Microsoft Internet Keyboard Microsoft Internet Keyboard Microsoft-Internet-näppäimistö Microsoft Internet Microsoft Internet Keyboard Microsoft Internet Keyboard Microsoft internet toetsenbord Microsoft Internet Keyboard Microsoft Internet Keyboard Microsoftova Internetna Tipkovnica Tastierë Microsoft Internet Микрософтова Интернет тастатура Mikrosoftova Internet tastatura Microsoft Internet Keyboard Microsoft Örütbağ Klavyesi Microsoft Internet Keyboard Bàn phím Internet Microsoft 微软网际键盘 微軟網際鍵盤 microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural-näppäimistö Pro / Microsoft-Internet-näppäimistö Pro Microsoft Natural Pro / Microsoft Internet Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Tipkovnica Pro / Microsoft Internet Tipkovnica Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Микрософт Натурал тастатура Про / Микрософт Интернет тастатура Про Mikrosoft Natural tastatura Pro / Mikrosoft Internet tastatura Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Basit Klavye Pro / Microsoft Örütbağ Klavyesi Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro 微软自然键盘增强版/微软网际键盘增强版 微軟原生鍵盤增強版/微軟網際鍵盤增強版 microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural-näppäimistö Pro USB / Microsoft-Internet-näppäimistö Pro Microsoft Natural Pro USB / Microsoft Internet Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Tipkovnica Pro USB / Microsoft Internet Tipkovnica Pro Микрософтова Натурал тастатура Про УСБ / Микрософт Интернет тастатура Про Mikrosoftova Natural tastatura Pro USB / Mikrosoft Internet tastatura Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro 微軟自然鍵盤增強版 USB/微軟網際鍵盤增強版 microsoftprooem Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural-näppäimistö Pro OEM Microsoft Natural Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft·Natural·Keyboard·Pro·OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Tipkovnica Pro OEM Microsoft Natural Keyboard Pro OEM Микрософт Натурал тастатура Про ОЕМ Mikrosoft Natural tastatura Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Basit Klavye Pro OEM Microsoft Natural Keyboard Pro OEM Microsoft Natural Keyboard Pro OEM 微软自然键盘增强版 OEM 微軟原生鍵盤增強版 OEM microsoftprose Microsoft Internet Keyboard Pro, Swedish Microsoft Internet Keyboard Pro, Sweeds Microsoft Internet Keyboard Pro, Swedish Microsoft Internet Keyboard Pro, Švédská Microsoft Internet Keyboard Pro, svensk Microsoft Internet Keyboard Pro, Swedish Microsoft Internet Keyboard Pro, sueco Microsoft-Internet-näppäimistö Pro, ruotsalainen Microsoft Internet Pro, suédois Microsoft Internet Keyboard Pro, svéd Microsoft Internet Keyboard Pro, svedese Microsoft Internet Keyboard Pro, Zweeds Microsoft Internet Keyboard Pro, шведская Microsoft Internet Keyboard Pro, Švédska Microsoft Internet Tipkovnica Pro, Švedska Microsoft Internet Keyboard Pro, Suedeze Микрософтова Интернет Про тастатура, шведски Mikrosoftova Internet Pro tastatura, švedski Microsoft Internet Keyboard Pro, svensk Microsoft Örütbağ Klavyesi Pro, İsveçce Microsoft Internet Keyboard Pro, шведська Bàn phím Internet Microsoft Pro, Thụy Điển 微软网际键盘增强版,瑞典 微軟網際鍵盤增強版,瑞典 microsoftoffice Microsoft Office Keyboard Microsoft Office sleutelbord Microsoft Office Keyboard Microsoft Office Keyboard Microsoft Office Keyboard Microsoft Office Keyboard Microsoft Office Keyboard Microsoft Office-näppäimistö Microsoft Office Microsoft Office billentyűzet Microsoft Office Keyboard Microsoft Office toetsenbord Microsoft Office Keyboard Microsoft Office Keyboard Microsoft Office Tipkovnica Tastierë Microsoft Office Микрософтова канцеларијска тастатура Mikrosoftova kancelarijska tastatura Microsoft Office-tangentbord Microsoft Ofis Klavyesi Microsoft Office Keyboard Bàn phím Văn phòng Microsoft 微软 Office 键盘 微軟 Office 鍵盤 microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Wireless Multimedia Keyboard 1.0A Microsoft-langaton multimedianäppämistö 1.0A Microsoft Multimedia sans fil 1.0A Microsoft Wireless Multimedia Keyboard 1.0A Microsoft draadloos multimediatoetsenbord 1.0A Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Brezžična Multimedijska Tipkovnica 1.0A Микрософтова бежична мултимедијална тастатура 1.0А Mikrosoftova bežična multimedijalna tastatura 1.0A Microsoft Wireless Multimedia Keyboard 1.0A Microsoft Wireless Multimedia Keyboard 1.0A 微軟無線多媒體鍵盤 1.0A oretec Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet-näppäimistö Oretec MCK-800 MM/Internet Oretec MCK-800 MM/Internet billentyűzet Oretec MCK-800 tastiera MM/Internet Oretec MCK-800 MM/Internet toetsenbord Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet keyboard Oretec MCK-800 MM/Internet tipkovnica Tastierë Oretec MCK-800 MM/Internet Oretec MCK-800 ММ/Интернет тастатура Oretec MCK-800 MM/Internet tastatura Oretec MCK-800 MM/Internet-tangentbord Oretec MCK-800 MM/Örütbağ Klavyesi Oretec MCK-800 MM/Internet keyboard Bàn phím Oretec MCK-800 MM/Internet Oretec MCK-800 MM/网际键盘 Oretec MCK-800 MM/網際鍵盤 propeller Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) Propeller Voyager (KTEZ-1000) qtronix QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P Samsung SDM 4500P 三星 SDM 4500P 三星 SDM 4500P samsung4510 Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P Samsung SDM 4510P 三星 SDM 4510P 三星 SDM 4510P sk1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 SK-1300 sk2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 SK-2500 sk6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 SK-6200 sk7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 SK-7100 sp_inet Super Power Multimedia Keyboard Super Power Multimedia Keyboard Super Power Multimedia Keyboard Super Power -multimedianäppäimistö Multimedia Super Power Super Power Multimedia Keyboard Super Power multimediatoetsenbord Super Power Multimedia Keyboard Super Power Multimedijska tipkovnica Супер моћна мултимедијална тастатура Super moćna multimedijalna tastatura Super Power Multimedia Keyboard Bàn phím Phim nhạc Siêu Năng Lực Super Power 多媒體鍵盤 sven SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN ергономска 2500 SVEN ergonomska 2500 SVEN Ergonomic 2500 SVEN Ergonomik 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 SVEN Ergonomic 2500 symplon Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet-pc) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (lehtiö-PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (карманный ПК) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (tablet PC) Symplon PaceBook (переносний ПК) Symplon PaceBook (tablet PC) Symplon PaceBook(平板电脑) Symplon PaceBook (平板電腦) toshiba_s3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 Toshiba Satellite S3000 东芝 Satellite S3000 東芝 Satellite S3000 trust Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust Wireless Keyboard Classic Trust klasična brezžična tipkovnica Tastierë klasike Trust Wireless Trust класична бежична тастатура Trust klasična bežična tastatura Trust Wireless Keyboard Classic Trust Kablosuz Klasik Klavye Trust Wireless Keyboard Classic Bàn Phím Cổ điển Không dây Tin tưởng Trust 无线经典键盘 Trust 無線經典鍵盤 trustda Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Trust Direct Access billentyűzet Trust Direct Access Keyboard Trust Direct Access toetsenbord Trust Direct Access Keyboard Trust Direct Access Keyboard Trust Direct Access Tipkovnica Tastierë Trust Direct Access Trust Direct Access тастатура Trust Direct Access tastatura Trust Direct Access-tangentbord Trust Doğrudan Erişimli Klavye Trust Direct Access Keyboard Bàn phím Truy cập Thẳng Tin tưởng Trust Direct Access 键盘 Trust Direct Access 鍵盤 yahoo Yahoo! Internet Keyboard Yahoo! Internetsleutelbord Yahoo! Internet Keyboard Yahoo! Internet Keyboard Yahoo! Internet Keyboard Yahoo! Internet Keyboard Yahoo! Internet Keyboard Yahoo!-Internet-näppäimistö Yahoo! Internet Yahoo! Internet billentyűzet Yahoo! Internet Keyboard Yahoo! internet toetsenbord Yahoo! Internet Keyboard Yahoo! Internet Keyboard Yahoo! Internet Tipkovnica Tastierë Yahoo! Internet Yahoo! Интернет тастатура Yahoo! Internet tastatura Yahoo! Internettangentbord Yahoo! Örütbağ Klavyesi Yahoo! Internet Keyboard Bàn phím Internet Yahoo! 雅虎网际键盘 雅虎網際鍵盤 macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh masinitoshi Macintosh Macintosh Macintosh Мекинтош Mekintoš Macintosh Macintosh Macintosh Macintosh Macintosh Macintosh macintosh_old Macintosh Old Macintosh (oud) Macintosh Old Macintosh staré Macintosh gammel Macintosh Old Macintosh antiguo Macintosh vanha Macintosh ancien Macintosh Old Macintosh Old Macintosh oud Старый Macintosh Macintosh staré Macintosh Old Macintosh i vjetër Стари Мекинтош Stari Mekintoš Macintosh gammal Eski Macintosh Старий Macintosh Macintosh Cũ Macintosh 旧产品 Macintosh 舊產品 powerpcps2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 PowerPC PS/2 acer_tm_800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 Acer TravelMate 800 power_g5 Power G5 Power G5 Power G5 Power G5 Power G5 silvercrest SILVERCREST Multimedia Wireless Keyboard SILVERCREST Multimedia Wireless Keyboard SILVERCREST Multimedia Wireless Keyboard SILVERCREST мултимедијална бежична тастатура emachines Laptop/notebook eMachines m68xx Laptop/notebook eMachines m68xx Настольная/портативная для eMachines m68xx Преносне eMachines m68xx us USA VSA ABŞ USA USA ΗΠΑ USA EEUU USA USA USA USA VS США Amerika USA USA USA САД SAD USA ABD США Mỹ USA USA U.S. English VSA Engels A.B.Ş. İngiliscəsi американска английска Anglické (US) U.S. Engelsk Αγγλικά ΗΠΑ U.S. English Inglés EEUU amerikanenglanti Anglais U.S. amerikai angol Inglese americano Amerikaans-Engels Английская (США) U.S.A. anglické U.S. Angleška U.S. Anglisht амерички енглески američki engleski Engelskamerikansk Amerikan ingilizcesi Англійська (США) Anh Mỹ 美国英语 美式英文 intl International (with dead keys) International (with dead keys) Internacional (con teclas muertas) Kansainvälinen (ilman kuolleita näppäimiä) International (avec touches mortes) Internazionale (con tasti muti) Internationaal (met dode toetsen) Международная, со спец. клавишами (dead keys) Mednarodna (z mrtvimi tipkami) Међународна (са акцентима) Međunarodna (sa akcentima) Uluslararası (ölü tuşlarla) Quốc tế (với phím chết) 國際鍵盤 (附無用按鍵) alt-intl Alternative international (former us_intl) Alternative international (former us_intl) Alternativa internacional (antigua us_intl) Vaihtoehtoinen kansainvälinen (aiempi us_intl) International (auparavant us_intl) Internazionale alternativa (in precedenza us_intl) Alternatief internationaal (voormalig us_intl) Альтернативная международная (бывшая us_intl) Alternativna Mednarodna Допунска међународна (бивша us_intl) Dopunska međunarodna (bivša us_intl) Uluslararası Q klavle (nam-ı diğer us_intl) Quốc tế tương đương (cũ us_intl) 替代國際化 (之前為 us_intl) dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak dvorak-l Left handed Dvorak Dvorak para zurdos Dvorak для левшей Леворучни Дворак dvorak-r Right handed Dvorak Dvorak diestro Dvorak для правшей Десноручни Дворак rus Russian phonetic руска фонетична Ruso fonético venäläinen foneettinen Phonétique russe Russo fonetico Russisch fonetisch Русская фонетическая Ruska fonetična руски фонетски ruski fonetski Rusça fonetik 俄文音標 ad And And Анд анд Andorra Andorra Андорра Андора af Afg Afg Афг афг Afghanistan Afganistán Афганистан Афганистан ps Pashto Pashto Пуштунская пашто uz Southern Uzbek Uzbequia del sur Южно-узбекская Јужни Узбекистан ara Ara Αρα Ara Ara Ara Ara Ara Ara Ара ARA ара ara Ara Ara Ara Arabic Arabies Ərəbcə арабска Arabské Arabisk Αραβικό Arabic Árabe arabia Arabe arab Araba Arabisch Арабская Icyarabu Arabsky Arabska Arabe арапски arapski Arabisk Arapça Арабська Ả Rập 阿拉伯 阿拉伯文 azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty azerty_digits azerty/digits azerty/syfers azerty/ədədlər azerty/číslice azerty/cifre azerty/digits azerty/dígitos azerty/numerot azerty/chiffres azerty/számjegyek azerty/cifre azerty/cijfers azerty/цифры azerty/číslice azerty/cifre azerty/digits azerty/цифре azerty/cifre azerty/siffror azerty/rakamlar azerty/цифри azerty/chữ số azerty/数字 azerty/數字 digits digits syfers ədədlər číslice cifre digits dígitos numerot chiffres számjegyek cifre cijfers цифры číslice cifre numra цифре cifre siffror rakamlar цифри chữ số 数字 數字 qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty querty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty_digits qwerty/digits qwerty/syfers qwerty/ədədlər qwerty/číslice qwerty/cifre qwerty/digits qwerty/dígitos qwerty/numerot qwerty/chiffres qwerty/számjegyek querty/cifre qwerty/cijfers qwerty/цифры qwerty/číslice qwerty/cifre qwerty/numra qwerty/цифре qwerty/cifre qwerty/siffror qwerty/rakamlar qwerty/цифри qwerty/chữ số qwerty/digits qwerty/數字 al Alb Alb Alb Alb Alb Alb Alb Alb Alb Alb ALB Alb Алб Alb ALB Alb алб alb Alb Arn Алб Alb Alb Alb Albania албанска Albania Albania Albania Albanie Albania Albanië Албания Alubaniya Albanija Албанија Albanija Arnavutluk Al-ba-ni-a 阿爾巴尼亞 am Arm Arm Erm Arm Arm Αρμ Arm Arm Arm Arm Arm ARM Arm Арм Arm ARM Arm јрм jrm Arm Erm Вірм Arm Arm Arm Armenia арменска Armenia Armenia Armenia Arménie Armenia Armenië Армения Arumeniya Armenija Јерменија Jermenija Ermenistan Ác-mê-ni 亞美尼亞 phonetic Phonetic Foneties Fonetik фонетична Fonetické Fonetisk Φωνητικά Phonetic Fonético foneettinen Phonétique fonetikus Fonetico Fonetisch Фонетическая Fonetické Fonetična Phonetic фонетски fonetski Fonetisk Fonetik Фонетична Ngữ âm Phonetic 音標 az Aze Aze Azə Aze Ase Αζε Aze Aze Aze Aze Aze AZE Aze Азер Aze AZE Aze азб azb Aze Aze Азер Aze Aze Aze Azerbaijan азърбейджанска Azerbaijan Azerbaiján Azerbaidzan Azerbaïdjan Azerbaigian Azerbeidzjan Азербайджан Azeribayijani Azerbajdžan Азербејџан Azerbejdžan Azerbaycan A-zéc-bai-gian 亞塞拜然 cyrillic Cyrillic Kirrillies Kiril кирилска Cyrilika Kyrillisk Κυριλλικά Cyrillic Cirílico kyrillinen Cyrillique cirill Cirillico Cyrillisch Кириллическая Nyasilike Cyrilika Cirilica Cyrillic ћирилични ćirilični Kyrillisk Kril Кирилична Cyrillic 西里尔 斯拉夫文 by Blr Blr Blr Běl Blr Blr Blr Blr Blr Blr BLR Blr Бел Blr BLR Blr блр blr Blr Blr Біл Blr Blr Blr Belarus беларуска Belarus Bielorusia Valko-Venäjä Bélarus Bielorussia Wit-Rusland Беларусь Belarusi Belorusija Белорусија Belorusija Belarus Bê-la-rút 白俄 winkeys Winkeys Winkeys Winkeys Клавишите Win Winkeys Win-taster Winkeys Teclas Windows Win-näppäimet Touches Logo Winkeys Tasti Win Win-toetsen Клавиатура Windows Win klávesy Win tipki Winkeys Windows тастери Windows tasteri Wintangenter Win tuşları Розкладка Windows Phím Win Winkeys Winkeys latin Latin Latyns Latın латинска Latinské Latin Latin Latino latinalainen Latin latin Latino Latijn Латинская Ikiratini Latinské Latinsko Latinishte латинични latinični Latin Latin Латинська La tinh 拉丁 拉丁文 be Bel Bel Bel Bel Bel Λευ Bel Bel Bel Bel Bel BEL Wit Бельг Bel BEL Bel блг blg Bel Bel Бельг Bel Bel Bel Belgium белгийска Belgium Bélgica Belgia Belgique Belgio België Бельгия Ububiligi Belcija Белгија Belgija Belçika Bỉ 比利時 iso-alternate ISO Alternate ISO Alternatief ISO Alternate ISO alternativní ISO-alternativ ISO Alternate Alternativa ISO ISO vaihtoehtoinen Autre ISO ISO Alternate ISO alternativa ISO alternatief Дополнительная ISO ISO alternatívne ISO Alternirajoče ISO Alternative Додатни ИСО Dodatni ISO ISO-alternativ ISO diğer Додаткова ISO ISO Xen kẽ ISO 替代 ISO 替代 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 bd Ban Ban Ban Ban BGD Ban Бан BAN бан ban Ban Ban Bangladesh бангладешска Bangladesh Bangladesh Bangladesh Bangladesh Bangladesh Бангладеш Bangladeš Бангладеш Bangladeš Bangladeş 孟加拉 probhat Probhat Probhat Probhat probhat Probhat Probhat Probhat Пробат Probhat (Bengal) пробат probat Probat Probhat 孟加拉 Probhat in Ind Ind Ind Ind IND Ind Инд IND инд ind Ind Ind India индийска India Intia Inde India Indiaas Индия Indija Индија Indija Hindistan 印度 ben Bengali бенгалска Bengalí bengali Bengali Bengali Bengaals Бенгальская Bengalsko бенгалски bengalski Bengalce 孟加拉文 ben_probhat Bengali Probhat бенгалска - Пробхат Probhat Bengalí bengali probhat Bengali Probhat Bengali probhat Bengaals Probhat Бенгальская Пробат Bengalski Prohbat бенгалски пробат bengalski probat Bengali Probhat 孟加拉 Probhat 文 guj Gujarati гуджарати Gujarati gujaratilainen Gujarati Gujarati Гуджарати Gujarati (Indija) гујарати gujarati Batı Hint dili 古吉拉特文(印度) guru Gurmukhi гурмуки Gurmukhi gurmukhilainen Gurmukhi Gurmukhi Гурмукхи Gurmukhi (Indija) гурмуки gurmuki Gurmukhi 古爾穆希文 kan Kannada Kannada Kannada Kannada Kannada Kannada Каннада Kannada (Indija) канада (јужна индија) kanada (južna indija) Güney Hint dili 印度卡納達文 mal Malayalam Malayalam malayalam Malayalam Malayalamees Малайaлам Malajalam малајамски malajamski Malayalam dili (印度)馬來雅拉姆文字 ori Oriya Oriya Oriya Oriya Oriya Oriya Oriya Oriya Oriya orija Oriya Oriya Орийя Oriya Oriya Oriya (Indija) Oriya орија orija Oriya Orissa dili Орія Oriya Oriya (印度)奧里雅族文字 tam_unicode Tamil Unicode Tamil Unicode tamili-Unicode Unicode tamoul Tamil Unicode Tamil unicode Тамильская Unicode Tamilski Unicode тамил Уникод tamil Unikod Tamil Unicode 坦米爾文統一碼 tam_TAB Tamil TAB Typewriter Tamil TAB Typewriter tamili- TAB Typewriter Machine à écrire tamoule TAB Tamil TAB macchina per scrivere Tamil TAB typmachine Тамильская "Печатная машинка" TAB Tamilski TAB Typewriter тамил TAB куцаћа машина tamil TAB kucaća mašina Tamil TAB Daktilo 坦米爾文 TAB 打字機 tam_TSCII Tamil TSCII Typewriter Tamil TSCII Typewriter tamili- TSCII Typewriter Machine à écrire tamoule TSCII Tamil TSCII macchina per scrivere Tamil TSCII typmachine Тамильская "Печатная машинка" TSCII Tamilski TSCII Typewriter тамил TSCII куцаћа машина tamil TSCII kucaća mašina Tamil TSCII Daktilo 坦米爾文 TSCII 打字機 tam Tamil Tamilees Tamilcə тамилска Tamilské Tamil Ταμίλ Tamil Tamil tamili Tamoul tamil Tamil Tamil Тамильская Tamili Tamilské Tamilska Tamil тамил tamil Tamilsk Tamil dili Тамільська Tamil 泰米尔 坦米爾文 tel Telugu Telugu Telugu телугу Telugu Telugu Τελούγκου Telugu Telugu Telugu Telugu telugu Telegu Telugu Телугу Tegulu Telugské Telugu (Indija) Telugu телугу telugu Telugo Telugu dili Телугу Telugu 泰卢固 泰盧固語 urd Urdu урду Ούρντου Urdu Urdu Urdu Ourdou Urdu Urdu Урду Urudu Urdu (Indija) Урду Urdu Urdu Ur-du 烏都文 ba Bih Bih Bih Bos Bih Bih Bih Bih Bih Bih BIH Bih Босн Bih BIH Bih бих bih Bih Bih Босн Bih Bih Bih Bosnia and Herzegovina босненска Bosnia and Herzegovina Bosnia y Herzegovina Bosnia-Hertsegovina Bosnie-Herzégovine Bosnia-Erzegovina Bosnië-Hercegovina Босния и Герцеговина Bosiniya na Herizegovina Bosna in Hercegovina Босна и Херцеговина Bosna i Hercegovina Bosna Hersek Bosnia và Herzegovina 波士尼亞及赫塞哥維那 alternatequotes Use guillemots for quotes Usar guillemots para comillas Käytä guillemot-lainausmerkkejä Usa caporali («») per virgolette ("") Использовать guillemots как кавычки Користи гиљемоте за наводнике Koristi giljemote za navodnike unicode Use Bosnian digraphs Usar digrafos bosnios Käytä bosnialaisia merkkipareja Usa digrammi bosniaci Использовать боснийские диграфы Користи босанске диграфе Koristi bosanske digrafe unicodeus US keyboard with Bosnian digraphs Teclado EEUU con digrafos bosnios yhdysvaltalainen näppäimistö bosnialaisilla merkkipareilla Tastiera USA con digrammi bosniaci Клавиатура США с боснийскими диграфами Америчка тастатура са босанским диграфима Američka tastatura sa bosanskim digrafima us US keyboard with Bosnian letters Teclado EEUU con letras bosnias Tastiera USA con lettere bosniache Клавиатура США с боснийскими буквами Америчка тастатура са босанским словима Američka tastatura sa bosanskim slovima br Bra Bra Bra Bra Bra Bra Bra Bra Bra Bra BRA Bra Браз Bra BRA Bra бра bra Bra Bra Браз Bra Bra Bra Brazil бразилска Brazil Brasil Brasilia Brésil Brasile Brazilië Бразилия Burezile Brazilija Бразил Brazil Brezilya Bra-zil 巴西 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 bg Bgr Bgr Bgr Bul Bgr Bgr Bgr Bgr Bgr Bgr BGR Bgr Болг Bgr BGR Bgr буг bug Bgr Bgr Болг Bgr Bgr Bgr Bulgaria българска Bulgaria Bulgaria Bulgaria Bulgarie Bulgaria Bulgarije Болгария Buligariya Bolgarija Бугарска Bugarska Bulgaristan Bun-ga-ri 保加利亞 phonetic Phonetic Foneties Fonetik фонетична Fonetické Fonetisk Φωνητικά Phonetic Fonético foneettinen Phonétique fonetikus Fonetico Fonetisch Фонетическая Fonetické Fonetična Phonetic фонетски fonetski Fonetisk Fonetik Фонетична Ngữ âm Phonetic 音標 mm Mmr Mmr Mmr Mmr Mmr Mmr Mmr Mmr Mmr Mmr MMR Mmr Мьянм Mmr MMR Mmr ммр mmr Mmr Mmr Мьянм Mmr Mmr Mmr Myanmar Myanmar Myanmar Myanmar Myanmar Birmania Myanmar Мьянмар Myanmar Myanmar (Burma) Мијанмар Mijanmar Miyanmar Myanmar 緬甸 ca Can Kan Kan Kan Can Καν Can Can Can Can Can CAN Can Кан Can CAN Can кан kan Can Kan Кан Can Can Can Canada канадска Canada Canadá Kanada Canada Canada Canada Канада Kanada Kanada Канада Kanada Kanada Ca-na-da 加拿大 fr-dvorak French Dvorak френска Дворак French Dvorak Francés Dvorak ranskalainen Dvorak Dvorak français Francese dvorak Frans-Dvorak Французская Dvorak Francoski Dvorak француски дворак francuski dvorak Fransızca Dvorak Pháp Dvorak 法文 Dvorak fr-legacy French (legacy) French (legacy) Francés (heredado) ranskalainen (vanha) Français (standard) Francese (vecchia maniera) Frans (oud) Французская (унаследованная) Francoska (zapuščina) француски (класични) francuski (klasični) Fransızca (eski) Pháp (di sản) 法文 (傳統) multix Multilingual многоезична Multilingual Multilingüe Monikielinen Multilingue Meertalig Многоязычная Večjezično Вишејезична Višejezična Çokdilli Đa ngôn ngữ 多語言 multi Multilingual, first part Multilingüe, primera parte Многоязычная, первая часть Вишејезична, први део multi-2gr Multilingual, second part многоезична, втора част Multilingual, second part Multilingüe, segunda parte Monikielinen, toinen osa Multilingue, partie 2 Meertalig, tweede deel Многоязычная, вторая часть Večjezično, drugi del Вишејезична, други део Višejezična, drugi deo Çokdilli, ikinci bölüm Đa ngôn ngữ, phần hai 多語言,第二部份 ike Inuktitut Inuktitut İnuktitut ескимоска Inuitské Inuktitut Inuktitut Inuktitut inuktitut Inuktitut inuktitut Inuktitut Иннуитская Ikinukititutu Inuktitutské Inuktitut (Inuiti) Inuktitut инуктитут inuktitut Inuktitut Inuktitut Іннуітська Inuktitut 因纽特 伊努伊特鍵盤 hr Hrv Hrv Xrv Chor Hrv Hrv Hrv Hrv Hrv Hrv HRV Kro Хорв Chor HRV Hrv хрв hrv Hrv Hrv Хорв Hrv Hrv Hrv Croatia хърватска Croatia Croacia Kroatia Croatie Croazia Kroatië Хорватия Korowatiya Hrvaška Хрватска Hrvatska Hırvatistan Croátia 克羅埃西亞 alternatequotes Use guillemots for quotes Usar guillemots para comillas Käytä guillemot-lainausmerkkejä Usa caporali («») per virgolette ("") Использовать guillemots как кавычки Користи гиљемоте за наводнике Koristi giljemote za navodnike unicode Use Croatian digraphs Usar digrafos croatas Käytä kroatialaisia merkkipareja Usa digrammi croati Использовать хорватские диграфы Користи хрватске диграфе Koristi hrvatske digrafe unicodeus US keyboard with Croatian digraphs Teclado EEUU con digrafos croatas yhdysvaltalainen näppäimistö kroatialaisilla merkkipareilla Tastiera USA con digrammi croati Клавиатура США с хорватскими диграфами Америчка тастатура са хрватским диграфима Američka tastatura sa hrvatskim digrafima us US keyboard with Croatian letters US keyboard with Croatian letters Teclado EEUU con letras croatas yhdysvaltalainen näppäimistö kroatialaisilla kirjaimilla Clavier US avec lettres croates Tastiera USA con lettere croate Amerikaans toetsenbord met Kroatische letters Клавиатура США с хорватскими буквами US tipkovnica s Hrvaškimi črkami Америчка тастатура са хрватским словима Američka tastatura sa hrvatskim slovima Hırvat harfleriyle amerikan klavyesi Bàn phím Mỹ với các chữ cái Croát-chi-a 美國鍵盤附克羅埃西亞字母 cz Cze Cze Çex Čes Tje Τσε Cze Che Cze Cze Cze CZE Tsj Чех Čes CZE Cze чеш češ Cze Çek Чес Séc Cze Cze Czechia чехска Czechia Chequia Tšekki République tchèque Repubblica ceca Tsjechië Чехия Češka Чешка Češka Çek Cumhuriyeti Czechia 捷克文 bksl With <\|> key С клавиша <\|> With <\|> key With tecla «\|» <\|>-näppäimillä Avec la touche <\|> Con tasti <\|> Met <\|>-toets С клавишей <\|> Z <\|> tipkami Уз тастер <\|> Uz taster <\|> <\|> tuşuyla Với phím <\|> 附帶 <\|> 鍵 qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty querty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty_bksl qwerty, extended Backslash qwerty, extended Backslash qwerty, contrabarra extendida qwerty, laajennettu Backslash qwerty, contre-oblique étendue qwerty, backslash esteso qwerty, uitgebreide backslash qwerty, расширенные функции Backslash qwerty, razširjena Backslash tipka qwerty, проширено са обрнутом косом цртом qwerty, prošireno sa obrnutom kosom crtom qwerty, galişmiş Gerisilme qwerty, Gạch ngược mở rộng qwerty,延伸的反斜線 dk Dnk Dnk Dnk Dán Dnk Dnk Dnk Dnk Dnk Dnk DNK Dnk Дат Dán DNK Dnk дан dan Dnk Dnk Дат Dnk Dnk Dnk Denmark датска Denmark Dinamarca Tanska Danemark Danimarca Denemarken Дания Danimarike Danska Данска Danska Danimarka Đan Mạch 丹麥 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 nl Nld Nld Nld Nld Hollandsk Nld Hol Nld Nld Nld NLD Nld Флам Nld NLD Nld хол hol Nld Hol Флам Nld Nld Nld Netherlands холандска Netherlands Holanda Alankomaat Pays-Bas Paesi Bassi Nederland Нидерланды Nederilande Nizozemska Холандија Holandija Hollanda Hà Lan 荷蘭 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 bt Bhu Bhu Bhu Bhu BTN Bhu Бут BHU бут but Bhu Bhu Bhutan бутанска Bhután Bhutan Bhoutan Bhutan Bhutan Бутан Butan Бутан Butan Butan 不丹 ee Est Est Est Est Est Est Est Est Est Est EST Est Эст Est EST Est ест est Est Est Ест Est Est Est Estonia естонска Estonia Estonia Viro Estonie Estonia Estland Эстония Esitoniya Estonija Естонија Estonija Estonya Ex-tô-nhia 愛沙尼亞 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak ir Irn Irn İrn Irn Irn Irn Irn Irn Irn Irn IRN Irn Перс Irn IRN Irn ирн irn Irn Irn Перс Irn Irn Irn Iran иранска Iran Irán Iran Iran Iran Iran Иран Iran Иран Iran İran Iran 伊朗 pro Pro Pro Pro Pro Pro про pro keypad Keypad Teclado numérico Sormio Tastierino С доп. панелью Нумеричка тастатура Numerička tastatura pro_keypad Pro Keypad Pro Keypad Pro sormio Pro con tastierino Pro с доп. панелью Про тастатура Pro tastatura ku Kurdish, Latin Q Kurdo, Latino Q ku_f Kurdish, (F) Kurdo, (F) ku_alt Kurdish, Latin Alt-Q Kurdo, Latino Alt-Q iq Irq Irq Iraq Iraq ku Kurdish, Latin Q Kurdo, Latino Q ku_f Kurdish, (F) Kurdo, (F) ku_alt Kurdish, Latin Alt-Q Kurdo, Latino Alt-Q fo Fao Fao Fao Fao Fær Fao Fao Fao Fao Fao FRO Fao Фар Fao FAO Fao фар far Fao Fao Фарер Fao Fao Fao Faroe Islands фарьорска Faroe Islands Islas Feroe Färsaaret Îles Feroë Isole Føroyar Faröer-eilanden Острова Фаро Ibirwa bya Farowe Farski otoki Фарска острва Farska ostrva Faroe Adaları Faroe Islands 法羅群島 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 fi Fin Fin Fin Fin Fin Φιν Fin Fin Fin Fin Fin FIN Fin Фин Fín FIN Fin фин fin Fin Fin Фін Fin Fin Fin Finland финландска Finland Finlandia Suomi Finlande Finlandia Finland Финляндия Finilande Finska Финска Finska Finlandiya Phần Lan 芬蘭 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 smi Northern Saami северносамска (Норвегия) Northern Saami Saami del norte pohjoissaami Sami du Nord Noord-Lapland Северная Саамская Sami y'Amajyaruguru Severni Saami (Laponci) северносаамски severnosaamski Nordsamisk Kuzey Sami Bắc Saami 北部沙米文 fr Fra Fra Fra Fra Fra Γαλ Fra Fra Fra Fra Fra FRA Fra Фр Fra FRA Fra фра fra Fra Fra Фра Fra Fra Fra France френска France Francia Ranska France Francia Frankrijk Франция Ubufaransa Francija Француска Francuska Fransa Pháp 法國 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 latin9 Alternative Ενναλακτικό Alternative Alternativa Vaihtoehtoinen Autre Alternativa Alternatief Альтернативная Alternativna Допунска Dopunska Diğer Tương đương 替代選擇 latin9_nodeadkeys Alternative, eliminate dead keys Alternative, eliminate dead keys Alternativa, sin teclas muertas Vaihtoehtoinen, ei kuolleita näppäimiä Autre, sans touches mortes Alternativa, tasti muti rimossi Alternatief, zonder dode toetsen Альтернативная, исключить специальные клавиши (dead keys) Alternativno, izloči mrtve tipke Допунска, без акцената Dopunska, bez akcenata Diğer, ölü tuşsuz Tương đương, phím chết loại trừ 替代選擇,除去無用按鍵 latin9_sundeadkeys Alternative, Sun dead keys Alternative, Sun dead keys Alternativa, teclas muertas de Sun Vaihtoehtoinen, Sunin kuolleet näppäimet Autre, touches mortes Sun Alternativa, tasti muti Sun Alternatief, Sun-dode toetsen Альтернативная, специальные клавиши (dead keys) Sun Alternativna, Sun mrtve tipke. Допунска, Sun-ови акценти Dopunska, Sun-ovi akcenti Diğer, Sun ölü tuşlar Tương đương, phím chết Sun 替代選擇,Sun 的無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak gh Gha Gha Ган га Ghana Ghana Гана Гана generic Multilingual многоезична Multilingual Multilingüe Monikielinen Multilingue Meertalig Многоязычная Večjezično Вишејезична Višejezična Çokdilli Đa ngôn ngữ 多語言 akan Akan Akan Акан акан ewe Ewe Ewe Эве Еве fula Fula Fula Фула Фула ga Ga Ga Га Га hausa Hausa Hausa Хауза Хауса ge Geo Geo Gür Gru Geo Geo Geo Geo Geo Geo GEO Geo Груз Gru GEO Geo гру gru Geo Geo Груз Geo Geo Geo Georgia грузинка Georgia Georgia Georgia Géorgie Georgia Georgië Грузия Geworigiya Gruzija Грузија Gruzija Gürcistan Georgia 喬治亞 ru Russian Russies Rusca руска Ruské Russisk Ρωσσικά Russian Ruso venäläinen Russe orosz Russo Russisch Русская Ikirusiya Ruské Rusija Rusisht руски ruski Rysk Rusça Російська Nga 俄语 俄文 de Deu Deu Deu Něm Tys Deu Deu Deu Deu Deu DEU Deu Нем Nem DEU Deu нем nem Deu Alm Нім Deu Deu Deu Germany немска Germany Alemania Saksa Allemagne Germania Duitsland Германия Ubudage Nemčija Немачка Nemačka Almanya Đức 德國 deadacute Dead acute Dooie akuutaksent Dead acute Mrtvá čárka Død accent Dead acute Acento muerto Kuollut akuutti Touche morte d'accent aigu Halott vessző (´) ékezet Dood acutus Спец. символ Dead acute Mŕtva čiarka Mrtvi ostrivec Fund kritik Акутски акценат Akutski akcenat Stum akut accent Ölü acute (´) Спец. символ Dead acute Chết sâu Dead acute Dead acute deadgraveacute Dead grave acute Dooie gravisaksent Dead grave acute Mrtvá opačná čárka Død accent grave Dead grave acute Acento grave muerto Kuollut gravis Touche morte d'accent grave Halott grave (`) ékezet Dood gravis-acutus Спец. символ Dead grave acute Mŕtva opačná čiarka Mrtvi krativec Fund kritik serioz Гравис акутски акценат Gravis akutski akcenat Stum grav och akut accent Ölü grave acute (`) Спец. символ Dead grave acute Chết non sâu Dead grave acute Dead grave acute nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 ro Romanian keyboard with German letters Romanian keyboard with German letters Teclado rumano con letras alemanas romanialainen näppäimistö saksalaisilla kirjaimilla Clavier roumain avec lettres allemandes Tastiera rumena con lettere tedesche Roemeens toetsenbord met Duitse letters Румынская клавиатура с немецкими буквами Romunska Tipkovnica z Nemškimi črkami румунска тастатура са немачким словима rumunska tastatura sa nemačkim slovima Alman harfleriyle Romanya klavyesi Bàn phím Rô-ma-ni với các chữ cái Đức 羅馬尼亞鍵盤附德文字母 ro_nodeadkeys Romanian keyboard with German letters, eliminate dead keys Romanian keyboard with German letters, eliminate dead keys Teclado rumano con teclas alemanas, sin teclas muertas romanialainen näppäimistö saksalaisilla kirjaimilla, ei kuolleita näppäimiä Clavier roumain avec lettres allemandes, sans touches mortes Tastiera rumena con lettere tedesche, tasti muti rimossi Roemeens toetsenbord met Duitse letters, zonder dode toetsen Румынская клавиатура с немецкими буквами, исключить специальные клавиши (dead keys) Romunska tipkovnica z Nemškimi črkami, Izloči mrtve tipke румунска тастатура са немачким словима, без акцената rumunska tastatura sa nemačkim slovima, bez akcenata Alman harfleriyle Romanya klavyesi, ölü tuşsuz Bàn phím Rô-ma-ni với các chữ cái Đức, các phím chết loại trừ 羅馬尼亞鍵盤附德文字母,除去無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 gr Gre Ελλ Gre Gre Gre Gre GRC Gri Гре GRE грк grk Gre Gre Gre Greece гръцка Greece Grecia Kreikka Grèce Grecia Griekenland Греция Ikigereki Grčija Грчка Grčka Yunanistan Hy Lạp 希臘 extended Extended Uitgebreide Uzadılmış Rozšířené Udvidet Extended Extendido Laajennettu Étendue Kibővített Estesa Uitgebreid Расширенная cya/byagutse Rozšírené Razširjena E zgjeruar Проширено Prošireno Utökad Gelişmiş Розширена Mở rộng 扩展 延伸的 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 polytonic Polytonic Polytonic Politonik Polytónické Polytonisk Πολυτονικά Polytonic Politónico polytoninen Polytonique Polytonic Politonica Meertonig Полифоническая Polytónické Politonična Polytonic вишезвучни višezvučni Polytonic Politonik Поліфонічна Nhiều âm Polytonic 多音字母 hu Hun Hun Mac Maď Ung Hun Hun Hun Hun Hun HUN Hon Венг Maď HUN Hun мађ mađ Hun Mcr Уго Hun Hun Hun Hungary унгарска Hungary Hungría Unkari Hongrie Ungheria Hongarije Венгрия Hongiriya Madžarska Мађарска Mađarska Macaristan Hungary 匈牙利 standard Standard Standaard Standart Standardní Standard Εξ ορισμού Standard Estándar Tavallinen Standard Szabványos Standard Standaard Стандартная gisanzwe/kimenyerewe Štandardné Standardna Standart стандардна standardna Standard Standart Стандартна Tiêu chuẩn 标准 標準 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty querty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty 101_qwertz_comma_dead 101/qwertz/comma/Dead keys 101/qwertz/comma/Dead keys 101/qwertz/comma/Teclas muertas 101/qwertz/pilkku/Kuolleet näppäimet 101/qwertz/virgule/touches mortes 101/qwertz/virgola/tasti muti 101/qwertz/komma/Dode toetsen pc101, qwertz, запятая, специальные клавиши (dead keys) 101/qwertz/vejica/Mrtve tipke 101/qwertz/запета/акценти 101/qwertz/zapeta/akcenti 101/qwertz/virgül/Ölü tuşlar 101/qwertz/dấu phẩy/Phím chết 101/qwertz/逗點/無用按鍵 101_qwertz_comma_nodead 101/qwertz/comma/Eliminate dead keys 101/qwertz/comma/Eliminate dead keys 101/qwertz/comma/Sinteclas muertas 101/qwertz/pilkku/Ei kuolleita näppäimiä 101/qwertz/virgule/sans touches mortes 101/qwertz/virgola/tasti muti esclusi 101/qwertz/komma/Dode toetsen verwijderen pc101, qwertz, запятая, исключить специальные клавиши (dead keys) 101/qwertz/vejica/Izloči mrtve tipke 101/qwertz/запета/без акцената 101/qwertz/zapeta/bez akcenata 101/qwertz/virgül/Ölü tuşsuz 101/qwertz/dấu phẩy/Phím chết loại trừ 101/qwerty/逗點/除去無用按鍵 101_qwertz_dot_dead 101/qwertz/dot/Dead keys 101/qwertz/dot/Dead keys 101/qwertz/dot/Teclas muertas 101/qwertz/piste/Kuolleet näppäimet 101/qwertz/point/touches mortes 101/qwertz/punto/tasti muti 101/qwertz/punt/Dode toetsen pc101, qwertz, точка, специальные клавиши (dead keys) 101/qwertz/pika/Mrtve tipke 101/qwertz/тачка/акценти 101/qwertz/tačka/akcenti 101/qwertz/nokta/Ölü tuşlar 101/qwertz/dấu chấm/Phím chết 101/qwertz/句點/無用按鍵 101_qwertz_dot_nodead 101/qwertz/dot/Eliminate dead keys 101/qwertz/dot/Eliminate dead keys 101/qwertz/dot/Sin teclas muertas 101/qwertz/piste/Ei kuolleita näppäimiä 101/qwertz/point/sans touches mortes 101/qwertz/punto/tasti muti esclusi 101/qwertz/punt/Dode toetsen verwijderen pc101, qwertz, точка, исключить специальные клавиши (dead keys) 101/qwertz/pika/Izloči mrtve tipke 101/qwertz/тачка/без акцената 101/qwertz/tačka/bez akcenata 101/qwertz/nokta/Ölü tuşsuz 101/qwertz/dấu chấm/Phím chết loại trừ 101/qwertz/句點/除去無用按鍵 101_qwerty_comma_dead 101/qwerty/comma/Dead keys 101/qwerty/comma/Dead keys 101/qwerty/comma/Teclas muertas 101/qwerty/pilkku/Kuolleet näppäimet 101/qwerty/virgule/touches mortes 101/qwerty/virgola/tasti muti 101/qwerty/komma/Dode toetsen pc101, qwerty, запятая, специальные клавиши (dead keys) 101/qwerty/vejica/Mrtve tipke 101/qwerty/запета/акценти 101/qwerty/zapeta/akcenti 101/qwerty/virgül/Ölü tuşlar 101/qwerty/dấu phẩy/Phím chết 101/qwerty/逗點/無用按鍵 101_qwerty_comma_nodead 101/qwerty/comma/Eliminate dead keys 101/qwerty/comma/Eliminate dead keys 101/qwerty/comma/Sin teclas muertas 101/qwerty/pilkku/Ei kuolleita näppäimiä 101/qwerty/virgule/sans touches mortes 101/qwerty/virgola/tasti muti esclusi 101/qwerty/komma/Dode toetsen verwijderen pc101, qwerty, запятая, исключить специальные клавиши (dead keys) 101/qwerty/vejica/Izloči mrtve tipke 101/qwerty/запета/без акцената 101/qwerty/zapeta/bez akcenata 101/qwerty/virgül/Ölü tuşları normal yapar 101/qwerty/dấu phẩy/Phím chết loại trừ 101/qwerty/逗點/除去無用按鍵 101_qwerty_dot_dead 101/qwerty/dot/Dead keys 101/qwerty/dot/Dead keys 101/qwerty/dot/Teclas muertas 101/qwerty/piste/Kuolleet näppäimet 101/qwerty/point/touches mortes 101/qwerty/punto/tasti muti 101/qwerty/punt/Dode toetsen pc101, qwerty, точка, исключить специальные клавиши (dead keys) 101/qwerty/pika/Mrtve tipke 101/qwerty/тачка/акценти 101/qwerty/tačka/akcenti 101/qwerty/nokta/Ölü tuşlar 101/qwerty/dấu chấm/Phím chết 101/qwerty/句點/無用按鍵 101_qwerty_dot_nodead 101/qwerty/dot/Eliminate dead keys 101/qwerty/dot/Eliminate dead keys 101/qwerty/dot/Sinteclas muertas 101/qwerty/piste/Ei kuolleita näppäimiä 101/qwerty/point/sans touches mortes 101/qwerty/punto/tasti muti esclusi 101/qwerty/punt/Dode toetsen verwijderen pc101, qwerty, точка, исключить специальные клавиши (dead keys) 101/qwerty/pika/Izloči mrtve tipke 101/qwerty/тачка/без акцената 101/qwerty/tačka/bez akcenata 101/qwerty/nokta/Ölü tuşsuz 101/qwerty/dấu chấm/Phím chết loại trừ 101/qwerty/句點/除去無用按鍵 102_qwertz_comma_dead 102/qwertz/comma/Dead keys 102/qwertz/comma/Dead keys 102/qwertz/comma/Teclas muertas 102/qwertz/pilkku/Kuolleet näppäimet 102/qwertz/virgule/touches mortes 102/qwertz/virgola/tasti muti 102/qwertz/komma/Dode toetsen pc102, qwertz, запятая, специальные клавиши (dead keys) 102/qwertz/vejica/Mrtve tipke 102/qwertz/запета/акценти 102/qwertz/zapeta/akcenti 102/qwertz/virgül/Ölü tuşlar 102/qwertz/dấu phẩy/Phím chết 102/qwertz/逗點/無用按鍵 102_qwertz_comma_nodead 102/qwertz/comma/Eliminate dead keys 102/qwertz/comma/Eliminate dead keys 102/qwertz/comma/Sin teclas muertas 102/qwertz/pilkku/Ei kuolleita näppäimiä 102/qwertz/virgule/sans touches mortes 102/qwertz/virgola/tasti muti esclusi 102/qwertz/komma/Dode toetsen verwijderen pc102, qwertz, запятая, исключить специальные клавиши (dead keys) 102/qwertz/vejica/Izloči mrtve tipke 102/qwertz/запета/без акцената 102/qwertz/zapeta/bez akcenata 102/qwertz/virgül/Ölü tuşsuz 102/qwertz/dấu phẩy/Phím chết loại trừ 102/qwertz/逗點/除去無用按鍵 102_qwertz_dot_dead 102/qwertz/dot/Dead keys 102/qwertz/dot/Dead keys 102/qwertz/dot/Teclas muertas 102/qwertz/piste/Kuolleet näppäimet 102/qwertz/point/touches mortes 102/qwertyz/punto/tasti muti 102/qwertz/punt/Dode toetsen pc102, qwertz, точка, специальные клавиши (dead keys) 102/qwertz/pika/Mrtve tipke 102/qwertz/тачка/акценти 102/qwertz/tačka/akcenti 102/qwertz/nokta/Ölü tuşlar 102/qwertz/dấu chấm/Phím chết 102/qwertz/句點/無用按鍵 102_qwertz_dot_nodead 102/qwertz/dot/Eliminate dead keys 102/qwertz/dot/Eliminate dead keys 102/qwertz/dot/Sin teclas muertas 102/qwertz/piste/Ei kuolleita näppäimiä 102/qwertz/point/sans touches mortes 102/qwertyz/punto/tasti muti esclusi 102/qwertz/punt/Dode toetsen verwijderen pc102, qwertz, точка, исключить специальные клавиши (dead keys) 102/qwertz/pika/Izloči mrtve tipke 102/qwertz/тачка/без акцената 102/qwertz/tačka/bez akcenata 102/qwertz/nokta/Ölü tuşsuz 102/qwertz/dấu chấm/Phím chết loại trừ 102/qwertz/句點/除去無用按鍵 102_qwerty_comma_dead 102/qwerty/comma/Dead keys 102/qwerty/comma/Dead keys 102/qwerty/comma/Teclas muertas 102/qwerty/pilkku/Kuolleet näppäimet 102/qwerty/virgule/touches mortes 102/qwerty/virgola/tasti muti 102/qwerty/komma/Dode toetsen pc102, qwerty, запятая, специальные клавиши (dead keys) 102/qwerty/vejica/Mrtve tipke 102/qwerty/запета/акценти 102/qwerty/zapeta/akcenti 102/qwerty/virgül/Ölü tuşlar 102/qwerty/dấu phẩy/Phím chết 102/qwerty/逗點/無用按鍵 102_qwerty_comma_nodead 102/qwerty/comma/Eliminate dead keys 102/qwerty/comma/Eliminate dead keys 102/qwerty/comma/Sin teclas muertas 102/qwerty/pilkku/Ei kuolleita näppäimiä 102/qwerty/virgule/sans touches mortes 102/qwerty/virgola/tasti muti esclusi 102/qwerty/komma/Dode toetsen verwijderen pc102, qwerty, запятая, исключить специальные клавиши (dead keys) 102/qwerty/vejica/Izloči mrtve tipke 102/qwerty/запета/без акцената 102/qwerty/zapeta/bez akcenata 102/qwerty/virgül/Ölü tuşsuz 102/qwerty/dấu phẩy/Phím chết loại trừ 102/qwerty/逗點/除去無用按鍵 102_qwerty_dot_dead 102/qwerty/dot/Dead keys 102/qwerty/dot/Dead keys 102/qwerty/dot/Teclas muertas 102/qwerty/piste/Kuolleet näppäimet 102/qwerty/point/touches mortes 102/qwerty/punto/tasti muti 102/qwerty/punt/Dode toetsen pc102, qwerty, точка, специальные клавиши (dead keys) 102/qwerty/pika/Mrtve tipke 102/qwerty/тачка/акценти 102/qwerty/tačka/akcenti 102/qwerty/nokta/Ölü tuşlar 102/qwerty/dấu chấm/Phím chết 102/qwerty/句點/無用按鍵 102_qwerty_dot_nodead 102/qwerty/dot/Eliminate dead keys 102/qwerty/dot/Eliminate dead keys 102/qwerty/dot/Sin teclas muertas 102/qwerty/piste/Ei kuolleita näppäimiä 102/qwerty/point/sans touches mortes 102/qwerty/punto/tasti muti esclusi 102/qwerty/punt/Dode toetsen verwijderen pc102, qwerty, точка, исключить специальные клавиши (dead keys) 102/qwerty/pika/Izloči mrtve tipke 102/qwerty/тачка/без акцената 102/qwerty/tačka/bez akcenata 102/qwerty/nokta/Ölü tuşsuz 102/qwerty/dấu chấm/Phím chết loại trừ 102/qwerty/句點/除去無用按鍵 is Isl Isl İsl Isl Isl Isl Isl Isl Isl Isl ISL Isl Исл Isl ISL Isl исл isl Isl Izl Ісл Isl Isl Isl Iceland исландска Iceland Islandia Islanti Islande Islandia IJsland Исландия Isilande Islandija Исланд Island İzlanda Iceland 冰島 Sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 il Isr Isr İsr Izr Isr Isr Isr Isr Isr Isr ISR Isr Ивр Izr ISR Isr изр izr Isr İbr Івр Isr Isr Isr Israel израелска Israel Israel Israel Israël Israele Israël Израиль Isirayeli Izrael Израел Izrael İsrail Israel 以色列 lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx lyx LYX lyx lyx lyx lyx lyx lyx lyx lyx lyx si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 si1452 phonetic Phonetic Foneties Fonetik фонетична Fonetické Fonetisk Φωνητικά Phonetic Fonético foneettinen Phonétique fonetikus Fonetico Fonetisch Фонетическая Fonetické Fonetična Phonetic фонетски fonetski Fonetisk Fonetik Фонетична Ngữ âm Phonetic 音標 it Ita Ita İta Ita Ita Ita Ita Ita Ita Ita ITA Ita Ит Tal ITA Ita ита ita Ita İta Іта Ita Ita Ita Italy италианска Italy Italia Italia Italie Italia Italië Италия Ubutariyani Italija Италија Italija İtalya Italy 意大利 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 jp Jpn Jpn Ypn Jap Jpn Ιαπ Jpn Jpn Jpn Jpn Jpn JPN Jpn Яп Jpn JPN Jpn јпн jpn Jpn Jpn Япо Jpn Jpn Jpn Japan японска Japan Japón Japani Japon Giappone Japan Япония Ubuyapani Japonska Јапан Japan Japonya Nhật Bản 日本 kg Kyr Kyr Kyr Kyr Kyr KGZ Kir Кыр KYR кир kir Kyr Kyr Kyr Kyrgyzstan киргистанска Kyrgyzstan Kirgizstán Kirgisia Kirghizistan Kirghizistan Kirgizië Кыргызстан Kirigizasitani Kirgizistan Киргистан Kirgistan Kırgızistan Kyrgyzstan 吉爾吉斯 kh Khm Khm Кхм кмб Cambodia Camboya Камбоджа Камбоџа kz Kaz Kaz Каз каз Kazakhstan Kazajstán Казахстан Казахстан ruskaz Russian with Kazakh Ruso con kazajo Русский с Казахским руски са казахстанским kazrus Kazakh with Russian Kazajo con ruso Казахский с Русским казахстански са руским la Lao Lao Lao Lao Lao LAO Lao Лао Lawo LAO лао lao Lao Lào Lao Laos лаоска Laos Laos Laos Laos Laos Laos Лаос Laos Лаос Laos Laos Lào 寮國 latam LAm LAm LAm LAm LAm LAm LAm LAm LAm LAm LAm ЛатАм LAm LAM LAm ЈАм JAm LAm LAm ЛатАм LAm LAm LAm Latin American латиноамериканска Latin American Latino américa latinalainen amerikka Amérique latine Latino americano Latijns-Amerika Латиноамериканская Latinsko Ameriško јужноамерички južnoamerički Latin Amerikanca La tinh Mỹ 拉丁美洲 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 lt Ltu Ltu Ltu Lit Lit Ltu Ltu Ltu Ltu Ltu LTU Ltu Лит Lit LTU Ltu лит lit Ltu Ltu Лит Ltu Ltu Ltu Lithuania литовска Lithuania Lituania Liettua Lituanie Lituania Litouwen Литва Lituwaniya Litva Литванија Litvanija Litvanya Li-tu-a-ni 立陶宛 std Standard Standaard Standart Standardní Standard Εξ ορισμού Standard Estándar Tavallinen Standard Szabványos Standard Standaard Стандартная gisanzwe/kimenyerewe Štandardné Standardna Standart стандардна standardna Standard Standart Стандартна Tiêu chuẩn 标准 標準 us US keyboard with Lithuanian letters US keyboard with Lithuanian letters Teclado EEUU con letras lituanas yhdysvaltalainen näppäimistö liettualaisilla kirjaimilla Clavier US avec lettres lituaniennes Tastiera USA con lettere lituane Amerikaans toetsenbord met Litouwse letters Клавиатура США с литовскими буквами US tipkovnica s Latvijskimi črkami Америчка тастатура са литванским словима Američka tastatura sa litvanskim slovima Litvanya harfleriyle amerikan klavyesi Bàn phím Mỹ với các chữ cái Li-tu-a-nia 美國鍵盤附立陶宛字母 lv Lva Lva Lva Lot Let Lva Lva Lva Lva Lva LVA Lva Латв Lot LVA Lva лет let Lva Lva Латв Lva Lva Lva Latvia латвийска Latvia Letonia Latvia Lettonie Lettonia Letland Латвия Lativiya Latvija Летонија Letonija Letonya Lát-via 拉脫維亞 apostrophe Apostrophe (') variant Вариант на апострофа (') Apostrophe (') variant Variante apóstrofo (') Heittomerkkimuunnos (') Variante apostrophe Variante apostrofo (') Apostrof (') variant Вариант с апострофом (') Apostrof (') varianta Варијанта са апострофом (') Varijanta sa apostrofom (') Tek tırnaklı (') Phương án hô ngữ (') 撇號 (') 變型 tilde Tilde (~) variant Вариант на тилдата (~) Tilde (~) variant Variante virgulilla (~) Tildemuunnos (~) Variante avec tilde Variante tilde (~) Tilde (~) variant Вариант с тильдой (~) Tilda (~) varianta Варијанта са тилдом (~) Varijanta sa tildom (~) Tilde (~) tuşlu Phương án dấu sóng (~) 波折號 (~) 變化 fkey F-letter (F) variant F-letter (F) variant Variante de letra F (F) F-kirjainmuunnos (F) Variante (F) Variante lettera-F (F) F-letter (F) variant Вариант с F F-črka (F) varianta Варијанта са F-словом (F) Varijanta sa F-slovom (F) F harfli (F) türü Phương án chữ cái F (F) F 字母變化 mao Mao Mao Mao Mao Mao Mao Mao Мао MAO мао mao Mao Mao Mao Maori маорска Maori Maorí maori Maori Maori Maori Маори Ikimawori Maori Маори Maori Mayorka Maori 毛利 mk Mkd Mkd Mkd Mak Mkd Mkd Mkd Mkd Mkd Mkd MKD Mkd Мак Mak MKD Mkd мак mak Mkd Mkd Мкд Mkd Mkd Mkd Macedonia Macedonia Македония Македонија nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 mt Mlt Mlt Mlt Mlt Mlt Mlt Mlt Mlt Mlt Mlt MLT Mlt Мальт Mlt MLT Mlt мал mal Mlt Mlt Мальт Mlt Mlt Mlt Malta малтийска Malta Malta Malta Malte Malta Malta Мальта Malita Malta Малта Malta Malta Malta 馬爾它 us US keyboard with Maltian letters US keyboard with Maltian letters Teclado EEUU con letras maltesas yhdysvaltalainen näppäimistö maltalaisilla kirjaimilla Clavier US avec lettres maltaises Tastiera USA con lettere maltesi Amerikaans toetsenbord met Maltese letters Клавиатура США с мальтийскими буквами US tipkovnica s Malteškimi črkami Америчка тастатура са малтешким словима Američka tastatura sa malteškim slovima Maltız harfleriyle amerikan klavyesi Bàn phím Mỹ với các chữ cái Mal-chi-a 美國鍵盤附馬爾它字母 mn Mng Mng Mng Mng Mng Mng Mng Mng Mng Mng MNG Mng Монг Mng MNG Mng мнг mng Mng Moğ Монг Mng Mng Mng Mongolia монголска Mongolia Mongolia Mongolia Mongolie Mongolia Mongolië Монголия Mongoliya Mongolija Монголија Mongolija Moğolistan Mông cổ 蒙古 no Nor Nor Nor Nor Nor Nor Nor Nor Nor Nor NOR Nor Нор Nor NOR Nor нор nor Nor Nor Нор Nor Nor Nor Norway норвежка Norway Noruega Norja Norvège Norvegia Noorwegen Норвегия Noruveje Norveška Норвешка Norveška Norveç Na Uy 挪威 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak smi Northern Saami северносамска (Норвегия) Northern Saami Saami del norte pohjoissaami Sami du Nord Noord-Lapland Северная Саамская Sami y'Amajyaruguru Severni Saami (Laponci) северносаамски severnosaamski Nordsamisk Kuzey Sami Bắc Saami 北部沙米文 smi_nodeadkeys Northern Saami, eliminate dead keys Saami del norte, sin teclas muertas pohjoissaami, ei kuolleita näppäimiä Sami du Nord, sans touches mortes Noord-Lapland, zonder dode toetsen Северная Саамская, исключить специальные клавиши (dead keys) Severni Saami, Izloči mrtve tipke северносаамски, без акцената severnosaamski, bez akcenata Kuzey Sami, ölü tuşsuz 北部沙米文,除去無用按鍵 pl Pol Pol Pol Pol Pol Πολ Pol Pol Pol Pol Pol POL Pol Польск Pol POL Pol пољ polj Pol Pol Пол Pol Pol Pol Poland полска Poland Polonia Puola Pologne Polonia Polen Польша Polonye Poljska Пољска Poljska Polonya Phần Lan 波蘭 qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz qwertz dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak dvorak_quotes Dvorak, Polish quotes on quotemark key Dvorak, Polish quotes on quotemark key Dvorak, comillas polacas en la tecla de comillas Dvorak, puolalaiset lainausmerkit lainausmerkkinäppäimestä Dvorak, guillemets polonais sur la touche des guillemets Dvorak, Poolse aanhalingstekens op aanhalingstekentoets Dvorak, польские кавычки на клавишах с кавычками Dvorak, Poljska - narekovaj na quotemark tipki дворак, пољски наводници на тастеру наводника dvorak, poljski navodnici na tasteru navodnika Dvorak, çift tırnak tuşunda Lehçe tırnaklar Dvorak, dấu ngoặc Polish trên phím đánh dấu ngoặc Dvorak,波蘭式引號置於「1/!」按鍵 dvorak_altquotes Dvorak, Polish quotes on key "1/!" Dvorak, Polish quotes on key "1/!" Dvorak, comillas polacas en la tecla «1/!» Dvorak, puolalaiset lainausmerkit "1/!"-näppäimistä Dvorak, guillemets polonais sur la touche « 1/! » Dvorak, Poolse aanhalingstekens op toets "1/!" Dvorak, польские кавычки на клавише "1/!" Dvorak, Poljska - narekovaj na tipki "1/!" дворак, пољски наводници на тастеру „1/!“ dvorak, poljski navodnici na tasteru „1/!“ Dvorak, "1/!" tuşunda Lehçe tırnaklar Dvorak, dấu ngoặc Polish trên phím "1/!" Dvorak,波蘭式引號置於「1/!」按鍵 pt Prt Prt Prt Prt Prt Prt Prt Prt Prt Prt PRT Prt Порт Prt PRT Prt прт prt Prt Prt Порт Prt Prt Prt Portugal португалска Portugal Portugal Portugali Portugal Portogallo Portugal Португалия Porutigali Portugalska Португалија Portugalija Portekiz Bồ Đào Nha 葡萄牙 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 ro Rou Rou Rou Rum Rum Rou Rou Rou Rou Rou ROU Rou Рум Rum ROU Rou рум rum Rou Rou Рум Rou Rou Rou Romania румънска Romania Rumanía Romania Roumanie Romania Roemenië Румыния Romaniya Romunija Румунија Rumunija Romenya Rô-ma-ni 羅馬尼亞 std Standard Standaard Standart Standardní Standard Εξ ορισμού Standard Estándar Tavallinen Standard Szabványos Standard Standaard Стандартная gisanzwe/kimenyerewe Štandardné Standardna Standart стандардна standardna Standard Standart Стандартна Tiêu chuẩn 标准 標準 winkeys Winkeys Winkeys Winkeys Клавишите Win Winkeys Win-taster Winkeys Teclas Windows Win-näppäimet Touches Logo Winkeys Tasti Win Win-toetsen Клавиатура Windows Win klávesy Win tipki Winkeys Windows тастери Windows tasteri Wintangenter Win tuşları Розкладка Windows Phím Win Winkeys Winkeys ru Rus Rus Rus Rus Rus Ρωσ Rus Rus Rus Rus Rus RUS Rus Рус Rus RUS Rus рус rus Rus Rus Рос Nga Rus Rus Russia руска Russia Rusia Venäjä Russie Russia Rusland Россия Rusija Русија Rusija Rusya Nga 俄羅斯 phonetic Phonetic Foneties Fonetik фонетична Fonetické Fonetisk Φωνητικά Phonetic Fonético foneettinen Phonétique fonetikus Fonetico Fonetisch Фонетическая Fonetické Fonetična Phonetic фонетски fonetski Fonetisk Fonetik Фонетична Ngữ âm Phonetic 音標 typewriter Typewriter Máquina de escribir kirjoituskone Machine à écrire Macchina per scrivere Typmachine Печатная машинка Pisalni Stroj „Куцаћа машина“ „Kucaća mašina“ Daktilo 打字機 winkeys Winkeys Winkeys Winkeys Клавишите Win Winkeys Win-taster Winkeys Teclas Windows Win-näppäimet Touches Logo Winkeys Tasti Win Win-toetsen Клавиатура Windows Win klávesy Win tipki Winkeys Windows тастери Windows tasteri Wintangenter Win tuşları Розкладка Windows Phím Win Winkeys Winkeys tt Tatar Tatar Татарская татарски cs SCG SCG SCG СМН СЦГ Serbia and Montenegro Serbia y Montenegro Serbia ja Montenegro Сербия и Монтенегро Србија и Црна Гора yz Z and ZHE swapped Z and ZHE swapped Z y ZHE intercambiados Z ja ZHE vaihdettu Z et ZHE interchangés Z e ZHE invertiti Z en ZHE verwisseld З и Ж переставлены Z in ZHE zamenjani Размењено З и Ж Razmenjeno Z i Ž Z ile ZHE yer değiştirir Đổi chỗ Z và ZHE 已交換 Z 與 ZHE latin Latin Latyns Latın латинска Latinské Latin Latin Latino latinalainen Latin latin Latino Latijn Латинская Ikiratini Latinské Latinsko Latinishte латинични latinični Latin Latin Латинська La tinh 拉丁 拉丁文 latinunicode Latin Unicode Latin Unicode Latino Unicode latinalainen Unicode Latin Unicode Latino Unicode Latijns-Unicode Латинская Unicode Latinsko Unicode латинични Уникод latinični Unikod Latin Unicode La tinh Unicode 拉丁文統一碼 latinyz Latin qwerty Latin qwerty Latino qwerty latinalainen qwerty Latin qwerty Latino qwerty Latijns qwerty Латинская qwerty Latinski qwerty латинични qwerty latinični qwerty Latin qwerty La tinh qwerty 拉丁文 qwerty latinunicodeyz Latin Unicode qwerty Latin Unicode qwerty Latino Unicode qwerty latinalainen Unicode-qwerty Latin Unicode qwerty Latino Unicode qwerty Latijns-Unicode qwerty Латинская Unicode qwerty Latinski Unicode Dvorak латинични Уникод qwerty latinični Unikod qwerty Latin Unicode qwerty La tinh Unicode qwerty 拉丁文統一碼 qwerty alternatequotes With guillemots With guillemots Con guillemots Guillemot-lainausmerkeillä Avec guillemets Con caporali («») Met Franse aanhalingstekens С guillemots Z dvojnimi <> (Guillemots) Са гиљемотима Sa giljemotima « » karakterleriyle Với chim guillemot 附帶海鳩符號 latinalternatequotes Latin with guillemots Latin with guillemots Latino con guillemots latinalainen guillemot-lainausmerkeillä Latin avec guillemets Latino con caporali («») Latijn met Franse aanhalingstekens Латинская с guillemots Latinska z dvojnimi <> (Guillemots) латинични са гиљемотима latinični sa giljemotima « » karakterleriyle Latin La tinh với chim guillemot 拉丁文附海鳩符號 si Svn Svn Svn Svn Svn Svn Svn Svn Svn Svn SVN Svn Cловен Svn SVN Svn сло slo Svn Svn Словен Svn Svn Svn Slovenia словенска Slovenia Eslovenia Slovenia Slovénie Slovenia Slovenië Словения Siloveniya Slovenija Словенија Slovenija Slovenya Slovenia 斯洛凡尼亞 alternatequotes Use guillemots for quotes Usar guillemots para comillas Käytä guillemot-lainausmerkkejä Usa caporali («») per virgolette ("") Использовать guillemots как кавычки Користи гиљемоте за наводнике Koristi giljemote za navodnike unicode Use Slovenian digraphs Usar digrafos eslovenos Käytä slovenialaisia merkkipareja Usa digrammi sloveni Использовать словенские диграфы Користи словеначке диграфе Koristi slovenačke digrafe unicodeus US keyboard with Slovenian digraphs Teclado EEUU con digrafos eslovenos yhdysvaltalainen näppäimistö slovenialaisilla merkkipareilla Tastiera USA con digrammi sloveni Клавиатура США со словенскими диграфами Америчка тастатура са словеначким диграфима Američka tastatura sa slovenačkim digrafima us US keyboard with Slovenian letters Teclado EEUU con letras eslovenas yhdysvaltalainen näppäimistö slovenialaisilla kirjaimilla Tastiera USA con lettere slovene Клавиатура США со словенскими буквами Америчка тастатура са словеначким словима Američka tastatura sa slovenačkim slovima sk Svk Svk Svk Svk Svk Svk Svk Svk Svk Svk SVK Svk Слов Svk SVK Svk слк slk Svk Svk Слов Svk Svk Svk Slovakia словашка Slovakia Eslovaquia Slovakia Slovaquie Slovacchia Slowakije Словакия Silovakiya Slovaška Словачка Slovačka Slovakya Slovakia 斯洛伐克 bksl Extended Backslash Extended Backslash Contrabarra extendida Laajennettu kenoviiva Barre contre-oblique étendue Backslash esteso Uitgebreide backslash Расширенные функции Backslash Razširjena Backslash tipka Проширено уз обрнуту косу црту Prošireno uz obrnutu kosu crtu Gelişmiş Gerisilme Gạch chéo ngược Mở rộng 延伸的反斜線 qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty querty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty qwerty_bksl qwerty, extended Backslash qwerty, extended Backslash qwerty, contrabarra extendida qwerty, laajennettu Backslash qwerty, contre-oblique étendue qwerty, backslash esteso qwerty, uitgebreide backslash qwerty, расширенные функции Backslash qwerty, razširjena Backslash tipka qwerty, проширено са обрнутом косом цртом qwerty, prošireno sa obrnutom kosom crtom qwerty, galişmiş Gerisilme qwerty, Gạch ngược mở rộng qwerty,延伸的反斜線 es Esp Esp İsp Špa Esp Esp Esp Esp Esp Esp ESP Esp Исп Špa ESP Esp шпа špa Esp İsp Ісп Esp Esp Esp Spain испанска Spain España Espanja Espagne Spagna Spanje Испания Esipanye Španija Шпанија Španija İspanya Tây Ban Nha 西班牙 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak cat Catalan variant with middle-dot L Variante catalana con L de medio punto Каталонская со средней L каталонска варијанта са L и средњом тачком se Swe Swe Swe Švé Sve Σου Swe Swe Swe Sué Swe SWE Swe Швед Swe SWE Swe шве šve Swe İsve Швед Swe Swe Swe Sweden шведска Sweden Suecia Ruotsi Suède Svezia Zweden Швеция Suwede Švedska Шведска Švedska İsveç Thụy Điển 瑞典 nodeadkeys Eliminate dead keys Elimineer dooie sleutels Ölü düymələri sayma Изключи специалните клавиши (dead keys) Eliminovat mrtvé klávesy Slå døde taster fra Χωρίς νεκρά πλήκτρα Eliminate dead keys Eliminar teclas muertas Ei kuolleita näppäimiä Éliminer les touches mortes Halott billentyűk tiltása Tasti muti rimossi Geen dode toetsen Исключить специальные клавиши (dead keys) Eliminovať mrtvé kláves Izloči mrtve tipke Elemino pulsantët e vdekur Уклони акценте Ukloni akcente Eliminera stumma tangenter Ölü tuşları normal yapar Вилучити спеціальні клавіші (dead keys) Phím chết loại trừ 除去死键 除去無用按鍵 dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak rus Russian phonetic руска фонетична Ruso fonético venäläinen foneettinen Phonétique russe Russo fonetico Russisch fonetisch Русская фонетическая Ruska fonetična руски фонетски ruski fonetski Rusça fonetik 俄文音標 rus_nodeadkeys Russian phonetic, eliminate dead keys Ruso fonético, sin teclas muertas venäläinen foneettinen, ei kuolleita näppäimiä Phonétique russe, sans lettres mortes Russo fonetico, tasti muti rimossi Russisch fonetisch, zonder dode toetsen Русская фонетическая, исключить специальные клавиши (dead keys) Ruska fonetična, Izloči mrtve tipke руски фонетски, без акцената ruski fonetski, bez akcenata Rusça fonetik, ölü tuşsuz 俄文音標,除去無用按鍵 smi Northern Saami северносамска (Норвегия) Northern Saami Saami del norte pohjoissaami Sami du Nord Noord-Lapland Северная Саамская Sami y'Amajyaruguru Severni Saami (Laponci) северносаамски severnosaamski Nordsamisk Kuzey Sami Bắc Saami 北部沙米文 ch Che Che Che Che Che CHE Che Швейц. CHE швц švc Che Che Che Switzerland швейцарска Switzerland Suiza Sveitsi Suisse Svizzera Zwitserland Швейцария Ubusuwisi Švica Швајцарска Švajcarska İsviçre Thụy Sĩ 瑞士 de_nodeadkeys German, eliminate dead keys German, eliminate dead keys Alemán, sin teclas muertas saksalainen, ei kuolleita näppäimiä Allemand, sans touches mortes Tedesco, tasti muti rimossi Duits, zonder dode toetsen Немецкая, исключить специальные клавиши (dead keys) Nemška, izloči mrtve tipke немачки, без акцената nemački, bez akcenata Almanca, ölü tuşsuz Đức, phím chết loại trừ 德文,除去無用按鍵 de_sundeadkeys German, Sun dead keys German, Sun dead keys Alemán, teclas muertas Sun saksalainen, Sunin kuolleet näppäimet Allemand, touches mortes Sun Tedesco, tasti muti Sun Duits, Sun-dode toetsen Немецкая, специальные клавиши (dead keys) Sun Nemška, Sun mrtve tipke немачки, Sun-ови акценти nemački, Sun-ovi akcenti Almanca, Sun ölü tuşlar Đức, phím chết Sun 德文,Sun 的無用按鍵 fr French Frans Fransızca френска Francouzské Fransk Γαλλικά French Francés ranskalainen Français francia Francese Frans Французская Igifaransa Francúzske Francoska Frengjisht француски francuski Fransk Fransızca Французька Pháp 法语 法文 fr_nodeadkeys French, eliminate dead keys French, eliminate dead keys Francés, sin teclas muertas ranskalainen, ilman kuolleita näppäimiä Français, sans touches mortes Francese, tasti muti rimossi Frans, zonder dode toetsen Французская, исключить специальные клавиши (dead keys) Francoska, izloči mrtve tipke Француски, без акцената Francuski, bez akcenata Fransızca, ölü tuşsuz Pháp, phím chết loại trừ 法文,除去無用按鍵 fr_sundeadkeys French, Sun dead keys French, Sun dead keys Francés, teclas muertas Sun ranskalainen, Sunin kuolleet näppäimet Français, touches mortes Sun Francese, tasti muti Sun Frans, Sun-dode toetsen Французская, специальные клавиши (dead keys) Sun Francoska, Sun mrtve tipke француски, Sun-ови акценти francuski, Sun-ovi akcenti Fransızca, Sun ölü tuşlar Pháp, phím chết Sun 法文,Sun 的無用按鍵 sy Syr Syr Syr Syr Syr Συρ Syr Syr Syr Syr Syr SYR Syr Асс Syr SYR Syr сир sir Syr Sur Сир Syr Syr Syr Syria сирийска Siria Syyria Syrie Siria Syrië Сирийская Sirija Сирија Sirija Suriye 敘利亞 syc Syriac Siries Syriac Syrské Syrisk Συριακά Syriac Sirio syyrialainen Syriaque szír Siriano Syrisch Сирийская Syriac Syrské Starosirski Siriane сиријски sirijski Syrisk Suriye Сирійська Syriac 叙利亚 敘利亞語 syc_phonetic Syriac phonetic Sirio fonético syyrialainen foneettinen Phonétique syriaque Siriano fonetico Syrisch fonetisch Сирийская фонетическая Starosirski fonetično сиријски фонетски sirijski fonetski Suriye fonetik 敘利亞音標 ku Kurdish, Latin Q Kurdo, Latino Q ku_f Kurdish, (F) Kurdo, (F) ku_alt Kurdish, Latin Alt-Q Kurdo, Latino Alt-Q tj Tjk Tjk Tac Tjk Tjk Tjk Tjk Tjk Tjk Tjk TJK Tjk Тадж Tjk TJK Tjk тџк tdžk Tjk Tck Тдж Tjk Tjk Tjk Tajikistan таджикска Tajikistan Tajikistán Tadžikistan Tadjikistan Tagikistan Tadzjikistan Таджикистан Tajikisitani Tadžikistan Таџикистан Tadžikistan Tacikistan Ta-zi-kix-tan 塔吉克 lk SrL SrL SrL SrL LKA SrL ШрЛ SRL шрл šrl SrL SrL Sri Lanka шриланкска Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Шри Ланка Šrilanka Шри Ланка Šri Lanka Sri Lanka 斯里蘭卡 tam_unicode Tamil Unicode Tamil Unicode tamili-Unicode Unicode tamoul Tamil Unicode Tamil unicode Тамильская Unicode Tamilski Unicode тамил Уникод tamil Unikod Tamil Unicode 坦米爾文統一碼 tam_TAB Tamil TAB Typewriter Tamil TAB Typewriter tamili- TAB Typewriter Machine à écrire tamoule TAB Tamil TAB macchina per scrivere Tamil TAB typmachine Тамильская "Печатная машинка" TAB Tamilski TAB Typewriter тамил TAB куцаћа машина tamil TAB kucaća mašina Tamil TAB Daktilo 坦米爾文 TAB 打字機 th Tha Tha Tay Tha Tha Tha Tha Tha Tha Tha THA Tha Таи Tha THA Tha тај taj Tha Tha Тай Tha Tha Tha Thailand тайландска Thailand Tailandia Thaimaa Thaïlande Thailandia Thaïland Таиланд Tayilande Tajska Тајланд Tajland Tayland Thái Lan 泰國 tis TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 TIS-820.2538 泰語(TIS-820.2538) pat Pattachote Pattachote Pattachote Pattachote Pattachote Pattachote Pattachote Паттачот Pattachote (Tajska) Паташоте Patašote Pataküte 泰文 tr Tur Tur Tür Tur Tyr Του Tur Tur Tur Tur Tur TUR Tur Тур Tur TUR Tur тур tur Tur Trk Тур Tur Tur Tur Turkey Turquía Турция Турска f (F) (F) (F) (F) (F) (F) (F) (F) (F) (F) (F) F Klavye (F) (F) alt Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Alt-Q Yazılımcı klavyesi (Q) Alt-Q Alt-Q sundeadkeys Sun dead keys Sun (dooie sleutels) Sun ölü düymələr Mrtvé klávesy Sun Sun døde taster Sun dead keys Teclas muertas de Sun Sunin kuolleet näppäimet Touches mortes Sun Sun halott billentyűk Tasti muti Sun Sun dode toetsen Специальные клавиши (dead keys) Sun Mŕtve klávesy Sun Sun mrtve tipke Pulsantë të vdekur Sun Sun-ови акценти Sun-ovi akcenti Sun stumma tangenter Sun ölü tuşlar Спеціальні клавіші (dead keys) Sun Phím chết Sun Sun 死键 Sun 無用按鍵 ku Kurdish, Latin Q Kurdo, Latino Q ku_f Kurdish, (F) Kurdo, (F) ku_alt Kurdish, Latin Alt-Q Kurdo, Latino Alt-Q ua Ukr Ukr Ukr Ukr Ukr Ουκ Ukr Ucr Ukr Ukr Ukr UKR Ukr Укр Ukr UKR Ukr укр ukr Ukr Ukr Укр Ukr Ukr Ukr Ukraine украинска Ukraine Ucrania Ukraina Ukraine Ucraina Oekraïne Украина Ikerene Ukraina Украјина Ukrajina Ukrayna U-cra-in 烏克蘭 phonetic Phonetic Foneties Fonetik фонетична Fonetické Fonetisk Φωνητικά Phonetic Fonético foneettinen Phonétique fonetikus Fonetico Fonetisch Фонетическая Fonetické Fonetična Phonetic фонетски fonetski Fonetisk Fonetik Фонетична Ngữ âm Phonetic 音標 typewriter Typewriter Máquina de escribir kirjoituskone Machine à écrire Macchina per scrivere Typmachine Печатная машинка Pisalni Stroj „Куцаћа машина“ „Kucaća mašina“ Daktilo 打字機 winkeys Winkeys Winkeys Winkeys Клавишите Win Winkeys Win-taster Winkeys Teclas Windows Win-näppäimet Touches Logo Winkeys Tasti Win Win-toetsen Клавиатура Windows Win klávesy Win tipki Winkeys Windows тастери Windows tasteri Wintangenter Win tuşları Розкладка Windows Phím Win Winkeys Winkeys rstu Standard RSTU Standard RSTU Tavallinen RSTU Standard RSTU RSTU standard Standaard RSTU Стандартная RSTU Standard RSTU стандардна RSTU standardna RSTU Standart RSTU 標準 RSTU rstu_ru Standard RSTU on Russian layout Standard RSTU con distribución rusa Tavallinen RSTU venäläisellä asettelulla Standard RSTU avec une disposition russe RSTU standard su disposizione russa Standaard RSTU op Russische layout Стандартная RSTU, русская Standard RSTU na Ruski ureditvi стандардна RSTU на руском распореду standardna RSTU na ruskom rasporedu Rusça yerleşimde standart RSTU 俄文排列上的標準 RSTU gb GBr GBr GBr VBr GBr GBr GBr GBr GBr GBr GBR GBr Брит VBr GBR GBr вбр vbr GBr GBr Брит GBr GBr GBr United Kingdom Vereenigde Koninkryk Birləşik Krallıq британска Spojené království United Kingdom Ηνωμένο Βασίλειο United Kingdom Reino Unido Iso-Britannia Royaume-Uni brit angol Regno Unito Verenigd Koninkrijk Английская (Великобритания) Ubwongereza (UK) Spojené kráľovstvo Združeno Kraljestvo Mbretëria e Bashkuar Велика Британија Velika Britanija Storbritannien İngiltere Англійська (Великобританія) Vương Quốc Anh 英国 英國 intl International (with dead keys) International (with dead keys) Internacional (con teclas muertas) Kansainvälinen (ilman kuolleita näppäimiä) International (avec touches mortes) Internazionale (con tasti muti) Internationaal (met dode toetsen) Международная, со спец. клавишами (dead keys) Mednarodna (z mrtvimi tipkami) Међународна (са акцентима) Međunarodna (sa akcentima) Uluslararası (ölü tuşlarla) Quốc tế (với phím chết) 國際鍵盤 (附無用按鍵) dvorak Dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak Dvorak-féle Dvorak Dvorak Дворак Dvorak Dvorak nabor Dvorak дворак dvorak Dvorak Dvorak Дворак Dvorak Dvorak Dvorak uz Uzb Uzb Özb Uzb Uzb Uzb Uzb Uzb Uzb Uzb UZB Uzb Узб Uzb UZB Uzb узб uzb Uzb Özb Узб Uzb Uzb Uzb Uzbekistan узбекистанска Uzbekistan Uzbekistán Uzbekistan Ouzbékistan Uzbekistan Oezbekistan Узбекистан Uzubekisitani Uzbekistan Узбекистан Uzbekistan Özbekistan Uz-bê-kix-tan 烏茲別克 vn Vnm Vnm Vye Vnm Vnm Vnm Vnm Vnm Vnm Vnm VNK Vnm Вьет Vnm VNM Vnm вјт vjt Vnm Vnm Вьет Vnm Vnm Vnm Vietnam виетнамска Vietnam Vietnam Vietnam Viêt Nam Vietnam Viëtnam Вьетнам Viyetinamu Vietnam Вијетнам Vijetnam Vietnam Việt nam 越南 kr Kor Kor Korea, Republic of Corea, República de nec_vndr/jp Jpn Jpn Ypn Jap Jpn Ιαπ Jpn Jpn Jpn Jpn Jpn JPN Jpn Яп Jpn JPN Jpn јпн jpn Jpn Jpn Япо Jpn Jpn Jpn Japan (PC-98xx Series) Japón (Series PC-98xx) ie Irl Irl İrl Irs Irl Irl Irl Irl Irl Irl IRL Irl Ирл Irs IRL Irl ирс irs Irl İrl Ірл Irl Irl Irl Ireland ирландска Ireland Irlanda Irlanti Irlande Irlanda Ierland Ирландия Irilande Irska Ирска Irska İrlanda Ireland 愛爾蘭 CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach CloGaelach UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExperto Unicode-asiantuntija UnicodeExpert UnicodeExpert UnicodeEsperto UnicodeExpert UnicodeExpert UnicodeExpert UnicodeExpert EkspertUnicode Стручна за Уникод Stručna za Unikod UnicodeExpert Unicode Uzman UnicodeExpert Unicode Chuyên môn UnicodeExpert UnicodeExpert ogam Ogham Ogham Ogham Oghamské Ogham Ogham Ogham Ogham Ogham ogham Ogham Oghamees Огхам (древнеирланская) Ogham Oghamské Ogham (Kelti) Ogham огам ogam Ogham Ogham Огхам (давньоірландська) Ogham 欧甘 (古愛爾蘭)歐甘文字 ogam_is434 Ogham IS434 Ogham IS434 Ogham IS434 Ogham IS434 Ogham IS434 Oghamees IS434 Огхам IS434 Ogham IS434 (Kelti) огам IS434 ogam IS434 Ogham IS434 歐甘文字 IS434 pk Pak Pak Pak Pak PAK Pak Пак PAK пак pak Pak Pak Pakistan пакистанска Pakistán Pakistan Pakistan Pakistan Pakistan Пакистан Pakistan Пакистан Pakistan Pakistan 巴基斯坦 mv Mal Mal Mal Mal Mal Mal Mal Mal Mal MDV Мал Mal Mal мал mal Mal Малаз Mal Mal Maldives Maldivas Malediivit Maldive Мальдивы Малдиви Maldivi za Zar Zar ЮАР Зар South Africa Sudáfrica Южная Африка Јужна Африка epo Epo Epo Эсп есп Esperanto Esperanto Эсперанто есперанто grp Group Shift/Lock behavior Groep Shift/Lock gedrag Shift/Lock Qrupu Davranışı Функции на клавишите Shift/Lock Chování skupiny Shift/Lock Gruppeskift/-lås-opførsel Group Shift/Lock behaviour Comportamiento del grupo Mayus/Bloq Ryhmien vaihto/lukitustoiminta Combinaisons pour changer de groupe Csoportváltás és -zárolás Comportamento cambio/blocco del gruppo Groepgedrag Shift/Lock Функция смены раскладки Zoskupiť chovanie Shift/Lock Obnašanje Shift/lock skupine Sjellja e grupit Shift/Lock Понашање измене/избора групе Ponašanje izmene/izbora grupe Gruppbeteende för Skift/Lock Shift/Lock Grubu davranışı Функція зміни групи Đặc điểm của nhóm Shift/Lock 组切换/锁定行为 群組 Shift/Lock 功能 lv3 Third level choosers Derdevlak kiesers Üçüncü səviyyə seçicilər Избор на третата група Výběr třetí úrovně Tredje niveaus vælgere Third level choosers Selectores de tercer nivel Kolmannnen tason valitsimet Sélecteur du 3e niveau Harmadik szintű választók Selettore terzo livello 3e niveau kiezers Выбор 3-го уровня Výber tretej úrovne Tretje stopenjski izbor Zgjedhësit e nivelit të tretë Избор трећег нивоа Izbor trećeg nivoa Tredjenivåsväljare 3. seviye seçiciler Вибір 3-го рівня Trình chọn ngôn ngữ thứ ba 第三级选择 第三級選擇器 ctrl Ctrl key position Положение на Control-а Posición de la tecla Ctrl Положение клавиши Ctrl Положај тастера Ctrl grp_led Use keyboard LED to show alternative group. Индикация чрез клавиатурен светодиод за сменяне на групата. Use keyboard LED to show alternative group. Usar LED del teclado para mostrar el grupo alternativo. Käytä näppäimistö-lediä näyttämään vaihtoehtoista ryhmää. Utiliser les voyants lumineux du clavier pour afficher un groupe alternatif. Usare LED della tastiera per mostrare il gruppo alternativo. Toetsenbord LED gebruiken om alternatieve groep te tonen. Использование клавиатурных индикаторов для отображения доп. групп. Uporabi tipkovnično LED za prikaz alternativne skupine. Користи лампицу тастатуре за приказ измене група. Koristi lampicu tastature za prikaz izmene grupa. Diğer grubu göstermek içim klavye LED'i kullanılır. Sử dụng đèn bàn phím để chỉ ra ngôn ngữ tương đương. 使用鍵盤燈號來顯示替代的群組。 caps CapsLock key behavior CapsLock-sleutelgedrag CapsLock düyməsinin davranışı Поведение на CapsLock Chování klávesy CapsLock Opførsel for Caps Lock-tast Συμπεριφορά πλήκτρου Κλείδωμα Κεφαλαίων Caps Lock key behaviour Comportamiento de BloqMayus CapsLock-näppäimen toiminta Comportement de la touche Verrouillage majuscule A Caps Lock használati módja Comportamento tasto BlocMaiusc CapsLock-toets gedrag Клавиша Caps Lock Chovanie klávesa Caps Lock Obnašanje CapsLock Tipke Sjellja e pulsantit CapsLock Понашање Caps Lock тастера Ponašanje Caps Lock tastera Beteende för Caps Lock-tangenten CapsLock tuşunun davranışı Клавіша Caps Lock Đặc điểm của phím CapsLock CapsLock 键行为 Caps Lock 鍵功能 altwin Alt/Win key behavior Alt/Win-sleutel gedrag Alt/Win düyməsinin davranışları Функцията на Alt/Win Chování klávesy Alt/Win Alt/Win-tasteopførsel Συμπεριφορά πλήκτρου Alt/Win Alt/Win key behaviour Comportamiento de la tecla Alt/Windows Alt/Win-näppäinten toiminta Comportement des touches Alt/Logo Az Alt/Win billentyűk viselkedése Comportamento tasto Alt/Win Alt/Win-toets gedrag Клавиши Alt/Win Chovanie klávesu Alt/Win Obnašanje Alt/Win tipk Sjellja e pulsantit Alt/Win Понашање Alt/Win тастера Ponašanje Alt/Win tastera Alt/Win-tangentbeteende Alt/Win tuşu davranışı Клавіші Alt/Win Các làm việc của Alt/Win Alt/Win 键行为 Alt/Win 鍵功能 Compose key Compose key position Положение на Compose-а Posición de la tecla Componer Compose-näppäimen sijainti Position de la touche Compose Posizione tasto Compose Compose-toets positie Положение клавиши Control Položaj pred-tipke (Compose) Положај тастера Compose Položaj tastera Compose Karakter oluşturma (compose) tuşu konumu Compose 鍵的位置 compat Miscellaneous compatibility options Verskeie versoenbaarheid-opsies Müxtəlif yetişmə qabiliyyəti seçimləri Разни настройки за съвместимост Dodatečné volby pro kompatibilitu Diverse kompatibilitetsvalg Miscellaneous compatibility options Opciones misceláneas de compatiblidad Sekalaisia yhteensopivuusvalintoja Diverses options de compatibilité Egyéb kompatibilitási beállítások Opzioni varie di compatibilità Overige compatibiliteitsopties Разные параметры совместимости Dodatočné voľby pre kompatibilitu Možnosti ostalih združljivosti Opcione të ndryshme kompatibiliteti Разне могућности за сагласност Razne mogućnosti za saglasnost Diverse kompatibilitetsalternativ Çeşitli uyumluluk seçenekleri Різна параметри сумісності Tùy chọn tương thích khác 其它兼容选项 其它相容選項 eurosign Adding the EuroSign to certain keys Добавяне на знака Евро (€) към някои клавиши Adding the Euro sign to certain keys Añadir el símbolo del Euro a ciertas teclas Lisätään euro-merkki tiettyihin näppäimiin Ajout du signe Euro sur certaines touches Aggiunta del simbolo € a determinati tasti Euro-teken aan bepaalde toetsen toevoegen Добавить знак Евро к некоторым клавишам Dodaj simbol za Evro določeni tipki Додавање знака за евро одређеним тастерима Dodavanje znaka za evro određenim tasterima Belli tuşlara € sembolünün eklenmesi Thêm ký hiệu đồng Euro vào các phím chắc chắn 將歐元符號加到特定鍵之上 japan Japanese Keyboard Options Xacobeo-0.15/tests/countries.xml000444001750001750 166360112211074713 20667 0ustar00erodriguezerodriguez000000000000 GUATEMALA GT Alta Verapaz AV 01 Baja Verapaz BV 02 Chimaltenango CM 03 Chiquimula CQ 04 El Progreso PR 05 Escuintla ES 06 Guatemala GU 07 Huehuetenango HU 08 Izabal IZ 09 Jalapa JA 10 Jutiapa JU 11 Petén PE 12 Quetzaltenango QZ 13 Quiché QC 14 Retalhuleu RE Sacatepéquez SA 16 San Marcos SM 17 Santa Rosa SR 18 Sololá SO 19 Suchitepéquez SU 20 Totonicapán TO 21 Zacapa ZA 22 GUINEA BISSAU GW Bissau BS autonomous sector 11 Bafatá BA L region 01 Biombo BM N region 12 Bolama BL S region 05 Cacheu CA N region 06 Gabú GA L region 10 Oio OI N region 04 Quinara QU S region 02 Tombali TO S region 07 HONDURAS HN Atlántida AT 01 Colón CL 03 Comayagua CM 04 Copán CP 05 Cortés CR 06 Choluteca CH 02 El Paraíso EP 07 Francisco Morazán FM 08 Gracias a Dios GD 09 Intibucá IN 10 Islas de la Bahía IB 11 La Paz LP 12 Lempira LE 13 Olancho OL 15 Santa Bárbara SB 16 Valle VA 17 Yoro YO 18 CROATIA HR Grad Zagreb 21 city Bjelovarsko-bilogorska 07 county Brodsko-posavska 12 county Dubrovacko-neretvanska 19 county Istarska 18 county Karlovacka 04 county Koprivnicko-križevacka 06 county Krapinsko-zagorska 02 county Licko-senjska 09 county Medimurska 20 county Osjecko-baranjska 14 county Požeško-slavonska 11 county Primorsko-goranska 08 county Sisacko-moslavacka 03 county Splitsko-dalmatinska 17 county Šibensko-kninska 15 county Varaždinska 05 county Viroviticko-podravska 10 county Vukovarsko-srijemska 16 county Zadarska 13 county 19 Zagrebacka 01 county GUYANA GY Barima-Waini BA 10 HAITI HT Artibonite AR Centre CE 07 Grande-Anse GA 08 Nord ND 09 Nord-Est NE Nord-Ouest NO 03 Ouest OU 11 Sud SD 12 Sud-Est SE 13 HUNGARY HU Budapest BU capital city 05 Bács-Kiskun BK county 01 Baranya BA county 02 Békés BE county 03 Borsod-Abaúj-Zemplén BZ county 04 Csongrád CS county 06 Fejér FE county 08 Gyor-Moson-Sopron GS county 09 Hajdú-Bihar HB county 10 Heves HE county 11 Jász-Nagykun-Szolnok JN county 20 Komárom-Esztergom KE county 12 Nógrád NO county 14 Pest PE county 16 Somogy SO county 17 Szabolcs-Szatmár-Bereg SZ county 18 Tolna TO county 21 Vas VA county 22 Veszprém VE county 39 Zala ZA county 24 Békéscsaba BC city of county right 26 Debrecen DE city of county right 07 Dunaújváros DU city of county right 27 Eger EG city of county right 28 Gyor GY city of county right 25 Hódmezovásárhely HV city of county right 29 Kaposvár KV city of county right 30 Kecskemét KM city of county right 31 Miskolc MI city of county right 13 Nagykanizsa NK city of county right 32 Nyíregyháza NY city of county right 33 Pécs PS city of county right Salgótarján ST city of county right Sopron SN city of county right 34 Szeged SD city of county right 19 Székesfehérvár SF city of county right 35 Szekszárd SS city of county right Szolnok SK city of county right 36 Szombathely SH city of county right 37 Tatabánya TB city of county right 38 Veszprém VM city of county right Zalaegerszeg ZE city of county right 40 INDONESIA ID Bali BA NU province 02 Bangka Belitung BB SM province Banten BT JW province Bengkulu BE SM province 03 Gorontalo GO SL province Jambi JA SM province 05 Jawa Barat JB JW province 30 Jawa Tengah JT JW province 07 Jawa Timur JI JW province 08 Kalimantan Barat KB KA province 11 Kalimantan Selatan KS KA province 12 Kalimantan Tengah KT KA province 14 Kalimantan Timur KI KA province 14 Lampung LA SM province 15 Maluku MA MA province 28 Maluku Utara MU MA province Nusa Tenggara Barat NB NU province 17 Nusa Tenggara Timur NT NU province 18 Papua PA IJ province Riau RI SM province 19 Sulawesi Selatan SN SL province 20 Sulawesi Tengah ST SL province 21 Sulawesi Tenggara SG SL province 22 Sulawesi Utara SA SL province 31 Sumatera Barat SB SM province 24 Sumatera Selatan SS SM province 32 Sumatera Utara SU SM province 26 Jakarta Raya JK JW special district 04 Aceh AC SM special region 01 Yogyakarta YO JW special region 10 IRELAND IE Carlow CW L 01 Cavan CN U 02 Clare CE M 03 Cork C M 04 Donegal DL U Dublin D L 07 Galway G C 10 Kerry KY M Kildare KE L 12 Kilkenny KK L 13 Laois LS L 15 Leitrim LM C 14 Limerick LK M 16 Longford LD L 18 Louth LH L 19 Mayo MO C 20 Meath MH L 21 Monaghan MN U 22 Offaly OY L 23 Roscommon RN C 24 Sligo SO C 25 Tipperary TA M 26 Waterford WD M 27 Westmeath WH L 29 Wexford WX L 30 Wicklow WW L 31 ISRAEL IL HaDarom D 01 HaMerkaz M 02 Ha Z_afon Z 03 Hefa HA Tel-Aviv TA 05 Yerushalayim JM 06 INDIA IN Andhra Pradesh AP state 02 Arunachal Pradesh AR state 30 Assam AS state 03 Bihar BR state 04 Chhattisgarh CT state Goa GA state 33 Gujarat GJ state 09 Haryana HR state 10 Himachal Pradesh HP state 11 Jammu and Kashmir JK state 12 Jharkhand JH state Karnataka KA state 19 Kerala KL state 13 Madhya Pradesh MP state 15 Maharashtra MH state Manipur MN state 17 Meghalaya ML state 18 Mizoram MZ state 31 Nagaland NL state 20 Orissa OR state 21 Punjab PB state 23 Rajasthan RJ state 24 Sikkim SK state 29 Tamil Nadu TN state 25 Tripura TR state 26 Uttaranchal UL state Uttar Pradesh UP state 27 West Bengal WB state Andaman and Nicobar Islands AN union territory 01 Chandigarh CH union territory 05 Dadra and Nagar Haveli DN union territory 06 Daman and Diu DD union territory 32 Delhi DL union territory 07 Lakshadweep LD union territory 14 Pondicherry PY union territory 22 IRAQ IQ Al Anbar AN 01 Al Basrah BA 02 Al Muthanná MU 03 Al Qadisiyah QA 04 An Najaf NA 17 Arbil AR 11 As Sulaymaniyah SU At Ta'mim TS 13 Babil BB 06 Baghdad BG 07 Dahuk DA 08 Dhi Qar DQ 09 Diyalá DI 10 Karbala' KA 12 Maysan MA 14 Ninawá NI 15 Salah ad Din SD Wasit WA 16 IRAN (ISLAMIC REPUBLIC OF) IR Ardabil 03 West Azarbayjan 02 East Azarbayjan 01 Bushehr 06 Chahar Mahall and Bakhtiari 08 Esfahan 04 Fars 14 Gilan 19 Golestan 27 Hamadan 24 Hormozgan 23 Ilam 05 Kerman 15 Kermanshah 17 Khorasan 09 Khuzestan 10 Kohkiluyeh and Buyer Ahmad 18 Kordestan 16 EQUATORIAL GUINEA GQ Región Continental C region Región Insular I region Annobón AN I province Bioko Norte BN I province Bioko Sur BS I province Centro Sur CS C province Kie-Ntem KN C province Litoral LI C province Wele-Nzás WN C province GREECE GR Achaïa 13 VII department Aitolia-Akarnania 01 VII department 39 Argolis 11 X department 36 Arkadia 12 X department 41 Arta 31 IV department 20 Attiki A1 IX department 35 Chalkidiki 64 II department Chania 94 XIII department Chios 85 XI department Dodekanisos 81 XII department Drama 52 I department 04 Evros 71 I department 01 Evrytania 05 VIII department 30 Evvoia 04 VIII department 34 Florina 63 III department 08 Fokis 07 VIII department 32 Fthiotis 06 VIII department 29 Grevena 51 III department 10 Ileia 14 VII department Imathia 53 II department 12 Ioannina 33 IV department 17 Irakleion 91 XIII department 45 Karditsa 41 V department Kastoria 56 III department 09 Kavalla 55 I department 14 Kefallinia 23 VI department 27 Kerkyra 22 VI department 25 Kilkis 57 II department 06 Korinthia 15 X department 37 Kozani 58 III department 11 Kyklades 82 XII department 49 Lakonia 16 X department 42 Larisa 42 V department 21 Lasithion 92 XIII department 46 Lefkas 24 VI department 26 Lesvos 83 XI department 51 Magnisia 43 V department 24 Messinia 17 X department 40 Pella 59 II department 07 Pieria 61 II department Preveza 34 IV department 19 Rethymnon 93 XIII department 44 Rodopi 73 I department 02 Samos 84 XI department 48 Serrai 62 II department 05 Thesprotia 32 IV department 18 Thessaloniki 54 II department 13 Trikala 44 V department 22 Voiotia 03 VIII department 33 Xanthi 72 I department 03 Zakynthos 21 VI department 28 Agio Oros 69 self-governed part IRAN (ISLAMIC REPUBLIC OF) IR Lorestan 20 Markazi 22 Mazandaran 21 Qazvin 28 Qom 26 Semnan 12 Sistan va Baluchestan 13 Tehran 07 Yazd 25 Zanjan 11 ICELAND IS Austurland 7 Höfuðborgarsvæði utan Reykjavíkur 1 Norðurland eystra 6 Norðurland vestra 5 Reykjavík 0 Suðurland 8 Suðurnes 2 Vestfirðir 4 Vesturland 3 ITALY IT Agrigento AG 82 Alessandria AL 21 Ancona AN 57 Aosta AO 23 Arezzo AR 52 Ascoli Piceno AP 57 Asti AT 21 Avellino AV 72 Bari BA 75 Belluno BL 34 Benevento BN 72 Bergamo BG 25 Biella BI 21 Bologna BO 45 Bolzano BZ 32 Brescia BS 25 Brindisi BR 75 Cagliari CA 88 Caltanissetta CL 82 Campobasso CB 67 Caserta CE 72 Catania CT 82 Catanzaro CZ 78 Chieti CH 65 Como CO 25 Cosenza CS 78 Cremona CR 25 Crotone KR 78 Cuneo CN 21 Enna EN 82 Ferrara FE 45 Firenze FI 52 Foggia FG 75 Forlì FO 45 Frosinone FR 62 Genova GE 42 Gorizia GO 36 Grosseto GR 52 Imperia IM 42 Isernia IS 67 L'Aquila AQ 65 La Spezia SP 42 Latina LT 62 Lecce LE 75 Lecco LC 25 Livorno LI 52 Lodi LO 25 Lucca LU 52 Macerata MC 57 Mantova MN 25 Massa-Carrara MS 52 Matera MT 77 Messina ME 82 Milano MI 25 Modena MO 45 Napoli NA 72 Novara NO 21 Nuoro NU 88 Oristano OR 88 Padova PD 34 Palermo PA 82 Parma PR 45 Pavia PV 25 Perugia PG 55 Pesaro e Urbino PS 57 Pescara PE 65 Piacenza PC 45 Pisa PI 52 Pistoia PT 52 Pordenone PN 36 Potenza PZ 77 Prato PO 52 Ragusa RG 82 Ravenna RA 45 Reggio Calabria RC 78 Reggio Emilia RE 45 Rieti RI 62 Rimini RN 45 Roma RM 62 Rovigo RO 34 Salerno SA 72 Sassari SS 88 Savona SV 42 Siena SI 52 Siracusa SR 82 Sondrio SO 25 Taranto TA 75 Teramo TE 65 Terni TR 55 Torino TO 21 Trapani TP 82 Trento TN 32 Treviso TV 34 Trieste TS 36 Udine UD 36 Varese VA 25 Venezia VE 34 Verbano-Cusio-Ossola VB 21 Vercelli VC 21 Verona VR 34 Vibo Valentia VV 78 Vicenza VI 34 Viterbo VT 62 JAMAICA JM Clarendon 13 01 Hanover 09 02 Kingston 01 Manchester 12 04 Portland 04 07 Saint Andrew 02 08 Saint Ann 06 09 Saint Catherine 14 10 Saint Elizabeth 11 11 Saint James 08 12 Saint Mary 05 13 Saint Thomas 03 Trelawny 07 15 Westmoreland 10 16 JORDAN JO Ajlun AJ 20 Al Aqaba AQ 21 Al Balqa' BA 02 Al Karak KA 09 Al Mafraq MA 15 Amman AM 16 At Tafilah AT 12 Az Zarqa' AZ 17 Irbid IR Jarash JA 22 Ma`an MN 19 Madaba MD JAPAN JP Aichi 23 01 Akita 05 02 Aomori 02 03 Ehime 38 05 Gihu 21 09 Gunma 10 Hirosima [Hiroshima] 34 11 Hokkaidô [Hokkaido] 01 12 Hukui [Fukui] 18 06 Hukuoka [Fukuoka] 40 07 Hukusima [Fukushima] 07 Hyôgo [Hyogo] 28 13 Ibaraki 08 14 Isikawa [Ishikawa] 17 15 Iwate 03 16 Kagawa 37 17 Kagosima [Kagoshima] 46 18 Kanagawa 14 19 Kôti [Kochi] 39 20 Kumamoto 43 21 Kyôto [Kyoto] 26 22 Mie 24 23 Miyagi 04 24 Miyazaki 45 25 Nagano 20 26 Nagasaki 42 27 Nara 29 28 Niigata 15 29 Ôita [Oita] 44 30 Okayama 33 31 Okinawa 47 47 Ôsaka [Osaka] 27 32 Saga 41 33 Saitama 11 34 Siga [Shiga] 25 35 Simane [Shimane] 32 36 Sizuoka [Shizuoka] 22 37 Tiba [Chiba] 12 04 Totigi [Tochigi] 09 38 Tokusima [Tokushima] 36 39 Tôkyô [Tokyo] 13 40 Tottori 31 41 Toyama 16 42 Wakayama 30 43 Yamagata 06 44 Yamaguti [Yamaguchi] 35 45 Yamanasi [Yamanashi] 19 46 KENYA KE Nairobi Municipality 110 municipality Central 200 province 01 Coast 300 province 02 Eastern 400 province 03 North-Eastern 500 province Nyanza 600 province Rift Valley 700 province 08 Western 900 province KYRGYZSTAN KG Chü C region Jalal-Abad J region 03 Naryn N region 04 Osh O region 08 Talas T region 06 Ysyk-Köl Y region 07 CAMBODIA KH Krong Kaeb [Krong Kêb] 23 autonomous municipality 26 Krong Preah Sihanouk [Krong Preah Sihanouk] 18 autonomous municipality Phnom Penh [Phnum Pénh] 12 autonomous municipality 22 Baat Dambang [Batdâmbâng] 2 province 29 Banteay Mean Chey [Bântéay Méanchey] 1 province 25 Kampong Chaam [Kâmpóng Cham] 3 province 02 Kampong Chhnang [Kâmpóng Chhnang] 4 province 03 Kampong Spueu [Kâmpóng Spœ] 5 province 04 Kampong Thum [Kâmpóng Thum] 6 province 05 Kampot [Kâmpôt] 7 province 21 Kandaal [Kândal] 8 province 07 Kaoh Kong [Kaôh Kong] 9 province 08 Kracheh [Krâchéh] 10 province 09 Mondol Kiri [Môndól Kiri] 11 province 10 Otdar Mean Chey [Otdâr Méanchey] 22 province 27 Pousaat [Pouthisat] 15 province 12 Preah Vihear [Preah Vihéar] 13 province 13 Prey Veaeng [Prey Vêng] 14 province 14 Rotanak Kiri [Rôtânôkiri] 16 province Siem Reab [Siemréab] 17 province 24 Stueng Traeng [Stœng Trêng] 19 province 17 Svaay Rieng [Svay Rieng] 20 province 18 Taakaev [Takêv] 21 province 19 KIRIBATI KI Gilbert Islands G 01 Line Islands L 02 Phoenix Islands P 03 COMOROS KM Anjouan A Grande Comore G Mohéli M KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP Najin Sonbong-si NAJ special city Kaesong-si KAE special city 08 Nampo-si NAM special city 14 Pyongyang-si PYO special city 12 Chagang-do CHA province 01 Hamgyongbuk-do HAB province 16 Hamgyongnam-do HAN province 03 Hwanghaebuk-do HWB province 07 Hwanghaenam-do HWN province 06 Kangwon-do KAN province 09 Pyonganbuk-do PYB province 15 Pyongannam-do PYN province Yanggang-do YAN province 13 KOREA, REPUBLIC OF KR Seoul Teugbyeolsi [Seoul-T'ukpyolshi] 11 capital metropolitan city 11 Busan Gwang'yeogsi [Pusan-Kwangyokshi] 26 metropolitan city 10 Daegu Gwang'yeogsi [Taegu-Kwangyokshi] 27 metropolitan city 15 Daejeon Gwang'yeogsi [Taejon-Kwangyokshi] 30 metropolitan city 19 Gwangju Gwang'yeogsi [Kwangju-Kwangyokshi] 29 metropolitan city 18 Incheon Gwang'yeogsi [Inch'n-Kwangyokshi] 28 metropolitan city 12 Ulsan Gwang'yeogsi [Ulsan-Kwangyokshi] 31 metropolitan city 21 Chungcheongbugdo [Ch'ungch'ongbuk-do] 43 province 05 Chungcheongnamdo [Ch'ungch'ongnam-do] 44 province 17 Gang'weondo [Kang-won-do] 42 province 06 Gyeonggido [Kyonggi-do] 41 province 13 Gyeongsangbugdo [Kyongsangbuk-do] 47 province 14 Gyeongsangnamdo [Kyongsangnam-do] 48 province 20 Jejudo [Cheju-do] 49 province 01 Jeonrabugdo[Chollabuk-do] 45 province Jeonranamdo [Chollanam-do] 46 province KUWAIT KW Al Ahmadi AH 04 Al Farwaniyah FA 06 Al Jahrah JA 05 Al Kuwayt KU Hawalli HA 03 KAZAKHSTAN KZ Almaty ALA city 02 Astana AST city UNITED ARAB EMIRATES AE Abu Dhabi AZ 01 Ajman AJ 02 Al Fujayrah FU 04 Sharjah SH 06 Dubay DU 03 Ra’s al Khaymah RK Umm al Qaywayn UQ 07 AFGHANISTAN AF Badakhshan BDS 01 Badghis BDG 02 Baghlan BGL 03 Balkh BAL 30 Bamian BAM 05 Farah FRA 06 Faryab FYB 07 Ghazni GHA 08 Ghowr GHO 09 Helmand HEL 10 Herat HER 11 Jowzjan JOW 31 Kabul [Kabol] KAB Kandahar KAN 23 Kapisa KAP 14 Konar [Kunar] KNR 15 Kondoz [Kunduz] KDZ 24 Laghman LAG 16 Lowgar LOW 17 Nangrahar [Nangarhar] NAN 18 Nimruz NIM 19 Oruzgan [Uruzgan] ORU 20 Paktia PIA 21 Paktika PKA 29 Parwan PAR 22 Samangan SAM 32 Sar-e Pol SAR 33 Takhar TAK 26 Wardak [Wardag] WAR 27 Zabol [Zabul] ZAB 28 ALBANIA AL Berat BR 1 01 Bulqizë BU 9 29 Delvinë DL 12 30 Devoll DV 6 31 Dibër DI 9 03 Durrës DR 2 Elbasan EL 3 04 Fier FR 4 05 Gramsh GR 3 07 Gjirokastër GJ 5 06 Has HA 7 32 Kavajë KA 11 33 Kolonjë ER 6 08 Korçë KO 6 09 Krujë KR 2 10 Kuçovë KC 1 34 Kukës KU 7 11 Kurbin KB 8 Lezhë LE 8 12 KAZAKHSTAN KZ Almaty oblysy ALM region Aqmola oblysy AKM region Aqtöbe oblysy AKT region Atyrau oblysy ATY region Batys Qazaqstan oblysy ZAP region 07 Mangghystau oblysy MAN region Ongtüstik Qazaqstan oblysy YUZ region Pavlodar oblysy PAV region Qaraghandy oblysy KAR region Qostanay oblysy KUS region Qyzylorda oblysy KZY region Shyghys Qazaqstan oblysy VOS region 15 Soltüstik Qazaqstan oblysy SEV region Zhambyl oblysy ZHA region LAO PEOPLE'S DEMOCRATIC REPUBLIC LA Vientiane VT prefecture Attapu [Attopeu] AT province 01 Bokèo BK province 22 Bolikhamxai [Borikhane] BL province 23 Champasak [Champassak] CH province 02 Houaphan HO province 03 Khammouan KH province 15 Louang Namtha LM province 16 Louangphabang [Louang Prabang] LP province 17 Oudômxai [Oudomsai] OU province 07 Phôngsali [Phong Saly] PH province 18 Salavan [Saravane] SL province 19 Savannakhét SV province 20 Vientiane VI province Xaignabouli [Sayaboury] XA province 13 Xaisômboun XN special zone Xékong [Sékong] XE province 26 Xiangkhoang [Xieng Khouang] XI province 14 MOLDOVA, REPUPLIC OF MD Taraclia TA district LEBANON LB Beiroût BA 04 El Béqaa BI 01 Jabal Loubnâne JL 05 Loubnâne ech Chemâli AS Loubnâne ej Jnoûbi JA Nabatîyé NA SRI LANKA LK Ampara 52 5 Anuradhapura 71 7 Badulla 81 8 Batticaloa 51 5 Colombo 11 1 Galle 31 3 Gampaha 12 1 Hambantota 33 3 Jaffna 41 4 Kalutara 13 1 Kandy 21 2 Kegalla 92 9 Kilinochchi 42 4 Kurunegala 61 6 Mannar 43 4 Matale 22 2 Matara 32 3 Monaragala 82 8 Mullaittivu 45 4 Nuwara Eliya 23 2 Polonnaruwa 72 7 Puttalam 62 6 Ratnapura 91 9 Trincomalee 53 5 Vavuniya 44 4 LIBERIA LR Bomi BM 15 Bong BG 01 Grand Bassa GB 11 Grand Cape Mount CM 12 Grand Gedeh GG 02 Grand Kru GK 16 Lofa LO 05 Margibi MG 17 Maryland MY 13 Montserrado MO 14 Nimba NI 09 Rivercess RI 18 Sinoe SI 10 LESOTHO LS Berea D 10 Butha-Buthe B 11 Leribe C 12 Mafeteng E 13 Maseru A 14 Mohale's Hoek F 15 Mokhotlong J 16 Qacha's Nek H Quthing G 18 Thaba-Tseka K 19 LITHUANIA LT Alytaus Apskritis AL Kauno Apskritis KU Klaipedos Apskritis KL Marijampoles Apskritis MR Panevežio Apskritis PN Šiauliu Apskritis SA Taurages Apskritis TA Telšiu Apskritis TE Utenos Apskritis UT Vilniaus Apskritis VL LUXEMBOURG LU Diekirch D Grevenmacher G Luxembourg L LATVIA LV Aizkraukles Aprinkis AI district Aluksnes Aprinkis AL district Balvu Aprinkis BL district Bauskas Aprinkis BU district Cesu Aprinkis CE district Daugavpils Aprinkis DA district Dobeles Aprinkis DO district Gulbenes Aprinkis GU district Jelgavas Aprinkis JL district Jekabpils Aprinkis JK district Kraslavas Aprinkis KR district Kuldigas Aprinkis KU district Limbažu Aprinkis LM district Liepajas Aprinkis LE district Ludzas Aprinkis LU district Madonas Aprinkis MA district Ogres Aprinkis OG district Preilu Aprinkis PR district Rezeknes Aprinkis RE district Rigas Aprinkis RI district 25 Saldus Aprinkis SA district Talsu Aprinkis TA district Tukuma Aprinkis TU district Valkas Aprinkis VK district Valmieras Aprinkis VM district Ventspils Aprinkis VE district Daugavpils DGV city 06 Jelgava JEL city 11 Jurmala JUR city 13 Liepaja LPX city 16 Rezekne REZ city 23 Riga RIX city Ventspils VEN city 32 LIBYAN ARAB JAMAHIRIYA LY Al Butnan BU Al Jabal al Akhdar JA 49 Al Jufrah JU 05 Al Wahah WA Az Zawiyah ZA 53 Banghazi BA 54 Misratah MI 58 Tarabulus TB MOROCCO MA Agadir AGD 13 01 Aït Baha BAH 13 Aït Melloul MEL 13 Al Haouz HAO 11 Al Hoceïma HOC 03 Assa-Zag ASZ 14 43 Azilal AZI 12 03 Beni Mellal BEM 12 05 Ben Slimane BES 09 04 Berkane BER 04 Boujdour (EH) BOD 15 Boulemane BOM 05 06 Casablanca [Dar el Beïda] CAS 08 07 Chefchaouene CHE 01 Chichaoua CHI 11 08 El Hajeb HAJ 06 El Jadida JDI 10 09 Errachidia ERR 06 11 Essaouira ESI 11 12 Es Smara (EH) ESM 14 44 Fès FES 05 13 ALBANIA AL Librazhd LB 3 13 Lushnjë LU 4 14 Malësi e Madhe MM 10 Mallakastër MK 4 37 Mat MT 9 15 Mirditë MR 8 16 Peqin PQ 3 38 Përmet PR 5 17 Pogradec PG 6 18 Pukë PU 10 19 Sarandë SR 12 20 Skrapar SK 1 22 Shkodër SH 10 21 Tepelenë TE 5 23 Tiranë TR 11 39 Tropojë TP 7 26 Vlorë VL 12 27 ARMENIA AM Erevan ER city 11 Aragacotn AG region Ararat AR region 02 Armavir AV region 03 Gegark'unik' GR region 04 Kotayk' KT region 05 Lory LO region Širak SH region Syunik' SU region 08 Tavuš TV region Vayoc Jor VD region SENEGAL SN Matam MT ANGOLA AO Bengo BGO 19 Benguela BGU 01 Bié BIE 02 Cabinda CAB 03 Cuando-Cubango CCU 04 Cuanza Norte CNO 05 Cuanza Sul CUS 06 Cunene CNN 07 Huambo HUA 08 Huíla HUI 09 Luanda LUA 10 Lunda Norte LNO 17 Lunda Sul LSU 18 Malange MAL 12 Moxico MOX 14 Namibe NAM 13 Uíge UIG 15 Zaire ZAI 16 ARGENTINA AR Capital federal C federal district Buenos Aires B province 01 Catamarca K province 02 Córdoba X province 05 Corrientes W province 06 Chaco H province 03 Chubut U province 04 Entre Ríos E province 08 Formosa P province 09 Jujuy Y province 10 La Pampa L province 11 La Rioja F province Mendoza M province 13 Misiones N province 14 Neuquén Q province 15 Río Negro R province 16 Salta A province 17 San Juan J province 18 San Luis D province 19 Santa Cruz Z province 20 Santa Fe S province 21 Santiago del Estero G province 22 Tierra del Fuego V province 23 Tucumán T province 24 AUSTRIA AT Burgenland 1 01 Kärnten 2 02 Niederösterreich 3 03 Oberösterreich 4 04 Salzburg 5 05 Steiermark 6 06 Tirol 7 07 Vorarlberg 8 08 Wien 9 09 AUSTRALIA AU New South Wales NSW state 02 Queensland QLD state 04 South Australia SA state 05 Tasmania TAS state 06 Victoria VIC state 07 Western Australia WA state 08 Australian Capital Territory ACT territory 01 Northern Territory NT territory 03 AZERBAIJAN AZ Äli Bayramli AB city 07 Baki BA city 09 Gäncä GA city 20 Länkäran LA city 30 Mingäçevir MI city 33 Naftalan NA city 34 Säki SA city 48 Sumqayit SM city 54 Susa SS city 56 Xankändi XA city 61 Yevlax YE city 68 Abseron ABS rayon 01 Agcabädi AGC rayon 02 Agdam AGM rayon 03 Agdas AGS rayon 04 Agstafa AGA rayon 05 Agsu AGU rayon 06 Astara AST rayon 08 Babäk BAB NX rayon Balakän BAL rayon 10 Bärdä BAR rayon 11 Beyläqan BEY rayon 12 Biläsuvar BIL rayon 13 Cäbrayil CAB rayon 14 Cälilabab CAL rayon 15 Culfa CUL NX rayon Daskäsän DAS rayon 16 Däväçi DAV rayon 17 Füzuli FUZ rayon 18 Gädäbäy GAD rayon 19 Goranboy GOR rayon 21 Göyçay GOY rayon 22 Haciqabul HAC rayon 23 Imisli IMI rayon 24 Ismayilli ISM rayon 25 Kälbäcär KAL rayon 26 Kürdämir KUR rayon 27 Laçin LAC rayon 28 Länkäran LAN rayon 30 Lerik LER rayon 31 Masalli MAS rayon 32 Neftçala NEF rayon 36 Oguz OGU rayon 37 Ordubad ORD NX rayon Qäbälä QAB rayon 38 Qax QAX rayon 39 Qazax QAZ rayon 40 Qobustan QOB rayon 41 Quba QBA rayon 42 Qubadli QBI rayon 43 Qusar QUS rayon 44 Saatli SAT rayon 45 Sabirabad SAB rayon 46 Sädäräk SAD NX rayon Sahbuz SAH NX rayon Säki SAK rayon 48 Salyan SAL rayon 49 Samaxi SMI rayon 50 Sämkir SKR rayon 51 Samux SMX rayon 52 Särur SAR NX rayon Siyäzän SIY rayon 53 Susa SUS rayon 56 Tärtär TAR rayon 57 Tovuz TOV rayon 58 Ucar UCA rayon 59 Xaçmaz XAC rayon 60 Xanlar XAN rayon 62 Xizi XIZ rayon 63 Xocali XCI rayon 64 Xocavänd XVD rayon 65 Yardimli YAR rayon 66 Yevlax YEV rayon 68 Zängilan ZAN rayon 69 Zaqatala ZAQ rayon 70 Zärdab ZAR rayon 71 BOSNIA AND HERZEGOVINA BA Federacija Bosna i Hercegovina BIH Republika Srpska SRP SS BANGLADESH BD Bagerhat zila 05 4 Bandarban zila 01 2 Barguna zila 02 1 Barisal zila 06 1 Bhola zila 07 1 Bogra zila 03 5 Brahmanbaria zila 04 2 Chandpur zila 09 2 Chittagong zila 10 2 Chuadanga zila 12 4 Comilla zila 08 2 Cox's Bazar zila 11 2 Dhaka zila 13 3 81 Dinajpur zila 14 5 Faridpur zila 15 3 Feni zila 16 2 Gaibandha zila 19 5 Gazipur zila 18 3 Gopalganj zila 17 3 Habiganj zila 20 6 Jaipurhat zila 24 5 Jamalpur zila 21 3 Jessore zila 22 4 Jhalakati zila 25 1 Jhenaidah zila 23 4 Khagrachari zila 29 2 Khulna zila 27 4 Kishoreganj zila 26 3 Kurigram zila 28 5 Kushtia zila 30 4 Lakshmipur zila 31 2 Lalmonirhat zila 32 5 Madaripur zila 36 3 Magura zila 37 4 Manikganj zila 33 3 Meherpur zila 39 4 Moulvibazar zila 38 6 Munshiganj zila 35 3 Mymensingh zila 34 3 Naogaon zila 48 5 Narail zila 43 4 Narayanganj zila 40 3 Narsingdi zila 42 3 Natore zila 44 5 Nawabganj zila 45 5 Netrakona zila 41 3 Nilphamari zila 46 5 Noakhali zila 47 2 Pabna zila 49 5 Panchagarh zila 52 5 Patuakhali zila 51 1 Pirojpur zila 50 1 Rajbari zila 53 3 Rajshahi zila 54 5 Rangamati zila 56 2 Rangpur zila 55 5 Satkhira zila 58 4 Shariatpur zila 62 3 Sherpur zila 57 3 Sirajganj zila 59 5 Sunamganj zila 61 6 Sylhet zila 60 6 Tangail zila 63 3 Thakurgaon zila 64 5 BELGIUM BE Antwerp VAN VLG 01 Wallon Brabant WBR WAL 10 Hainaut WHT WAL 03 Liège WLG WAL 04 Limburg VLI VLG 05 Luxembourg WLX WAL 06 Namur WNA WAL 07 East Flanders VOV VLG 08 Vlaams Brabant VBR VLG 12 West Flanders VWV VLG 09 BURKINA FASO BF Balé BAL Bam BAM 15 Banwa BAN Bazèga BAZ 16 Bougouriba BGR 17 Boulgou BLG 18 Boulkiemdé BLK 19 Comoé COM Ganzourgou GAN 20 Gnagna GNA 21 Gourma GOU 22 Houet HOU Ioba IOB Kadiogo KAD 24 Kénédougou KEN 25 Komondjari KMD Kompienga KMP Kossi KOS 27 Koulpélogo KOP Kouritenga KOT 28 Kourwéogo KOW Léraba LER Loroum LOR Mouhoun MOU 29 Nahouri NAO 31 Namentenga NAM 30 Nayala NAY Noumbiel NOU Oubritenga OUB 32 Oudalan OUD 33 Passoré PAS 34 Poni PON 35 Sanguié SNG 36 Sanmatenga SMT 37 Séno SEN 38 Sissili SIS 39 Soum SOM 40 Sourou SOR 41 Tapoa TAP 42 Tui TUI Yagha YAG Yatenga YAT 43 Ziro ZIR Zondoma ZON Zoundwéogo ZOU 44 BULGARIA BG Blagoevgrad 01 42 Burgas 02 39 Dobric 08 58 MOROCCO MA Figuig FIG 04 14 Guelmim GUE 14 42 Ifrane IFR 06 34 Jerada JRA 04 Kelaat Sraghna KES 11 Kénitra KEN 02 15 Khemisset KHE 07 16 Khenifra KHN 06 17 Khouribga KHO 09 18 Laayoune (EH) LAA 15 35 Larache LAR 01 Marrakech MAR 11 19 Meknès MEK 06 20 Nador NAD 04 21 Ouarzazate OUA 13 22 Oued ed Dahab (EH) OUD 16 Oujda OUJ 04 23 Rabat-Salé RBA 07 24 Safi SAF 10 25 Sefrou SEF 05 Settat SET 09 26 Sidi Kacem SIK 02 38 Tanger TNG 01 27 Tan-Tan TNT 14 36 Taounate TAO 03 37 Taroudannt TAR 13 39 Tata TAT 14 29 Taza TAZ 03 30 Tétouan TET 01 40 Tiznit TIZ 13 32 MOLDOVA, REPUPLIC OF MD Gagauzia, Unitate Teritoriala Autonoma (UTAG) GA autonomous territory Chisinau CU city Stînga Nistrului, unitatea teritoriala din SN territorial unit Balti BA district Cahul CA district Chisinau CH district Edinet ED district Lapusna LA district Orhei OR district Soroca SO district Tighina [Bender] TI district Ungheni UN district MADAGASCAR MG Antananarivo T 05 Antsiranana D 01 Fianarantsoa F 02 Mahajanga M 03 Toamasina A 04 Toliara U 06 MARSHALL ISLANDS MH Ailinglapalap ALL L Ailuk ALK T Arno ARN T Aur AUR T Ebon EBO L Eniwetok ENI L Jaluit JAL L Kili KIL L Kwajalein KWA L Lae LAE L Lib LIB L Likiep LIK T Majuro MAJ T Maloelap MAL T Mejit MEJ T Mili MIL T Namorik NMK L Namu NMU L Rongelap RON L Ujae UJA L Ujelang UJL L Utirik UTI T Wotho WTH L Wotje WTJ T BULGARIA BG Gabrovo 07 Haskovo 26 Jambol 28 Kardžali 09 43 Kjustendil 10 Lovec 11 Montana 12 Pazardžik 13 Pernik 14 Pleven 15 Plovdiv 16 Razgrad 17 Ruse 18 Silistra 19 Sliven 20 Smoljan 21 Sofija 23 Sofija-Grad 22 Stara Zagora 24 Šumen 27 Targovište 25 Varna 03 61 Veliko Tarnovo 04 Vidin 05 47 Vraca 06 51 BAHRAIN BH Al Hadd 01 01 Al Manamah 03 02 Al Mintaqah al Gharbiyah 10 08 Al Mintaqah al Wustá 07 11 Al Mintaqah ash Shamaliyah 05 10 Al Muharraq 02 03 Ar Rifa 09 Jidd Hafs 04 05 Madinat Hamad 12 Madinat `Isá 08 Mintaqat Juzur Hawar 11 09 Sitrah 06 06 BURUNDI BI Bubanza BB Bujumbura BJ Bururi BR Cankuzo CA Cibitoke CI Gitega GI Karuzi KR Kayanza KY Kirundo KI Makamba MA Muramvya MU Muyinga MY Ngozi NG Rutana RT Ruyigi RY BENIN BJ Alibori AL Atakora AK 01 Atlantique AQ 02 Borgou BO 03 Collines CO Donga DO Kouffo KO Littoral LI Mono MO 04 Ouémé OU 05 Plateau PL Zou ZO 06 BRUNEI DARUSSALAM BN Belait BE 01 Brunei-Muara BM Temburong TE 03 Tutong TU 04 BOLIVIA BO Cochabamba C 02 Chuquisaca H 01 El Beni B 03 La Paz L 04 Oruro O 05 Pando N 06 Potosí P 07 Santa Cruz S 08 Tarija T 09 BRAZIL BR Distrito Federal DF federal district 07 Acre AC state 01 Alagoas AL state 02 Amapá AP state 03 Amazonas AM state 04 Bahia BA state Ceará CE state 06 Espírito Santo ES state 08 Goiás GO state 10 Maranhão MA state 13 Mato Grosso MT state 14 Mato Grosso do Sul MS state 11 Minas Gerais MG state 15 Pará PA state Paraíba PB state 17 Paraná PR state 18 Pernambuco PE state 19 Piauí PI state 20 Rio de Janeiro RJ state 21 Rio Grande do Norte RN state 22 Rio Grande do Sul RS state 23 Rondônia RO state 24 Roraima RR state 25 Santa Catarina SC state 26 São Paulo SP state 27 Sergipe SE state 28 Tocantins TO state 31 BAHAMAS BS Acklins and Crooked Islands AC 24 Bimini BI 05 Cat Island CI 06 Exuma EX 10 Freeport FP 25 Fresh Creek FC 26 Governor's Harbour GH 27 Green Turtle Cay GT 28 Harbour Island HI 22 High Rock HR 29 Inagua IN 13 Kemps Bay KB 30 Long Island LI 15 Marsh Harbour MH 31 Mayaguana MG 16 New Providence NP 23 Nicholls Town and Berry Islands NB Ragged Island RI 18 Rock Sound RS 33 Sandy Point SP 34 San Salvador and Rum Cay SR 35 BHUTAN BT Bumthang 33 05 Chhukha 12 06 Dagana 22 08 Gasa GA Ha 13 10 Lhuentse 44 11 Monggar 42 12 Paro 11 13 Pemagatshel 43 14 Punakha 23 15 Samdrup Jongkha 45 Samtse 14 16 Sarpang 31 Thimphu 15 20 Trashigang 41 Trashi Yangtse TY Trongsa 32 21 Tsirang 21 Wangdue Phodrang 24 Zhemgang 34 BOTSWANA BW Central CE Ghanzi GH 03 Kgalagadi KG 04 Kgatleng KL 05 Kweneng KW 06 North-West NW North-East NE South-East SE 09 Southern SO BELARUS BY Brest BR Homyel' HO 02 Hrodna HR Mahilyow MA 06 Minsk MI 05 Vitsyebsk VI BELIZE BZ Belize BZ 01 Cayo CY 02 Corozal CZL 03 Orange Walk OW 04 Stann Creek SC 05 Toledo TOL 06 CANADA CA Alberta AB province 01 British Columbia BC province 02 Manitoba MB province 03 New Brunswick NB province 04 Newfoundland and Labrador NL province Nova Scotia NS province 07 Ontario ON province 08 Prince Edward Island PE province 09 Quebec QC province 10 Saskatchewan SK province 11 Northwest Territories NT territory 13 Nunavut NU territory 14 Yukon Territory YT territory 12 CONGO (KINSHASA) CD Kinshasa KN city Bandundu BN province Bas-Congo BC province Équateur EQ province Kasai-Occidental KW province Kasai-Oriental KE province Katanga KA province Maniema MA province Nord-Kivu NK province Orientale OR province Sud-Kivu SK province CENTRAL AFRICAN REPUBLIC CF Bangui BGF capital 18 Bamingui-Bangoran BB prefecture 01 Basse-Kotto BK prefecture 02 Haute-Kotto HK prefecture 03 Haut-Mbomou HM prefecture 05 Kémo KG prefecture Lobaye LB prefecture 07 Mambéré-Kadéï HS prefecture Mbomou MB prefecture 08 Nana-Grébizi KB prefecture Nana-Mambéré NM prefecture 09 Ombella-Mpoko MP prefecture 17 Ouaka UK prefecture 11 Ouham AC prefecture 12 Ouham-Pendé OP prefecture 13 Sangha-Mbaéré SE prefecture Vakaga VK prefecture CONGO (BRAZZAVILLE) CG Brazzaville BZV capital 12 Bouenza 11 region 01 Cuvette 8 region 03 Cuvette-Ouest 15 region Kouilou 5 region 04 Lékoumou 2 region 05 Likouala 7 region 06 Niari 9 region 07 Plateaux 14 region 08 Pool 12 region 11 Sangha 13 region 10 SWITZERLAND CH Aargau AG 01 Appenzell Ausserrhoden AR Appenzell Innerrhoden AI Basel-Landschaft BL 03 Basel-Stadt BS 04 Bern BE 05 Fribourg FR 06 Genève GE 07 Glarus GL 08 Graubünden GR 09 Jura JU 26 Luzern LU 11 Neuchâtel NE 12 Nidwalden NW 13 Obwalden OW 14 Sankt Gallen SG 15 Schaffhausen SH 16 Schwyz SZ 17 Solothurn SO 18 Thurgau TG 19 Ticino TI 20 Uri UR 21 Valais VS 22 Vaud VD 23 Zug ZG 24 Zürich ZH 25 CÔTE D'IVOIRE CI Dix-Huit Montagnes 06 47 Agnébi ) 16 Bas-Sassandra 09 Denguélé 10 33 Haut-Sassandra 02 54 Lacs 07 Lagunes 01 Marahoué 12 Moyen-Comoé 05 Nzi-Comoé 11 Savanes 03 Sud-Bandama 15 Sud-Comoé 13 Vallée du Bandama 04 Worodougou 14 Zanzan 08 CHILE CL Aisén del General Carlos Ibáñez del Campo AI 02 Antofagasta AN 03 Araucanía AR 04 Atacama AT 05 Bío-Bío BI 06 Coquimbo CO 07 Libertador General Bernardo O'Higgins LI 08 Los Lagos LL 09 Magallanes MA Maule ML 11 Región Metropolitana de Santiago RM Tarapacá TA 13 Valparaíso VS 01 CAMEROON CM Adamaoua AD 10 Centre CE 11 East ES Far North EN Littoral LT 05 North NO North-West NW 04 South SU South-West SW West OU CHINA CN Beijing 11 municipality 22 Chongqing 50 municipality 33 Shanghai 31 municipality 23 Tianjin 12 municipality 28 Anhui 34 province 01 Fujian 35 province 07 Gansu 62 province 15 Guangdong 44 province 30 Guizhou 52 province 18 Hainan 46 province 31 Hebei 13 province 10 Heilongjiang 23 province 08 Henan 41 province 09 Hubei 42 province 12 Hunan 43 province 11 Jiangsu 32 province 04 Jiangxi 36 province 03 Jilin 22 province 05 Liaoning 21 province 19 Qinghai 63 province 06 Shaanxi 61 province 26 Shandong 37 province 25 Shanxi 14 province 24 Sichuan 51 province 32 Taiwan 71 province Yunnan 53 province 29 Zhejiang 33 province 02 Guangxi 45 autonomous region 16 Neimenggu 15 autonomous region 20 Ningxia 64 autonomous region 21 Xinjiang 65 autonomous region 13 Xizang 54 autonomous region 14 Xianggang 91 special administrative region Aomen 92 special administrative region COLOMBIA CO Distrito Capital de Santa Fe de Bogotá DC capital district Amazonas AMA department 01 Antioquia ANT department 02 Arauca ARA department 03 Atlántico ATL department 04 Bolívar BOL department 35 Boyacá BOY department 36 Caldas CAL department 37 Caquetá CAQ department 08 Casanare CAS department 32 Cauca CAU department 09 Cesar CES department 10 Córdoba COR department 12 Cundinamarca CUN department 33 Chocó CHO department 11 Guainía GUA department 15 Guaviare GUV department 14 Huila HUI department 16 La Guajira LAG department 17 Magdalena MAG department 38 Meta MET department 19 Nariño NAR department 20 Norte de Santander NSA department 21 Putumayo PUT department 22 Quindío QUI department 23 Risaralda RIS department 24 San Andrés, Providencia y Santa Catalina SAP department Santander SAN department 26 Sucre SUC department 27 Tolima TOL department 28 Valle del Cauca VAC department 29 Vaupés VAU department 30 Vichada VID department 31 COSTA RICA CR Alajuela A 01 Cartago C 02 Guanacaste G 03 Heredia H 04 Limón L 06 Puntarenas P 07 San José SJ 08 CUBA CU Camagüey 09 province 05 Ciego de Ávila 08 province 07 Cienfuegos 06 province 08 Ciudad de La Habana 03 province 02 Granma 12 province 09 Guantánamo 14 province 10 Holguín 11 province 12 La Habana 02 province 11 Las Tunas 10 province 13 Matanzas 04 province 03 Pinar del Río 01 province 01 Sancti Spíritus 07 province 14 Santiago de Cuba 13 province 15 Villa Clara 05 province 16 Isla de la Juventud 99 special municipality 04 CAPE VERDE CV Boa Vista BV B 01 Brava BR S 02 Calheta de São Miguel CS S Maio MA S 04 Mosteiros MO S Paúl PA B 05 Porto Novo PN B Praia PR S 06 Ribeira Grande RG B 07 Sal SL B 08 Santa Catarina CA S 09 Santa Cruz CR S São Domingos SD S São Filipe SF S São Nicolau SN B 10 São Vicente SV B 11 Tarrafal TA S 12 CYPRUS CY Ammochostos 04 Keryneia 06 02 Larnaka 03 03 Lefkosia 01 Lemesos 02 05 Pafos 05 CZECH REPUBLIC CZ Jihoceský kraj JC Jihomoravský kraj JM Karlovarský kraj KA Královéhradecký kraj KR Liberecký kraj LI Moravskoslezský kraj MO Olomoucký kraj OL Pardubický kraj PA Plzenský kraj PL Praha, hlavní mesto PR Stredoceský kraj ST Ústecký kraj US Vysocina VY Zlínský kraj ZL GERMANY DE Baden-Württemberg BW 01 Bayern BY 02 Berlin BE Brandenburg BB 11 Bremen HB 03 Hamburg HH 04 Hessen HE 05 Mecklenburg-Vorpommern MV 12 Niedersachsen NI 06 Nordrhein-Westfalen NW 07 Rheinland-Pfalz RP 08 Saarland SL 09 Sachsen SN 13 Sachsen-Anhalt ST 14 Schleswig-Holstein SH 10 Thüringen TH 15 DJIBOUTI DJ Ali Sabieh AS 01 Dikhil DI 02 Djibouti DJ 03 Obock OB 04 Tadjoura TA 05 DENMARK DK Frederiksberg 147 city København 101 city Bornholm 040 county 02 Frederiksborg 020 county 03 Fyn 042 county København 015 county 06 Nordjylland 080 county 07 Ribe 055 county 08 Ringkøbing 065 county 09 Roskilde 025 county 10 Storstrøm 035 county 12 Sønderjylland 050 county 11 Vejle 060 county 13 Vestsjælland 030 county 14 Viborg 076 county 15 Århus 070 county 01 DOMINICAN REPUBLIC DO Distrito Nacional 01 district Azua 02 province 01 Bahoruco 03 province 02 Barahona 04 province 03 Dajabón 05 province 04 Duarte 06 province 06 El Seybo [El Seibo] 08 province Espaillat 09 province 08 Hato Mayor 30 province 29 Independencia 10 province 09 La Altagracia 11 province 10 La Estrelleta [Elías Piña] 07 province La Romana 12 province 12 La Vega 13 province 30 María Trinidad Sánchez 14 province 14 Monseñor Nouel 28 province 31 Monte Cristi 15 province 15 Monte Plata 29 province 32 Pedernales 16 province 16 Peravia 17 province 17 Puerto Plata 18 province 18 Salcedo 19 province 19 Samaná 20 province 20 San Cristóbal 21 province 33 San Juan 22 province 23 San Pedro de Macorís 23 province 24 Sánchez Ramírez 24 province 21 Santiago 25 province 25 Santiago Rodríguez 26 province 26 Valverde 27 province 27 ALGERIA DZ Adrar 01 34 Aïn Defla 44 35 Aïn Témouchent 46 36 Alger 16 01 Annaba 23 37 Batna 05 03 Béchar 08 38 Béjaïa 06 18 Biskra 07 19 Blida 09 20 Bordj Bou Arréridj 34 39 Bouira 10 21 Boumerdès 35 40 Chlef 02 41 Constantine 25 04 Djelfa 17 22 El Bayadh 32 42 El Oued 39 43 El Tarf 36 44 Ghardaïa 47 45 Guelma 24 23 Illizi 33 46 Jijel 18 24 Khenchela 40 47 Laghouat 03 25 Mascara 29 26 Médéa 26 06 Mila 43 48 Mostaganem 27 07 Msila 28 27 Naama 45 49 Oran 31 09 Ouargla 30 50 Oum el Bouaghi 04 29 Relizane 48 51 Saïda 20 10 Sétif 19 12 Sidi Bel Abbès 22 30 Skikda 21 31 Souk Ahras 41 52 Tamanghasset 11 53 Tébessa 12 33 Tiaret 14 13 Tindouf 37 54 Tipaza 42 55 Tissemsilt 38 56 Tizi Ouzou 15 14 Tlemcen 13 15 ECUADOR EC Azuay A 02 Bolívar B 03 Cañar F 04 Carchi C 05 Cotopaxi X 07 Chimborazo H 06 El Oro O 08 Esmeraldas E 09 Galápagos W 01 Guayas G 10 Imbabura I 11 Loja L 12 Los Ríos R 13 Manabí M 14 Morona-Santiago S 15 Napo N 23 Pastaza Y 17 Pichincha P 18 Sucumbíos U 22 Tungurahua T 19 Zamora-Chinchipe Z 20 ESTONIA EE Harjumaa 37 01 Hiiumaa 39 02 Ida-Virumaa 44 Jõgevamaa 49 05 Järvamaa 51 04 Läänemaa 57 Lääne-Virumaa 59 08 Põlvamaa 65 12 Pärnumaa 67 11 Raplamaa 70 13 Saaremaa 74 14 Tartumaa 78 Valgamaa 82 19 Viljandimaa 84 20 Võrumaa 86 21 EGYPT EG Ad Daqahliyah DK 01 Al Bahr al Ahmar BA 02 Al Buhayrah BH 03 Al Fayyum FYM 04 Al Gharbiyah GH 05 Al Iskandariyah ALX Al Ismahiliyah IS Al Jizah GZ 08 Al Minufiyah MNF 09 Al Minya MN 10 Al Qahirah C 11 Al Qalyubiyah KB Al Wadi al Jadid WAD 13 Ash Sharqiyah SHR 14 As Suways SUZ 15 Aswan ASN 16 Asyut AST 17 Bani Suwayf BNS 18 Bur Sahid PTS 19 Dumyat DT 20 Janub Sina' JS 26 Kafr ash Shaykh KFS 21 Matruh MT 22 Qina KN 23 Shamal Sina' SIN 27 Suhaj SHG 24 ERITREA ER Anseba AN Debub DU Debubawi Keyih Bahri DK Gash-Barka GB Maakel [Maekel] MA Semenawi Keyih Bahri SK SPAIN ES A Coruña C GA province Álava VI PV province Albacete AB CM province Alicante A VC province Almería AL AN province Asturias O O province 34 Ávila AV CL province Badajoz BA EX province Baleares PM IB province 07 Barcelona B CT province Burgos BU CL province Cáceres CC EX province Cádiz CA AN province Cantabria S S province 39 Castellón CS VC province Ciudad Real CR CM province Córdoba CO AN province Cuenca CU CM province Girona GI CT province Granada GR AN province Guadalajara GU CM province Guipúzcoa SS PV province Huelva H AN province Huesca HU AR province Jaén J AN province La Rioja LO LO province 27 Las Palmas GC CN province León LE CL province Lleida L CT province Lugo LU GA province Madrid M M province 29 Málaga MA AN province Murcia MU MU province 31 Navarra NA NA province 32 Ourense OR GA province Palencia P CL province Pontevedra PO GA province Salamanca SA CL province Santa Cruz de Tenerife TF CN province Segovia SG CL province Sevilla SE AN province Soria SO CL province Tarragona T CT province Teruel TE AR province Toledo TO CM province Valencia V VC province 60 Valladolid VA CL province Vizcaya BI PV province Zamora ZA CL province Zaragoza Z AR province Ceuta CE autonomous city in North Africa Melilla ML autonomous city in North Africa ETHIOPIA ET Adis Abeba AA administration Afar AF state Amara AM state Binshangul Gumuz BE state Gambela Hizboch GA state 38 Hareri Hizb HA state Oromiya OR state Sumale SO state YeDebub Biheroch Bihereseboch na Hizboch SN state Tigray TI state 37 FINLAND FI Ahvenanmaan lääni AL 01 Etelä-Suomen lääni ES 13 Itä-Suomen lääni IS 14 Lapin lääni LL 08 Länsi-Suomen lääni LS 15 Oulun lääni OL FIJI FJ Central C division 01 Eastern E division 02 Northern N division 03 Western W division 05 Rotuma R dependency 04 MICRONESIA (FEDERATED STATES OF) FM Chuuk TRK 03 Kosrae KSA 01 Pohnpei PNI 02 Yap YAP 04 FRANCE FR Ain 01 V metropolitan department Aisne 02 S metropolitan department Allier 03 C metropolitan department Alpes-de-Haute-Provence 04 U metropolitan department Alpes-Maritimes 06 U metropolitan department Ardèche 07 V metropolitan department Ardennes 08 G metropolitan department Ariège 09 N metropolitan department Aube 10 G metropolitan department Aude 11 K metropolitan department Aveyron 12 N metropolitan department 98 Bas-Rhin 67 A metropolitan department Bouches-du-Rhône 13 U metropolitan department Calvados 14 P metropolitan department Cantal 15 C metropolitan department Charente 16 T metropolitan department Charente-Maritime 17 T metropolitan department Cher 18 F metropolitan department Corrèze 19 L metropolitan department Corse-du-Sud 2A H metropolitan department Côte-d'Or 21 D metropolitan department Côtes-d'Armor 22 E metropolitan department Creuse 23 L metropolitan department Deux-Sèvres 79 T metropolitan department Dordogne 24 B metropolitan department Doubs 25 I metropolitan department Drôme 26 V metropolitan department Essonne 91 J metropolitan department Eure 27 Q metropolitan department Eure-et-Loir 28 F metropolitan department Finistère 29 E metropolitan department Gard 30 K metropolitan department Gers 32 N metropolitan department Gironde 33 B metropolitan department Haute-Corse 2B H metropolitan department Haute-Garonne 31 N metropolitan department Haute-Loire 43 C metropolitan department Haute-Marne 52 G metropolitan department Hautes-Alpes 05 U metropolitan department Haute-Saône 70 I metropolitan department Haute-Savoie 74 V metropolitan department Hautes-Pyrénées 65 N metropolitan department Haute-Vienne 87 L metropolitan department Haut-Rhin 68 A metropolitan department Hauts-de-Seine 92 J metropolitan department Hérault 34 K metropolitan department Ille-et-Vilaine 35 E metropolitan department Indre 36 F metropolitan department Indre-et-Loire 37 F metropolitan department Isère 38 V metropolitan department Jura 39 I metropolitan department Landes 40 B metropolitan department Loir-et-Cher 41 F metropolitan department Loire 42 V metropolitan department Loire-Atlantique 44 R metropolitan department Loiret 45 F metropolitan department B2 Lot 46 N metropolitan department Lot-et-Garonne 47 B metropolitan department Lozère 48 K metropolitan department Maine-et-Loire 49 R metropolitan department Manche 50 P metropolitan department Marne 51 G metropolitan department Mayenne 53 R metropolitan department Meurthe-et-Moselle 54 M metropolitan department Meuse 55 M metropolitan department Morbihan 56 E metropolitan department Moselle 57 M metropolitan department Nièvre 58 D metropolitan department Nord 59 O metropolitan department Oise 60 S metropolitan department Orne 61 P metropolitan department Paris 75 J metropolitan department Pas-de-Calais 62 O metropolitan department Puy-de-Dôme 63 C metropolitan department Pyrénées-Atlantiques 64 B metropolitan department Pyrénées-Orientales 66 K metropolitan department Rhône 69 V metropolitan department Saône-et-Loire 71 D metropolitan department Sarthe 72 R metropolitan department Savoie 73 V metropolitan department Seine-et-Marne 77 J metropolitan department Seine-Maritime 76 Q metropolitan department Seine-Saint-Denis 93 J metropolitan department Somme 80 S metropolitan department Tarn 81 N metropolitan department Tarn-et-Garonne 82 N metropolitan department Territoire de Belfort 90 I metropolitan department Val-de-Marne 94 J metropolitan department Val-d'Oise 95 J metropolitan department Var 83 U metropolitan department Vaucluse 84 U metropolitan department Vendée 85 R metropolitan department Vienne 86 T metropolitan department Vosges 88 M metropolitan department Yonne 89 D metropolitan department Yvelines 78 J metropolitan department Mayotte (see also separate entry under YT) YT territorial collectivity Saint-Pierre-et-Miquelon (see also separate entry under PM) PM territorial collectivity Nouvelle-Calédonie (see also separate entry under NC) NC overseas territory Polynésie française (see also separate entry under PF) PF overseas territory Terres Australes Françaises (see also separate entry under TF) TF overseas territory Wallis et Futuna (see also separate entry under WF) WF overseas territory GABON GA Estuaire 1 01 Haut-Ogooué 2 02 Moyen-Ogooué 3 03 Ngounié 4 04 Nyanga 5 05 Ogooué-Ivindo 6 06 Ogooué-Lolo 7 07 Ogooué-Maritime 8 08 Woleu-Ntem 9 09 UNITED KINGDOM GB Aberdeen City ABE T5 SCT Aberdeenshire ABD T6 SCT Angus ANS T7 SCT Antrim ANT Q6 NIR Ards ARD Q7 NIR Argyll and Bute AGB T8 SCT Armagh ARM Q8 NIR Ballymena BLA Q9 NIR Ballymoney BLY R1 NIR Banbridge BNB R2 NIR Barking and Dagenham BDG ENG Barnet BNE ENG Barnsley BNS A3 ENG Bath and North East Somerset BAS A4 ENG Bedfordshire BDF A5 ENG Belfast BFS R3 NIR Bexley BEX ENG Birmingham BIR A7 ENG Blackburn with Darwen BBD A8 ENG Blackpool BPL A9 ENG Blaenau Gwent BGW X2 WLS Bolton BOL B1 ENG Bournemouth BMH B2 ENG Bracknell Forest BRC B3 ENG Bradford BRD B4 ENG Brent BEN ENG Bridgend BGE X3 WLS Brighton and Hove BNH B6 ENG Bristol, City of BST B7 ENG Bromley BRY ENG Buckinghamshire BKM B9 ENG Bury BUR C1 ENG Caerphilly CAY X4 WLS Calderdale CLD C2 ENG Cambridgeshire CAM C3 ENG Camden CMD ENG Cardiff CRF X5 WLS Carmarthenshire CMN X7 WLS Carrickfergus CKF R4 NIR Castlereagh CSR R5 NIR Ceredigion CGN X6 WLS Cheshire CHS C5 ENG Clackmannanshire CLK U1 SCT Coleraine CLR R6 NIR Conwy CWY X8 WLS Cookstown CKT R7 NIR Cornwall CON C6 ENG Coventry COV C7 ENG Craigavon CGV R8 NIR Croydon CRY ENG Cumbria CMA C9 ENG Darlington DAL D1 ENG Denbighshire DEN X9 WLS Derby DER D2 ENG Derbyshire DBY D3 ENG Derry DRY S6 NIR Devon DEV D4 ENG Doncaster DNC D5 ENG Dorset DOR D6 ENG Down DOW R9 NIR Dudley DUD D7 ENG Dumfries and Galloway DGY U2 SCT Dundee City DND U3 SCT Dungannon DGN S1 NIR Durham DUR D8 ENG Ealing EAL ENG East Ayrshire EAY U4 SCT East Dunbartonshire EDU U5 SCT East Lothian ELN U6 SCT East Renfrewshire ERW U7 SCT East Riding of Yorkshire ERY E1 ENG East Sussex ESX E2 ENG Edinburgh, City of EDH U8 SCT Eilean Siar ELS W8 SCT Enfield ENF ENG Essex ESS E4 ENG Falkirk FAL V9 SCT Fermanagh FER S2 NIR Fife FIF V1 SCT Flintshire FLN Y1 WLS Gateshead GAT E5 ENG Glasgow City GLG V2 SCT Gloucestershire GLS E6 ENG Greenwich GRE ENG Guernsey GSY CHA Gwynedd GWN Y2 WLS Hackney HCK ENG Halton HAL E9 ENG Hammersmith and Fulham HMF ENG Hampshire HAM F2 ENG Haringey HRY ENG Harrow HRW ENG Hartlepool HPL F5 ENG Havering HAV ENG Herefordshire, County of HEF F7 ENG Hertfordshire HRT F8 ENG Highland HLD V3 SCT Hillingdon HIL ENG Hounslow HNS ENG Inverclyde IVC V4 SCT Isle of Anglesey AGY X1 WLS Isle of Wight IOW G2 ENG Isles of Scilly IOS   ENG Islington ISL ENG Jersey JSY CHA Kensington and Chelsea KEC ENG Kent KEN G5 ENG Kingston upon Hull, City of KHL G6 ENG Kingston upon Thames KTT ENG Kirklees KIR G8 ENG Knowsley KWL G9 ENG Lambeth LBH ENG Lancashire LAN H2 ENG Larne LRN S3 NIR Leeds LDS H3 ENG Leicester LCE H4 ENG Leicestershire LEC H5 ENG Lewisham LEW ENG Limavady LMV S4 NIR Lincolnshire LIN H7 ENG Lisburn LSB S5 NIR Liverpool LIV H8 ENG London, City of LND ENG Luton LUT I1 ENG Magherafelt MFT S7 NIR Manchester MAN I2 ENG Medway MDW I3 ENG Merthyr Tydfil MTY Y3 WLS Merton MRT ENG Middlesbrough MDB I5 ENG Midlothian MLN V5 SCT Milton Keynes MIK I6 ENG Monmouthshire [Sir Fynwy GB-FYN] MON Y4 WLS Moray MRY V6 SCT Moyle MYL S8 NIR Neath Port Talbot NTL Y5 WLS Newcastle upon Tyne NET I7 ENG Newham NWM ENG Newport NWP Y6 WLS Newry and Mourne NYM S9 NIR Newtownabbey NTA T1 NIR Norfolk NFK I9 ENG North Ayrshire NAY V7 SCT North Down NDN T2 NIR North East Lincolnshire NEL J2 ENG North Lanarkshire NLK V8 SCT North Lincolnshire NLN J3 ENG North Somerset NSM J4 ENG North Tyneside NTY J5 ENG North Yorkshire NYK J7 ENG Northamptonshire NTH J1 ENG Northumberland NBL J6 ENG Nottingham NGM J8 ENG Nottinghamshire NTT J9 ENG Oldham OLD K1 ENG Omagh OMH T3 NIR Orkney Islands ORK U9 SCT Oxfordshire OXF K2 ENG Pembrokeshire PEM Y7 WLS Perth and Kinross PKN W1 SCT Peterborough PTE K3 ENG Plymouth PLY K4 ENG Poole POL K5 ENG Portsmouth POR K6 ENG Powys POW Y8 WLS Reading RDG K7 ENG Redbridge RDB ENG Redcar and Cleveland RCC K9 ENG Renfrewshire RFW W2 SCT Rhondda, Cynon, Taff RCT Y9 WLS Richmond upon Thames RIC ENG Rochdale RCH L2 ENG Rotherham ROT L3 ENG Rutland RUT L4 ENG St. Helens SHN M9 ENG Salford SLF L5 ENG Sandwell SAW L7 ENG Scottish Borders, The SCB T9 SCT Sefton SFT L8 ENG Sheffield SHF L9 ENG Shetland Islands ZET W3 SCT Shropshire SHR L6 ENG Slough SLG M1 ENG Solihull SOL M2 ENG Somerset SOM M3 ENG M3 South Ayrshire SAY W4 SCT South Gloucestershire SGC M6 ENG South Lanarkshire SLK W5 SCT South Tyneside STY M7 ENG Southampton STH M4 ENG Southend-on-Sea SOS M5 ENG Southwark SWK ENG Staffordshire STS N1 ENG Stirling STG W6 SCT Stockport SKP N2 ENG Stockton-on-Tees STT N3 ENG Stoke-on-Trent STE N4 ENG Strabane STB T4 NIR Suffolk SFK N5 ENG Sunderland SND N6 ENG Surrey SRY N7 ENG Sutton STN ENG Swansea SWA Z1 WLS Swindon SWD N9 ENG Tameside TAM O1 ENG Telford and Wrekin TFW O2 ENG Thurrock THR O3 ENG Torbay TOB O4 ENG Torfaen TOF Z2 WLS Tower Hamlets TWH ENG Trafford TRF O6 ENG Vale of Glamorgan VGL Z3 WLS Wakefield WKF O7 ENG Walsall WLL O8 ENG Waltham Forest WFT ENG Wandsworth WND ENG Warrington WRT P2 ENG Warwickshire WAR P3 ENG West Berkshire WBK P4 ENG West Dunbartonshire WDU W7 SCT West Lothian WLN W9 SCT West Sussex WSX P6 ENG Westminster WSM ENG Wigan WGN P7 ENG Wiltshire WIL P8 ENG Windsor and Maidenhead WNM P9 ENG Wirral WRL Q1 ENG Wokingham WOK Q2 ENG Wolverhampton WLV Q3 ENG Worcestershire WOR Q4 ENG Wrexham WRX Z4 WLS York YOR Q5 ENG GHANA GH Ashanti AH 02 Brong-Ahafo BA 03 Central CP 04 Eastern EP 05 Greater Accra AA 01 Northern NP 06 Upper East UE 10 Upper West UW 11 Volta TV 08 Western WP 09 GAMBIA GM Banjul B city 01 Lower River L division 02 MacCarthy Island M division 03 North Bank N division 07 Upper River U division 04 Western W division 05 GUINEA GN Beyla BE N 01 Boffa BF B 02 Boké BK B 03 Coyah CO D 30 Dabola DB F 05 Dalaba DL M 06 Dinguiraye DI F 07 Dubréka DU D 31 Faranah FA F 09 Forécariah FO D 10 Fria FR B 11 Gaoual GA B 12 Guékédou GU N 13 Kankan KA K 32 Kérouané KE K 15 Kindia KD D 18 Kissidougou KS F 17 Koubia KB L 33 Koundara KN B Kouroussa KO K 19 Labé LA L 34 Lélouma LE L 35 Lola LO N 36 Macenta MC N 21 Mali ML L 22 Mamou MM M 23 Mandiana MD K 37 Nzérékoré NZ N 38 Pita PI M 25 Siguiri SI K 39 Télimélé TE D 27 Tougué TO L 28 Yomou YO N 29 MALI ML Bamako BKO district Gao 7 region 02 Kayes 1 region 03 Kidal 8 region Koulikoro 2 region 07 Mopti 5 region 04 Ségou 4 region Sikasso 3 region 06 Tombouctou 6 region 08 MYANMAR MM Ayeyarwady 07 division 03 Bago 02 division 16 Magway 03 division 15 Mandalay 04 division 08 Sagaing 01 division 10 Tanintharyi 05 division 12 Yangon 06 division 17 Chin 14 state Kachin 11 state Kayah 12 state Kayin 13 state Mon 15 state Rakhine 16 state Shan 17 state MONGOLIA MN Ulaanbaatar 1 capital city 20 Arhangay 073 province 01 Bayanhongor 069 province 02 Bayan-Ölgiy 071 province 03 Bulgan 067 province 21 Darhan uul 037 province Dornod 061 province 06 Dornogovi 063 province 07 Dundgovi 059 province 08 Dzavhan 057 province 09 Govi-Altay 065 province 10 Govi-Sümber 064 province Hentiy 039 province 11 Hovd 043 province 12 Hövsgöl 041 province 13 Ömnögovi 053 province 14 Orhon 035 province Övörhangay 055 province 15 Selenge 049 province 16 Sühbaatar 051 province 17 Töv 047 province 18 Uvs 046 province 19 MAURITANIA MR Nouakchott NKC district Adrar 07 region 07 Assaba 03 region 03 Brakna 05 region 05 Dakhlet Nouâdhibou 08 region 08 Gorgol 04 region 04 Guidimaka 10 region 10 Hodh ech Chargui 01 region 01 Hodh el Gharbi 02 region Inchiri 12 region 12 Tagant 09 region 09 Tiris Zemmour 11 region 11 Trarza 06 region 06 MAURITIUS MU Beau Bassin-Rose Hill BR city Curepipe CU city Port Louis PU city Quatre Bornes QB city Vacoas-Phoenix VP city Black River BL district 12 Flacq FL district 13 Grand Port GP district 14 Moka MO district 15 Pamplemousses PA district 16 Plaines Wilhems PW district 17 Port Louis PL district 18 Rivière du Rempart RR district Savanne SA district 20 Agalega Islands AG dependency 21 Cargados Carajos CC dependency Rodrigues Island RO dependency MALDIVES MV Male MLE capital Alif 02 administrative atoll Baa 20 administrative atoll 31 Dhaalu 17 administrative atoll 32 Faafu 14 administrative atoll Gaaf Alif 27 administrative atoll 34 Gaafu Dhaalu 28 administrative atoll 35 Gnaviyani 29 administrative atoll 42 Haa Alif 07 administrative atoll 36 Haa Dhaalu 23 administrative atoll 37 Kaafu 26 administrative atoll 38 Laamu 05 administrative atoll 05 Lhaviyani 03 administrative atoll 39 Meemu 12 administrative atoll Noonu 25 administrative atoll 43 Raa 13 administrative atoll 44 Seenu 01 administrative atoll 01 Shaviyani 24 administrative atoll 45 Thaa 08 administrative atoll 46 Vaavu 04 administrative atoll 47 MALAWI MW Balaka BA S Blantyre BL S 24 Chikwawa CK S 02 Chiradzulu CR S 03 Chitipa CT N 04 Dedza DE C 06 Dowa DO C 07 Karonga KR N 08 Kasungu KS C 09 Likoma Island LK N Lilongwe LI C 11 Machinga MH S 10 Mangochi MG S 12 Mchinji MC C 13 Mulanje MU S 14 Mwanza MW S 25 Mzimba MZ N 15 Nkhata Bay NB N 17 Nkhotakota NK C 18 Nsanje NS S 19 Ntcheu NU C 16 Ntchisi NI C 20 Phalombe PH S Rumphi RU N 21 Salima SA C 22 Thyolo TH S 05 Zomba ZO S 23 MEXICO MX Distrito Federal DIF federal district 09 Aguascalientes AGU state 01 Baja California BCN state 02 Baja California Sur BCS state 03 Campeche CAM state 04 Coahuila COA state Colima COL state 08 Chiapas CHP state 05 Chihuahua CHH state 06 Durango DUR state 10 Guanajuato GUA state 11 Guerrero GRO state 12 Hidalgo HID state 13 Jalisco JAL state 14 México MEX state 15 Michoacán MIC state Morelos MOR state 17 Nayarit NAY state 18 Nuevo León NLE state 19 Oaxaca OAX state 20 Puebla PUE state 21 Querétaro QUE state Quintana Roo ROO state 23 San Luis Potosí SLP state 24 Sinaloa SIN state 25 Sonora SON state 26 Tabasco TAB state 27 Tamaulipas TAM state 28 Tlaxcala TLA state 29 Veracruz VER state Yucatán YUC state 31 Zacatecas ZAC state 32 MALAYSIA MY Wilayah Persekutuan Kuala Lumpur 14 federal territory Wilayah Persekutuan Labuan 15 federal territory Johor 01 state Kedah 02 state Kelantan 03 state Melaka 04 state Negeri Sembilan 05 state Pahang 06 state Perak 08 state Perlis 09 state Pulau Pinang 07 state Sabah 12 state Sarawak 13 state Selangor 10 state Terengganu 11 state MOZAMBIQUE MZ Maputo MPM city 04 Cabo Delgado P province 01 Gaza G province 02 Inhambane I province 03 Manica B province 10 Maputo L province 04 Nampula N province 06 Niassa A province 07 Sofala S province 05 Tete T province 08 Zambézia Q province 09 NAMIBIA NA Caprivi CA 28 Erongo ER 29 Hardap HA 30 Karas KA 31 Khomas KH 21 Kunene KU 32 Ohangwena OW 33 Okavango OK 34 Omaheke OH 35 Omusati OS 36 Oshana ON 37 Oshikoto OT 38 Otjozondjupa OD 39 NIGER NE Niamey 8 urban community 08 Agadez 1 department 01 Diffa 2 department 02 Dosso 3 department 03 Maradi 4 department 04 Tahoua 5 department Tillabéri 6 department 09 Zinder 7 department 07 NIGERIA NG Abuja Capital Territory FC capital territory 11 Abia AB state 45 Adamawa AD state 35 Akwa Ibom AK state 21 Anambra AN state 25 Bauchi BA state 46 Bayelsa BY state 52 Benue BE state 26 Borno BO state 27 Cross River CR state 22 Delta DE state 36 Ebonyi EB state 53 Edo ED state 37 Ekiti EK state 54 Enugu EN state 47 Gombe GO state 55 Imo IM state 28 Jigawa JI state 39 Kaduna KD state 23 Kano KN state 29 Katsina KT state 24 Kebbi KE state 40 Kogi KO state 41 Kwara KW state 30 Lagos LA state 05 Nassarawa NA state 56 Niger NI state 31 Ogun OG state 16 Ondo ON state 48 Osun OS state 42 Oyo OY state 32 Plateau PL state 49 Rivers RI state 50 Sokoto SO state 51 Taraba TA state 43 Yobe YO state 44 Zamfara ZA state 57 NICARAGUA NI Boaco BO department 01 Carazo CA department 02 Chinandega CI department 03 Chontales CO department 04 Estelí ES department 05 Granada GR department 06 Jinotega JI department 07 León LE department 08 Madriz MD department 09 Managua MN department 10 Masaya MS department 11 Matagalpa MT department 12 Nueva Segovia NS department 13 Río San Juan SJ department 14 Rivas RI department 15 Atlántico Norte AN autonomous region Atlántico Sur AS autonomous region NETHERLANDS NL Drenthe DR 01 Flevoland FL 16 Friesland FR 02 Gelderland GE Groningen GR 04 Limburg LI Noord-Brabant NB 06 Noord-Holland NH 07 Overijssel OV 15 Utrecht UT 09 Zeeland ZE Zuid-Holland ZH 11 NORWAY NO Akershus 02 01 Aust-Agder 09 02 Buskerud 06 17 Finnmark 20 05 Hedmark 04 06 Hordaland 12 07 Møre og Romsdal 15 08 Nordland 18 09 Nord-Trøndelag 17 10 Oppland 05 11 Oslo 03 12 Rogaland 11 14 Sogn og Fjordane 14 15 Sør-Trøndelag 16 16 Telemark 08 Troms 19 18 Vest-Agder 10 19 Vestfold 07 20 Østfold 01 Jan Mayen (Arctic Region) (See also country code SJ) 22 Svalbard (Arctic Region) (See also country code SJ) 21 NEPAL NP Bagmati BA 1 Bheri BH 2 Dhawalagiri DH 3 Gandaki GA 3 Janakpur JA 1 Karnali KA 2 Kosi [Koshi] KO 4 Lumbini LU 3 Mahakali MA 5 Mechi ME 4 Narayani NA 1 Rapti RA 2 Sagarmatha SA 4 Seti SE 5 NEW ZEALAND NZ Auckland AUK N 17 Bay of Plenty BOP N Canterbury CAN S Gisborne GIS N Hawkes's Bay HKB N 31 Manawatu-Wanganui MWT N Marlborough MBH S 50 Nelson NSN S Northland NTL N Otago OTA S Southland STL S 72 Taranaki TKI N 76 Tasman TAS S Waikato WKO N 85 Wellington WGN N West Coast WTC S OMAN OM Ad Dakhiliyah DA 01 Al Batinah BA 02 Al Janubiyah [Zufar] JA Al Wustá WU 03 Ash Sharqiyah SH 04 Az Zahirah ZA 05 Masqat MA 06 Musandam MU 07 PANAMA PA Bocas del Toro 1 province 01 Coclé 2 province 03 Colón 3 province 04 Chiriquí 4 province 02 Darién 5 province 05 Herrera 6 province 06 Los Santos 7 province 07 Panamá 8 province 08 Veraguas 9 province 10 Comarca de San Blas 0 special territory PERU PE El Callao CAL constitutional province Amazonas AMA department 01 Ancash ANC department 02 Apurímac APU department 03 Arequipa ARE department 04 Ayacucho AYA department 05 Cajamarca CAJ department 06 Cuzco [Cusco] CUS department Huancavelica HUV department 09 Huánuco HUC department 10 Ica ICA department 11 Junín JUN department 12 La Libertad LAL department 13 Lambayeque LAM department 14 Lima LIM department 15 Loreto LOR department 16 Madre de Dios MDD department 17 Moquegua MOQ department 18 Pasco PAS department 19 Piura PIU department 20 Puno PUN department 21 San Martín SAM department 22 Tacna TAC department 23 Tumbes TUM department 24 Ucayali UCA department 25 PAPUA NEW GUINEA PG National Capital District (Port Moresby) NCD district Central CPM province 01 Chimbu CPK province 08 Eastern Highlands EHG province 09 East New Britain EBR province 10 East Sepik ESW province 11 Enga EPW province 19 Gulf GPK province 02 Madang MPM province 12 Manus MRL province 13 Milne Bay MBA province 03 Morobe MPL province 14 New Ireland NIK province 15 Northern NPP province 04 North Solomons NSA province Sandaun [West Sepik] SAN province 18 Southern Highlands SHM province 05 Western WPD province 06 Western Highlands WHM province 16 West New Britain WBK province 17 PHILIPPINES PH Abra ABR 15 01 Agusan del Norte AGN 13 02 Agusan del Sur AGS 13 03 Aklan AKL 06 04 Albay ALB 05 05 Antique ANT 06 06 Apayao APA 15 Aurora AUR 04 G8 Basilan BAS 09 22 Bataan BAN 03 07 Batanes BTN 02 08 Batangas BTG 04 09 Benguet BEN 15 10 Biliran BIL 08 Bohol BOH 07 11 Bukidnon BUK 10 12 Bulacan BUL 03 13 Cagayan CAG 02 14 Camarines Norte CAN 05 15 Camarines Sur CAS 05 16 Camiguin CAM 10 17 Capiz CAP 06 18 Catanduanes CAT 05 19 Cavite CAV 04 20 Cebu CEB 07 21 Compostela Valley COM 11 Davao del Norte DAV 11 24 Davao del Sur DAS 11 25 Davao Oriental DAO 11 26 Eastern Samar EAS 08 23 Guimaras GUI 06 Ifugao IFU 15 27 Ilocos Norte ILN 01 28 Ilocos Sur ILS 01 29 Iloilo ILI 06 30 Isabela ISA 02 31 Kalinga KAL 15 D6 Laguna LAG 04 33 Lanao del Norte LAN 12 34 Lanao del Sur LAS 14 35 La Union LUN 01 36 Leyte LEY 08 37 Maguindanao MAG 14 56 Marinduque MAD 04 38 Masbate MAS 05 39 Mindoro Occidental MDC 04 40 Mindoro Oriental MDR 04 41 Misamis Occidental MSC 10 42 Misamis Oriental MSR 10 43 Mountain Province MOU 15 Negros Occidental NEC 06 H3 Negros Oriental NER 07 46 North Cotabato NCO 12 57 Northern Samar NSA 08 67 Nueva Ecija NUE 03 47 Nueva Vizcaya NUV 02 48 Palawan PLW 04 49 Pampanga PAM 03 50 Pangasinan PAN 01 51 Quezon QUE 04 H2 Quirino QUI 02 68 Rizal RIZ 04 53 Romblon ROM 04 54 Sarangani SAR 11 Shariff Kabunsuan Siquijor SIG 07 69 Sorsogon SOR 05 58 South Cotabato SCO 11 70 Southern Leyte SLE 08 59 Sultan Kudarat SUK 12 71 Sulu SLU 14 60 Surigao del Norte SUN 13 61 Surigao del Sur SUR 13 62 Tarlac TAR 03 63 Tawi-Tawi TAW 14 72 Western Samar WSA 08 55 Zambales ZMB 03 64 Zamboanga del Norte ZAN 09 65 Zamboanga del Sur ZAS 09 66 Zamboanga Sibuguey [Zamboanga Sibugay] ZSI 09 PAKISTAN PK Islamabad IS federal capital territory 08 Baluchistan BA province North-West Frontier NW province 03 Punjab PB province 04 Sind SD province Federally Administered Tribal Areas TA territory Azad Kashmir JK Pakistan administered area 06 Northern Areas NA Pakistan administered area 07 POLAND PL Dolnoslaskie DS Kujawsko-pomorskie KP Lubelskie LU Lubuskie LB Lódzkie LD Malopolskie MA Mazowieckie MZ Opolskie OP Podkarpackie PK Podlaskie PD 81 Pomorskie PM Slaskie SL 83 Swietokrzyskie SK Warminsko-mazurskie WN Wielkopolskie WP 86 Zachodniopomorskie ZP PORTUGAL PT Aveiro 01 district 02 Beja 02 district 03 Braga 03 district 04 Bragança 04 district 05 Castelo Branco 05 district 06 Coimbra 06 district 07 Évora 07 district 08 Faro 08 district 09 Guarda 09 district 11 Leiria 10 district 13 Lisboa 11 district 14 Portalegre 12 district 16 Porto 13 district 17 Santarém 14 district 18 Setúbal 15 district 19 Viana do Castelo 16 district 20 Vila Real 17 district 21 Viseu 18 district 22 Região Autónoma dos Açores 20 autonomous region Região Autónoma da Madeira 30 autonomous region PARAGUAY PY Asunción ASU capital 22 Alto Paraguay 16 department 23 Alto Paraná 10 department 01 Amambay 13 department 02 Boquerón 19 department 24 Caaguazú 5 department 04 Caazapá 6 department 05 Canindeyú 14 department 19 Central 11 department 06 Concepción 1 department 07 Cordillera 3 department 08 Guairá 4 department 10 Itapúa 7 department 11 Misiones 8 department 12 Ñeembucú 12 department 13 Paraguarí 9 department 15 Presidente Hayes 15 department 16 San Pedro 2 department 17 QATAR QA Ad Dawhah DA 01 Al Ghuwayriyah GH 02 Al Jumayliyah JU 03 Al Khawr KH 04 Al Wakrah WA 05 Ar Rayyan RA 06 Jariyan al Batnah JB 07 Madinat ash Shamal MS 08 Umm Salal US 09 ROMANIA RO Bucuresti B municipality 10 Alba AB department 01 Arad AR department 02 Arges AG department 03 Bacau BC department 04 Bihor BH department 05 Bistrita-Nasaud BN department 06 Botosani BT department 07 Brasov BV department 09 Braila BR department 08 Buzau BZ department 11 Caras-Severin CS department 12 Calarasi CL department 41 Cluj CJ department 13 Constanta CT department 14 Covasna CV department 15 Dâmbovita DB department 16 Dolj DJ department 17 Galati GL department 18 Giurgiu GR department 42 Gorj GJ department 19 Harghita HR department 20 Hunedoara HD department 21 Ialomita IL department 22 Iasi IS department 23 Maramures MM department 25 Mehedinti MH department 26 Mures MS department 27 Neamt NT department 28 Olt OT department 29 Prahova PH department 30 Satu Mare SM department 32 Salaj SJ department 31 Sibiu SB department 33 Suceava SV department 34 Teleorman TR department 35 Timis TM department 36 Tulcea TL department 37 Vaslui VS department 38 Vâlcea VL department 39 Vrancea VN department 40 RUSSIA RU Adygeya, Respublika AD republic Altay, Respublika AL republic 03 Bashkortostan, Respublika BA republic Buryatiya, Respublika BU republic Chechenskaya Respublika CE republic Chuvashskaya Respublika CU republic Dagestan, Respublika DA republic Ingushskaya Respublika [Respublika Ingushetiya] IN republic Kabardino-Balkarskaya Respublika KB republic Kalmykiya, Respublika KL republic Karachayevo-Cherkesskaya Respublika KC republic Kareliya, Respublika KR republic Khakasiya, Respublika KK republic Komi, Respublika KO republic 34 Mariy El, Respublika ME republic Mordoviya, Respublika MO republic Sakha, Respublika [Yakutiya] SA republic 63 Severnaya Osetiya, Respublika [Alaniya] [Respublika Severnaya Osetiya-Alaniya] SE republic Tatarstan, Respublika TA republic Tyva, Respublika [Tuva] TY republic 79 Udmurtskaya Respublika UD republic Altayskiy kray ALT administrative territory 04 Khabarovskiy kray KHA administrative territory 30 Krasnodarskiy kray KDA administrative territory 38 Krasnoyarskiy kray KYA administrative territory 39 Primorskiy kray PRI administrative territory 59 Stavropol'skiy kray STA administrative territory 70 Amurskaya oblast' AMU administrative region 05 Arkhangel'skaya oblast' ARK administrative region 06 Astrakhanskaya oblast' AST administrative region 07 Belgorodskaya oblast' BEL administrative region 09 Bryanskaya oblast' BRY administrative region 10 Chelyabinskaya oblast' CHE administrative region 13 Chitinskaya oblast' CHI administrative region 14 Irkutskaya oblast' IRK administrative region 20 Ivanovskaya oblast' IVA administrative region 21 Kaliningradskaya oblast' KGD administrative region 23 Kaluzhskaya oblast' KLU administrative region 25 Kamchatskaya oblast' KAM administrative region 26 Kemerovskaya oblast' KEM administrative region 29 Kirovskaya oblast' KIR administrative region 33 Kostromskaya oblast' KOS administrative region 37 Kurganskaya oblast' KGN administrative region 40 Kurskaya oblast' KRS administrative region 41 Leningradskaya oblast' LEN administrative region 42 Lipetskaya oblast' LIP administrative region 43 Magadanskaya oblast' MAG administrative region 44 Moskovskaya oblast' MOS administrative region 47 Murmanskaya oblast' MUR administrative region 49 Nizhegorodskaya oblast' NIZ administrative region 51 Novgorodskaya oblast' NGR administrative region 52 Novosibirskaya oblast' NVS administrative region 53 Omskaya oblast' OMS administrative region 54 Orenburgskaya oblast' ORE administrative region 55 Orlovskaya oblast' ORL administrative region 56 Penzenskaya oblast' PNZ administrative region 57 Permskaya oblast' PER administrative region 58 Pskovskaya oblast' PSK administrative region 60 Rostovskaya oblast' ROS administrative region 61 Ryazanskaya oblast' RYA administrative region 62 Sakhalinskaya oblast' SAK administrative region 64 Samarskaya oblast' SAM administrative region 65 Saratovskaya oblast' SAR administrative region 67 Smolenskaya oblast' SMO administrative region 69 Sverdlovskaya oblast' SVE administrative region 71 Tambovskaya oblast' TAM administrative region 72 Tomskaya oblast' TOM administrative region 75 Tul'skaya oblast' TUL administrative region 76 Tverskaya oblast' TVE administrative region 77 Tyumenskaya oblast' TYU administrative region 78 Ul'yanovskaya oblast' ULY administrative region 81 Vladimirskaya oblast' VLA administrative region 83 Volgogradskaya oblast' VGG administrative region 84 Vologodskaya oblast' VLG administrative region 85 Voronezhskaya oblast' VOR administrative region 86 Yaroslavskaya oblast' YAR administrative region 88 Moskva MOW autonomous city 48 Sankt-Peterburg SPE autonomous city 66 Yevreyskaya avtonomnaya oblast' YEV autonomous region Aginskiy Buryatskiy avtonomnyy okrug AGB autonomous district Chukotskiy avtonomnyy okrug CHU autonomous district 15 Evenkiyskiy avtonomnyy okrug EVE autonomous district 18 Khanty-Mansiyskiy avtonomnyy okrug KHM autonomous district 32 Komi-Permyatskiy avtonomnyy okrug KOP autonomous district 35 Koryakskiy avtonomnyy okrug KOR autonomous district 36 Nenetskiy avtonomnyy okrug NEN autonomous district 50 Taymyrskiy (Dolgano-Nenetskiy) avtonomnyy okrug TAY autonomous district Ust'-Ordynskiy Buryatskiy avtonomnyy okrug UOB autonomous district Yamalo-Nenetskiy avtonomnyy okrug YAN autonomous district 87 RWANDA RW Butare C 01 Byumba I 02 Cyangugu E 03 Gikongoro D 04 Gisenyi G 05 Gitarama B 06 Kibungo J 07 Kibuye F 08 Kigali-Rural K Kigali-Ville L Mutara M Ruhengeri H 10 SAUDI ARABIA SA Al Bahah 11 02 Al Hudud ash Shamaliyah 08 Al Jawf 12 20 Al Madinah 03 05 Al Qasim 05 08 Ar Riyah 01 10 Ash Sharqiyah 04 06 Asir 14 11 Ha'il 06 13 Jizan 09 Makkah 02 14 Najran 10 16 Tabuk 07 19 SOLOMON ISLANDS SB Capital Territory (Honiara) CT capital territory Central CE province 05 Guadalcanal GU province 06 Isabel IS province 07 Makira MK province 08 Malaita ML province 03 Temotu TE province 09 Western WE province 04 SUDAN SD Ahali an Nil 23 35 Al Bahr al Ahmar 26 Al Buhayrat 18 37 Al Jazirah 07 38 Al Khartum 03 29 Al Qaharif 06 39 Al Wahdah 22 40 An Nil 04 An Nil al Abyah 08 An Nil al Azraq 24 42 Ash Shamaliyah 01 43 Central Equatoria 17 44 Gharb al Istiwa'iyah 16 45 Gharb Bahr al Ghazal 14 Gharb Darfur 12 47 Gharb Kurdufan 10 48 Janub Darfur 11 49 Janub Kurdufan 13 50 Junqali 20 51 Kassala 05 52 Shamal Bahr al Ghazal 15 Shamal Darfur 02 55 Shamal Kurdufan 09 56 Sharq al Istiwa'iyah 19 57 Sinnar 25 58 Warab 21 59 SWEDEN SE Blekinge län [SE-10] K 02 Dalarnas län [SE-20] W 10 Gotlands län [SE-09] I 05 Gävleborgs län [SE-21] X 03 Hallands län [SE-13] N 06 Jämtlands län [SE-23] Z 07 Jönköpings län [SE-06] F 08 Kalmar län [SE-08] H 09 Kronobergs län [SE-07] G 12 Norrbottens län [SE-25] BD 14 Skåne län [SE-12] M 27 Stockholms län [SE-01] AB 26 Södermanlands län [SE-04] D 18 Uppsala län [SE-03] C 21 Värmlands län [SE-17] S 22 Västerbottens län [SE-24] AC 23 Västernorrlands län [SE-22] Y 24 Västmanlands län [SE-19] U 25 Västra Götalands län [SE-14] O Örebro län [SE-18] T 15 Östergötlands län [SE-05] E 16 SAINT HELENA SH Saint Helena SH administrative area 02 Ascension AC dependency 01 Tristan da Cunha TA dependency 03 SLOVAKIA SK Banskobystrický kraj BC Bratislavský kraj BL Košický kraj KI Nitriansky kraj NI Prešovský kraj PV Trenciansky kraj TC Trnavský kraj TA Žilinský kraj ZI SIERRA LEONE SL Western Area (Freetown) W area Eastern E province 01 Northern N province 02 Southern S province 03 SENEGAL SN Dakar DK 01 Diourbel DB 03 Fatick FK 09 Kaolack KL 10 Kolda KD 11 Louga LG 08 Saint-Louis SL 04 Tambacounda TC 05 Thiès TH 07 Ziguinchor ZG 12 SOMALIA SO Awdal AW Bakool BK 01 Banaadir BN 02 Bari BR 03 Bay BY 04 Galguduud GA 05 Gedo GE 06 Hiiraan HI 07 Jubbada Dhexe JD 08 Jubbada Hoose JH 09 Mudug MU 10 Nugaal NU 11 Sanaag SA 12 Shabeellaha Dhexe SD 13 Shabeellaha Hoose SH 14 Sool SO Togdheer TO 15 Woqooyi Galbeed WO 16 SURINAME SR Brokopondo BR 10 Commewijne CM 11 Coronie CR 12 Marowijne MA 13 Nickerie NI 14 Para PR 15 Paramaribo PM 16 Saramacca SA 17 Sipaliwini SI 18 Wanica WA 19 SAO TOME AND PRINCIPE ST Príncipe P 01 São Tomé S 02 EL SALVADOR SV Ahuachapán AH 01 Cabañas CA 02 Cuscatlán CU 04 Chalatenango CH 03 La Libertad LI 05 La Paz PA 06 La Unión UN 07 Morazán MO 08 San Miguel SM 09 San Salvador SS 10 Santa Ana SA 11 San Vicente SV 12 Sonsonate SO 13 Usulután US 14 SYRIAN ARAB REPUBLIC SY Al Hasakah HA 01 Al Ladhiqiyah LA 02 Al Qunaytirah QU 03 Ar Raqqah RA 04 As Suwayda' SU 05 Darha DR 06 Dayr az Zawr DY 07 Dimashq DI 13 Halab HL 09 Hamah HM 10 Hims HI Idlib ID 12 Rif Dimashq RD 08 Tartus TA 14 SWAZILAND SZ Hhohho HH Lubombo LU Manzini MA Shiselweni SH CHAD TD Batha BA 01 Biltine BI 02 Borkou-Ennedi-Tibesti BET 03 Chari-Baguirmi CB 04 Guéra GR 05 Kanem KA 06 Lac LC 07 Logone-Occidental LO 08 Logone-Oriental LR 09 Mayo-Kébbi MK 10 Moyen-Chari MC 11 Ouaddaï OD 12 Salamat SA 13 Tandjilé TA 14 TOGO TG Centre C Kara K Maritime (Région) M Plateaux P Savannes S THAILAND TH Krung Thep Maha Nakhon [Bangkok] 10 metropolitan administration Phatthaya S special administrative city Amnat Charoen 37 province 77 Ang Thong 15 province 35 Buri Ram 31 province 28 Chachoengsao 24 province 44 Chai Nat 18 province 32 Chaiyaphum 36 province 26 Chanthaburi 22 province 48 Chiang Mai 50 province 02 Chiang Rai 57 province 03 Chon Buri 20 province 46 Chumphon 86 province 58 Kalasin 46 province 23 Kamphaeng Phet 62 province 11 Kanchanaburi 71 province 50 Khon Kaen 40 province 22 Krabi 81 province 63 Lampang 52 province 06 Lamphun 51 province 05 Loei 42 province 18 Lop Buri 16 province 34 Mae Hong Son 58 province 01 Maha Sarakham 44 province 24 Mukdahan 49 province 78 Nakhon Nayok 26 province 43 Nakhon Pathom 73 province 53 Nakhon Phanom 48 province 73 Nakhon Ratchasima 30 province 27 Nakhon Sawan 60 province 16 Nakhon Si Thammarat 80 province Nan 55 province 04 Narathiwat 96 province 31 Nong Bua Lam Phu 39 province 79 Nong Khai 43 province 17 Nonthaburi 12 province 38 Pathum Thani 13 province 39 Pattani 94 province 69 Phangnga 82 province 61 Phatthalung 93 province 66 Phayao 56 province 41 Phetchabun 67 province 14 Phetchaburi 76 province 56 Phichit 66 province 13 Phitsanulok 65 province 12 Phrae 54 province 07 Phra Nakhon Si Ayutthaya 14 province 36 Phuket 83 province 62 Prachin Buri 25 province 74 Prachuap Khiri Khan 77 province 57 Ranong 85 province 59 Ratchaburi 70 province 52 Rayong 21 province 47 Roi Et 45 province 25 Sa Kaeo 27 province 80 Sakon Nakhon 47 province 20 Samut Prakan 11 province 42 Samut Sakhon 74 province 55 Samut Songkhram 75 province 54 Saraburi 19 province 37 Satun 91 province 67 Sing Buri 17 province 33 Si Sa Ket 33 province 30 Songkhla 90 province 68 Sukhothai 64 province 09 Suphan Buri 72 province 51 Surat Thani 84 province 60 Surin 32 province 29 Tak 63 province 08 Trang 92 province 65 Trat 23 province 49 Ubon Ratchathani 34 province Udon Thani 41 province 76 Uthai Thani 61 province 15 Uttaradit 53 province 10 Yala 95 province 70 Yasothon 35 province 72 TAJIKISTAN TJ Khatlon KT region 02 Sughd SU region Gorno-Badakhshan GB autonomous region TURKMENISTAN TM Ahal A Balkan B Dasoguz D Lebap L Mary M TUNISIA TN Béja 31 Ben Arous 13 27 Bizerte 23 18 Gabès 81 Gafsa 71 Jendouba 32 06 Kairouan 41 Kasserine 42 Kebili 73 31 L'Ariana 12 Le Kef 33 Mahdia 53 Medenine 82 28 Monastir 52 Nabeul 21 19 Sfax 61 Sidi Bouzid 43 33 Siliana 34 22 Sousse 51 23 Tataouine 83 34 Tozeur 72 35 Tunis 11 36 Zaghouan 22 37 TURKEY TR Adana 01 81 Adiyaman 02 02 Afyon 03 03 Agri 04 04 Aksaray 68 75 Amasya 05 05 Ankara 06 68 Antalya 07 07 Ardahan 75 86 Artvin 08 08 Aydin 09 09 Balikesir 10 10 Bartin 74 87 Batman 72 76 Bayburt 69 77 Bilecik 11 11 Bingöl 12 12 Bitlis 13 13 Bolu 14 14 Burdur 15 15 Bursa 16 16 Çanakkale 17 17 Çankiri 18 82 Çorum 19 19 Denizli 20 20 Diyarbakir 21 21 Düzce 81 Edirne 22 22 Elazig 23 23 Erzincan 24 24 Erzurum 25 25 Eskisehir 26 26 Gaziantep 27 83 Giresun 28 28 Gümüshane 29 69 Hakkâri 30 70 Hatay 31 31 Igdir 76 88 Isparta 32 33 Içel 33 32 Istanbul 34 34 Izmir 35 35 Kahramanmaras 46 46 Karabük 78 89 Karaman 70 78 Kars 36 84 Kastamonu 37 37 Kayseri 38 38 Kirikkale 71 79 Kirklareli 39 39 Kirsehir 40 40 Kilis 79 90 Kocaeli 41 41 Konya 42 71 Kütahya 43 43 Malatya 44 44 Manisa 45 45 Mardin 47 72 Mugla 48 48 Mus 49 49 Nevsehir 50 50 Nigde 51 73 Ordu 52 52 Osmaniye 80 91 Rize 53 53 Sakarya 54 54 Samsun 55 55 Siirt 56 74 Sinop 57 57 Sivas 58 58 Sanliurfa 63 63 Sirnak 73 80 Tekirdag 59 59 Tokat 60 60 Trabzon 61 61 Tunceli 62 62 Usak 64 64 Van 65 65 Yalova 77 92 Yozgat 66 66 Zonguldak 67 85 TRINIDAD AND TOBAGO TT Couva-Tabaquite-Talparo CTT region Diego Martin DMN region Eastern Tobago ETO region Penal-Debe PED region Princes Town PRT region Rio Claro-Mayaro RCM region Sangre Grande SGE region San Juan-Laventille SJL region Siparia SIP region Tunapuna-Piarco TUP region Western Tobago WTO region Arima ARI municipality 01 Chaguanas CHA municipality Point Fortin PTF municipality Port of Spain POS municipality 05 San Fernando SFO municipality 10 TAIWAN, PROVINCE OF CHINA TW Kaohsiung KHH special municipality 02 Taipei TPE special municipality 03 Chiayi CYI municipality Hsinchu HSZ municipality Keelung KEE municipality Taichung TXG municipality Tainan TNN municipality Changhua CHA district Chiayi CYQ district Hsinchu HSQ district Hualien HUA district Ilan ILA district Kaohsiung KHQ district Miaoli MIA district Nantou NAN district Penghu PEN district Pingtung PIF district Taichung TXQ district Tainan TNQ district Taipei TPQ district Taitung TTT district Taoyuan TAO district Yunlin YUN district TANZANIA, UNITED REPUBLIC OF TZ Arusha 01 01 Dar es Salaam 02 Dodoma 03 03 Iringa 04 04 Kagera 05 Kaskazini Pemba 06 Kaskazini Unguja 07 Kigoma 08 Kilimanjaro 09 06 Kusini Pemba 10 Kusini Unguja 11 Lindi 12 07 Mara 13 08 Mbeya 14 09 Mjini Magharibi 15 Morogoro 16 10 Mtwara 17 11 Mwanza 18 12 Pwani 19 Rukwa 20 24 Ruvuma 21 14 Shinyanga 22 15 Singida 23 16 Tabora 24 17 Tanga 25 18 UKRAINE UA Cherkas'ka Oblast' 71 region 01 Chernihivs'ka Oblast' 74 region 02 Chernivets'ka Oblast' 77 region 03 Dnipropetrovs'ka Oblast' 12 region 04 Donets'ka Oblast' 14 region 05 Ivano-Frankivs'ka Oblast' 26 region 06 Kharkivs'ka Oblast' 63 region 07 Khersons'ka Oblast' 65 region 08 Khmel'nyts'ka Oblast' 68 region 09 Kirovohrads'ka Oblast' 35 region 10 Kyïvs'ka Oblast' 32 region 13 Luhans'ka Oblast' 09 region 14 L'vivs'ka Oblast' 46 region 15 Mykolaïvs'ka Oblast' 48 region Odes'ka Oblast' 51 region 17 Poltavs'ka Oblast' 53 region 18 Rivnens'ka Oblast' 56 region 19 Sums'ka Oblast' 59 region 21 Ternopil's'ka Oblast' 61 region 22 Vinnyts'ka Oblast' 05 region 23 Volyns'ka Oblast' 07 region Zakarpats'ka Oblast' 21 region 25 Zaporiz'ka Oblast' 23 region 26 Zhytomyrs'ka Oblast' 18 region 27 Respublika Krym 43 republic 11 Kyïv 30 city Sevastopol' 40 city 20 UGANDA UG Apac 302 N Arua 303 N Bundibugyo 401 W Bushenyi 402 W Gulu 304 N Hoima 403 W Iganga 203 E Jinja 204 E Kabale 404 W Kabarole 405 W Kalangala 101 C Kampala 102 C Kamuli 205 E Kapchorwa 206 E Kasese 406 W Kibaale 407 W Kiboga 103 C Kisoro 408 W Kitgum 305 N Kotido 306 N Kumi 208 E Lira 307 N Luwero 104 C Masaka 105 C Masindi 409 W Mbale 209 E Mbarara 410 W Moroto 308 N Moyo 309 N Mpigi 106 C Mubende 107 C Mukono 108 C Nebbi 310 N Ntungamo 411 W Pallisa 210 E Rakai 110 C Rukungiri 412 W Soroti 211 E Tororo 212 E UNITED STATES MINOR OUTLYING ISLANDS UM Baker Island 81 Howland Island 84 Jarvis Island 86 Johnston Atoll 67 Kingman Reef 89 Midway Islands 71 Navassa Island 76 Palmyra Atoll 95 Wake Island 79 UNITED STATES US Alabama AL state 01 Alaska AK state 02 Arizona AZ state 04 Arkansas AR state 05 California CA state 06 Colorado CO state 08 Connecticut CT state 09 Delaware DE state 10 Florida FL state 12 Georgia GA state 13 Hawaii HI state 15 Idaho ID state 16 Illinois IL state 17 Indiana IN state 18 Iowa IA state 19 Kansas KS state 20 Kentucky KY state 21 Louisiana LA state 22 Maine ME state 23 Maryland MD state 24 Massachusetts MA state 25 Michigan MI state 26 Minnesota MN state 27 Mississippi MS state 28 Missouri MO state 29 Montana MT state 30 Nebraska NE state 31 Nevada NV state 32 New Hampshire NH state 33 New Jersey NJ state 34 New Mexico NM state 35 New York NY state 36 North Carolina NC state 37 North Dakota ND state 38 Ohio OH state 39 Oklahoma OK state 40 Oregon OR state 41 Pennsylvania PA state 42 Rhode Island RI state 44 South Carolina SC state 45 South Dakota SD state 46 Tennessee TN state 47 Texas TX state 48 Utah UT state 49 Vermont VT state 50 Virginia VA state 51 Washington WA state 53 West Virginia WV state 54 Wisconsin WI state 55 Wyoming WY state 56 District of Columbia DC district 11 American Samoa (see also separate entry under AS) AS outlying area Guam (see also separate entry under GU) GU outlying area Northern Mariana Islands (see also separate entry under MP) MP outlying area Puerto Rico (see also separate entry under PR) PR outlying area United States Minor Outlying Islands (see also separate entry under UM) UM outlying area Virgin Islands, U.S. (see also separate entry under VI) VI outlying area URUGUAY UY Artigas AR 01 Canelones CA 02 Cerro Largo CL 03 Colonia CO 04 Durazno DU 05 Flores FS 06 Florida FD 07 Lavalleja LA 08 Maldonado MA 09 Montevideo MO 10 Paysandú PA 11 Río Negro RN 12 Rivera RV 13 Rocha RO 14 Salto SA 15 San José SJ 16 Soriano SO 17 Tacuarembó TA 18 Treinta y Tres TT 19 UZBEKISTAN UZ Qoraqalpog'iston Respublikasi QR republic Andijon AN region 01 Buxoro BU region 02 Farg'ona FA region 03 Jizzax JI region 15 Namangan NG region 06 Navoiy NW region 07 Qashqadaryo QA region 08 Samarqand SA region 10 Sirdaryo SI region 16 Surxondaryo SU region 12 Toshkent TO region 14 Xorazm XO region VENEZUELA VE Distrito Federal A federal district 25 Anzoátegui B state 02 Apure C state 03 Aragua D state 04 Barinas E state 05 Bolívar F state 06 Carabobo G state 07 Cojedes H state 08 Falcón I state 11 Guárico J state 12 Lara K state 13 Mérida L state 14 Miranda M state 15 Monagas N state 16 Nueva Esparta O state 17 Portuguesa P state 18 Sucre R state 19 Táchira S state 20 Trujillo T state 21 Yaracuy U state 22 Zulia V state 23 Amazonas Z state 01 Delta Amacuro Y state 09 Dependencias Federales W federal dependency 24 VIET NAM VN An Giang 44 01 Ba Ria - Vung Tau 43 45 Bac Can 53 72 Bac Giang 54 71 Bac Lieu 55 73 Bac Ninh 56 74 Ben Tre 50 03 Binh Dinh 31 46 Binh Duong 57 75 Binh Phuoc 58 76 Binh Thuan 40 47 Ca Mau 59 77 Can Tho 48 48 Cao Bang 04 05 Da Nang, thanh pho 60 Dac Lac 33 07 Dong Nai 39 43 Dong Thap 45 09 Gia Lai 30 49 Ha Giang 03 50 Ha Nam 63 80 Ha Noi, thu do 64 Ha Tay 15 51 Ha Tinh 23 52 Hai Duong 61 79 Hai Phong, thanh pho 62 Hoa Binh 14 53 Ho Chi Minh, thanh pho [Sai Gon] 65 Hung Yen 66 81 Khanh Hoa 34 54 Kien Giang 47 21 Kon Tum 28 55 Lai Chau 01 22 Lam Dong 35 23 Lang Son 09 39 Lao Cai 02 56 Long An 41 24 Nam Dinh 67 82 Nghe An 22 58 Ninh Binh 18 59 Ninh Thuan 36 60 Phu Tho 68 83 Phu Yen 32 61 Quang Binh 24 62 Quang Nam 27 84 Quang Ngai 29 63 Quang Ninh 13 30 Quang Tri 25 64 Soc Trang 52 65 Son La 05 32 Tay Ninh 37 33 Thai Binh 20 35 Thai Nguyen 69 85 Thanh Hoa 21 34 Thua Thien-Hue 26 66 Tien Giang 46 37 Tra Vinh 51 67 Tuyen Quang 07 68 Vinh Long 49 69 Vinh Phuc 70 86 Yen Bai 06 70 VANUATU VU Malampa MAP 16 Pénama PAM 17 Sanma SAM 13 Shéfa SEE 18 Taféa TAE 15 Torba TOB 07 SAMOA WS A'ana AA Aiga-i-le-Tai AL Atua AT Fa'asaleleaga FA Gaga'emauga GE Gagaifomauga GI Palauli PA Satupa'itea SA Tuamasaga TU Va'a-o-Fonoti VF Vaisigano VS YEMEN YE Abyan AB Adan AD Al Bayha' BA Al Hudaydah HU Al Jawf JA Al Mahrah MR Al Mahwit MW Dhamar DH Hahramawt HD Hajjah HJ Ibb IB Lahij LA Ma'rib MA Sahdah SD Sanha' SN Shabwah SH Tahizz TA SERBIA AND MONTENEGRO CS Crna Gora CG republic Srbija SR republic Kosovo-Metohija KM CS-SR autonomous province Vojvodina VO CS-SR autonomous province SOUTH AFRICA ZA Eastern Cape EC 05 Free State FS 03 Gauteng GT 06 Kwazulu-Natal NL 02 Mpumalanga MP 07 Northern Cape NC 08 Northern Province NP 09 North-West NW 10 Western Cape WC 11 ZAMBIA ZM Central 02 Copperbelt 08 Eastern 03 Luapula 04 Lusaka 09 Northern 05 North-Western 06 Southern 07 Western 01 ZIMBABWE ZW Bulawayo BU Harare HA Manicaland MA Mashonaland Central MC Mashonaland East ME Mashonaland West MW Masvingo MV Matabeleland North MN Matabeleland South MS Midlands MI GEORGIA GE Abkhazia AB autonomous republic Ajaria AJ autonomous republic Guria GU region Imereti IM region Kakheti KA region Kvemo Kartli KK region Mtskheta-Mtianeti MM region Racha-Lechkhumi [and] Kvemo Svaneti RL region Samegrelo-Zemo Svaneti SZ region Samtskhe-Javakheti SJ region Shida Kartli SK region Tbilisi TB city TIMOR-LESTE TL Aileu AL Ainaro AN Baucau BA Bobonaro BO Cova Lima CO Dili DI Ermera ER Lautem LA Liquiça LI Manatuto MT Manufahi MF Oecussi OE Viqueque VI UGANDA UG Adjumani 301 N Bugiri 201 E Busia 202 E Katakwi 207 E Nakasongola 109 C Sembabule 111 C BURUNDI BI Mwaro MW ECUADOR EC Orellana D ETHIOPIA ET Dire Dawa DD administration KYRGYZSTAN KG Bishkek GB city Batken B region CAMBODIA KH Krong Pailin [Krong Pailin] 24 autonomous municipality ROMANIA RO Ilfov IF department SLOVENIA SI Ajdovšcina 001 Beltinci 002 Benedikt 148 Bistrica ob Sotli 149 Bled 003 Bloke 150 Bohinj 004 Borovnica 005 Bovec 006 Braslovce 151 Brda 007 Brezovica 008 Brežice 009 Cankova 152 Celje 011 Cerklje na Gorenjskem 012 Cerknica 013 Cerkno 014 Cerkvenjak 153 Crenšovci 015 Crna na Koroškem 016 Crnomelj 017 Destrnik 018 Divaca 019 Dobje 154 Dobrepolje 020 Dobrna 155 Dobrova-Polhov Gradec 021 Dobrovnik 156 Dol pri Ljubljani 022 Dolenjske Toplice 157 Domžale 023 Dornava 024 Dravograd 025 Duplek 026 Gorenja vas-Poljane 027 Gorišnica 028 Gornja Radgona 029 Gornji Grad 030 Gornji Petrovci 031 Grad 158 Grosuplje 032 Hajdina 159 Hoce-Slivnica 160 Hodoš 161 Horjul 162 Hrastnik 034 Hrpelje-Kozina 035 Idrija 036 Ig 037 Ilirska Bistrica 038 Ivancna Gorica 039 Izola 040 Jesenice 041 Jezersko 163 Juršinci 042 Kamnik 043 Kanal 044 Kidricevo 045 Kobarid 046 Kobilje 047 Kocevje 048 Komen 049 Komenda 164 Koper 050 Kostel 165 Kozje 051 Kranj 052 Kranjska Gora 053 Križevci 166 Krško 054 Kungota 055 Kuzma 056 Laško 057 Lenart 058 Lendava 059 Litija 060 Ljubljana 061 Ljubno 062 Ljutomer 063 Logatec 064 Loška dolina 065 Loški Potok 066 Lovrenc na Pohorju 167 Luce 067 Lukovica 068 Majšperk 069 Maribor 070 Markovci 168 Medvode 071 Mengeš 072 Metlika 073 Mežica 074 Miklavž na Dravskem polju 169 Miren-Kostanjevica 075 Mirna Pec 170 Mislinja 076 Moravce 077 Moravske Toplice 078 Mozirje 079 Murska Sobota 080 Muta 081 Naklo 082 Nazarje 083 Nova Gorica 084 Novo mesto 085 Odranci 086 Oplotnica 171 Ormož 087 Osilnica 088 Pesnica 089 Piran 090 Pivka 091 Podcetrtek 092 Podlehnik 172 Podvelka 093 Polzela 173 Postojna 094 Prebold 174 Preddvor 095 Prevalje 175 Ptuj 096 Puconci 097 Race-Fram 098 Radece 099 Radenci 100 Radlje ob Dravi 101 Radovljica 102 Ravne na Koroškem 103 Razkrižje 176 Ribnica 104 Ribnica na Pohorju 177 Rogaška Slatina 106 Rogašovci 105 Rogatec 107 Ruše 108 Selnica ob Dravi 178 Semic 109 Sevnica 110 Sežana 111 Slovenj Gradec 112 Slovenska Bistrica 113 Slovenske Konjice 114 Sodražica 179 Solcava 180 Starše 115 Sveta Ana 181 Sveti Andraž v Slovenskih goricah 182 Sveti Jurij 116 Šalovci 033 Šempeter-Vrtojba 183 Šencur 117 Šentilj 118 Šentjernej 119 Šentjur pri Celju 120 Škocjan 121 Škofja Loka 122 Škofljica 123 Šmarje pri Jelšah 124 Šmartno ob Paki 125 Šmartno pri Litiji 194 Šoštanj 126 Štore 127 Tabor 184 Tišina 010 Tolmin 128 Trbovlje 129 Trebnje 130 Trnovska vas 185 Tržic 131 Trzin 186 Turnišce 132 Velenje 133 Velika Polana 187 Velike Lašce 134 Veržej 188 Videm 135 Vipava 136 Vitanje 137 Vodice 138 Vojnik 139 Vransko 189 Vrhnika 140 Vuzenica 141 Zagorje ob Savi 142 Zavrc 143 Zrece 144 Žalec 190 Železniki 146 Žetale 191 Žiri 147 Žirovnica 192 Žužemberk 193 UZBEKISTAN UZ Toshkent TK city VENEZUELA VE Vargas X state HONDURAS HN Ocotepeque OC 14 MALAYSIA MY Wilayah Persekutuan Putrajaya 16 federal territory TANZANIA, UNITED REPUBLIC OF TZ Manyara 26 UGANDA UG Kaberamaido 213 E Kamwenge 413 W Kanungu 414 W Kayunga 112 C Kyenjojo 415 W Mayuge 214 E Nakapiripirit 311 N Pader 312 N Sironko 215 E Wakiso 113 C Yumbe 313 N LIBYAN ARAB JAMAHIRIYA LY Ajdabiya AJ Al Hizam al Akhhar HZ Al Jifarah JI Al Kufrah KF Al Marj MJ Al Marqab MB Al Qatrun QT Al Qubbah QB An Nuqat al Khams NQ Ash Shati' SH Bani Walid BW Darnah DR Ghadamis GD Gharyan GR Ghat GT Jaghbub JB Mizdah MZ Murzuq MQ Nalut NL Sabha SB Sabratah Surman SS Surt SR Tajura' wa an Nawahi Arbah TN Tarhunah-Masallatah TM Wadi al Hayat WD Yafran-Jadu YJ TUNISIA TN Manouba 14 GUYANA GY Cuyuni-Mazaruni CU 11 Demerara-Mahaica DE 12 East Berbice-Corentyne EB 13 Essequibo Islands-West Demerara ES 14 Mahaica-Berbice MA 15 Pomeroon-Supenaam PM 16 Potaro-Siparuni PT 17 Upper Demerara-Berbice UD 18 Upper Takutu-Upper Essequibo UT 19 ANGUILLA AI SINGAPORE SG NETHERLANDS ANTILLES AN ANTARCTICA AQ ARUBA AW BOUVET ISLAND BV COCOS (KEELING) ISLANDS CC COOK ISLANDS CK VIRGIN ISLANDS, BRITISH VG VIRGIN ISLANDS, U.S. VI WALLIS AND FUTUNA WF MAYOTTE YT AMERICAN SAMOA AS HOLY SEE (VATICAN CITY STATE) VA MALTA MT NORTHERN MARIANA ISLANDS MP MONACO MC BRITISH INDIAN OCEAN TERRITORY IO HEARD ISLAND AND MCDONALD ISLANDS HM GUAM GU SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS GREENLAND/GROENLAND GL GIBRALTAR GI FAROE ISLANDS FO FALKLAND ISLANDS (MALVINAS) FK WESTERN SAHARA EH TOKELAU TK FRENCH SOUTHERN TERRITORIES TF TURKS AND CAICOS ISLANDS TC SVALBARD AND JAN MAYEN SJ PALESTINIAN TERRITORY PS PUERTO RICO PR PITCAIRN PN SAINT PIERRE AND MIQUELON PM NIUE NU NORFOLK ISLAND NF CHRISTMAS ISLAND CX ANTIGUA AND BARBUDA AG BERMUDA BM BARBADOS BB ANDORRA AD Andorra la Vella AN 07 Canillo CA 02 Encamp EN 03 Escaldes-Engordany EE 08 La Massana MA 04 Ordino OR 05 Sant Julià de Lòria JL 06 MONTSERRAT MS MARTINIQUE MQ MACAO MO MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK LIECHTENSTEIN LI SAINT LUCIA LC CAYMAN ISLANDS KY SAINT VINCENT AND THE GRENADINES VC SAINT KITTS AND NEVIS KN GUADELOUPE GP FRENCH GUIANA GF GRENADA GD Carriacou CA Saint Andrew AN 1 Saint David DA 2 Saint George GE 3 Saint John JO 4 Saint Mark MA 5 Saint Patrick PA 6 DOMINICA DM TUVALU TV NAURU NR SEYCHELLES SC Xacobeo-0.15/tests/empty-pi.xml000444001750001750 5012211074713 20256 0ustar00erodriguezerodriguez000000000000 Xacobeo-0.15/tests/beers.xml000444001750001750 120012211074713 17650 0ustar00erodriguezerodriguez000000000000
NameOriginDescription
Huntsman Bath, UK
BitterFuggles Wonderful hop, light alcohol, good summer beer Fragile; excessive variance pub to pub
Xacobeo-0.15/tests/sample.xml000444001750001750 227112211074713 20042 0ustar00erodriguezerodriguez000000000000 ]>

there's an &entity; here & here are double quotes "

20011022

>

This is an embedded tag: <tag>

Is the attribute escaped?

Is the attribute escaped? we got

same as in above $var > 4 ? 'bigger' : "smaller"

(*) Is the '&' in the attribute escaped? ❤

]]> Hello, world!]]> pi="a&b"?>
Xacobeo-0.15/tests/empty.xml000444001750001750 012211074713 17623 0ustar00erodriguezerodriguez000000000000Xacobeo-0.15/tests/namespaces.xml000444001750001750 210412211074713 20673 0ustar00erodriguezerodriguez000000000000

Some text with markup.

More text Namespace 'c'

This is in the namespace 'x' ('default')

Namespace 'a' and parent uses 'y' ('default1') This is in the namespace 'c' even if the prefix tells 'a' and this is in the namespace 'a' even if the prefix tells 'c' while this is back into the default namespace Default NS is 'a' and this node is too in 'a'
Xacobeo-0.15/tests/sample.xml.expected000444001750001750 227012211074713 21641 0ustar00erodriguezerodriguez000000000000 ]>

there's an &entity; here & here are double quotes "

20011022

>

This is an embedded tag: <tag>

Is the attribute escaped?

Is the attribute escaped? we got

same as in above $var > 4 ? 'bigger' : "smaller"

(*) Is the '&' in the attribute escaped? ❤

]]> Hello, world!]]> pi="a&b"?>
Xacobeo-0.15/lib000755001750001750 012211074713 15304 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/lib/Xacobeo.pm000444001750001750 450312211074713 17361 0ustar00erodriguezerodriguez000000000000package Xacobeo; =encoding utf8 =head1 NAME Xacobeo - XPath (XML Path Language) visualizer. =head1 SYNOPSIS xacobeo file [xpath] =head1 DESCRIPTION This program provides a simple graphical user interface (GUI) for executing XPath queries and seeing their results. The GUI tries to provide all the elements that are needed in order to write, test and execute XPath queries without too many troubles. It displays the Document Object Model (DOM) and the namespaces used. The program registers the namespaces automatically and each element is displayed with its associated namespaces. All is performed with the idea of being able of running an XPath query as soon as possible without having to fight with the document's namespaces and by seeing automatically under which namespace each element is. =head1 RATIONALE The main idea behind this application is to provide a simple way for building XPath queries that will be latter integrated in to a program or XSLT transformation paths. Therefore, this program goal is to load an XML document and to display it as an XML parser sees it. Thus each node element is prefixed with its namespace. =head1 IMPLEMENTATION This program uses L (libxml2) for all XML manipulations and L for the graphical interface. =head1 LIMITATIONS For the moment, the program focuses only on XPath and doesn't allow the XML document to be edited. =head1 PROJECT The project is hosted on Google Code (http://xacobeo.googlecode.com/) which provides the latest source code (SVN trunk) and a simple bug tracking. Although Google Code provides a download facility, the project's source code bundles will always be published through CPAN. It's easier this way for the project and after all this is a Perl project! =head1 BUGS Please when possible try to submit the bugs through the Google Code Issue Tracker (http://code.google.com/p/xacobeo/issues/list) otherwise simply create a ticket through RT. =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut use strict; use warnings; our $VERSION = '0.15'; # A true value 1; Xacobeo-0.15/lib/Xacobeo000755001750001750 012211074713 16664 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/lib/Xacobeo/Timer.pm000444001750001750 641312211074713 20443 0ustar00erodriguezerodriguez000000000000package Xacobeo::Timer; =encoding utf8 =head1 NAME Xacobeo::Timer - A custom made timer. =head1 SYNOPSIS use Xacobeo::Timer; # As a one time use my $timer = Xacobeo::Timer->start("Long operation"); do_long_operation(); $timer->elapsed(); # Displays the time elapsed # A simple stop watch (the destructor displays the time elapsed) my $TIMER = Xacobeo::Timer->new("Method calls"); sub hotspot { $TIMER->start(); # Very slow stuff here $TIMER->stop(); } =head1 DESCRIPTION This package provides a very simple timer. This timer is used for finding hot spots in the application. The timer is quite simple it provides the method L that starts the timer and the method L that stops the timer and accumulates the elapsed time. The method L can be used to print the time elapsed so far while the method L returns the time elapsed so far. When an instance of this class dies (because it was undefed or collected by the garbage collector) the builtin Perl desctrutor will automatically call the method L. But if the method I or I was called during the lifetime of the instance then the destructor will not invoke the method I. =head1 METHODS The package defines the following methods: =cut use 5.006; use strict; use warnings; use Time::HiRes qw(time); use Xacobeo::I18n qw(__); =head2 new Creates a new Timer. Parameters: =over =item * $name (Optional) The name of the timer. =back =cut sub new { my ($class, $name) = @_; my $self = { elapsed => 0, name => $name, }; bless $self, ref($class) || $class; return $self; } =head2 start Starts the timer. If this sub is called without a blessed instance then a new Timer will be created. Parameters: =over =item * $name (optional) The name is used only when called without a blessed instance. =back =cut sub start { my ($self, @params) = @_; if (!ref $self) { $self = $self->new(@params); } $self->{start} = time; return $self; } =head2 stop Stops the timer and adds accumulates the elapsed time. If the timer wasn't started previously this results in a no-op. =cut sub stop { my $self = shift; my $start = delete $self->{start}; if (defined $start) { $self->{elapsed} += time - $start; } return $self; } =head2 show Prints the elapsed time. This method stops the timer if it was started previously and wasn't stopped. =cut sub show { my $self = shift; if ($self->{start}) { $self->stop(); } my $name = $self->{name}; printf __("Time: %-20s %.4fs\n"), (defined $name ? $name : __('Unnamed')), $self->elapsed ; return $self; } =head2 elapsed Returns the total time elapsed so far. If the timer was already started the pending time will not be taking into account. =cut sub elapsed { my $self = shift; $self->{displayed} = 1; return $self->{elapsed}; } sub DESTROY { my $self = shift; $self->show() unless $self->{displayed}; return; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/I18n.pm000444001750001750 1107712211074713 20124 0ustar00erodriguezerodriguez000000000000package Xacobeo::I18n; =head1 NAME Xacobeo::I18n - Utilities for internationalization (i18n). =head1 SYNOPSIS # Initialize the i18n framework (done once) use FindBin; use Xacobeo::I18n; Xacobeo::I18n->init("$FindBin::Bin/../share/locale/"); # Import the i18n utilities (used everywhere where i18n is needed) use Xacobeo::I18n; print __("Hello world"), "\n"; =head1 DESCRIPTION This package provides utilities that perform i18n. This module relies on gettext. The initialization of the i18n framework should be performed only once, preferably as soon as possible. Once the framework is initialized any module requiring to translate a string can include this module. This module exports automatically the shortcut functions used for translating messages. This is done in order to make the translation transparent. =head1 FUNCTIONS The following functions are available: =cut use strict; use warnings; use XML::LibXML; use Locale::Messages qw(dgettext dngettext textdomain bindtextdomain); use Encode qw(decode); use Exporter 'import'; our @EXPORT = qw( __ __x __n __nx __xn ); # The text domain of the application. my $DOMAIN = 'xacobeo'; =head2 __ Translates a single string through gettext. Parameters: =over =item * $string The string to translate. =back =cut sub __ { my ($msgid) = @_; return dgettext_utf8($msgid); } =head2 __x Translates a string that uses place holders for variable substitution. Parameters: =over =item * $string The string to translate. =item * %values A series of key/value pairs that will be replacing the place holders. =back =cut sub __x { my ($msgid, %args) = @_; my $i18n = dgettext_utf8($msgid); return expand($i18n, %args); } =head2 __n Translates a string in either singular or plural. Parameters: =over =item * $singular The string in its singular form (one item). =item * $plural The string in its plural form (more than one item). =item * $count The number of items. =item * %values A series of key/value pairs that will be replacing the place holders. =back =cut sub __n { my ($msgid, $msgid_plural, $count) = @_; my $i18n = dngettext_utf8($msgid, $msgid_plural, $count); return $i18n; } =head2 __nx Translates a string in either singular or plural with variable substitution. Parameters: =over =item * $singular The string in its singular form (one item). =item * $plural The string in its plural form (more than one item). =item * $count The number of items. =back =cut sub __nx { my ($msgid, $msgid_plural, $count, %args) = @_; my $i18n = dngettext_utf8($msgid, $msgid_plural, $count); return expand($i18n); } =head2 __xn Same as L. Parameters: =over =item * $singular The string in its singular form (one item). =item * $plural The string in its plural form (more than one item). =item * $count The number of items. =back =cut sub __xn { my ($msgid, $msgid_plural, $count, %args) = @_; return __nx($msgid, $msgid_plural, $count, %args); } =head2 domain Returns the translation domain. =cut sub domain { return $DOMAIN; } # # Replaces the place markers with their corresponding values. # sub expand { my ($i18n, %args) = @_; my $re = join q{|}, map { quotemeta $_ } keys %args; $i18n =~ s{ [{] ($re) [}] # capture expressions in literal curlies }{ defined $args{$1} ? $args{$1} : "{$1}" }egmsx; # and replace all return $i18n; } # # Calls dgettext and ensures that the converted text is in UTF-8. # sub dgettext_utf8 { my ($msgid) = @_; my $i18n = dgettext($DOMAIN, $msgid); return decode('UTF-8', $i18n); } # # Calls dngettext and ensures that the converted text is in UTF-8. # sub dngettext_utf8 { my ($msgid, $msgid_plural, $count) = @_; my $i18n = dngettext($DOMAIN, $msgid, $msgid_plural, $count); return decode('UTF-8', $i18n); } =head2 init Initializes the i18n framework (gettext). Must be called in the fashion: Xacobeo::I18n->init($folder); Parameters: =over =item * $folder The folder where to find the translation files. For instance for the translation F the folder F has to be provided. =back =cut sub init { my (undef, $folder) = @_; textdomain($DOMAIN); bindtextdomain($DOMAIN, $folder); return; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/GObject.pm000444001750001750 575012211074713 20703 0ustar00erodriguezerodriguez000000000000package Xacobeo::GObject; =head1 NAME Xacobeo::GObject - Build GObjects easily. =head1 SYNOPSIS package My::Widget; use Xacobeo::GObject; Xacobeo::GObject->register_package('Gtk2::Entry' => properties => [ Glib::ParamSpec->object( 'ui-manager', 'UI Manager', "The UI Manager that provides the UI", 'Gtk2::UIManager', ['readable', 'writable'], ), ], ); # Builtin constructor my $widget = My::Widget->new(); # Set the property and fires the signal 'notify::ui-manager' $widget->set_ui_manager(Gtk2::UIManager->new); # Get the property $widget->get_ui_manager; # Direct accessor/setter (the setter doesn't fire any signal) $widget->ui_manager; =head1 DESCRIPTION Simple framework for building GObjects. This package is very similar to C except this one create accessors and setters for the object properties. =cut use strict; use warnings; use Glib; use Carp; use Data::Dumper; sub register_package { my $self = shift; my $class = caller; $self->register_object($class, @_); } sub register_object { croak "Missing a class and parent class" unless @_ > 2; my (undef, $class, $parent, %args) = @_; Glib::Type->register_object($parent, $class, %args); # Make the class an instance of Glib::Object do { no strict 'refs'; unshift @{ "${class}::ISA" }, 'Glib::Object'; }; # For each property define a get_/set_ method if (my $properties = $args{properties}) { foreach my $property (@{ $properties }) { my $name = $property->{name}; my $key = $property->get_name; # The accessor: $value = $self->get_property define_method($class, "get_$key", sub { return $_[0]->{$key}; }); # The setter: $self->set_property($value) define_method($class, "set_$key", sub { $_[0]->set($name, $_[1]); }); # Generic getter/setter which doesn't fire the 'notify' signal: # $value = $self->property; # $self->property($value); define_method($class, $key, sub { return @_ > 1 ? $_[0]{$key} = $_[1] : $_[0]{$key}; }); } } } sub define_method { my ($class, $method, $code) = @_; return if $class->can($method); # Error handling that reports the error as hapenning on the caller my $sub = sub { my ($return, @return); my $wantarray = wantarray; eval { if ($wantarray) { @return = $code->(@_); } else { $return = $code->(@_); } 1; } or do { # Tell the caller that this is their fault and not ours my $error = $@; $error =~ s/ at .*? line \d+\.\n$//; croak $error; }; return $wantarray ? @return : $return; }; no strict 'refs'; *{"${class}::${method}"} = $sub; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Document.pm000444001750001750 2425112211074713 21161 0ustar00erodriguezerodriguez000000000000package Xacobeo::Document; =head1 NAME Xacobeo::Document - An XML document and its related information. =head1 SYNOPSIS use Xacobeo::Document; my $document = Xacobeo::Document->new_from_file('file.xml', 'xml'); my $namespaces = $document->get_namespaces(); # Hashref while (my ($uri, $prefix) = each %{ $namespaces }) { printf "%-5s: %s\n", $prefix, $uri; } my $nodes = $document->find('/x:html//x:a[@href]'); foreach my $node ($nodes->get_nodelist) { print "Got node ", $node->name, "\n"; } $document->validate('/x:html//x:a[@href]') or die "Invalid XPath expression"; =head1 DESCRIPTION This class wraps an XML document with its corresponding meta information (namespaces, XPath context, document node, etc). It inherits from L. =head1 PROPERTIES The following properties are defined: =head2 source The source of the document. In most cases this will be a path or an URI pointing to the document. =head2 type The type of document 'xml' or 'html'. =head2 documentNode The document's main node (an instance of L). =head2 xpath The XPath conext to be used with the document. =head2 namespaces An hashref with the namespaces registered in the document. =head1 METHODS The package defines the following methods: =cut use strict; use warnings; use XML::LibXML qw(XML_XML_NS); use Data::Dumper; use Carp qw(croak); use Xacobeo::I18n; use Xacobeo::GObject; Xacobeo::GObject->register_package('Glib::Object' => properties => [ Glib::ParamSpec->scalar( 'source', "Document Source", "The document's source", ['readable', 'writable', 'construct-only'], ), # FIXME type should be an enum Glib::ParamSpec->scalar( 'type', "Document Type", "The document's source", ['readable', 'writable', 'construct-only'], ), Glib::ParamSpec->scalar( 'documentNode', "Document Node", "The document's main node", ['readable', 'writable'], ), Glib::ParamSpec->scalar( 'xpath', "XPath context", "The XPath context to be used for searching the document", ['readable', 'writable'], ), Glib::ParamSpec->scalar( 'namespaces', "Document namespaces", "The namespaces used in the document", ['readable', 'writable'], ), ], ); =head2 new_from_file Creates a new instance from a file (an URI should also be valid). Parameters: $source: the source of the document, this can be a filename or an URI. $type: the type of document: C or C. =cut sub new_from_file { my ($class, $source, $type) = @_; if (! (defined $source && defined $type)) { croak 'Usage: ', __PACKAGE__, '->new_from_file($source, $type)' } # Parse the document my $parser = _construct_xml_parser(); my $document_node; if (! defined $type) { croak __("Parameter 'type' must be defined"); } elsif ($type eq 'xml') { $document_node = $parser->parse_file($source); } elsif ($type eq 'html') { $document_node = $parser->parse_html_file($source); } my $self = $class->new( source => $source, type => $type, documentNode => $document_node, ); return $self; } =head2 new_from_string Creates a new instance from a string. Parameters: $content: the contents of the document. $type: the type of document: C or C. =cut sub new_from_string { my ($class, $content, $type) = @_; if (! (defined $content && defined $type)) { croak 'Usage: ', __PACKAGE__, '->new_from_string($content, $type)' } # Parse the document my $parser = _construct_xml_parser(); my $document_node; if (! defined $type) { croak __("Parameter 'type' must be defined"); } elsif ($type eq 'xml') { $document_node = $parser->parse_string($content); } elsif ($type eq 'html') { $document_node = $parser->parse_html_string($content); } my $self = $class->new( source => 'string', type => $type, documentNode => $document_node, ); return $self; } =head2 empty Returns an empty document. =cut sub empty { my ($class) = @_; my $empty = XML::LibXML->createDocument(); my $self = $class->new( source => undef, type => 'empty', documentNode => $empty, ); return $self; } # # Finish the creation of a new instance. This constructor shouldn't be called # by external code. Instead use one of the others builtin constructors. # sub new { my $class = shift; my $self = $class->SUPER::new(@_); # Find the namespaces my $document_node = $self->documentNode; my $namespaces = _get_all_namespaces($document_node); $self->namespaces($namespaces); # Create the XPath context my $xpath_context = $self->_create_xpath_context(); $self->xpath($xpath_context); return $self; } =head2 source The source of the document: most likely a file path or an URI. =head2 type The type of document: I or I. =head2 namespaces Returns the namespaces declared in the document. The namespaces are returned in a hashref where the URIs are used as a key and the prefix as a value. =head2 documentNode Returns the document's node (an instance of L). =head2 xpath Returns the XPath context (an instance of L) that includes the namespaces declared in the document. This is the context used to execute all XPath queries. =cut =head2 find Runs the given XPath query on the document and returns the results. The results could be a node list or a single value like a boolean, a number or a scalar if an expression is passed. This method always return its values in scalar context. This method croaks if the expression can't be evaluated. Parameters: $xpath: the XPath expression to execute. =cut sub find { my ($self, $xpath) = @_; croak __("Document node is missing") unless defined $self->documentNode; my $result; eval { $result = $self->xpath->find($xpath, $self->documentNode); 1; } or croak $@; return $result; } =head2 validate Validates the syntax of the given XPath query. The syntax is validated within a context that has the same namespaces as the ones defined in the current XML document. B: This method can't validate if undefined functions or variables are used. Parameters: $xpath: the XPath expression to validate. =cut sub validate { my ($self, $xpath) = @_; # Validate the XPath expression in an empty document, this is a performance # trick. If the XPath expression is something insane '//*' we don't want to # take for ever just for a validation. my $empty = XML::LibXML->createDocument(); eval { $self->xpath->find($xpath, $empty); 1; } or return; return 1; } =head2 get_prefixed_name Returns the node name by prefixing it with our prefixes in the case where namespaces are used. =cut sub get_prefixed_name { my ($self, $node) = @_; my $name = $node->localname; my $uri = $node->namespaceURI(); # Check if the node uses a namespace if so return the name with our prefix if (defined $uri and my $namespace = $self->{namespaces}{$uri}) { return "$namespace:$name"; } return $name; } # # Creates and setups the internal XML parser to use by this instance. # sub _construct_xml_parser { my $parser = XML::LibXML->new(); $parser->line_numbers(1); $parser->recover_silently(1); $parser->complete_attributes(0); $parser->expand_entities(0); return $parser; } # # Finds every namespace declared in the document. # # Each prefix is warrantied to be unique. The function will assign the first # prefix seen for each namespace. # # NOTE: libxml2 assumes that the prefix 'xml' is is bounded to the URI # http://www.w3.org/XML/1998/namespace, therefore this namespace will # always be returned even if it's not declared in the document. # # The prefixes are returned in an hash ref of type ($uri => $prefix). # sub _get_all_namespaces { my ($node) = @_; # Find the namespaces ($uri -> $prefix) my %seen = ( XML_XML_NS() => [xml => XML_XML_NS()], ); # %seen will look like this: # ( # 'http://www.example.org/a' => ['a', 'http://www.example.org/a',], # 'http://www.example.org/b' => ['b', 'http://www.example.org/b',], # 'http://www.example.org/c' => ['c', 'http://www.example.org/c',], # 'http://www.w3.org/XML/1998/namespace' => # ['xml', 'http://www.w3.org/XML/1998/namespace',], # ) # Namespaces found following the document order my @namespaces = (values %seen); if ($node) { foreach my $namespace ($node->findnodes('.//namespace::*')) { my $uri = $namespace->getData; my $name = $namespace->getLocalName; if (! defined $uri) { warn __x("Namespace {name} has no URI", name => $name); $uri = ''; } # If the namespace was seen before make sure that we have a decent prefix. # Maybe the previous time there was no prefix associated. if (my $namespace_record = $seen{$uri}) { $namespace_record->[0] ||= $name; next; } # First time that this namespace is seen my $namespace_record = [$name => $uri]; $seen{$uri} = $namespace_record; push @namespaces, $namespace_record; } } # Make sure that the prefixes are unique. my %cleaned; my $namespaces = {}; my $index = 0; foreach my $namespace_record (@namespaces) { my ($prefix, $uri) = @{ $namespace_record }; # Don't provide a namespace prefix for the default namespace (xmlns="") next if ! defined $prefix && $uri eq ""; # Make sure that the prefixes are unique if (not defined $prefix or exists $cleaned{$prefix}) { # Assign a new prefix until unique do { $prefix = 'ns' . ($index || ''); ++$index; } while (exists $cleaned{$prefix}); } $cleaned{$prefix} = $uri; $namespaces->{$uri} = $prefix; } return $namespaces; } # # Creates an XPath context which will have the namespaces of the current # document registered. # sub _create_xpath_context { my $self = shift; my $context = XML::LibXML::XPathContext->new(); # Add the namespaces to the XPath context while (my ($uri, $prefix) = each %{ $self->namespaces }) { $context->registerNs($prefix, $uri); } return $context; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Conf.pm000444001750001750 607312211074713 20252 0ustar00erodriguezerodriguez000000000000package Xacobeo::Conf; =head1 NAME Xacobeo::Conf - Application's configuration. =head1 SYNOPSIS use Xacobeo::Conf; my $conf = Xacobeo::Conf->get_conf; my $icon = $conf->share_file('images', 'xacobeo.png'); # /usr/share/images/xacobeo.png my $po_folder = $conf->share_folder('locale'); # /usr/share/locale =head1 DESCRIPTION Utility class that provides a way for accessing all configuration parameters that are needed at runtime.. =head1 PROPERTIES The following properties are defined: =head2 dir The root directory where the application has been installed. =head1 METHODS The following methods are available: =cut use strict; use warnings; use FindBin; use File::Spec::Functions; use File::BaseDir; use Xacobeo::GObject; Xacobeo::GObject->register_package('Glib::Object' => properties => [ Glib::ParamSpec->scalar( 'dir', "Dir", "The root folder of the application's installation", ['readable', 'writable', 'construct-only'], ), ], ); my $XDG = File::BaseDir->new(); my $INSTANCE = __PACKAGE__->init(); =head2 get_conf Returns the current configuration instance. This class is a singleton so there's no constructor. =cut sub get_conf { return $INSTANCE; } sub init { my $class = shift; my ($dir) = @_; $dir ||= find_app_folder(); $INSTANCE = $class->SUPER::new(dir => $dir); } =head2 share_dir Returns the path of a folder in the application's I directory. Parameters: =over =item * @path The path parts relative to the share directory. =back =cut sub share_dir { my $self = shift; return catdir($self->dir, 'share', @_); } =head2 share_file Returns the path of a file in the application's I directory. Parameters: =over =item * @path The path parts relative to the share directory. =back =cut sub share_file { my $self = shift; return catfile($self->dir, 'share', @_); } =head2 app_name Returns the application's name. =cut sub app_name { return "Xacobeo"; } =head2 plugin_folders Returns the folders that are scanned for plugins. =cut sub plugin_folders { my $self = shift; my %seen; return map { $seen{$_}++ ? () : catdir($_, 'xacobeo', 'plugins') } $XDG->config_home, $XDG->config_dirs ; } # Return the root folder of the application once installed. The 'root' folder is # the one where the installation is done, the root folder hierarchy is as # follows: # # (root) # |-- bin # |-- lib # | `-- perl5 # | |-- Xacobeo # | `-- i486-linux-gnu-thread-multi # | `-- Xacobeo # | `-- auto # | `-- Xacobeo # |-- man # | |-- man1 # | `-- man3 # `-- share # |-- applications # |-- pixmaps # `-- xacobeo sub find_app_folder { return catdir($FindBin::Bin, '..'); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Utils.pm000444001750001750 1762712211074713 20514 0ustar00erodriguezerodriguez000000000000package Xacobeo::Utils; =head1 NAME Xacobeo::Utils - Utilities. =head1 SYNOPSIS use Xacobeo::Utils qw(:dom :xml); if (isa_dom_text($node)) { my $text = escape_xml_text($node->nodeValue); print "$text\n"; } =head1 DESCRIPTION This package provides utility functions that are shared among the different modules in this project. =head1 IMPORTS The following import tags are defined: =head2 :xml Import the XML utilities. =head2 :dom Imports the DOM utilities. =head1 FUNCTIONS The following functions are available: =cut use strict; use warnings; use XML::LibXML; use Exporter 'import'; our @EXPORT_OK = qw( escape_xml_text escape_xml_attribute isa_dom_document isa_dom_element isa_dom_attr isa_dom_nodelist isa_dom_text isa_dom_comment isa_dom_literal isa_dom_boolean isa_dom_number isa_dom_node isa_dom_pi isa_dom_dtd isa_dom_cdata isa_dom_namespace scrollify ); our %EXPORT_TAGS = ( 'xml' => [ qw( escape_xml_text escape_xml_attribute ) ], 'dom' => [ qw( isa_dom_document isa_dom_element isa_dom_attr isa_dom_nodelist isa_dom_text isa_dom_comment isa_dom_literal isa_dom_boolean isa_dom_number isa_dom_node isa_dom_pi isa_dom_dtd isa_dom_cdata isa_dom_namespace ) ], 'ui' => [ qw( scrollify ) ], ); # The default entities defined in the XML spec my %ENTITIES = qw( < < > > & & ' ' " " ); =head2 escape_xml_text Escapes the text as if would be added to a Text node. This function escapes only the entities <, > and &. Parameters: =over =item * $string The string to escape. =back =cut sub escape_xml_text { my ($string) = @_; $string =~ s{ ( [<>&] ) # capture any literal < > & }{ $ENTITIES{$1} }egmsx; # and replace all return $string; } =head2 escape_xml_attribute Escapes the text as if would be added to an Attribute. This function escapes the entities <, >, &, ' and ". Parameters: =over =item * $string The string to escape. =back =cut sub escape_xml_attribute { my ($string) = @_; $string =~ s{ ( [<>&'"] ) # capture any literal < > & ' " }{ $ENTITIES{$1} }egmsx; # and replace all return $string; } =head2 isa_dom_document Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_document { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Document') : 0; } =head2 isa_dom_element Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_element { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Element') : 0; } =head2 isa_dom_attr Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_attr { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Attr') : 0; } =head2 isa_dom_nodelist Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_nodelist { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::NodeList') : 0; } =head2 isa_dom_text Returns true if the node is a DOM C (instance of L). B: XML::LibXML considers that C and C nodes are also C nodes. This method doesn't consider a C nor a C node as being C nodes. Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_text { my ($node) = @_; return unless defined $node; return if isa_dom_comment($node) or isa_dom_cdata($node); return $node->isa('XML::LibXML::Text'); } =head2 isa_dom_comment Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_comment { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Comment') : 0; } =head2 isa_dom_node Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_node { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Node') : 0; } =head2 isa_dom_pi Returns true if the node is a DOM C (also known as: processing instruction) (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_pi { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::PI') : 0; } =head2 isa_dom_dtd Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_dtd { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Dtd') : 0; } =head2 isa_dom_cdata Returns true if the node is a DOM C (instance of L). Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_cdata { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::CDATASection') : 0; } =head2 isa_dom_namespace Returns true if the node is a C (instance of L). B: The DOM doesn't define an object type named C but XML::LibXML does so this function is named 'isa_dom' for consistency with the other functions. Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_namespace { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Namespace') : 0; } =head2 isa_dom_literal Returns true if the node is a C (instance of L). B: The DOM doesn't define an object type named C but XML::LibXML does so this function is named 'isa_dom' for consistency with the other functions. Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_literal { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Literal') : 0; } =head2 isa_dom_boolean Returns true if the node is a C (instance of L). B: The DOM doesn't define an object type named C but XML::LibXML does so this function is named 'isa_dom' for consistency with the other functions. Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_boolean { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Boolean') : 0; } =head2 isa_dom_number Returns true if the node is a C (instance of L). B: The DOM doesn't define an object type named C but XML::LibXML does so this function is named 'isa_dom' for consistency with the other functions. Parameters: =over =item * $node The node to check. =back =cut sub isa_dom_number { my ($node) = @_; return defined $node ? $node->isa('XML::LibXML::Number') : 0; } =head2 scrollify Wraps a widget in a scrolled window. Parameters: =over =item * $widget The widget to wrap. =item * $width The width of the scroll window. If C then -1 will be used. =item * $height The height of the scroll window. If C then -1 will be used. =back =cut sub scrollify { my ($widget, $width, $height) = @_; $width = -1 unless defined $width; $height = -1 unless defined $height; my $scroll = Gtk2::ScrolledWindow->new(); $scroll->set_policy('automatic', 'automatic'); $scroll->set_shadow_type('in'); $scroll->set_size_request($width, $height); $scroll->add($widget); return $scroll; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Plugin.pm000444001750001750 225712211074713 20623 0ustar00erodriguezerodriguez000000000000package Xacobeo::Plugin; =head1 NAME Xacobeo::Plugin - Parent class for all plugins. =head1 SYNOPSIS use strict; use warnings; use base 'Xacobeo::Plugin'; sub init { my ($self, $xacobeo) = @_; my ($window) = $xacobeo->get_windows(); $window->statusbar->display("Plugin Loaded!"); } # Finish the plugin with loaded __PACKAGE__->load(); =head1 DESCRIPTION Parent class for all plugins. It provides a common framework for all plugins. =head1 METHODS The package defines the following methods: =cut use strict; use warnings; use Data::Dumper; sub new { my $class = shift;; my $self = bless {}, ref($class) || $class; return $self; } sub init { my $self = shift; die "Plugin ", ref $self, " is missing the init method"; } sub load { my ($package) = caller; return $package->new(); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Accessors.pm000444001750001750 243112211074713 21304 0ustar00erodriguezerodriguez000000000000package Xacobeo::Accessors; =head1 NAME Xacobeo::Accessors - Generate accessors/setters easily. =head1 SYNOPSIS # Create $self->document and $self->xpath use Xacobeo::Accessors qw{ document xpath }; $self->document($document); validate($self->xpath); =head1 DESCRIPTION This package provides a utility for creating methods that work as accessors and setters. Usually L would have been used but it conflicts with GObject's system when extending a pure perl GObject. =head1 IMPORTS This package imports the methods listed in the import clause. =cut use strict; use warnings; sub import { my $class = shift; my @names = @_; my @caller = caller(1); my $package = $caller[3]; $package =~ s/::[^:]+$//; foreach my $name (@names) { my $sub = sub { return @_ > 1 ? $_[0]{$name} = $_[1] : $_[0]{$name}; }; { no strict 'refs'; *{"${package}::${name}"} = $sub; } } } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/App.pm000444001750001750 1101612211074713 20116 0ustar00erodriguezerodriguez000000000000package Xacobeo::App; =head1 NAME Xacobeo::App - Application =head1 SYNOPSIS use Xacobeo::App; my $xacobeo = Xacobeo::App->get_app(); my $window = $xacobeo->new_window(); $window->load_file($source, $type); $xacobeo->load_plugins(); # Start the main loop Gtk2->main(); =head1 DESCRIPTION Instance to the main application. This singleton is used to manage the life-time of the application, its widgets (specially the main windows) and to setup the application. =head1 PROPERTIES The following properties are defined: =head2 conf A reference to the main configuration singleton. =head2 windows The windows available. =head1 METHODS The package defines the following methods: =cut use strict; use warnings; use File::Spec::Functions; use Xacobeo::Conf; use Xacobeo::GObject; use Xacobeo::I18n; use Xacobeo::UI::Window; Xacobeo::GObject->register_package('Gtk2::Window' => properties => [ Glib::ParamSpec->scalar( 'windows', "Windows", "The windows openned so far", ['readable', 'writable', 'construct-only'], ), Glib::ParamSpec->object( 'conf', "Configuration", "A reference to the main configuration singleton", 'Xacobeo::Conf', ['readable', 'writable', 'construct-only'], ), ], ); my $INSTANCE = __PACKAGE__->init(); =head2 get_app Returns the current application instance. This class is a singleton so there's no constructor. =cut sub get_app { return $INSTANCE; } sub init { my $class = shift; my ($dir) = @_; my $conf = Xacobeo::Conf->get_conf; Xacobeo::I18n->init($conf->share_dir('locale')); $INSTANCE = $class->SUPER::new( windows => [], conf => $conf, ); } =head2 get_windows Returns the windows created so far. =cut sub get_windows { my $self = shift; return @{ $self->windows }; } =head2 new_window Creates a new window and shows it. =cut sub new_window { my $self = shift; my $window = Xacobeo::UI::Window->new(); $window->show_all(); $window->signal_connect(destroy => sub { $self->callback_destroy(@_); }); push @{ $self->{windows} }, $window; return $window; } sub callback_destroy { my $self = shift; my ($window) = @_; my @windows = grep { $_ != $window } @{ $self->windows }; $self->windows(\@windows); if (@windows == 0) { Gtk2->main_quit(); } } =head2 load_plugins Loads the plugins that are available. =cut sub load_plugins { my $self = shift; my $conf = $self->conf; # Load plugins foreach my $folder ($conf->plugin_folders) { next unless -d $folder; eval { opendir my $handle, $folder or die $!; while (my $entry = readdir $handle) { next if $entry =~ /^\./; my $file = catfile($folder, $entry); next if -d $file or ! -e $file; eval { $self->load_plugin($file); 1; } or do { warn __x("Failed to load plugin described by {file}; {error}", file => $file, error => $@); }; } closedir $handle; 1; } or do { warn __x("Failed to scan folder {folder}; {error}", folder => $folder, error => $@); }; } } =head2 load_plugin Loads a plugin based on the given description file. Parameters: =over =item * $file The file describing the plugin. =back =cut sub load_plugin { my $self = shift; my ($file) = @_; my $keyfile = Glib::KeyFile->new(); $keyfile->load_from_file($file, 'none'); my $group = 'Xacobeo Plugin'; if (! $keyfile->has_group($group)) { die __("File is not describing a Xacobeo plugin"); } my $plugin; if ($keyfile->has_key($group, 'Package')) { my $package = $keyfile->get_string($group, 'Package'); $plugin = eval qq{require $package;}; if ($@) { die __x("Error while load package {package}; {error}", package => $package, error => $@); } elsif (! $plugin) { die __x("Package {package} failed to return a plugin", package => $package); } } elsif ($keyfile->has_key($group, 'Script')) { my $script = $keyfile->get_string($group, 'Script'); $plugin = do $script; if ($@) { die __x("Can't load script {script}; {error}", script => $script, error => $@); } elsif (! $plugin) { die __x("Script {script} failed to return a plugin", script => $script); } } else { die __("File is missing the key Package or Script"); } $plugin->init($self); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/Error.pm000444001750001750 217212211074713 20452 0ustar00erodriguezerodriguez000000000000package Xacobeo::Error; =encoding utf8 =head1 NAME Xacobeo::Error - A simple wrapper over an error. =head1 SYNOPSIS use Xacobeo::Error; # As a one time use my $error = Xacobeo::Error->new(xpath => "Failed to parse Xpath expression"); die $error; =head1 DESCRIPTION This package provides a very simple, perhpaps too simple, error wrapper. This errors are meant to be used as exceptions. =head1 METHODS The package defines the following methods: =cut use 5.006; use strict; use warnings; use Glib; # Register a new error type BEGIN { my $enum = __PACKAGE__ . 'Code'; Glib::Type->register_enum($enum, 'xpath'); Glib::Error::register( ##no critic (ProhibitCallsToUnexportedSubs) __PACKAGE__, $enum # it is supposed to be called that way ); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/XS.pm000444001750001750 674312211074713 17723 0ustar00erodriguezerodriguez000000000000package Xacobeo::XS; =head1 NAME Xacobeo::XS - Functions rewritten in XS. =head1 SYNOPSIS use Xacobeo::XS; Xacobeo::XS->load_text_buffer($textview->get_buffer, $node, $namespaces); Xacobeo::XS->load_tree_store($treeview->get_store, $node, $namespaces); =head1 DESCRIPTION This package provides some functions that are implemented through XS. These functions are much faster than their Perl counterpart. =head1 CLASS METHODS The following class methods are available: =cut use 5.006; use strict; use warnings; use parent qw(DynaLoader); use Gtk2; use XML::LibXML; use Exporter 'import'; our @EXPORT_OK = qw( xacobeo_populate_gtk_text_buffer xacobeo_populate_gtk_tree_store ); sub dl_load_flags {return 0x01} =head2 load_text_buffer Populates a L with the contents of an L. The elements and attributes are displayed with the prefix corresponding to their respective namespaces. The XML document is also displayed with proper syntax highlighting. Parameters: =over =item * $buffer The text buffer to fill. Must be an instance of L. =item * $node The node to display in the the text view. Must be an instance of L. =item * $namespaces The namespaces declared in the document. Must be an hash ref where the keys are the URIs and the values the prefixes of the namespaces. =back =cut sub load_text_buffer { my $class = shift; my ($buffer, $node, $namespaces) = @_; xacobeo_populate_gtk_text_buffer($buffer, $node, $namespaces); } =head2 load_tree_store Populates a L with the contents of an L. The tree will display only the nodes of type element. Furthermore, the elements are displayed with the prefix corresponding to their respective namespaces. Parameters: =over =item * $store The text store to fill. Must be an instance of L. =item * $node The node to display in the the tree view. Must be an instance of L. =item * $namespaces The namespaces declared in the document. Must be an hash ref where the keys are the URIs and the values the prefixes of the namespaces. =back =cut sub load_tree_store { my $class = shift; my ($store, $node, $namespaces) = @_; xacobeo_populate_gtk_tree_store($store, $node, $namespaces); } =head2 get_node_mark Returns a unique identifier for the given node. Parameters: =over =item * $node The node. Must be an instance of L. =back =cut sub get_node_mark { my $class = shift; my ($node) = @_; xacobeo_get_node_mark($node); } =head2 get_node_path Returns a unique XPath path for the given L. The path will use node names using the right prefixes. Parameters: =over =item * $node The node for which the path has to be computed. Must be an instance of L. =item * $namespaces The namespaces declared in the document. Must be an hash ref where the keys are the URIs and the values the prefixes of the namespaces. =back =cut sub get_node_path { my $class = shift; my ($node, $namespaces) = @_; xacobeo_get_node_path($node, $namespaces); } __PACKAGE__->bootstrap; # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/UI000755001750001750 012211074713 17201 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/lib/Xacobeo/UI/Window.pm000444001750001750 3531512211074713 21172 0ustar00erodriguezerodriguez000000000000package Xacobeo::UI::Window; =head1 NAME Xacobeo::UI::Window - Main window of Xacobeo. =head1 SYNOPSIS use Gtk2 qw(-init); use Xacobeo::UI::Window; my $xacobeo = Xacobeo::UI::Window->new(); $xacobeo->signal_connect(destroy => sub { Gtk2->main_quit(); }); $xacobeo->show_all(); Gtk2->main(); =head1 DESCRIPTION The application's main window. This widget is a L. =head1 PROPERTIES The following properties are defined: =head2 source-view The source view where the document's content is displayed. =head2 dom-view The widget displaying the results of a search =head2 results-view The UI Manager used by this widget. =head2 namespaces-view The widget displaying the namespaces of the current document. =head2 xpath-entry The entry where the XPath expression will be edited. =head2 statusbar The window's statusbar. =head2 notebook The notbook widget at the bottom of the window. =head2 evaluate-button The button starting a search. =head2 conf A reference to the main configuration singleton. =head2 ui-manager The UI Manager used by this widget. =head1 METHODS The following methods are available: =head2 new Creates a new instance. This is simply the parent's constructor. =cut use strict; use warnings; use Data::Dumper; use Glib qw(TRUE FALSE); use Gtk2; use Gtk2::SimpleList; use Carp; use Xacobeo; use Xacobeo::UI::SourceView; use Xacobeo::UI::DomView; use Xacobeo::UI::Statusbar; use Xacobeo::UI::XPathEntry; use Xacobeo::Document; use Xacobeo::GObject; use Xacobeo::I18n; use Xacobeo::Timer; use Xacobeo::Error; use Xacobeo::Utils qw{ isa_dom_nodelist escape_xml_text scrollify }; Xacobeo::GObject->register_package('Gtk2::Window' => properties => [ Glib::ParamSpec->object( 'source-view', "Source View", "The source view where the document content is displayed", 'Xacobeo::UI::SourceView', ['readable', 'writable'], ), Glib::ParamSpec->object( 'dom-view', "DOM View", "The DOM tree view where the document nodes are displayed", 'Xacobeo::UI::DomView', ['readable', 'writable'], ), Glib::ParamSpec->object( 'results-view', "Results View", "The widget displaying the results of a search", 'Xacobeo::UI::SourceView', ['readable', 'writable'], ), Glib::ParamSpec->scalar( 'namespaces-view', "Namespaces View", "The widget displaying the namespaces of the current document", ['readable', 'writable'], ), Glib::ParamSpec->object( 'xpath-entry', "XPath Entry", "The entry where the XPath expresion will be edited", 'Xacobeo::UI::XPathEntry', ['readable', 'writable'], ), Glib::ParamSpec->object( 'statusbar', "Statusbar", "The window's statusbar", 'Xacobeo::UI::Statusbar', ['readable', 'writable'], ), Glib::ParamSpec->object( 'ui-manager', "UI Manager", "The UI Manager that provides the UI", 'Gtk2::UIManager', ['readable', 'writable'], ), Glib::ParamSpec->object( 'notebook', "Notebook", "The notbook widget at the bottom of the window", 'Gtk2::Notebook', ['readable', 'writable'], ), Glib::ParamSpec->object( 'evaluate-button', "Evaluate Button", "The button starting a search", 'Gtk2::Button', ['readable', 'writable'], ), Glib::ParamSpec->object( 'conf', "Configuration", "A reference to the main configuration singleton", 'Xacobeo::Conf', ['readable', 'writable', 'construct-only'], ), ], ); sub new { my $class = shift; my $conf = Xacobeo::Conf->get_conf; my $self = $class->SUPER::new(conf => $conf); # Pimp a bit the window (title, icon, size) $self->set_title(__("No document")); $self->set_icon( Gtk2::Gdk::Pixbuf->new_from_file( $conf->share_file('pixmaps', 'xacobeo.png') ) ); $self->set_size_request(800, 600); my $ui_manager = $self->_create_ui_manager(); $self->ui_manager($ui_manager); # Build the window's widgets my $vbox = Gtk2::VBox->new(FALSE, 0); $self->add($vbox); my $menu = $self->ui_manager->get_widget('/MenuBar'); $vbox->pack_start($menu, FALSE, FALSE, 0); $vbox->pack_start($self->_create_search_bar, FALSE, TRUE, 0); $vbox->pack_start($self->_create_main_content, TRUE, TRUE, 0); my $statusbar = Xacobeo::UI::Statusbar->new(); $self->statusbar($statusbar); $vbox->pack_start($statusbar, FALSE, TRUE, 0); # Connect the signals $self->auto_connect(dom_view => 'node-selected'); $self->auto_connect(xpath_entry => 'xpath-changed'); $self->auto_connect(xpath_entry => 'activate', \&callback_execute_xpath); $self->auto_connect(evaluate_button => 'activate', \&callback_execute_xpath); $self->auto_connect(evaluate_button => 'clicked', \&callback_execute_xpath); return $self; } # # Helper for connecting signals easily. # # Args: # $object: the name of object that will fire the signal # $signal: the name of the signal # $callback: the callback to connect, if no callback is provided then # "callback_$signal" will be used instead (Optional). # sub auto_connect { my $self = shift; my ($object, $signal, $callback) = @_; if (! $callback) { # Build the callback's name based on the signal name my $name = "callback_$signal"; $name =~ tr/-/_/; $callback = $self->can($name) or croak "Can't find callback: $name"; } $self->{$object}->signal_connect($signal => sub { $self->$callback(@_); }); } # # Display the selected node in the source view and in the results view. The # selection is made from the tree view and we receive selected node that has to # be displayed. # sub callback_node_selected { my $self = shift; my ($view, $node) = @_; $self->source_view->show_node($node); $self->display_results($node); } # # Enable/Disable the evaluate button based on the validity of the XPath # expression. # sub callback_xpath_changed { my $self = shift; my ($entry, $xpath, $is_valid) = @_; $self->evaluate_button->set_sensitive($is_valid); } # # Execute the XPath expression on the current document. # sub callback_execute_xpath { my $self = shift; return unless $self->xpath_entry->is_valid; my $xpath = $self->xpath_entry->get_text(); my $document = $self->source_view->document or return; my $timer = Xacobeo::Timer->start(); my $result; my $find_successful = eval { $result = $document->find($xpath); 1; }; my $error = $@; $timer->stop(); if ($find_successful) { my $count = isa_dom_nodelist($result) ? $result->size : 1; my $format = __n("Found %d result in %0.3fs", "Found %d results in %0.3fs", $count); $self->statusbar->displayf($format, $count, $timer->elapsed); } else { $result = Xacobeo::Error->new(xpath => $error); $self->statusbar->display(__("XPath query issued an error")); } # Display the results $self->display_results($result); } sub display_results { my $self = shift; my ($node) = @_; # Since the results view shows only the current node we use load_node instead # of show_node(). $self->results_view->load_node($node); $self->notebook->set_current_page(0); } =head2 load_file Load a new file into the application. The new document will be parsed and displayed in the window. Parameters: =over =item * $file The file to load. =item * $type The type of document to load: I or I. Defaults to I if no value is provided. =back =cut sub load_file { # Arguments my ($self, $file, $type) = @_; $type ||= 'xml'; my $timer = Xacobeo::Timer->start(); # Parse the content my $t_load = Xacobeo::Timer->start(__('Load document')); my $document; eval { $document = Xacobeo::Document->new_from_file($file, $type); 1; } or do { my $error = $@; $self->statusbar->display( __x("Can't read {file}: {error}", file => $file, error => $error) ); return; }; undef $t_load; # Fill the widgets $self->set_title($file); $self->load_document($document); # Show the timers $timer->stop(); if ($document) { my $format = __n( "Document loaded in %.3f second", "Document loaded in %.3f seconds", int($timer->elapsed), ); $self->statusbar->displayf($format, $timer->elapsed); } else { # Invoke the time elapsed this way the value is not printed to the console $timer->elapsed; } } =head2 load_document Load a new document into the application. The document will be parsed and displayed in the window. Parameters: =over =item * $document The document to load. =back =cut sub load_document { # Arguments my ($self, $document) = @_; my ($node, $namespaces) = $document ? ($document->documentNode, $document->namespaces) : (undef, {}); # Update the text widget my $t_syntax = Xacobeo::Timer->start(__('Syntax Highlight')); $self->source_view->set_document($document); $self->source_view->load_node($node); undef $t_syntax; # Clear the previous results $self->results_view->set_document($document); # Populate the DOM view tree my $t_dom = Xacobeo::Timer->start(__('DOM Tree')); $self->dom_view->set_document($document); $self->dom_view->load_node($node); undef $t_dom; # The XPath entry needs the document since it has the namespaces that are # available to the current XPath expression $self->xpath_entry->set_document($document); # Populate the namespaces view my @namespaces; while (my ($uri, $prefix) = each %{ $namespaces }) { push @namespaces, [$prefix, $uri]; } @{ $self->namespaces_view->{data} } = @namespaces; } sub set_title { my $self = shift; my ($short) = @_; my $title = $self->conf->app_name; if ($short) { $title .= ' - ' . $short; } $self->SUPER::set_title($title); } =head2 set_xpath Set the XPath expression to display in the XPath text area. The expression is not evaluated. Parameters: =over =item * $xpath The XPath expression to set =back =cut sub set_xpath { my ($self, $xpath) = @_; croak 'Usage: $window->set_xpath($xpath)' unless defined $xpath; $self->xpath_entry->set_text($xpath); } # # Called when a new file has to be loaded # sub do_show_file_open_dialog { my $self = shift; my $dialog = Gtk2::FileChooserDialog->new( __("Open file..."), $self, # parent window 'open', 'gtk-cancel' => 'cancel', 'gtk-ok' => 'ok', ); $dialog->signal_connect(response => sub { my ($dialog, $response) = @_; if ($response eq 'ok') { my $file = $dialog->get_filename; print "File is $file\n"; return if -d $file; $self->load_file($file, 'xml'); } $dialog->destroy(); }); $dialog->run(); } # # Called when the window has to be closed # sub do_quit { my $self = shift; $self->destroy(); return; } # # Called when the about dialog has to be shown # sub do_show_about_dialog { my $self = shift; my $name = $self->conf->app_name; my $dialog = Gtk2::AboutDialog->new(); $dialog->set_title(__x("About {name}", name => $name)); $dialog->set_program_name($self->conf->app_name); $dialog->set_logo($self->get_icon); $dialog->set_version($Xacobeo::VERSION); $dialog->set_authors('Emmanuel Rodriguez '); $dialog->set_copyright("Copyright (C) 2008-2009 by Emmanuel Rodriguez."); $dialog->set_translator_credits(join "\n", 'Emmanuel Rodriguez ', 'Lars Dieckow ', ); $dialog->set_website('http://code.google.com/p/xacobeo/'); $dialog->set_website_label($name); $dialog->set_comments(__("Simple XPath viewer")); $dialog->signal_connect(response => sub { my ($dialog, $response) = @_; $dialog->destroy(); }); $dialog->show(); } sub _create_ui_manager { my $self = shift; # This entries are always active my $active_entries = [ # Top level [ 'FileMenu', undef, __("_File") ], [ 'HelpMenu', undef, __("_Help") ], # Entries (name, stock id, label, accelerator, tooltip, callback) [ 'FileOpen', 'gtk-open', __("_Open"), 'O', __("Open a file"), sub { $self->do_show_file_open_dialog(@_) } ], [ 'FileQuit', 'gtk-quit', __("_Quit"), "Q", __("Quit"), sub { $self->do_quit() } ], [ 'HelpAbout', 'gtk-about', __("_About"), undef, __("About"), sub { $self->do_show_about_dialog(@_) } ], ]; my $ui_manager = Gtk2::UIManager->new(); my $ui_string = <<'__XML__'; __XML__ $ui_manager->add_ui_from_string($ui_string); my $actions = Gtk2::ActionGroup->new("Actions"); $actions->add_actions($active_entries, undef); $ui_manager->insert_action_group($actions, 0); $self->add_accel_group($ui_manager->get_accel_group); return $ui_manager; } sub _create_search_bar { my $self = shift; my $hbox = Gtk2::HBox->new(); my $label = Gtk2::Label->new(__("XPath:")); $hbox->pack_start($label, FALSE, TRUE, 0); my $entry = Xacobeo::UI::XPathEntry->new(); $self->xpath_entry($entry); my $markup = sprintf '%s', escape_xml_text(__("XPath Expression...")) ; $entry->set_empty_markup($markup); $hbox->pack_start($entry, TRUE, TRUE, 0); my $button = Gtk2::Button->new(__("Evaluate")); $self->evaluate_button($button); $button->set_sensitive(FALSE); $hbox->pack_start($button, FALSE, TRUE, 0); return $hbox; } sub _create_main_content { my $self = shift; my $hpaned = Gtk2::HPaned->new(); # Left part - Tree view my $dom_view = Xacobeo::UI::DomView->new(); $self->dom_view($dom_view); $hpaned->pack1(scrollify($dom_view, 200), FALSE, TRUE); # Rigth part - VPaned [Source view | Notebook(Results, Namespaces)] my $vpaned = Gtk2::VPaned->new(); $hpaned->pack2($vpaned, TRUE, TRUE); my $source_view = Xacobeo::UI::SourceView->new(); $self->source_view($source_view); $source_view->set_show_line_numbers(TRUE); $source_view->set_highlight_current_line(TRUE); $vpaned->pack1(scrollify($source_view, -1, 400), FALSE, TRUE); # Notebook with the results view and the namespaces view my $notebook = Gtk2::Notebook->new(); $self->notebook($notebook); $vpaned->pack2($notebook, TRUE, TRUE); my $results_view = Xacobeo::UI::SourceView->new(); $self->results_view($results_view); $notebook->append_page( scrollify($results_view), Gtk2::Label->new(__("Results")) ); my $namespaces_view = Gtk2::SimpleList->new( __('Prefix') => 'text', __('URI') => 'text', ); $self->namespaces_view($namespaces_view); $notebook->append_page( scrollify($namespaces_view), Gtk2::Label->new(__("Namespaces")) ); return $hpaned; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/UI/XPathEntry.pm000444001750001750 712712211074713 21751 0ustar00erodriguezerodriguez000000000000package Xacobeo::UI::XPathEntry; =head1 NAME Xacobeo::UI::XPathEntry - XPath text entry =head1 SYNOPSIS use Xacobeo::UI::XPathEntry; my $entry = Xacobeo::UI::XPathEntry->new(); my $markup = sprintf '%s', escape_xml_text(__("XPath Expression...")) ; $entry->set_empty_markup($markup); # Must set a document in order to find the namespaces that are allowed $entry->set_document($document); if ($entry->is_valid) { my $xpath = $entry->get_text my $node = $document->find($xpath); $result_view->load_node($node); } =head1 DESCRIPTION A text entry that validates XPath expressions. This widget is a L. The widget validates the text in realtime. In order to support validation for namespaces a document has to be set first. =head1 PROPERTIES The following properties are defined: =head2 document The document being displayed. =head2 valid Indicates if the XPath expression beind displayed is valid based on the current document. =head1 METHODS The following methods are available: =head2 new Creates a new instance. This is simply the parent's constructor. =cut use strict; use warnings; use Data::Dumper; use Glib qw(TRUE FALSE); use Gtk2; use Gtk2::Ex::Entry::Pango; use Xacobeo::GObject; Xacobeo::GObject->register_package('Gtk2::Ex::Entry::Pango' => properties => [ Glib::ParamSpec->object( 'document', "Document", "The main document being displayed", 'Xacobeo::Document', ['readable', 'writable'], ), Glib::ParamSpec->boolean( 'valid', "Valid XPath", "Indicates if the XPath expression is valid", FALSE, ['readable', 'writable'], ), ], # FIXME perhaps this signal should be removed and the caller shoud connect to notify::is-valid signals => { 'xpath-changed' => { flags => ['run-last'], # Parameters: XPath expression, isValid param_types => ['Glib::String', 'Glib::Boolean'], }, }, ); sub INIT_INSTANCE { my $self = shift; $self->signal_connect('changed' => \&callback_changed); $self->set_sensitive(FALSE); } =head2 set_document Sets a the widget's document. A document is needed in order to provide the namespaces that allowed in the XPath expression. Parameters: =over =item * $document The main document; an instance of L. =back =cut sub set_document { my $self = shift; my ($document) = @_; $self->document($document); $self->set_sensitive($document ? TRUE : FALSE); # FIXME changing the document has to trigger a revalidation of the xpath expression } sub callback_changed { my ($self) = @_; my $xpath = $self->get_text; my $document = $self->document; my $is_valid = FALSE; if ($document && $xpath) { $is_valid = $document->validate($xpath); if (! $is_valid) { # Mark the XPath expression as wrong my $escaped = Glib::Markup::escape_text($xpath); my $markup = "$escaped"; $self->set_markup($markup); $self->signal_stop_emission_by_name('changed'); } } $self->valid($is_valid); $self->signal_emit('xpath-changed' => $xpath, $is_valid); } =head2 is_valid Returns C if the current XPath expression is valid. =cut sub is_valid { my $self = shift; return $self->valid; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/UI/Statusbar.pm000444001750001750 405312211074713 21646 0ustar00erodriguezerodriguez000000000000package Xacobeo::UI::Statusbar; =head1 NAME Xacobeo::UI::Statusbar - Xacobeo's statusbar =head1 SYNOPSIS use Xacobeo::UI::Statusbar; my $statusbar = Xacobeo::UI::Statusbar->new(); $vbox->pack_start($statusbar, FALSE, TRUE, 0); $statusbar->display("Application started"); =head1 DESCRIPTION A simple statusbar. This widget is a L. =head1 PROPERTIES The following properties are defined: =head2 context-id The context id for the default messages. =head1 METHODS The following methods are available: =head2 new Creates a new instance. This is simply the parent's constructor. =cut use strict; use warnings; use Data::Dumper; use Glib qw(TRUE FALSE); use Gtk2; use Xacobeo::GObject; Xacobeo::GObject->register_package('Gtk2::Statusbar' => properties => [ Glib::ParamSpec->scalar( 'context-id', "Context ID", "The context id for the default status messages", ['readable', 'writable', 'construct-only'], ), ], ); sub new { my $class = shift; my $self = $class->SUPER::new(); my $id = $self->get_context_id('default'); $self->context_id($id); return $self; } =head2 display Display a new message. Parameters: =over =item * $message The message to display. =back =cut sub display { my $self = shift; my ($message) = @_; my $id = $self->context_id; $self->pop($id); $self->push($id, $message); } =head2 displayf Display a new message based on a C format. Parameters: =over =item * $format The format that will generate the message to display. =item * @args The arguments to be used by the pattern =back =cut sub displayf { my $self = shift; my ($format, @args) = @_; $self->display(sprintf $format, @args); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/UI/DomView.pm000444001750001750 1757612211074713 21306 0ustar00erodriguezerodriguez000000000000package Xacobeo::UI::DomView; =head1 NAME Xacobeo::UI::DomView - DOM tree view =head1 SYNOPSIS use Xacobeo::DomView; use Xacobeo::UI::SourceView; my $view = Xacobeo::UI::SourceView->new(); $window->add($view); # Load a document my $document = Xacobeo::Document->new_from_file($file, $type); $view->set_document($document); $view->load_node($document->documentNode); =head1 DESCRIPTION The application's main window. This widget is a L. =head1 PROPERTIES The following properties are defined: =head2 ui-manager The UI Manager used by this widget. =head2 action-group The action group that provides the values in the context menu. =head2 menu The context menu of the widget. =head2 document The document being displayed. =head2 namespaces The namespaces registered in the document. =head1 METHODS The following methods are available: =head2 new Creates a new instance. This is simply the parent's constructor. =cut use strict; use warnings; use Data::Dumper; use Glib qw(TRUE FALSE); use Gtk2; use Xacobeo::I18n; use Xacobeo::XS; use Xacobeo::Document; use Xacobeo::GObject; Xacobeo::GObject->register_package('Gtk2::TreeView' => properties => [ Glib::ParamSpec->object( 'ui-manager', "UI Manager", "The UI Manager that provides the UI", 'Gtk2::UIManager', ['readable', 'writable'], ), Glib::ParamSpec->object( 'action-group', "Action Group", "The action group with context menu entries", 'Gtk2::ActionGroup', ['readable', 'writable'], ), Glib::ParamSpec->object( 'menu', "Context Menu", "The context menu for the tree items", 'Gtk2::ActionGroup', ['readable', 'writable'], ), Glib::ParamSpec->object( 'document', "Document", "The main document being displayed", 'Xacobeo::Document', ['readable', 'writable'], ), # FIXME this property is redundant as we can use $self->document->namespaces Glib::ParamSpec->scalar( 'namespaces', "Namespaces", "The namespaces in the main document", ['readable', 'writable'], ), ], signals => { 'node-selected' => { flags => ['run-last'], # Parameters: Node param_types => ['Glib::Scalar'], }, }, ); my $NODE_POS = 0; my $NODE_DATA = $NODE_POS++; my $NODE_ICON = $NODE_POS++; my $NODE_NAME = $NODE_POS++; my $NODE_ID_NAME = $NODE_POS++; my $NODE_ID_VALUE = $NODE_POS++; sub INIT_INSTANCE { my $self = shift; my $model = Gtk2::TreeStore->new( 'Glib::Scalar', # A reference to the XML::LibXML::Node 'Glib::String', # The icon to use (ex: 'gtk-directory') 'Glib::String', # The name of the Element 'Glib::String', # The name of the ID field 'Glib::String', # The value of the ID field ); $self->set_model($model); $self->set_fixed_height_mode(TRUE); my $column = $self->_add_text_column($NODE_NAME, __('Element'), 150); # Icon my $node_icon = Gtk2::CellRendererPixbuf->new(); $column->pack_start($node_icon, FALSE); $column->set_attributes($node_icon, 'stock-id' => $NODE_ICON); # Node attribute name (ID attribute) $self->_add_text_column($NODE_ID_NAME, __('ID name'), 75); # Node attribute value (ID attribute) $self->_add_text_column($NODE_ID_VALUE, __('ID value'), 75); my $ui_manager = $self->_build_ui_manager(); $self->ui_manager($ui_manager); my $menu = $ui_manager->get_widget('/DomViewPopup'); $self->menu($menu); $self->signal_connect('row-activated' => \&callback_row_activated); $self->signal_connect('popup-menu' => \&callback_popup_menu); $self->signal_connect('button-press-event' => \&callback_button_press_event); } sub _build_ui_manager { my $self = shift; my $entries = [ # Entries (name, stock id, label, accelerator, tooltip, callback) [ 'DomViewSelectNode', 'gtk-jump-to', __("_Jump to"), undef, __("Show the node"), sub { $self->do_select_node() } ], [ 'DomViewCopyXPath', 'gtk-copy', __("_Copy XPath"), undef, __("Copy the node's XPath"), sub { $self->do_copy_xpath() } ], ]; my $actions = Gtk2::ActionGroup->new("DomViewActions"); $self->action_group($actions); $actions->add_actions($entries, undef); $actions->set_sensitive(FALSE); my $ui_manager = Gtk2::UIManager->new(); $self->ui_manager($ui_manager); my $ui_string = <<'__XML__'; __XML__ $ui_manager->add_ui_from_string($ui_string); $ui_manager->insert_action_group($actions, 0); return $ui_manager; } # # Transform the signal 'row-activated' into 'node-selected'. # sub callback_row_activated { my ($self, $path) = @_; my $model = $self->get_model; my $iter = $model->get_iter($path); my $node = $model->get($iter, $NODE_DATA); $self->signal_emit('node-selected' => $node); } sub do_copy_xpath { my $self = shift; my $node = $self->get_selected_node or return; my $xpath = Xacobeo::XS->get_node_path($node, $self->namespaces); foreach my $selection (qw(SELECTION_CLIPBOARD SELECTION_PRIMARY)) { my $clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->$selection); $clipboard->set_text($xpath); } } sub do_select_node { my $self = shift; my $node = $self->get_selected_node or return; $self->signal_emit('node-selected' => $node); } sub get_selected_node { my $self = shift; # Get the selected node and find its xpath my $selection = $self->get_selection; my ($model, $iter) = $selection->get_selected or return; my $node = $model->get($iter, $NODE_DATA); return $node; } # # Display a context menu for a given node when right clicking. # sub callback_button_press_event { my ($self, $event) = @_; return FALSE unless $event->button == 3; my $path = $self->get_path_at_pos($event->x, $event->y) or return FALSE; my $selection = $self->get_selection; $selection->unselect_all(); $selection->select_path($path); $self->action_group->set_sensitive(TRUE); $self->menu->popup(undef, undef, undef, undef, $event->button, $event->time); return TRUE; } # # Display a context menu for a given node when right clicking. # sub callback_popup_menu { my ($self) = @_; $self->menu->popup(undef, undef, undef, undef, 0, 0); return TRUE; } sub set_document { my $self = shift; my ($document) = @_; $self->document($document); $self->namespaces( $self->document ? $self->document->namespaces : undef ); } =head2 load_node Sets the tree view nodes hierarchy based on the given node. This is the method that will actually add items to the widget. Parameters: =over =item * $node The node to be loaded into the tree widget; an instance of L. =back =cut sub load_node { my $self = shift; my ($node) = @_; my $store = $self->get_model; $self->set_model(undef); if (defined $node and defined $store) { Xacobeo::XS->load_tree_store($store, $node, $self->namespaces); } elsif (defined $store) { $store->clear(); } $self->set_model($store); # Expand the first level if (my $iter = $store->get_iter_first) { my $path = $store->get_path($iter); $self->expand_row($path, FALSE); } } # # Adds a text column to the tree view # sub _add_text_column { my $self = shift; my ($field, $title, $width) = @_; my $cell = Gtk2::CellRendererText->new(); my $column = Gtk2::TreeViewColumn->new(); $column->pack_end($cell, TRUE); $column->set_title($title); $column->set_resizable(TRUE); $column->set_sizing('fixed'); $column->set_fixed_width($width); $column->set_attributes($cell, text => $field); $self->append_column($column); return $column; } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/lib/Xacobeo/UI/SourceView.pm000444001750001750 2174712211074713 22022 0ustar00erodriguezerodriguez000000000000package Xacobeo::UI::SourceView; =head1 NAME Xacobeo::UI::SourceView - Text editor that displays XML. =head1 SYNOPSIS use Xacobeo::Document; use Xacobeo::UI::SourceView; my $view = Xacobeo::UI::SourceView->new(); $view->set_show_line_numbers(TRUE); $window->add($view); # Load a document my $document = Xacobeo::Document->new_from_file($file, $type); $view->set_document($document); $view->load_node($document->documentNode); =head1 DESCRIPTION The text editor widget that's used for displaying XML. This widget is a L. =head1 PROPERTIES =head2 document The document being displayed. =head2 namespaces The namespaces registered in the document. =head1 METHODS The following methods are available: =head2 new Creates a new instance. This is simply the parent's constructor. =cut use strict; use warnings; use Data::Dumper; use Glib qw(TRUE FALSE); use Gtk2; use Gtk2::Pango qw(PANGO_WEIGHT_LIGHT PANGO_WEIGHT_BOLD); use Gtk2::SourceView2; use Xacobeo::Utils qw( isa_dom_nodelist isa_dom_boolean isa_dom_number isa_dom_literal isa_dom_namespace escape_xml_attribute ); use Xacobeo::XS; use Xacobeo::I18n; use Xacobeo::Document; use Xacobeo::GObject; Xacobeo::GObject->register_package('Gtk2::SourceView2::View' => properties => [ Glib::ParamSpec->object( 'document', "Document", "The main document being displayed.", 'Xacobeo::Document', ['readable', 'writable'], ), # FIXME this property is redundant as we can use $self->document->namespaces Glib::ParamSpec->scalar( 'namespaces', "Namespaces", "The namespaces in the main document.", ['readable', 'writable'], ), ], ); # The tag table shared by all editors my $TAG_TABLE = _create_tag_table(Gtk2::TextTagTable->new()); sub INIT_INSTANCE { my $self = shift; my $buffer = _create_buffer(); $self->set_buffer($buffer); $self->set_editable(FALSE); } =head2 set_document Sets a new document. This method only registers the document with the view, to display the document use the method load_node and pass the root node. Parameters: =over =item * $document The main document; an instance of L. =back =cut sub set_document { my $self = shift; my ($document) = @_; $self->document($document); $self->namespaces( $self->document ? $self->document->namespaces : undef ); $self->clear(); } =head2 show_node Scrolls the text so that the given node is displayed. Parameters: =over =item * $node The node to show; an instance of L. =back =cut sub show_node { my $self = shift; my ($node) = @_; my $mark_name = Xacobeo::XS::->get_node_mark($node); my $buffer = $self->get_buffer; # Clear any previous selection if (my $marks = delete $self->{selected}) { my @iters = map { $buffer->get_iter_at_mark($_) } @{ $marks }; $buffer->remove_tag_by_name('selected', @iters); } # Scroll to the right place in the source view my $mark_start = $buffer->get_mark("$mark_name|start"); if ($mark_start) { my $iter_start = $buffer->get_iter_at_mark($mark_start); $buffer->place_cursor($iter_start); my $mark_end = $buffer->get_mark("$mark_name|end"); my $iter_end = $buffer->get_iter_at_mark($mark_end); $buffer->apply_tag_by_name('selected', $iter_start, $iter_end); $self->scroll_to_mark($mark_start, 0.25, FALSE, 0.0, 0.5); $self->{selected} = [$mark_start, $mark_end]; } else { print "Got no mark at $mark_name!\n"; } } =head2 load_node Sets the editor's text according to the text representation of the given node. This is the method that will actually add text to the widget. Parameters: =over =item * $node The node to be loaded into the editor; an instance of L. =back =cut sub load_node { my $self = shift; my ($node) = @_; # It's faster to disconnect the buffer from the view and to reconnect it back my $buffer = $self->get_buffer; $self->set_buffer(Gtk2::SourceView2::Buffer->new(undef)); $buffer->delete($buffer->get_start_iter, $buffer->get_end_iter); # A NodeList if (! defined $node) { _buffer_add($buffer, error => __("Node is undef")); } elsif ($node->isa('Xacobeo::Error')) { _buffer_add($buffer, error => $node->message); } elsif (isa_dom_nodelist($node)) { my @children = $node->get_nodelist; my $count = scalar @children; # Formatting using to indicate which result is being displayed my $i = 0; my $format = sprintf ' %%%dd. ', length $count; foreach my $child (@children) { # Add the result count my $result = sprintf $format, ++$i; _buffer_add($buffer, result_count => $result); if (isa_dom_namespace($child)) { # The namespaces nodes are an invention of XML::LibXML and they don't # work with the XS code, we deal with them manually. _buffer_add($buffer, syntax => ' '); _buffer_add($buffer, namespace_name => $child->nodeName); _buffer_add($buffer, syntax => '="'); my $uri = escape_xml_attribute($child->getData); _buffer_add($buffer, namespace_uri => $uri); _buffer_add($buffer, syntax => '"'); } else { Xacobeo::XS->load_text_buffer($buffer, $child, $self->namespaces); } _buffer_add($buffer, syntax => "\n") if --$count; } } # A Boolean value ex: true() or false() elsif (isa_dom_boolean($node)) { _buffer_add($buffer, boolean => $node->to_literal); } # A Number ex: 2 + 5 elsif (isa_dom_number($node)) { _buffer_add($buffer, number => $node->to_literal); } # A Literal (a single text string) ex: "hello" elsif (isa_dom_literal($node)) { _buffer_add($buffer, literal => $node->to_literal); } else { # Any kind of XML node Xacobeo::XS->load_text_buffer($buffer, $node, $self->namespaces); } # Add the buffer back into into the text view $self->set_buffer($buffer); # Scroll to the beginning $self->scroll_to_iter($buffer->get_start_iter, 0.0, FALSE, 0.0, 0.0); } sub clear { my $self = shift; $self->get_buffer->set_text(''); } # # Adds the given text at the end of the buffer. The text is added with a tag # which can be used for performing syntax highlighting. # sub _buffer_add { my ($buffer, $tag, $string) = @_; $buffer->insert_with_tags_by_name($buffer->get_end_iter, $string, $tag); return; } sub _create_buffer { my $buffer = Gtk2::SourceView2::Buffer->new($TAG_TABLE); $buffer->set_highlight_syntax(undef); # This will disable the undo/redo forever $buffer->begin_not_undoable_action(); return $buffer; } # # Creates the text tag table shared by all source views. # sub _create_tag_table { my $tag_table = Gtk2::TextTagTable->new(); _add_tag($tag_table, result_count => family => 'Courier 10 Pitch', background => '#EDE9E3', foreground => 'black', style => 'italic', weight => PANGO_WEIGHT_LIGHT ); # Make the boolean and number look a like foreach my $name (qw(boolean number)) { _add_tag($tag_table, $name => family => 'Courier 10 Pitch', foreground => 'black', weight => PANGO_WEIGHT_BOLD ); } _add_tag($tag_table, attribute_name => foreground => 'red', ); _add_tag($tag_table, attribute_value => foreground => 'blue', ); _add_tag($tag_table, comment => foreground => '#008000', style => 'italic', weight => PANGO_WEIGHT_LIGHT, ); _add_tag($tag_table, dtd => foreground => '#558CBA', style => 'italic', ); _add_tag($tag_table, element => foreground => '#800080', weight => PANGO_WEIGHT_BOLD, ); _add_tag($tag_table, pi => foreground => '#558CBA', style => 'italic', ); _add_tag($tag_table, pi_data => foreground => 'red', style => 'italic', ); _add_tag($tag_table, syntax => foreground => 'black', weight => PANGO_WEIGHT_BOLD, ); _add_tag($tag_table, literal => foreground => 'black', ); _add_tag($tag_table, cdata => foreground => 'red', weight => PANGO_WEIGHT_BOLD ); _add_tag($tag_table, cdata_content => foreground => 'purple', weight => PANGO_WEIGHT_LIGHT, style => 'italic', ); _add_tag($tag_table, namespace_name => foreground => 'red', style => 'italic', weight => PANGO_WEIGHT_LIGHT, ); _add_tag($tag_table, namespace_uri => foreground => 'blue', style => 'italic', weight => PANGO_WEIGHT_LIGHT, ); _add_tag($tag_table, entity_ref => foreground => 'red', style => 'italic', weight => PANGO_WEIGHT_BOLD, ); _add_tag($tag_table, error => foreground => 'red', ); _add_tag($tag_table, selected => background => 'yellow', ); return $tag_table; } # # Creates a text tag (Gtk2::TextTag) with the given name and properties and adds # it to the given tag table. # sub _add_tag { my ($tag_table, $name, @properties) = @_; my $tag = Gtk2::TextTag->new($name); $tag->set(@properties); $tag_table->add($tag); } # A true value 1; =head1 AUTHORS Emmanuel Rodriguez Epotyl@cpan.orgE. =head1 COPYRIGHT AND LICENSE Copyright (C) 2008,2009 by Emmanuel Rodriguez. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut Xacobeo-0.15/inc000755001750001750 012211074713 15307 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/inc/MyBuilder.pm000444001750001750 663712211074713 17712 0ustar00erodriguezerodriguez000000000000#!/usr/bin/perl package inc::MyBuilder; use strict; use warnings; BEGIN { foreach my $module (qw(ExtUtils::Depends ExtUtils::PkgConfig ExtUtils::ParseXS)) { eval "use $module"; if (my $error = $@) { warn "Missing build dependency $module."; warn $error; } } } use base 'Module::Build'; use File::Spec::Functions; use File::Path; my $CFLAGS; my $LIBS; my $TYPEMAPS; my $C_FILE; my $XS_FILE; BEGIN { # Automatically find the dependencies my $package = ExtUtils::Depends->new('Xacobeo::XS', 'Gtk2'); $package->add_typemaps('libxml2-perl.typemap'); my %config = $package->get_makefile_vars(); # Add manually the libraries that don't provide typemaps my %libxml = ExtUtils::PkgConfig->find('libxml-2.0'); $CFLAGS = "-g -std=c99 $config{INC} $libxml{cflags}"; $LIBS = "$config{LIBS} $libxml{libs}"; $TYPEMAPS = $config{TYPEMAPS}; # Make sure that the XS-C file doesn't exist otherwise it will be linked twice $C_FILE = catfile('lib', 'Xacobeo', 'XS.c'); unlink($C_FILE); $XS_FILE = catfile('lib', 'Xacobeo', 'XS.xs'); } sub new { my $class = shift; my (%args) = @_; $args{extra_compiler_flags} = $CFLAGS; $args{extra_linker_flags} = $LIBS; $args{c_source} = 'xs'; $class->SUPER::new(%args); } sub ACTION_install { my $self = shift; # If we have more than one install base then take the last entry, otherwise # we will install the application in ARRAY(0x1c577f8)/ my $install_base = $self->install_base; $self->install_base($install_base->[-1]) if ref $install_base eq 'ARRAY'; # Make sure that 'share/' has an installation path my $p = $self->{properties}; if (! exists $p->{install_path}{share}) { my $script_dir = $self->install_destination('script'); my @dirs = File::Spec->splitdir($script_dir); $dirs[-1] = 'share'; $p->{install_path}{share} = File::Spec->catdir(@dirs); } # Proceed normally $self->SUPER::ACTION_install(@_); } sub ACTION_post_install { my $self = shift; print "Updating desktop database\n"; system('update-desktop-database'); } sub ACTION_build { my $self = shift; # Copy the files in share/ foreach my $entry (@{ $self->rscan_dir('share') }) { # Skip hidden entries or folders next if $entry =~ m,(^|/)\., or -d $entry; $self->copy_if_modified( from => $entry, to => catfile($self->blib, $entry) ); } # Translate the PO files into .mo files foreach my $entry (@{ $self->rscan_dir('po') }) { next unless $entry =~ /([a-zA-Z_]+)\.po$/; my $lang = $1; # The .mo files go into their own folder, each language has it's own folder my $dir = catdir($self->blib, 'share', 'locale', $lang, 'LC_MESSAGES'); mkpath($dir); my $mo_file = catfile($dir, 'xacobeo.mo'); print "Translating $entry -> $mo_file\n"; system('msgfmt', '-o', $mo_file, $entry); } # Copy the XS.xs and the typemap file to the lib folder. This way # Module::Build will handle the compilation and installation of the XS # library. foreach my $file ('XS.xs', 'libxml2-perl.typemap') { $self->copy_if_modified( from => catfile('xs', $file), to => catfile('lib', 'Xacobeo', $file), ); } # Proceed normally $self->SUPER::ACTION_build(@_); } # Transform the XS into a C file to our liking sub process_xs_files { my $self = shift; ExtUtils::ParseXS::process_file( filename => $XS_FILE, prototypes => 0, typemap => $TYPEMAPS, output => $C_FILE, ); # Proceed normally $self->SUPER::process_xs_files(@_); } # Return a true value 1; Xacobeo-0.15/share000755001750001750 012211074713 15640 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/share/applications000755001750001750 012211074713 20326 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/share/applications/xacobeo.desktop000444001750001750 76112211074713 23462 0ustar00erodriguezerodriguez000000000000[Desktop Entry] Version=1.0 Name=Xacobeo GenericName=XPath visualizer GenericName[de]=Darstellung von XPath GenericName[es]=Interfaz XPath GenericName[fr]=Visualiseur XPath Comment=Build and execute XPath queries Comment[de]=XPath-Abfragen erstellen und ausführen Comment[es]=Construir y ejecutar XPath busquedas Comment[fr]=Contruire et éxécuter des requêtes XPath Exec=xacobeo Icon=xacobeo Terminal=false Type=Application Categories=GNOME;GTK;Development; Keywords=xpath;visualization;gui; Xacobeo-0.15/share/pixmaps000755001750001750 012211074713 17321 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/share/pixmaps/xacobeo.png000444001750001750 743412211074713 21614 0ustar00erodriguezerodriguez000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAThZwX[_ʲKBo*`FcbƖ`K \Erخ&"**bA,XPFPdnel] b9윙939s! 7oR>&v@F~v /zUT(7C#tؐ\dg//FM4l<6ٲz$+;r͎T#$Q"܈"V Iw9ʤ|n `#gnʤыfMU7)$:޵ 9,#w/mJ |o5@M\qu|3&VTe"(K!I=@@}ˇ<Ͽm4>2=)m@`i^vb?%tgnj_OYw5uaAqVĠjmcӗ]:P^ZzRP'xS֯\4}E"\g"\2,Crh~6,@#]MU3x]hSwGLvce{q<, Drr<+xA\0u&޽ۉWE6B6fjE5Q/PB?=c 1؈O9l#0XZB_u \2-,hHo1|OQ*L?[۫o]9-Eb{TSrllss6wvCڪH6'FMDYFNL ϛAJJ4lބi]`ǛM$ a:@QڴМPYQ*/<Hf^A{cm „q %e=Y[[!6]_`0av硦ʫ h4+k*Dn[iEiiz{YZ=a&Fhc cVxUbjR'gxl-MMq90 mowc-"@Q}#a;q3v$E~^\P3Lx7*g=5#->zpiIV^n<0u?}`0n숌;R 3]rwo>J`cOQ,=*{TXښVaN2=#[ b╺#q5*RZfi'Ի 'oR8A`Yŝ]EqjbbAe BJ}aNYChzDL 6q1 Pۑ :D"gs7o VV[bIENDB`Xacobeo-0.15/share/xacobeo000755001750001750 012211074713 17260 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/share/xacobeo/xacobeo.svg000444001750001750 2561712211074713 21611 0ustar00erodriguezerodriguez000000000000 image/svg+xml Xacobeo-0.15/examples000755001750001750 012211074713 16354 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/examples/cliboard.plugin000444001750001750 45212211074713 21471 0ustar00erodriguezerodriguez000000000000[Xacobeo Plugin] Name=Clipboard Load Package=Xacobeo::Ex::ClipboardLoad Description=Loads a new XML document from the contents of the clipboard Icon=gtk-paste Authors=Emmanuel Rodriguez Copyright=Copyright © 2009 Emmanuel Rodriguez Website=http://search.cpan.org/perldoc?Xacobeo Xacobeo-0.15/examples/Xacobeo000755001750001750 012211074713 17734 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/examples/Xacobeo/Ex000755001750001750 012211074713 20310 5ustar00erodriguezerodriguez000000000000Xacobeo-0.15/examples/Xacobeo/Ex/ClipboardLoad.pm000555001750001750 534012211074713 23507 0ustar00erodriguezerodriguez000000000000package Xacobeo::Ex::ClipboardLoad; =head1 NAME Xacobeo::Ex::ClipboardLoad - Test plugin =head1 DESCRIPTION Sample plugin that allows to load an XML document based on the contents of the clipboard. The plugin adds the entry I under the I main menu. The plugin can also be activated through the shortcut I. =head1 USAGE Copy the file examples/cliboard.plugin into $HOME/.config/xacobeo/plugins/ and add examples/Xacobeo into your PERL5LIB path. Or copy examples/Xacobeo/Ex/ClipboardLoad.pm somewhere and add the full path to the variable I